共识机制作为区块链的关键技术之一,在业务吞吐量、交易速度、不可篡改性、准入门槛等等方面发挥重要的作用。
区块链是去中心化的,没有中心记账节点,所以需要全网对账本达成共识。目前有POW、POS、DPOS、POOL四种共识机制。
首先从“拜占庭将军问题”开始(简书:中本聪与拜占庭将军问题),
用区块链技术中非对称加密和可信的分布式网络解决拜占庭将军问题中的共识问题。
非对称加密
可以解决古代难以解决的签名问题:
- 消息传送的私密性
- 能够确认身份
- 签名不可伪造、篡改
作用:保护消息内容, 并且让消息接收方确定发送方的身份
分布式记账场景
入门经典共识机制:
PoW(Proof of Work,工作量证明)
“解决一道数学难题”
“电脑性能越好,挖矿时间越长,获得的回报也越多。”
概念:工作量证明,引入了对一个特定值的计算工作。
POW共识算法应用场景:比特币(BTC)及其引申出来的BCH、BCD等
算法工作描述:
- 矿工们在挖一个新的区块时,必须对SHA-256密码散列函数进行运算,区块中的随机散列值以一个或多个0开始。
- 随着0数目的上升,找到这个解所需要的工作量将呈指数增长,矿工通过反复尝试找到这个解。
解决问题:
- 谁有权记账
- 如何避免记账者作弊
优点:
算法简单,采用大家认可的数学逻辑(找寻随机数),容易实现。安全系数最高,破坏整个系统,需要投入巨大成本。
缺点:
- 大量消耗能源。
- 它的价值回路必须要通过外部输入。也就是说,采用POW的数字货币仍旧不是理想状态的数字货币,因为它们的安全性不直接与使用者相关,而是要通过矿工这个媒介。
POS(Proof of Stake,权益证明)
“拥有的币越多,有记账权的概率就越大?”
因为POW大量消耗能源和安全性不与使用者相关的问题,POS的出现可以解决这些问题:
- 采用POS的货币的安全性直接与使用者相关,省去了矿工这个媒介。
- POS简单说就是,每当发表一条消息的时候,不用证明你付出了什么代价,而要证明你拥有一定数量的钱。而拥有钱代表着,如果你作弊损害了这个系统的安全性,你的钱会贬值,这变相地让你付出了代价。
- 这东西更好的一点是,如果采用POS,实际上连挖矿奖励都不需要,因为POS实际上不需要付出任何代价。
概念:
试图解决POW机制中大量资源被浪费的情况。这种机制通过计算你持有占总币数的百分比,包括你占有币数的时间来决定记账权。
POS应用场景:...
优点:不需要拼算力挖矿,不会浪费电力。缩短了共识达成的时间,效率提高。
缺点:
- 拥有权益的参与者因为可以持币吃利息,所以卖币意愿不强烈,容易产生垄断。
- 所有的确认都只是概率上的表达,存在其他攻击的可能性。挖矿成本低,硬分叉十分容易。
DPOS(Delegated Proof of Stake,委任权益证明)
PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)
POOL(验证池)
学习资料: