什么是股权委托证明机制DPOS
扫描二维码
随时随地手机看文章
股权委托证明机制(Delegated Proof of Stake, DPOS)是目前最快、最高效、最分布式且最灵活的共识模型。DPOS最大程度的用股东投票权通过一种公平且民主的方式解决共识问题。所有的网络参数,从费率计划到区块间隔及交易大小,可由选举产生的代表来调整。明确选定区块生产者使得平均只需1秒就能确认交易。也许最重要的是,共识协议的目的是保护所有参与者不受不必要的监管干扰。
BitShares是一个最早的和最重要的用于跟踪数字资产的账本形式的全球分布式数据库。所有对总帐的变更都必须以适当的顺序验证并写入数据库来保持一致性并持续提升共识。变更写入顺序达成共识的过程就是股权委托证明机制(DPOS)。
概览
任何一致性共识机制必须解决的问题都包括但不限于:
1. 应该由谁产生下一个打包了数据库变更的区块?
2. 应该在什么时间产生下一个区块?
3. 什么交易应被打包进区块?
4. 对协议的变更如何生效?
5. 应该如何来解决竞争的交易历史?
目标是要找到这些问题的答案,从而确保达成共识的过程足够健壮以抵御试图控制网络的攻击。在实践中,取得控制意味着能够单方面篡改交易。这个过程也应该足够健壮来抵御试图利用不同电脑上短时间内出现数据库不一致而获利的攻击。
选定见证人的区块生成 Block Production by Elected Witnesses
选择见证人这个词是因为它是一个不受管制的法律上中立的用语。传统合同一般有见证人签字的地方。对于极其重要的合同,有时会用公证人。无论是见证人还是公证人都不是合同的当事人,但他们在证明特定人士在特定时间签署了合同中扮演了重要角色。在BitShares,见证人在证明交易签名和时间上,通过将其打包进区块扮演了类似的角色。
在DPOS中,股权持有者可以选择任意数量的见证人来生成区块。每个区块是一组变更数据库状态的交易的集合。每个帐户允许每股一票选举见证人,这个过程称为批准投票。获票前N名的见证人会被选用。见证人的个数(即N)的确定需要至少50%的投票人认为足够去中心化。在股权持有者设置他们心仪的见证人个数时,也必须投票给至少这个数目的见证人。股权持有者不能超限投票。
见证人每生成一个区块都会因提供服务而获得报酬。他们的费率是由股权持有者通过他们选出的委托人设置(稍后将讨论)。如果一个见证人未能生成一个区块,那么他将得不到报酬,并在将来有可能落选。
活跃见证人的名单每个维护间隔(1天)在统计选票是更新一次。然后,这些见证人会随机排序,根据这个固定顺序每2秒有一个见证人获得生成一个区块的机会。当所有见证人都获得了机会后,他们被再次随机排序。如果某个见证人在他的时间窗口中没有生成区块,这个时间窗口将被跳过,下一个见证人来生成下一个区块。
任何人都可以通过观察见证人参与率来监控网络健康状况。从历史上看,BitShares一直保持着99%的见证人参与率。无论何时出现见证人参与率低于一定水平时,网络的用户可以延长交易确认时间,并提高对网络连通性的警惕。这个特性让BitShares有了独特的优势,就是在问题出现1分钟内便能提醒用户潜在的风险。
选定委托人进行参数调整 Parameter Changes by Elected Delegates
选出委托人的方法和见证人类似。委托人能够成为一个有着发布网络参数修改权限的特殊账号的共同签名者。这个账号被称为创世账号。这些参数包括交易费、区块大小、见证人报酬以及区块的时间间隔等所有内容。当大多数委托人都认可了一个的变更提议后,股权持有者有2周的审核周期,在此期间,他们可以投票罢免委托人从而废止变更提议。
选择这种设计是为了保证委托人从技术角度并没有任何直接的权力,所有对网络参数的变更最终都是由股权持有者批准。这样做是为了保护委托人脱离可能施加在密码学货币经营者或管理员上的管制。在DPOS下,我们可以真正地说,管理权掌握在用户手中,而不是委托人或见证人。
不同于见证人,委托人没有报酬。当然,这些参数并不期望被频繁更改。
技术上创世账号可以执行任何其他帐户可以执行的操作,这意味着可以向创世账号发送资金或指定创世账号作为仲裁代理。创世帐户也可同样用于发行新资产。还有无数个应用中,选定的委托人可以帮助股权持有者完成需要高信任度和责任背书的任务。
规则变更(又名硬分叉) Changing the Rules (aka Hard Forks)
有时,有必要对网络进行升级来添加新的功能。在DPOS下,所有更改必须由活跃的股权持有者的准许而触发。虽然在技术上见证人可以串谋单方面修改软件,但这么做不符合他们的利益。见证人是基于他们对区块链的中立承诺而被选中。保持中立让见证人免受他们是网络的管理者、经理、老板、运营商的指责。见证人仅仅是股权持有者的雇员。
开发人员会去实现他们认为合适的变更,只要这些变更得到股权持有者的批准。这一策略尽可能相同的保护开发者和股权持有者,并确保没有人能单方面控制网络的发展方向。
改变规则的阈值和更换51%的选定见证人是相同的。参与选举见证人的股权持有者越多,改变规则就越难。
从根本上,改变规则取决于网络上的所有人升级他们的软件,且没有什么区块链层面的协议强行规定了变更规则是如何执行的。这意味着,硬分叉式的“漏洞修复”可以在不需要股权持有者投票的情况下推出,只要代码的行为符合普遍预期。
在实践中,只有严重影响安全的硬分叉应该以这种方式实现。即使是最轻微的修改,开发人员和见证人也应等待股权持有者批准。
双重支付型攻击 Double Spend Attack
双重支付可以随时发生在区块链重选导致之前包含的交易被排除时。这意味着见证人因互联网基础架构的干扰引发了通讯中断。有了DPOS,因通讯故障带来可能的双重支付型攻击的概率是很低的。
网络有能力监测其自身的健康状态,因此可以立即检测到任何如见证人没有按时生成区块这样的通讯丢失。如果发生这种情况,用户有必要等超过半数的见证人确认了他们的交易,这可能需要一到两分钟。
作为股权证明的交易 TransacTIons as Proof of Stake
网络上的每个事务可以选择性地包含最近块的散列。如果这样做,交易签名者可以确信他们的交易不会应用于任何不包含该块的区块链。这个过程的一个副作用是,随着时间的推移,所有利益相关者最终都会直接证明交易历史的长期完整性。
区块链重组 Blockchain ReorganizaTIons
由于所有的证人都是经过选举产生的,高度负责,并且有专门的时间来制作积木,因此很少有两种相互竞争的链条存在的情况。网络延迟有时会阻止一个证人及时接收到之前的块。如果发生这种情况,下一个证人将通过建立他们最先收到的任何一个块来解决问题。有99%的证人参与,一笔交易有99%的机会在一个证人之后得到确认。
虽然系统对自然的链重组事件具有强大的功能,但是仍然存在一些潜在的软件bug、网络中断、不称职的或恶意的目击者来创建超过一两个块的多个竞争历史。软件总是选择证人参与率最高的区块链。一个单独操作的证人每轮只能产生一个区块,并且参与率总是低于大多数人。任何证人(或少数证人群体)都无法产生参与率更高的区块链。参与率的计算方法是将预期生成的块数与实际生成的块数进行比较。
最大分散化 Maximally Decentralized
在DPOS下,每个利益相关者的影响力与他们的利益成正比,没有任何利益相关者被排除在行使这种影响力之外。市场上的所有其他共识系统都将绝大多数利益相关者排除在外。替代品排除利益相关者的方式有很多种。一些替代方案使用仅限邀请的系统。另一些人排除了参与,因为他们的参与成本高于收入。还有一些系统在技术上允许每个人都参与其中,但是它们可以被一些大型玩家安全地忽略,而这些大型玩家生成了绝大多数块。只有DPOS才能确保块生产在大多数人之间均匀分配,并且每个人都有经济上可行的方法来影响这些人。