四-3,区块链共识机制---Casper

        Casper是由POS衍生出来的一种共识机制,其与POS的区别为Casper的共识按块来达成而非Pos按链来达成。而以太坊所谓会从Pow转向Pos其实是转向Casper共识。

        Casper中达成共识包含两个活动:1, 出块;2,投注.在执行这两个活动之前的必要条件是每个验证节点已经缴纳足够的保证金。保证金在这里起到的作用之一为防止恶意节点攻击网络(此外,由于出块节点的收敛,系统吞吐量也必然会有提升),因此Casper有一个必备条款:如果你有两次投注序号一样,或者说你提交了一个无法让Casper合约处理的投注,你将失去所有保证金。从这一点我们可以看出,Casper与传统的PoS不同的是Casper有奖惩机制,这样非法节点通过恶意攻击网络不仅得不到交易费,而且还面临着保证金被没收的风险

        Casper共识中出块与投注的具体活动如下(验证人):

        出块是一个独立于其他所有事件而发生的过程:验证人收集交易,当轮到他们的出块时间时,他们就制造一个区块,签名,然后发送到网络上。

        投注的过程更为复杂一些。目前Casper默认的验证人策略被设计为模仿传统的拜占庭容错共识;观察其他的验证人如何投注,取33%处的值,向0或者1进一步移动。

        而客户端确认当前状态的过程如下:

        一开始先下载所有的区块和投注,然后用上面的算法来形成自己的意见,但是不公布意见。它只要简单的按顺序在每个高度进行观察,如果一个块的概率高于0.5就处理它,否则就跳过它。在处理所有的区块之后得到的状态就可以显示为区块链的“当前状态”。客户端还可以给出对于“最终确定”的主观看法:当高度K之前的每个块,意见要么高于99.999%要么低于0.001%,那么客户端就可以认为前K个块已经最终确定。

        基于Casper共识机制业务流程图解:

        A卖东西给B,A发布全网广播,所有节点要先缴纳保证金才可以参与出块和下注,验证人将大部分保证金对候选区块进行下注。假设节点2(区块2)胜出,则可以进行挖矿,挖到随机数后有其他节点进行验证,验证通过,记录交易,而投注得胜的节点拿回保证金和交易费,投注失败的节点,扣除一部分保证金。若是第一轮的胜出者没有完成挖矿或者失败,重新进行新一轮的下注,选出新的胜利者进行再次挖矿。

    因为Casper共识现在还未上线,所以很多细节问题等以太坊转入Serenity阶段后我们才能知晓。

    PS:以太坊上这篇文章给与了更为详实的讲解,可以参考一下:

    https://ethfans.org/posts/introducing-casper-friendly-ghost

你可能感兴趣的:(区块链知识基础理论篇,一些区块链相关的事情)