我对https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3中的PoS算法的描述感到困惑。
在PoS中,区块不是由矿工工作创建的,而是由矿工创建的 将他们的令牌押在有效的区块上。在这种情况下 对于一个叉子,铸币商将其代币花在支持哪个叉子上。 假设大多数人对正确的分叉进行投票,那么验证者就投票 错误的叉子会“丢掉他们的股份”。
这是Ouroboros算法的工作原理吗?
答案 0 :(得分:1)
否。
在any协议中,variant of Ouroboros中的放样过程不会直接影响用户的利益。实际上,如果用户扩展了“错误的分叉”,那么他们最终将无法获得任何回报。
对于Ouroboros来说,斜线算法不是必需的,因为它利用密码学和概率分析来排除旨在防止的攻击。</ p>
但是,即使有必要,通常也会以惩罚可证明的不良行为的形式出现,而不是诚实的“错误”(延长较短的链条就是其中之一)。具体来说,variants I've seen将惩罚用户在同一时间创建两个块的用户,即他们主动分叉链条。
答案 1 :(得分:1)
在 Ouroboros Proof of Stake 协议中,押注错误的叉子不会受到惩罚。这不仅适用于故意的恶意分叉尝试。
在 Ouroboros 中,两个区块生产者每个都为同一个时隙生产一个区块,这种情况经常发生,并且是“设计使然”。发生这种情况是因为插槽的分配是基于数学概率和权益委托的权重发生的。你可以把它想象成掷骰子。例如,一个小池必须掷 1 才能成为插槽领导者。如果掷出 1 或 2,则更大的池被授权填充一个插槽。(当然,概率比此处基于 1-6 个骰子描述的要低得多)。
每个池不断滚动自己的秘密 VRF 密钥,从而独立确定它何时是时隙领导者。 (在使用 Ouroboros PoS 的 Cardano 主网中,这是一个 2 秒的周期)所有其他矿池在使用公共 VRF 密钥接收新区块时,可以检查这是否是合法区块。
现在,在某些情况下(约占所有区块的 5%),机会可能会使两个甚至更多权益池成为合法的插槽领导者。所以这里创建了几个合法的区块,完全没有任何恶意。
但是,Cardano 的 Ouroboros 实现为此实施了一个相对公平的解决方案,可以快速解决此分叉问题。获胜者是创建者掷出最低数字的区块。这对小池来说是一个小优势,因为他们基本上必须低滚才能成为领导者。但平均而言,由于随机碰撞,矿池会在这些所谓的老虎机战斗中丢失大约一半 (2.5%) 的所有生成块。
然而,重要的是网络中的每个节点都可以立即确定正确的有效区块,而不会造成进一步的数据和时间损失,并且对此达成共识。因此,这些(按设计)分叉可以在没有太大影响的情况下解决,并且完全没有必要为此惩罚任何人,尤其是不要通过削减参与令牌的方式。