拜占庭将军问题:
有一个防御性很强的城邦,只有两个进攻时间,4点、9点
五位将军围城,需超过半数的将军同时进攻,才能攻破
可能有叛军,将军们只能通过信使传递信息
信使可能被截,也可能为叛军传播错误信息
类似双重支付问题
假设一:多数是好人(比例以后会提及),如果超过一半是叛军,结果只能失败
假设二:原计划四点进攻(缺省值),如果所有信使都被截,无法得到消息
假设三:将军签名无法伪造,如果叛将可以伪造信使进行通信,则无解
解决方案:
非拜占庭错误的情况,相关算法:Paxos\Zab\Raft\Viewstamped Replication
允许拜占庭错误的算法:Pow(工作量证明)\PoS(权益证明)\PBFT
工作量证明:算力投票
如果A掌握51%以上的算力,可能会作弊
导致的后果是,A的财富合法性受到质疑,币值下降,A的财富缩水
缺点:算力浪费
权益证明:
挑选一些节点成为记账人,避免算力竞争
记账人要交一笔钱作为押金
矿工变成了记账人,负责验证交易和“铸”成区块,有少量手续费奖励<