Py学习  »  区块链

科普 | 了解区块链基本原理,Part-3:委托权益证明

以太坊爱好者 • 5 年前 • 367 次点击  


了解区块链基本原理系列:

Part-1:拜占庭容错
Part-2:工作量证明和权益证明





一段时间以前,我们讨论了共识机制的工作方式(即本系列 Part-1)并了解了工作量证明(PoW)和权益证明(PoS)的基础(即本系列 Part-2)。


要点在于,PoW 提供了迄今为止被证明最强的安全性,但需要耗费大量电力。PoS,作为主要的替代方案,移除了 PoW 的能源要求、以“验证者”代替矿工,给他们与其权益相对应的权重来验证(“挖出”)下一个区块。


另一种经常被讨论的共识机制是委托权益证明(DPoS)。这是一种权益证明的变体,以限制网络中验证者的数量为代价,它可以提供很强的可扩展性。


在本文中,我们会了解 DPoS 的工作方式,它的好处和代价,以及为实现更高强度的可扩展性、规避审查与双花风险,我们能如何减少这些代价。



DPoS 简介


DPoS 是一种区块链系统,在其中,一组数量固定的被选举实体(被称之为 区块生产者 或是 见证人)会轮流创建区块。区块生产者的权力是由网络中的用户投票赋予的,这些用户拥有的票数是与他们持有的网络原生代币数量(也即他们的 权益)成比例的。


或者,选举人也可以将他们的权益 委托(Delegate) 给另一位选举人,这位代理人可以代表他们在区块生产者选举中投票。


Dan Larimer 还为 DPoS 与 PoS 的术语区别写了一条注释:[1]


  • 区块生产者 是由选举人选举出来的,在数量上有限;他们的责任在于创建和签名新区块。

  • 区块验证者 在 DPoS 系统中指的是那些验证区块生产者创建的区块是否遵循了共识规则的全节点。任何用户都可以运行验证程序并验证网络。(人们可能会弄混,因为在 PoS 的 Casper 实现中,“验证者”指的是 创建 区块的人)。


在委托权益证明网络中,区块生产者数量是由该链的共识规则决定的。下面是一些最广为人知的委托权益证明链及其规定的生产者数量:


  • EOS: 21

  • BitShares: 101

  • Steemit: 21

  • Lisk: 101

  • Ark: 51


一个有 N 名区块生产者的 DPoS 链运行流程如下:


  1. 从区块生产者候选人池中选出 N 名区块生产者。

  2. 第 i 名区块生产者为第 i 个区块签名,直至 i = N。


只要一个区块获得多于 2/3 的区块生产者签名,该区块就被最终化(亦即不可再回滚)。此外,区块生产还遵循最长链规则。若要实现链间互操作,最终性(Finality)是一种极其重要的属性。


DPoS 实现的区块奖励和通胀机制取决于具体项目的奖励机制,讨论这些机制超出了本文的范围。Dan Larimer 曾撰文深度剖析 DPoS 在多种条件下的运行方式 [2]。



好得有点玄乎了?


正如我们之前写过的那样,DPoS 是一种牺牲了去中心化来换取吞吐量的协议,因为它规定了少数的区块生产者。


所以,虽然 DPoS 对许多要求高可扩展性的应用来说是有意义的,我们(以及大多数其他严肃的区块链开发者)相信,DPoS 不够去中心化,不能够作为价值储存的基础层以及记录 Web3 应用所有权的账本。


一个可以转移金融价值的区块链基础层必须充分地去中心化并且安全。这种要求是不可让步的。


有趣的是,虽然许多项目鼓动起来势汹汹的市场营销,宣称 DPoS 要“优越”于像以太坊这样的 PoW 区块链,在最近一次 Twitter 投票中,880 名投票者中的 50% 都意识到 DPoS 是以牺牲去中心化为代价的。



许多人已经撰文指出以 DPoS 建构去中心化系统会产生的弊病,其中一位是 Vitalik Buterin, 他指出这个系统会激励产生卡特尔和贿选现象 [3]。


只要我们不接受除完全去中心化系统以外的事物作为基础层、也不假设网络参与者的诚实,DPoS 似乎就不适合用于处理金融交易(当然也包括其它事物)的区块链。



那么拿 DPoS 用于特定用例呢?


我们不是第一个这么想的人。正如 Myles Snider 解释的那样:


“如果 DPoS 系统可以提供去中心化数据库必要程度的抗审查性、无需许可性以及免信任性,那么 DPoS 对很多去中心化应用来说都是更好的选择。


对特定用例来说,比如完全抗审查的电子黄金、点对点的电子货币,等等,牺牲性能来支持去中心化也许是有意义的。


但对于绝大部分应用来说,选择可扩展性更加务实。” [4]


对于想社交网络或是游戏这样的应用来说,并不是每一个评论以及游戏内操作都要求一个完全去中心化的网络来提供完全的安全性,但它们确实都需要高吞吐量。因此,DPoS 看起来完美契合这些应用的需要。


甚至我们还可以做的更好——如果我们工作量证明网络如以太坊来做安全基础层,然后在 Layer 2 上开发我们的 DPoS 链,我们就在一个高度可扩展的 DPoS 链上运行一个应用的大部分组件,同时仍然为要求高安全性的部分组件(比如游戏内金钱及资产所有权)使用安全基础层。


正如 Vitalik Buterin 指出的:


“如果你的应用真的需要非常快的交易确认速度,并且希望这些快速确认也是可靠的,那么在我看来,开发此类系统的正确方式就是假设在以太坊这样的安全基础层平台之上的 level-2 平台。


这些 level-2 可以依赖 Layer 2 来提供性能,但安全性较欠(参见:状态通道枢纽、Plasma 运营者)。当然,声誉以及未来的收益可以作为激励,让他们在当前表现良好,运行失败造成的成本也可以得到缓解。” [5]


这样做的话,即便发生黑天鹅事件,也总可以选择退到安全的 PoW 机制中。

举个例子,即便恶意行动者有能力控制 DPoS Layer-2 上的大多数区块生产者,放在 Layer-1 上的用户代币(可能价值数百万甚至几十亿美元)仍是安全的。



Layer 2 链上的硬分叉


在一条 DPoS 链上,如果敌对者通过获得大量权益掌控了网络,为抗击敌对者区块链可以推行硬分叉。


在一条包含了账本、记录了代币以及其它电子资产所有权的区块链上(例如大多数 Layer 1 区块链),硬分叉会是灾难性的。它会破坏人们对将该网络作为长期的价值储存手段的信心(例如,一个人可能在此中投入了毕生积蓄)。


但若 Layer 2 上运行的是非金融应用,所有有价值之物都储存在安全的 Layer 1 上,硬分叉就不是个事了。


若一个应用或游戏运行在 Layer 2 上,只要底层数据的完整性得到了保护,硬分叉也变成了可行的方案。



使用 Plasma Cash 进一步提升 Layer 2 安全性



Plasma 是一种让资产可以通过区块链安全转移的技术,其中系统的安全性是由“根链”来保证的,即便“Plasma 链”让拜占庭奸细占领。


使用 Plasma,用户可以在 Layer 2 上转移代币,同时仍只依赖于 Layer 1 的安全性。如果敌对者控制了 Layer 2,用户可以将他们的代币“撤退”到 Layer 1 上。


即便没有 Plasma,将 DPoS 链假设在安全的 Layer 1 上也能提供更多的安全性,因为 DApp 开发者可以将存储在安全基础层上的部和安置在可扩展侧链上的分离开来。但有了 Plasma,开发者可以有更多的灵活性,因为他们可以在侧链上执行额外的交易,同时只依赖于基础层来获得安全性。


迄今为止,所有 Plasma 链的例子用的都是使用单个 Plsama 运营者 权威的权威证明(Proof of Authority),探究的也是该运营者变成敌对者的情形。这种威胁模型只考虑一条侧链上只有一个 Plsama 运营者 的情况,需要非常严格的安全证明来保证侧链与主链间的资金转移。


然而在 DPoS 侧链中,可以有多个侧链社区选举出来的区块生产者,威胁模型会完全不一样。我们相信通过 Plasma 在 DApp 链与以太坊 PoW 主链间创建安全连接会是更简单的,因为来自一组恶意区块生产者的攻击因素是非常不同的。

在 Loom Network 中,我们正推进我们的支持 ERC721 代币的 Plasma Cash 实现,预计本月晚些时候就会发布;这样,游戏开发者就可以在 Loom DAppChains 上存储他们的 ERC721 代币并且在游戏中使用它们。



结论


为在区块链上运行大型游戏和 DApp,有必要牺牲一部分去中心化来换取更高的性能和效率——而 DPoS 似乎是这些用例的绝佳选择。


我们同样认识到,DPoS 算法可能不是价值储存的理想解决方案,当网络中只有少数验证者时就要求信任关系。


因此,我们认为,运用一个去中心化的网络(即以太坊)作为 Layer 1,并在高度可扩展的侧链上运行 DApp 提供了最好的解决方案。


参考文献

[1]:Response to Cosmos white paper’s claims on DPOS security

[2]:DPOS Consensus Algorithm — The Missing White Paper

[3]:Governance, Part 2: Plutocracy Is Still Bad

[4]:Delegated Proof of Stake: Features and Tradeoffs

[5]:Comment on Medium by Vitalik Buterin




原文链接: 

https://medium.com/loom-network/understanding-blockchain-fundamentals-part-3-delegated-proof-of-stake-b385a6b92ef 

作者: Georgios Konstantopoulos 

翻译: 阿剑




你可能还会喜欢:

科普 | dApp链:通过侧链扩展以太坊 dApp
干货 | Ethereum Casper 101
干货 | 免信任型计算的扩容模型,Part-2



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/9LhzGZ0zir
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/21277
 
367 次点击