Polkadot

作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/polkadot.md

对Polkadot的评论 Polkadot是一个股权证明的加密货币项目。

白皮书在这里 https://raw.githubusercontent.com/polkadot-io/polkadot-white-paper/master/PolkaDotPaper.pdf

更多最新但不太详细的技术描述在这里:https://polkadot.network/technology/

让我们从更多最新的描述开始。

共识的参与者 #


提名者 - 提名者正在使用投票系统来选择验证者。投票不可能是区块链中的安全机制,也不应该被使用。

验证者 - 验证者是以DOTS为赌注,负责添加txs以更新共识状态。对用户来说,股权证明总是比PoW更昂贵。这种成本可以以更高的费用,更频繁的攻击,或更严重的攻击的形式出现。

Collators/Fisherman - 看来polkadot是用欺诈证明来保证安全,类似于Optimistic Rollup的想法。这意味着最终性非常慢,但这是提高可扩展性的有效方法。

治理参与者 #

理事会成员 - 这些人是通过投票选举产生的。投票对区块链来说不可能是安全的,所以组建理事会的过程是不安全的。他们有权提出和否决 “公投”,这意味着他们是通过投票来做决定。投票是不安全的,所以理事会用来做决定的过程是不安全的。攻击者可以操纵谁是理事会成员来欺骗网络。攻击者可以操纵这个委员会的决定来欺骗网络。

技术委员会–由正在创造polkadot的人组成的小组。他们可以提出 “紧急公投”,这就像正常的公投,但发生得更快。紧急公投也是正在投票的东西,所以攻击者可以操纵这些紧急公投来欺骗网络。

接下来看白皮书 #

跳到第4节,开始谈论Polkadot的设计。它又有同样的4个角色:整理者、渔夫、提名者和验证者。

验证者 #

验证者有一个安全保证金,这个保证金的一部分可能不属于验证者,而是由提名人拥有。所以polkadot使用的是一个委托的股权证明系统。DPOS

验证者制作区块。

提名人 #

提名人选择一个验证者,并将他们的钱投入该验证者的押金中。他们得到的惩罚或奖励与他们押注的验证者相同。这就是委托证明的赌注。 授权的股权证明比正常的股权证明更不安全,因为贿赂的价格要低得多。如果一个验证者只拥有其押金的10%,那么贿赂他们的价格就只有正常股权证明的10%。

Collators #

他们为其中一个侧链运行一个完整的节点。他们创建侧链区块,并向验证者提供其完整性的零知识证明,以便签署。

该文件没有解释将使用什么样的零知识证明,或者甚至没有解释正在证明什么。

我感觉 “零知识证明 “这几个字对本文作者来说其实没有任何意义,他们说这些话只是为了给人一种神秘的权威感。

对于我们如何避免侧链的软分叉攻击,并没有解释。如果Collator决定审查数据,他们的区块仍然有效,零知识证明仍然有效,所以主链验证者会接受这些区块。软分叉攻击可以以任何方式改变共识规则,包括窃取资金。

所以主链的验证者并没有给侧链带来安全。

Fisherman 渔民 #

零知识证明是一种有效性证明,意味着它们所证明的东西对验证者来说是立即可知的。这与欺诈证明相反,欺诈证明是一种较慢的证明,可能需要一个星期或更长时间才能被验证者知道。欺诈证明是基于一种博弈论的机制,任何能够提供证据证明发生了欺诈行为的人,都可以获得奖励。如果足够的时间过去了,没有人提供欺诈的证据,那么我们就认为欺诈一定没有发生。在这一点上,验证者最终可以确定结果。

根据对Collators的描述,你可能认为polkadot是基于快速最终性有效性证明。但现在在本节中,我们转而讨论欺诈证明。

渔民是防欺诈系统的一部分。他们提供了欺诈发生的证据。

渔民表明,验证者在坏的数据上签名,或者在冲突的数据上签名。

渔民被要求给予保证金,如果他们做出无效的欺诈证据,向网络发送垃圾邮件,就会被扣除保证金。

共识 #

现在看第5节,共识。

它正在使用tendermint作为核心区块链,这是一种PoS。 它说侧链区块只有在所有数据都可用时才有效。但不可能安全地证明数据是否可用,因为说话者-听话者的错误等价问题,Vitalik解释得很好 (the speaker-listener fault equivalence problem) 此外,曾经有的数据后来可能变得不可用,这使得我们无法独立核实polkadot的历史。

协议 #

现在跳到第6节,深入了解协议。 80%的DOT将一直被押在验证者押金中。我猜测他们之所以这样说,是因为有一种错误的印象,认为有更大的赌注金额意味着更安全。权益证明系统很容易受到公地悲剧的影响,所以实际的安全性严格来说是小于赌注中位数的验证者的债券规模。赌注总额较大的DOT并不能使它更安全。 如果被担保的总额低于80%,那么成为验证者的最小担保额度就会不断减少,直到有足够的担保额度。他们没有给出任何解释,为什么减少最低保证金会导致更多的DOT被抵押。在实践中,这几乎肯定是错误的。 在6.2.3中,它说验证者可以因为在共识过程中不活跃而受到惩罚。但是只有其他验证者知道一个验证者是否不活跃。这意味着任何多数验证者都可以声称少数验证者不活跃,并完全控制共识。阻止新的验证者加入。 在6.4中,它说如果任何验证者对包括一个侧链区块有异议,那么验证者将进行投票,以决定谁在作弊,而作弊者将受到惩罚。这是另一种机制,任何多数验证者都可以惩罚少数人或将他们锁在外面。让自己对Polkadot有永久的控制权。

总结 #

在Polkadot中,主链有多个漏洞,可能导致主链断裂,侧链的资金被盗。如果主链功能正常,没有受到攻击,它仍然没有为侧链提供安全保障。侧链中的资金很容易受到软分叉攻击。