DPOS——受权股权证实机制

受权股权证实机制白皮书
(Delegated Proof-of-Stake ,DPOS)
做者: Daniel Larimer

April 3, 2014php

翻译:yidaidaxia_郝晓曦
比特坊数字资产研究俱乐部 翻译做品(www.bitfarm.io)
更多翻译版本地址:https://bitsharestalk.org/index.php?topic=4031.msg50570#msg50570

摘要

本白皮书介绍一种股权证实机制的新实现方式,该方式能够对交易进行秒级验证,而且可以在更短的时间内提供比现有任何股权证实系统都更好的安全性。在比特币网络产生一个区块的时间事后,一个受权股权证实系统(DPOS)能使你的交易获得20%股东的核实,而在比特币网络声明交易已几乎不可逆(6个区块,约1小时)的时间事后,在DPOS机制下,经过其表明,你的交易已经获得100%股东的核实。算法

1.0 背景

分布式交易总帐须要在尽量短的时间内作到安全、明确及不可逆,便于提供一个最坚实且去中心化的系统。在实践中,该流程分为两个方面:选择一个独特的节点来产生一个区块,并使得交易总帐不可逆。

1.1 工做量证实机制(Proof of Work, POW)

第一个成功解决该问题的尝试是比特币系统(Bitcoin),比特币系统使用工做量证实机制使更长总帐的产生具备计算性难度。工做量证实机制就比如是乐透,平均每10分钟有一个节点找到一个区块。若是两个节点在同一个时间找到区块,那么网络将根据后续节点的决定来肯定以哪一个区块构建总帐。从统计学角度讲,一笔交易在6个区块(约1个小时)后被认为是明确确认且不可逆的。然而,核心开发者认为,须要120个区块(约一天),才能充分保护网络不受来自潜在更长的已将新产生的币花掉的攻击区块链的威胁。
尽管出现更长的区块链会变得不太可能,但任何拥有巨大经济资源的人都仍有可能制造一个更长的区块链或者具有足够的哈希算力来冻结用户的帐户。

1.2 股权证实机制(Proof of Stake, POS)

股权证实机制已有不少不一样变种,但基本概念是产生区块的难度应该与你在网络里所占的股权(全部权占比)成比例。到目前为止,已有两个系统开始运行:点点币(Peercoin)和将来币(NXT)。点点币使用一种混合模式,用你的股权调整你的挖矿难度。将来币使用一个肯定性算法以随机选择一个股东来产生下一个区块。将来币算法基于你的帐户余额来调整你被选中的可能性。
将来币和点点币都分别解决了谁来生产下一个区块的问题,但他们没有找到在适当的时间内使区块链具有不可逆的安全性的方法。根据咱们能找到的信息,作到这点,点点币须要至少6个区块(约一小时),将来币须要10个区块。咱们找不到在10个区块后将来币能提供什么级别安全性的根据。
咱们以前发布了基于交易的股权证实机制(Transactions as Proof of Stake, TaPOS)的白皮书,在该机制中,每笔交易都包含区块链中前一个区块的哈希值。经过该系统,对任何人而言,网络变得愈来愈安全而不可逆,由于最终每一个区块都通过了股东投票。TaPOS面临的挑战是它没有定义谁来产生下一个区块。

1.3 瑞波共识机制(Ripple Consensus)

瑞波共识算法,使一组节点可以基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票经过。共识遵循这核心成员的51%权力,外部人员则没有影响力。因为该俱乐部由“中心化”开始,它将一直是“中心化的”,而若是它开始腐化,股东们什么也作不了。与比特币及点点币同样,瑞波系统将股东们与其投票权隔开,并所以比其余系统更中心化。

2.0 受权股权证实机制(DPOS)

当使用去中心化自治公司(Decentralized Autonomous Company, DAC)这一说法时,去中心化表示每一个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。其挑战是经过及时而高效的方法达到51%批准。
为达到这个目标,每一个股东能够将其投票权授予一名表明。获票数最多的前100位表明按既定时间表轮流产生区块。每名表明分配到一个时间段来生产区块。全部的表明将收到等同于一个平均水平的区块所含交易费的10%做为报酬。若是一个平均水平的区块含有100股做为交易费,一名表明将得到1股做为报酬。
网络延迟有可能使某些表明没能及时广播他们的区块,而这将致使区块链分叉。然而,这不太可能发生,由于制造区块的表明能够与制造先后区块的表明创建直接链接。创建这种与你以后的表明(也许也包括其后的那名表明)的直接链接是为了确保你能获得报酬。
该模式能够每30秒产生一个新区块,而且在正常的网络条件下区块链分叉的可能性极其小,即便发生也能够在几分钟内获得解决。

2.1 成为一名表明

成为一名表明,你必须在网络上注册你的公钥,而后分配到一个32位的特有标识符。而后该标识符会被每笔交易数据的“头部”引用。

2.2 受权你的选票

每一个钱包有一个参数设置窗口,在该窗口里用户能够选择一个或更多的表明,并将其分级。一经设定,用户所作的每笔交易将把选票从“输入表明”转移至“输出表明”。通常状况下,用户不会建立特别以投票为目的的交易,由于那将耗费他们一笔交易费。但在紧急状况下,某些用户可能以为经过支付费用这一更积极的方式来改变他们的投票是值得的。 

2.3 保持表明诚实

每一个钱包将显示一个状态指示器,让用户知道他们的表明表现如何。若是他们错过了太多的区块,那么系统将会推荐用户去换一个新的表明。若是任何表明被发现签发了一个无效的区块,那么全部标准钱包将在每一个钱包进行更多交易前要求选出一个新表明。

2.4 解决区块链分叉

和工做量证实系统及其余股权证实系统同样,最佳区块链是最长的有效区块链。任什么时候候,一名表明错过签发一个区块的机会,该区块链将比潜在竞争对手短。只要在你的交易被写入区块后的100个区块中的51%被生产出来了,那么你就能够安全地认为你在主区块链上。
也许,在防止区块链分叉所致使的损失方面,最重要的事是在事发后第一时间得知消息。由于表明们经过生产区块获得很好的报酬,他们将保持接近100%的在线时间来防止因被投票罢免而损失收入。你能够安全地认为若是在过去的10个区块中,有一两个区块错过生产,则互联网的某些部分可能正发生链接问题,那么用户应该对此特别警觉并要求额外的确认数。若是10区块中有超过5个错过生产,那么这意味着你极可能在一条支链上,所以应该中止全部交易,直到分叉获得解决。
以一种及时的方式(少于5分钟)简单地发现并警示用户网络分叉,是能够最小化潜在损失的很是重要的能力。而知道你是否正处在一条支链上则更为重要。

2.5 100名表明是去中心化的吗?

由于去中心化已经成为一个流行术语,因此其定义很难彻底固定。咱们将自由市场看做去中心化的基本形式,并将对进入自由市场设置障碍看做是全部中心化的基础。像任何事物同样,中心化有程度之分,因此咱们把受权股权证实机制与其它方案的中心化程度进行对比。

2.5.1 比特币

比特币系统目前正以受权工做量证实(Delegated Proof of Work, DPOW)为基础而运行,所以有大约10名表明控制了绝大多数的哈希算力。在那些为其竞争而能使用规模经济进行无收益挖矿的人手中,哈希算力自己就是中心化的。最后,工做量证实机制为进入市场设置障碍,使得“在职”的区块制造者没法轻易被取代。与比特币系统相比,DPOS在区块生产方面至少去中西化了10倍,而且也许在市场竞争方面去中心化了无数倍。
尽管在哈希算力方面有必定量的去中心化,当想到掌控比特币系统的股东(比特币持有者)所持股份的占比,咱们认为比特币系统是最中心化的。若是你考虑使用比特币体系的用户总数,其中参与挖矿的人极可能少于百分之一。

2.5.2 点点币

点点币是一个混合系统,因此它因为工做量证实机制而是部分中心化的。和比特币系统同样,它也有矿池。与比特币相比,点点币无疑是更去中心化的,然而,由于股权证实机制矿池须要用户保持他们的电脑在线且钱包解锁,只有一小部分的股东参与了任何形式的挖矿。

2.5.3 将来币

将来币使用透明锻造,以肯定的选出下一个制造节点。能够将其类比为,使用受权股权证实机制但你只能将你的投票权授予你本身,而你得到锻造区块机会的频率直接取决于你的帐户余额。在这个意义上来讲,将来币比点点币和比特币更为去中心化。但因为对安全风险的顾虑以及事实上大多数常规用户不会成天开启他们的电脑来籍此得到锻造机会方面的优点,它仍然遭受着少的可怜的挖矿参与度。
从这个角度来说,咱们能够判定将来币网络是由一小部分股东来保障网络安全的。事实上,若是你不上线投票,那么你将失去你的选票。为了解决这个问题,一些将来币用户用他们的股权创建股权池,并信任第三方来为他们挖矿。这是以一种形式的受权股权证实来提升股东参与度,但这也使他们的帐户余额在他们参加这些矿池时承受风险。

3.0 攻击

通常而言,网络必须抵御两种类型的攻击:拒绝服务攻击和双重支付攻击。一个攻击者经过不把一些或所有的交易加入总帐来进行拒绝服务攻击。这种攻击能够由任何拥有51%网络(不管比特币、将来币或其它)的人进行。而利用在网络正试图达成共识时的短时间优点,能够进行双重支付攻击。
为抵御这些攻击,网络必须使51%的股东尽快达成协议。

3.1 防止排除交易

拥有所有经股东投票选出的100名表明,而且按要求轮流生产区块,意味着任何一笔由至少1%的股东批准的交易可以在30分钟内加入总帐。这意味着没有表明能够经过将投票支持其余表明的交易排除在外来获取利益。

3.2 将一些表明的权力中心化

与其所被受权的投票权无关,这前100人所得到的权力权重是相同的,每名表明都有一份相等的投票权。所以,没法经过得到超过1%的选票而将权力集中到一个单一表明手上。
我的或者组织控制区块链的多名表明是有可能的。可是这个过程将须要欺骗很大比例的股东数去支持“傀儡”。
即便能够创建这51%傀儡,他们扰乱网络的能力仍将是有限的、可以被快速识别快速纠正的。没有工做量证实机制设置的进入障碍,占据多数的诚实用户会把攻击鉴别出来,而后将代码分叉并没有视攻击者生产的区块。这种攻击能够扰乱网络,但不会是致命的。

3.3 针对表明的分布式拒绝服务攻击(DDOS)

由于只有100名表明,   能够想象一个攻击者对每名轮到生产区块的表明依次进行拒绝服务攻击。幸运的是,因为事实上每名表明的标识是其公钥而非IP地址,这种特定攻击的威胁很容易被减轻。这将使肯定DDOS攻击目标更为困难。而表明之间的潜在直接链接,将使妨碍他们生产区块变得更为困难。

4.0 基于交易的股权证实机制(TaPOS)

表明制是一个短期内达成坚固共识的高效方式,而TaPOS为股东们提供了一个长效机制来直接批准他们的表明的行为。平均而言,51%的股东在6个月内会直接确认每一个区块。而取决于活跃流通的股份所占的比例,差很少10%的股东能够在几天内确认区块链。这种直接确认保障了网络的长期安全,并使全部的攻击尝试变得极度清晰易见。

5.0 高质量的服务

假设一个DPOS系统拥有100亿美圆的市场总量,平均每一年的交易费为0.25%,表明们合计得到全部交易费的10%,那么每名表明每一年能得到25,000美圆以使其节点保持在线。
这是一个利润可观的角色,许多人将为获取它持续竞争。这意味着每一个想要得到这份工做的人都会千方百计从拥有这份工做的人那里把它“偷走”。为作到这点,他们将对表明行为进行统计学分析,以找到对于标准算法的任何偏离行为。一旦找到这种偏离,他们就能有但愿赢得一些选票。
那些拥有这份工做的人,可能会尽心尽力地证实他们正在按标准软件运行。他们越有效地证实其对区块生产的正直性,越有可能保住他们的工做。你能够想象开发者会很快制做出系统,表明们能够经过这些系统快速证实哪些交易获得了普遍的散播。
事实上,市场竞争将产生用以证实表明们的正直性与可靠性的最具创造性的解决方案。让网络变得更安全的工做能够得到不少收益,而尝试绕轮网络则得不到什么好处。

6.0 结论

DPOS流程与TaPOS结合所产生的网络,其网络共识的可证实性将至少3倍于比特币、点点币及将来币网络。DPOS可以更快地达成共识,同时消除随机小股东带来小规模干扰的可能性。经济激励确保了表明们致力于证实他们有良好行为,并可能采用相似于瑞波系统的共识算法(来实现这种证实)。DPOS,事实上,是一种经过无网络分叉之虞的去中心化方式来产生瑞波特殊节点列表的方法。