作者另有投影片在这边
https://media.consensys.net/casper-smart-contract-consensus-7be6cfa6f7ec
从目前有公布的消息来看,以太坊的POS打算透过智能合约来完成
它比较像是一个赌盘,赌那一个区块会获得最多矿工的睛睐,也就是共识落谁家?
猜对了赢得利息,猜错会被扣钱,严重甚至没收保证金。
参与赌局之前,要先透过智能合约,押注保证金,申请成为验证者(Validator)。
之后就仿照拜占庭容错机制(PBFT)分三个阶段来达成共识,
这三个阶段分别是:
pre-prepare, prepare, commit
pre-prepare阶段由提案机制推举出Next Block候选人
不确定推举方式,有一说是沿用POW由矿工兢争,也有一说是由乱数指定。
总之,至少有一个候选人会出线。
prepare阶段是让各个验证者向外广播,内容有点像是:
"我, XXX-validator 认为 YYY-block 会成为 Next Block"
commit阶段就是押注的时候了
在听取完其它验证者的意见之后,每个验证者都必需公告它的决定,
它的内容有点像是:
"我, XXX-validator 在听取完众人的意见之后,
认为全网共识 会押注在 YYY-block 做为 Next Block,
若开盘结果不如预期,愿赔上ZZZ押金做为担保"
然后,智能合约就依照开盘的结果执行奖励与处罚。
比较困惑的是智能合约的执行方式
由于网络传播有延时的问题,每个节点在同一时间看到的讯息不见得一致。
如果不把 prepare/commit 的讯息写到Block-Chain里,
那么,散布在世界各地的EVM,如何得到一致的执行结果?
但是Casper本身就是推举Block的机制,没达成共识前如何写入?