初识共识算法,还是在关注比特币的时候。共识算法是区块链的核心,因此想要真正弄懂什么是区块链,首先就要理解什么是共识算法,为什么要用共识算法。
共识算法并不是伴随着比特币的产生而出现的。
早在 1997年 Adam Back 就设计出了Hashcash,可以认为是工作量证明的雏形,最初是为了预防垃圾邮件的。
2009年Satoshi Nakamoto在比特币上线时使用了一种工作量证明机制-POW,到后来以太坊为了防止比特币POW造成的算力集中,设计和实现了基于内存的POW机制-Ethash,再到后来为了减少POW电力浪费问题,出现了POS和DPOS,以及基于bft的算法,Algrand等。
粗略总结,共识算法发展经历了:POW -> POS -> BFT以及他们的融合阶段。但到目前为止由于POW本身的简单性和安全性,仍然是开源公链的主流共识算法~ 同时由于DPOS在减少算力浪费和提升tps方面的优势,也被人们所接受和应用。
什么是共识算法?
简单来说就是在一个不可信网络中,通过大家投票的方式来对某个确定性结果达成一致,这是一种少数服从多数的方法。不管是POW、POS还是BFT类共识算法,本质上都是一种投票的方法。
1. 在POW中,当矿工挖到一个块后,需要迅速将块公布到网络中,以使其他矿工得到确认,这里投票的方式直观上来看就是验证区块,如果合法就将区块连接到区块链的末端。
2. 在纯POS共识中,节点不充当矿工的角色,也就是不需要挖矿,只需要打包自己的区块,并一并提交本次作为出块者的证明。其他节点首先验证该证明有效,同时区块合法,就认为该区块是有效的。当然由于出块不需要工作量证明,为了防止出块节点作恶,POS共识一般会结合惩罚机制,该机制通过事后检查的方式来惩罚作恶人,奖励提供作恶证明的人。
未完待续……