4

我对这里对 PoS 算法的描述感到困惑https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3

在 PoS 中,区块不是由矿工创建的,而是由铸币者用他们的代币“押注”哪些区块是有效的。在分叉的情况下,铸币者花费他们的代币投票支持哪个分叉。假设大多数人对正确的分叉进行投票,那么投票给错误分叉的验证者将“失去他们在正确分叉中的股份”。

这是Ouroboros算法的工作原理吗?

4

2 回答 2

3

不。

Ouroboros协议的任何 变体 中,用户的质押不会直接受到质押过程的影响。在实践中,如果用户扩展了“错误的分叉”,他们最终不会因为这个区块而获得任何奖励。

Ouroboros 不需要削减算法,因为它采用密码学和概率分析来排除它旨在防止的攻击。

然而,即使有必要,它通常也会以惩罚可证明的不良行为的形式出现,而不是诚实的“错误”(其中延伸较短的链条就是其中之一)。具体来说,如果用户在同一点创建两个块,我所看到的变体将惩罚用户,即他们主动分叉链。

于 2019-06-24T13:36:00.317 回答
1

在 Ouroboros Proof of Stake 协议中,押错叉臂不会受到惩罚。这不仅适用于蓄意、恶意的分叉尝试。

在 Ouroboros 中,两个区块生产者每个人都为同一个时隙生产一个区块,这种情况经常发生并且“按设计”。发生这种情况是因为插槽的分配是基于数学概率和权益委托的权重进行的。你可以把它想象成掷骰子。例如,一个小池必须掷出 1 才能成为槽领导者。如果掷出 1 或 2,则更大的池有权填补空位。(概率当然远低于此处基于 1-6 骰子描述的概率)。

每个池不断滚动自己的秘密 VRF 密钥,从而独立地确定它何时是 slot 领导者。(在使用 Ouroboros PoS 的 Cardano 主网中,周期为 2 秒)所有其他池在使用公共 VRF 密钥接收新块时可以检查这是否是合法块。

现在,在某些情况下(约占所有区块的 5%),机会可能会使两个甚至更多权益池成为合法的插槽领导者。因此,这里创建了几个合法的块,根本没有任何恶意。

然而,Cardano 的 Ouroboros 实施已经为此实施了一个相对公平的解决方案,它可以快速解决这个分叉。获胜者是其创建者掷出最低数字的区块。这对于小型矿池来说是一个轻微的优势,因为它们基本上必须滚低才能成为领导者。但平均而言,在这些所谓的老虎机大战中,由于随机碰撞,一个矿池会丢失大约一半(2.5%)的生成块。

然而,重要的是网络中的每个节点都可以立即确定正确的有效块,而不会造成进一步的数据和时间损失,并且对此达成共识。因此,这些(按设计)分叉可以在没有太大影响的情况下解决,并且根本没有必要为此惩罚任何人,尤其是不要通过削减参与的代币。

于 2021-02-25T09:58:26.297 回答