区块链-拜占庭将军问题介绍

拜占庭将军问题:

    有一个防御性很强的城邦,只有两个进攻时间,4点、9点

    五位将军围城,需超过半数的将军同时进攻,才能攻破

    可能有叛军,将军们只能通过信使传递信息

    信使可能被截,也可能为叛军传播错误信息

区块链-拜占庭将军问题介绍_第1张图片

类似双重支付问题

假设一:多数是好人(比例以后会提及),如果超过一半是叛军,结果只能失败

假设二:原计划四点进攻(缺省值),如果所有信使都被截,无法得到消息

假设三:将军签名无法伪造,如果叛将可以伪造信使进行通信,则无解

解决方案:

非拜占庭错误的情况,相关算法:Paxos\Zab\Raft\Viewstamped Replication

允许拜占庭错误的算法:Pow(工作量证明)\PoS(权益证明)\PBFT

工作量证明:算力投票

    如果A掌握51%以上的算力,可能会作弊

    导致的后果是,A的财富合法性受到质疑,币值下降,A的财富缩水

    缺点:算力浪费

权益证明:    

    挑选一些节点成为记账人,避免算力竞争

    记账人要交一笔钱作为押金

    矿工变成了记账人,负责验证交易和“铸”成区块,有少量手续费奖励

PoS独有问题:

    无链胜出:

        当记账人面对两条区块链时:两边都下注,假如投错了也没有惩罚

        解决办法:增加投错和两边下注的惩罚

    怠工:

        >1/3记账人拒绝为任何区块投票 -> 死链

        最好的办法是整个社区启动硬分叉,将攻击者踢出验证者群

    PoS会让富者更富吗?

区块链-拜占庭将军问题介绍_第2张图片

区块链-拜占庭将军问题介绍_第3张图片

你可能感兴趣的:(区块链)