译者:EOSGroup,原载于:新浪微博
原文:https://steemit.com/eos/@dan/in-defense-of-consortium-blockchains
常常有人写文章攻击dpos机制。 最近,@anonymint就写了这么一篇文章DPOS can’t internet-scale.
在回应anonymint之前,我想说,世间万物都是权衡于妥协,关键的是要把权衡利弊做到最好。意识到这一点很重要。为了能做出最好的利益权衡,你必须要从全局着眼。你不能凭空就批评这种做法,任何事情都是需要跟其他事情去做比较,才能知道它优缺点。而且,如果要做比较,就应该是跟实际的替代解决方案进行比较,而不是与理论方案进行比较,因为理论上的方案是否能够实现都不知道。

区块链共同体 vs PoW

anonymint 在他的博客里说,“授权的”区块链,比如Tendermint和dpos,会产生巨头大鳄(overlord)。他说那些“巨头大鳄”可以获得越来越高的回报。这个观点不能凭空指责dpos,必须与其他的方式进行比较,比如pow。我们知道,pow的世界,拥有大量法币的大鳄们控制了大部分的哈希算力,他们获取大部分的手续费。他们利用他们对区块生产的控制,从每个人身上获取 利润。
有人说pow是能“自由参与的”,是开放的;然而,他们却忽略了参与的门槛。举个例子,除非能从挖矿中赚取利润,否则人们就不会参与pow。从挖矿中获利就意味着需要规模化以及不断扩展,最终的收益流导致了矿工有可能被政治 力量所影响。世界上的许多政府都能轻易的用低成本让挖矿无利可图。他们可以这么做,因为所有的挖矿收益或损失都是基于利润空间的。政府不考虑直接的经济收益,而只想着保护他们的垄断地位,那么所有的pow系统都会被巨头们占有,他们奖励那些合作的矿工,也控制这些合作的矿工。
说得更深一层,没有滥用矿力的风险的话,少数人是无法构建他们自己的更小型的共识系统的。你只需要看看btc和bch之间的挖矿攻击就能知道是怎么回事了。
由此,我们可以得出结论,挖矿这条路是行不通的,它会导致赢者通吃。如果你优化了一个挖矿算法,那个算法是不会被那小部分矿工使用的,因为他们的矿力不足。

生命线以及1/3攻击ß

anonymint还批评说:
只要秘密控制了33%的股权,就能轻而易举地关闭区块链。
这种说法是典型的对dpos系统的误解之一。dpos最初是为bitshares设计的,它使用的是最长链规则。由于dpos限制了一个区块生产者出块的频率,那么参与者最多的链就是最长的链。这就意味着,就算51%的人是恶意的,股权持有人们可以通过投票,把恶意行为者踢出去,在系统内只要有1个生产者是诚实的,就能在一条临时的分叉出去的区块链上进行投票选举。那么那条“恶意的分叉区块链“会以2/3的速度继续运作,而诚实的分叉区块链会以1/3的速度继续运作。而一旦诚实的1/3的网络完成了投票,恶意者就会被踢出网络,那么诚实的区块链就会就会以3/3的速度全速运转。
(译者注:这是由于DPOS出块规则与POW不一样)
这依然是steem和bitshares的底层“dpos规则”,而其他的方案都不过是纸上谈兵。

挖矿延迟的重要性

比特币永远不会到达最终状态(finality),但是如果没有及时地进入最终状态,就不能完成区块链内部通信。你可以把所有的共识系统都想象成数字状态的替代物。想象一下,如果每次一个用户签署了一笔交易,都要花1个小时来获得99.9%的确认(6个区块)那么这笔交易就永远不会真正的完成。有时候,社会需要决定,要么接受签名,然后“把资金转走”,要么拒绝签名,不转资金。如果签名最终是无效的,那么资金就不能被转移;然而,如果交易已经发送或是“交易所完成”,那么就不太可能撤销转移。
我们必须接受事物到达最终状态(final),即使他们有可能是错的或是假的,因为只有低层级的流程完成了,进入了 最终状态,才能进行更高层级的流程。当确定的需要达到100%的时候,最终的成本就会达到无限。有些时候,如果它最终证明是假的时候,附加的确定成本比丢失的成本更大。
由于最终状态对于区块链内部通信是非常重要的,而区块链内部通信是网间拓展方案的基础,所以,我们可以说没有最终状态的方案是不可接受的。而且,对于现实的应用来说,最终状态的延迟对区块链内部通信有戏剧性的影响。如果我们必须有最终状态,那么我们就应该越快越好。
比特币接受六个区块作为“最终状态”,这就意味着由五个矿池来投票决定哪些交易是达到了最终状态。即使矿工可以在矿池出问题的时候转换矿池,但是它们无法标记那些问题,也不能在最终状态的1个小时窗口内完成转换。这还没考虑到哈希算力分发的潜在问题。
如果我们要依赖五个矿池,我们最好能让他们在几秒钟内就能进行签名,而不是等上一个小时或更久。最终,这两者的安全性是一样的,但是会大大减低延迟。

结论

完善某个问题的一个维度,就会导致整个问题的成本支出,减少总体的价值量。最好的方案要仔细衡量80/20法则,把价值最大化:80%的收益是由20%的努力决定的。而且,现存的系统都不是在真空里的,因此,所有忽略了大环境的安全性分析都是不完整的,是误导。
安全性必须永远考虑物理线程的使用,考虑做空对pos的影响,以及替代性收入流的潜能。