本文翻译自:《DELEGATED PROOF OF STAKE: FEATURES AND TRADEOFFS》
翻译时间:2018-05-15
校对时间:2018-05-31
写在前面:
本文源于中文字幕组 Chuan 推荐,翻译期间得到了中文字幕组 刘祯 的指导,文章翻译结束后更有幸得到其亲自校对,我非常开心也很欣慰。
Chuan 坚持翻译和日更,其克服困难执着翻译的精神感染着我。
刘祯,英语专业八级,其文章严谨而有温度,用心且真诚。每一篇文章字字珠玑,我从中不仅看到一个产品人的精益求精,也看到一个有趣生动地灵魂。
感谢中文字幕组,感恩遇到你们,我太幸运了。
以下为正文。
委托权益证明(DPoS):特性&弊端
Myles Snider, Kyle Samani, and Tushar Jain
March 2, 2018
摘要:这篇分析文章的大部分内容是指是指在BitShares、Steem和EOS中实现的DPoS。其它平台使用类似DPoS 框架,只不过改变某些特性而已。本文大部分的分析将专注于EOS的共识算法上。我们将在未来发布对EOS的完整分析和评估报告。
引言
分布式账本很难扩展。在过去几年中,比特币、以太坊和其它项目尝试在提高平台速度和吞吐量时已经面临严峻挑战,这一事实便已经显而易见。
这一问题可被称为可扩展性三难问题这个问题从可扩展性三难问题①(这个想法首先由Vitalik Buterin 和 Trent McConaghy 正式确定)角度来说可能会有助于更好地理解。可扩展性三难问题假定任何一个由每个节点验证每个交易的区块链系统只有三个潜在属性中的两个:区块产生的去中心化( DBP ),安全性和可扩展性。这些属性可被定义如下:
● DBP可被量化为区块生产者的数量。
● 安全性可被量化为造成影响活跃度或交易顺序的拜占庭攻击的成本。请注意,安全性并不是指加密签名的完整性,也不是指第三方从公钥导出一组私钥的能力。
● 可扩展性可以量化为系统每单位时间可以处理的交易数量。
尽管以太坊,Dfinity,Polkadot和Kadena 等项目试图通过分片,替代性共识方案和其它技术来解决可扩展性问题,但目前我们还没有一个现有平台解决了这个三难选择。即使这些项目中的某一个的确解决了可扩展性的三难问题,然而市场可能并不关注。用户愿意接受区块生产或安全性在去中心的方面的权衡,以便在特定场景下获取更好的性能和用户体验,这一点是绝对可能的。
去中心化对于确保任何一方不能改变数据库是有价值的。去中心化程度越高意味着越难共谋改变数据库。不同场景需要不同级别的保护。比特币作为免受审查的货币,专为主权级保护而设计;同时,它也为防止大型攻击而设计。然而,这对于大多数分布式应用程序( DApps )来说并非必要条件。这些DApp需要平台级别的保护;全球性的,不受任何一方控制的中立数据库。
委托权益证明 ②(DPoS)将区块生产集中在少数已知的部分信任的实体手中,以便实现比工作量证明(PoW)或其它权益证明(PoS)更高数量级的可扩展性区块链。在下面分析中,我们将研究DPoS的功能和利弊。
DPoS
委托权益证明 ②(DPoS)是Dan Larimer在2013年发明的共识算法。DPoS最初是Larimer为其第一个区块链项目BitShares发明的。他在Steem项目中完善了它,并在EOS 中进一步完善(EOS众筹这一年也是研究改进的一年)。Larimer发明了DPoS并继续优化该算法,不少项目已采用DPoS并进行了修改。目前使用DPoS的区块链包括:
● EOS, BitShares, Steem, Golos, Ark, Lisk, PeerPlays, Nano (早期称为 Raiblocks)和Tezos
● Cosmos / Tendermint,Cardano和其它一些松散地使用基于DPoS共识算法的项目
在DPoS中,持有网络Token 的人可以投票选举区块生产者;选票的权重取决于选民的权益量,得票最多的区块生产者候选人是生产区块的人。用户也可以委托(“代理”)他们的投票权给另一个可以代表他们投票的用户。DPos 是一种流动的、具有代表性且 Token 持有人可参与投票的民主制度。
DPoS也可以被认为是传统组织层级的正式数字版本,且以完全透明的方式运作。尽管民主和公司治理方面的问题不在本文讨论的范围,但DPoS的一个引人注目的特征是,这些协议的开源特性意味着如果用户不同意大多数人的意见,就可以进行分叉。民主国家,公司和其他组织结构也是如此。DPoS采纳了许多传统治理模式的观念,但最终表现却更加灵活和透明。
区块打包者可以随时通过投票进入或退出,但收入和声誉损失的威胁是防止其作恶的主要动机之一。另外,消减条件并不应用于DPoS。大多数传统的PoS 允许用户生成与他们在网络中权益成比例的区块。DPoS允许用户投入其拥有的权益票数以决定谁产生区块。区块块生产者本身不一定需要拥有大量权益,但他们必须竞争以获得用户的投票。
DPoS可以为整个区块链提供动力,或者它可以用作子链、侧链、私有链等的一致性算法。DPoS可用于在以太坊 Plasma(可扩展的自主智能合约)链内实现共识,DPoS与Parity形式化的“权威证明”共识机制有许多相似之处。它也作为针对特定应用链的解决方案,例如 Cosmos 。有关DPoS的其它深入文档,请参阅此链接以及来自BitShares的链接③以及来自Larimer的这篇白皮书④ 。
DPoS 的特征和弊端
DPoS的核心元素如下:
● 区块生产者
像其它PoS链一样,DPoS不依靠矿工进行哈希运算来打包区块。相反,它选定一部分用户来来执行确认链的工作。我们提到的这些用户一般来说是区块生产者,尽管他们有时被称为委托人、公证人、验证者、伪造者或见证人。
因为Token持有者决定部分被选定的用户来打包区块,所以可以替代那些允许更多计算机参与区块打包(这将最终减缓其出块速度)的机制。 DPoS可以被看作是一种“可控的弱中心化”形式,它可以获得弱中心化(兼顾效率和速度)的好处,同时仍然保持一些恰当的去中心化的措施(第 X 位独立区块生产者可以通过Token持有人的投票产生)
这个价值数十亿美元的问题就变成了“为了实现完全去中心化,我们需要多少区块生产者?”这本身是一个含混不清的问题,加密社区因此意见不一。
它也有一个类似游戏结束时点评一样的评价——他们说DPoS不够去中心化。
问题是去中心化仅是一个范围而已,去中心化程度的增加往往也会导致更高的成本。目前有许多不同的去中心化措施。有些人像Balaji Srinivasan试图量化去中心化,但他也承认他的建议需要更多工作量。他将网络分解成多个子系统,每个子系统都可以以不同的方式进行测量,每一个都有助于整个系统的去中心化。有些人可能对要包含哪些子系统以及分配给每个子系统的权重有相反的看法。最终,当对不同的变量进行检查时,产生的结果并非极端的二元结果:这些系统是否去中心化;相反,一些系统比另一些系统的去中心化程度更高,尽管这种方法可能有点主观。
我们的目标不是为了自己的利益而去中心化。去中心化是系统的一个特征,它允许他们实现其它目标:抵制审查,开源参与,免于某些攻击,消除单点故障。虽然有助于去中心化的某些特征可以量化,但整体是不可能。区块生产者的数量只是一个参考标准,它不可能获得所有相关的细节。它也没有描述为实现基本目标需要什么程度的去中心化,或者去中心化在理论与现实上如何实现。
DPoS并没有试图“找到”一个平衡点,即需要多少区块生产者以确保足够去中心化的实现,以及可以很容易地监控作恶行为的区块生产者的数量。相反,它明确地设置了平衡,尽管它以后可以修改。
目前似乎不存在一个简单的数量能够完全评估这一平衡。我们认为,位于中国的20家区块生产者的去中心化程度低于分布在全球各地的10家区块生产者。康奈尔大学的IC3团队最近撰写了一篇论文,试图量化比特币和以太坊的去中心化程度。他们最终发现比特币和以太坊的区块生产比普遍认为的要集中得多。他们指出**⑤ **:
“这些结果表明,规模为20大小的拜占庭法定人数制度相较于工作量证明挖矿的去中心化程度更好,资源成本远远要低。这表明,对在没有如此高度中心化的情况下,创建一个无许可的共识协议进行研究是必要的”。
DPoS是解决这个问题的一个潜在方案;我们期待着在这方面进行更多的研究。去中心化的好处无法用一个单一的数字来准确衡量——它们是在迭代的、动态的、不可预知的,在真实应用环境中表现出的固有特性。
DPoS系统中的选民不仅需要考虑到有多少个区块生产者,还要考虑他们所处的管辖区域,他们所属的区域等等。如果选民做了足够的调查以确保位于不同司法管辖区的21个独立实体在生产区块,那么DPoS中的验证机制可能比几乎任何其它区块链去中心化程度要高得多。
关于为什么DPoS在实践中比PoW去中心化程度要高的观点,请参阅Ian Grigg的这篇出色的文章⑥。在文章中,他描述了中国政府如何对国内的比特币矿工进行清理整治,要么直接接管,迫使他们关闭,要么利用网关控制网络。
这对比特币网络会造成巨大的破坏,并且会在一段时间内严重损害它,即使它最终能够恢复。换句话说,DPoS可以很容易地避免这个问题,只要政府一采取行动(甚至在政府采取行动之前),他们就会投票淘汰中国的区块生产者,并使用其它司法管辖区的区块生产者代替中国的区块生产者。
DPoS的一个有趣特征是,虽然区块生产者候选人争夺Token持有者的选票,但被选出区块生产者实际上是在以合作的形式保护网络。区块生产者共享区块奖励(来自于增发),他们每轮只允许产生一个区块。区块生产者没有任何激励通过竞争尝试去生产更多区块的动机,因为这是不可能的。在EOS和Steem中,区块生产者完全靠通货膨胀来提供资金;因为没有交易费用。
区块生产者不会因物质利益激励而基于谁支付费用高就先行交易;相反,优先考虑的是整体利益——当网络处于最大负荷时,用户在网络中的权益让他们有权享受网络带。
区块生产者了获得选票而竞争,但一旦他们被投票选中,他们就会合作的方式以确保供应链的安全。而且因为区块生产者的数量是固定的,因此区块生产力不会集中,即使是规模经济情况下,也是如此。
● 中心化的区块生产
任何DPoS共识的最显着的特点是区块生产者的数量是明确限制的。区块生产者的数量在不同的应用中有所不同—— 在 Lisk 中有 101 个,在 EOS 中有 21 个等等。通常来说,这个数字是可由Token持有者投票来更改的一个参数。
DPoS 需要在每轮投票中进行验证;而每轮都需要一定时间段,每个区块生产者在这个时间段内产生一个区块。例如,在 Lisk 中,一个回合将由 101 个块组成。在每轮开始时,每个区块生产者都被指定一个时间段。每个时间段对应一个区块,并且是该轮中唯一分配的区块生产者可以打包区块。如果出块人在该时间段内未能打包一个块,那么该块将被跳过,并且来自该时间段的交易将被打包在下一个区块中。
Token 持有者的投票每轮统计一次,而区块生产者在每轮投票中要么被选中要么出局。在每个 DPoS 应用中,备份的出块人数量总是大于每轮需要的数量。因此,如果出块人作恶,那么将会被投票出局,备份的出块人将会及时补入。同时,也可以配置 DPoS 相关参数来补偿备份区块生产者,以激励他们随时准备好替补被投票出局者的位置(参见Steem中的所有见证人)。
任何区块链协议都始终关注验证者的作恶和审查。如果三个最大的以太坊采矿池相互勾结,这将有可能颠覆网络的安全。
DPoS 意识到这些风险,并试图通过透明度来降低风险。在 DPoS 中,Token 持有者直接负责决定谁控制验证。虽然这样一来,Token 持有者需要承担更多责任,但这也意味着,如果验证人作恶,网络所有者就拥有追索权。但如果以太坊矿池相互勾结串通,那么参与矿池的个体矿工将不得不跟随矿主,否则社区将不得不艰难地进行分叉。
这两种情况都需要某种形式的离线协调。如果 DPoS 区块生产者作恶,社区可以在单轮投票中将它们投票出去,并将其替换为诚实可靠的区块生产者。这仍然需要一种预先共识协议的形式( Token 持有者决定如何重新分配他们的选票),但它更形式化,并且可以说更加微不足道。这种架构允许 DPoS 在保持安全性的同时采用一种中心化的形式。这个(以及潜在的攻击载体)含义将在本文稍后部分讨论。
● 可扩展性
已知且有限的区块生产者意味着区块可以更有效地通过网络传播,从而显着提高可扩展性。区块也可以在更小的时间范围内持续可靠地生成(比特股目前每3秒产生一个块)。
此外,只要有 2/3 的区块生产者确认交易,就可以强有力的保证,即使在此之前,交易也在有效的链条上。
虽然 DPoS 肯定比 PoW 更具扩展能力,但它的运行速度取决于一系列因素。 EOS 试图通过使用 WASM 虚拟机并采用基于消息的体系结构而不是基于状态的体系结构来优化达到极高的吞吐量。早期的结果显示 EOS 智能合约为 50000 tps ,但这些结果并不代表全面的网络性能。最近,社区利用beta软件和非专业化的机器,运行 EOS 测试网的结果达到 600 tps ,而 Larimer 最近在一次更新中声称,在转向并行执行之前,该软件在其单线程架构中首次就达到 5000 tps 。
根据Blocktivity.info的数据,值得注意的是,每天执行的操作最多的前 5 个区块链中有 3 个是 DPoS 区块链。尽管以太坊一直以接近100%满负荷运转,但BitShares和Steem都不存在未完成的交易,同时又大量的可用带宽。大型dApp的智能合约平台需要每秒处理数千次操作,无论它们是单纯的赞还是百万美元的价值转移。此图表提供了BitShares的操作类型和计数的详细分类,而此链接⑦提供了Steem的统计信息。有关BitShares如何实现其性能的更多信息,请参阅此处⑧和此处⑨的详细说明。
● 网络基础设施服务
每个区块链网络可以分为两个主要的角色子集——即在网络上执行操作的人员和验证操作的人员。我们可以将第一组称为用户,将第二组称为验证者。
在比特币,以太坊, Monero 和其它基于工作量证明( PoW )的区块链中,验证者都是矿工。矿工们竞相去解决一道高难度谜题,第一个解出谜题的被允许打包一个区块(获取交易费用和区块奖励)。在传统的 PoS 中,用户必须锁定他们的 Token ,才可以获取与其锁定的 TToken 成比例的生产区块的能力。
在每种情况下,验证者都在提供关键的网络基础设施:他们对交易进行罗列和排序,并防止双重支付。在 PoW 中,验证者是那些使用最好硬件和最便宜电力的机器。在 PoS 中,验证者是那些在网络中拥有大量权益( stake )的人。但是,在 DPoS 中,验证者可以被认为是由网络所有者(Token持有者)雇用的承包商。他们被雇佣(投票产生),得到一份工作(生产区块),被支付(通过通货膨胀或交易费用),并且可能因不履行职责而被解雇(被投票出局)。
这种设计意味着DPoS的网络Token持有者,即网络的所有者,基本上能够控制谁提供基础设施,而比特币和以太坊的Token持有人别无选择。如果矿工行为不当,即他们有作恶动机的话,用户就无法求助。而DPoS是另一种规则系统,即允许基础设施提供者(即节点)易于被解雇(不需要大幅削减),并由提供良好服务的节点所代替。
解雇的理由可能包括以下任何一种情况:
● 不诚实行为
● 与其他候选人相比,出现不诚实行为,甚至仅仅缺乏足够的透明度
● 贪婪(例如试图要求比其他生产者更高的区块奖励)
● 审查制度
● 恶意串通
● 支持对网络进行有争议或恶意的更改
● 未能支持社区同意的变更
● 基于司法管辖权内的监管恐惧(例如,如果中国宣布加强对加密的打击,中国的BP可能会被拒之门外)
● 链上治理
DPoS 本质上是一种链上治理形式;它采用权益权重投票形式允许网络的所有者(Token持有者)对网络做出决定。DPoS是一种流动的代议制民主形式(译者注:DPoS:超级节点是变化的,因为持币者可以投票选择或淘汰他们,另外他们代表普通持币者的利益),即可以将投票权分配给其他参与者,并且可以随时更改投票权。虽然对区块生产者投票是主要的治理应用,但Token持有人的投票也可用于对发展基金,货币政策,网络参数,硬分叉等情况做出决定。
区块链治理仍然是一个新兴领域,关于区块链治理目前最有效的方案上仍存在很多争议。有些人,例如以太坊研究员 Vlad Zamfir ,认为链上治理是一个糟糕的主意,因为它否定了在治理过程中不参与区块生成的全节点的作用。
分析师 Nic Carter得出类似的结论:比特币非正式的链下治理由几个不同的社会和技术层组成,这才是是去中心化网络的理想治理形式。
Coinbase的联合创始人Fred Ehrsam认为,链上治理是将正式结构引入这些混乱关系的一种方式。
许多人指出比特币扩容之争,以太坊 DAO 分叉以及最近的 Parity 钱包 bug 争论的三个例子,进一步说明了链上治理可以更容易地纠正非常混乱和不确定的情况。
DPoS链表明,所有区块链网络都具有内在的政治意义,同时也是寻求政治形式更为正式化的过程。尽管链上治理和Token投票肯定存在问题(我们将在后面讨论),但两者都是DPoS的关键特征。DPoS是一个社区共有的运行层级,以完全透明的,去中心化的方式运作。虽然链上治理可能不如其它形式的区块链治理更好,但不一定是最糟糕的方式。因此我们强烈建议应该尝试和测试这种方法。
● 通过通货膨胀筹集资金
几乎每一个主要的区块链都是通过通货膨胀来应对基础设施建设。对比特币和以太坊来说,矿工获得区块奖励作为打包区块链的报酬。那么如果区块奖励在未来某个时间点用完了,基础设施则必须通过收费来获得支撑。人们会产生疑问,未来的手续费将会变成多少,这样的收费方式如何影响挖矿奖励,以及是否会影响区块链的安全性。
EOS和Steem,由于它们没有交易费用,所以使用完全不同的模型。它们不仅利用通货膨胀来给区块生产者提供基础设施的费用,而且还利用通货膨胀来资助平台本身的开发。
Token持有者可以对年度通货膨胀率进行投票,最初定为5%。这个数字时可以改变的,因为它在Steem中已经实现了。Token持有者还会投票决定每年的通货膨胀有多少是直接用来支付给区块生产者。如果Token价格上涨,用户可以决定是否要给予区块生产者固定的支付(通过降低区块奖励)或允许区块生产者获取可用于扩大其基础设施的额外利润。
那些没有支付给区块生产者的费用(Token)可以支付给一些以各种方式使用的社区智能合约。某个合同可以是一个开发基金,它根据社区投票给开发者支付费用;也可以直接投给一个积极致力于发展的公司;也可以用来资助黑客马拉松;它也可以被销毁等等。DPoS实际上可以让开发人员,营销人员和其他构建社区工具的人通过区块链本身获得资金支持。
许多人纠结于通货膨胀的概念上,且反对依赖通货膨胀的筹资方式。事实上不应当如此。通货膨胀或许是区块链能够以公平的方式获得资金的唯一方法,因为它解决了公地悲剧。
像 Monero 这样的一些区块链,完全依靠社区众筹的发展举措。虽然 Monero 的社区很大方,但这是否是一种可持续的发展方式尚不清楚。每个人都能从项目的发展中获益,但只有少数用户愿意出钱。但如果通过通货膨胀获取资金,那么相当于所有的用户共同为项目的发展和安全提供资金。正如 Fred Ehrsam 所指出的那样,通货膨胀提供的资金实际上可以为 Token 持有者带来净收益:
如果以太坊持有者认为升级(例如分片)会使价格上涨 > 10%,他们会很乐意为其支付接近 10% 的 Token 。这意味着以太坊可以通过通货膨胀增发 10% ETH 来筹集30亿美元, 并将增发的 Token 支付给系统升级的创建者们。这有点类似于税收:社区中的每个人都在为共同的基础设施(例如:道路)提供资金,而这不是哪一个可以单独完成的。
任何区块链都必须通过交易费用,通胀或二者并存的方式来保证其网络安全。交易费由活跃用户支付,而 Token 持有者不支付。用户可以通过比特币或 Monero 储存其一生的积蓄,而不需要为平台的安全性承担任何费用。这产生了一个搭便车问题。交易费用是变动的也是不可预测的,因此为了网络安全,交易费用可能是一个天文数字。基于以上分析看来,通货膨胀是一种更加公平和人性化的保护网络的方式。
已经有不少项目以多种方式尝试了类似的方法。Zcash 采用了“创始人奖励”(即利益相关者),它将总 Token 供应量的 10% 奖励给 Zcash 公司及其投资者。 Dash 回收了区块奖励的一部分用于主节点的开发基金。而 DPoS 将这些动作全部正式化,即将其直接放到协议中,并给予了最大限度的灵活性和问责性。
文章中相关链接资料:
2.Delegated Proof of Stake(委托权益证明)
5.他们指出
6.出色的文章
8.文章中此处1
9.文章中此处2
区块链中文字幕组
致力于前沿区块链知识和信息的传播,为中国融入全球区块链世界贡献一份力量。
如果您懂一些技术、懂一些英文,欢迎加入我们,加微信号:w1791520555。
点击查看项目GITHUB,及更多的译文…
本文译者简介
白马少年,坚持定投区块链,学用英语,坚信区块链必将改变潮水的方向。
版权所有,转载请完整注明以上内容。