注:本文首发于与蜡币小胖的公众号:LaBi_XiaoPang文稿与音频同步可随意转发
你好
欢迎来到蜡笔小胖的区块链学习课堂
首先感谢中本聪
今天是关于比特币的第七节课
共识机制
通过前面几节课的学习,我们知道区块链相当于一本由全网节点共同维护的总账本,那么在节点之间就需要建立一套规则,确定在某一时间点由哪个节点来维护这个总账本、怎么维护、怎么激励、其他节点怎么认可等等,这就需要形成全网的共识。
为了在全网节点之间达成共识,就需要建立一种机制来确保交易本身得到了全网的验证,以及确保区块的建立得到了全网的认可,并最终确认全网的区块链有且只有一条(即总账账本是唯一的)。只有这样才能使整个区块链系统顺利的运转下去。
实际上,从某种意义上来说,共识层所代表的共识机制是区块链系统运作的核心环节。目前常用的共识机制有三种: Proof of Work工作量证明,简称PoW; Proof of Stake权益证明,简称Pos: Delegated proof of Stake授权股权证明,简称DPos。其中,工作量证明PoW是比特币所用的共识机制,也是目前使用最广泛和成熟的共识机制,权益证明PoS和授权股权证明DPoS这两种机制是针对工作量证明机制不足之处进行优化和完善而产生的。
POW证明机制
工作量证明机制的逻辑是:货币的产生,需要付出一定的工作量和成本,不能凭空得来,这种机制赋予了货币一定的商品属性,使得货币无须中心化机构的干预,市场自身可以通过“价格机制”对货币的供应进行自动调节。
(关于工作量证明,先举一个例子)
人类历史上曾经用贝壳作为货币,但并不是所有的贝壳都可以作为货币,比如普通的贝壳就不能成为货币,因为它满地都是,不费吹灰之力就可以得到,所以没有人会接受它。只有通过选择符合要求的贝壳,然后再进行打磨和钻孔,符合一定的要求后,才能成为人们接受的货币。在这过程中,选择贝壳和打磨贝壳付出了一定的工作量,这才使得贝壳具备了信任基础。而随着人类生产水平的提高,贝壳币可以用极低的成本或工作量大批量制造出来时,那它就失去了“付出一定的成本”这个工作量证明机制的本义,不再被人们信任,也就不再成为货币了。
在比特币网络中,就采用了工作量证明机制的原理设计出一种“通过数学解题方式来证明完成了一定的工作量”的模式,使得全网的节点可达成信任,比特币才得以创建。比特币采用的PoW机制,是区块链技术最早使用、也是最大规模使用的共识机制,被形象地称为“挖矿”。
在比特币系统中使用的工作量证明机制就是利用哈希函数不断的去计算符合要求的哈希值。
如下图所示:是我在比特币区块浏览器(https://blockchain.info/zh-cn/)上的截图,是最新区块的哈希值:
图中的哈希值是以16进制表示的,如图所示我们可以看到现在哈希值的前19个位全部是;需要计算出一个前19位全部是的哈希值所需的计算量是相当大的,当然这个难度会随着全网算力的增加而不断提高,比如要求前20位全部为。
比特币工作量证明的过程,也就是挖矿的过程,就是通过不停的变换区块头及附带的随机值(Nonce)作为输入,进行SHA-256哈希运算,找出一个特定格式哈希值的过程(即要求该哈希值的前N位为零,比如现在要求前19位为零),要求为零的个数越多,代表难度越大。
比特币工作量证明难度的调整是在每个完整节点中独立自动发生的,每完成2016个区块,所有节点都会按照统一的公式自动调整难度。也就是说,如果区块产生的速率比10min快,则增加难度,比10min慢,则降低难度。
为了便于你理解,我再举一个例子:我们在第四节的课程中告诉过一个关于哈希256的计算网址(如果忘记了可以出门左拐去第四节查找)
我们假设把“我想buy一个BTC”这一段数据进行哈希运算,会得到:
224dca8295a32754ccebc789e1e93384d65451aa561d7d86acd1fe8f6eab6f38
加一个随机数,比如“我想buy一个BTC05”,哈希运算的到:
再比如“我想buy一个BTC100”,哈希运算得到:
通过这个例子你可以看出,实际上要找到这么一个符合要求的哈希值,工作量是相当大的。就现在这个难度,我们手动不断的替换随机数,24小时不断的去计算,一辈子也计算不出一个符合要求的哈希值。
今天的课程就到此为止,下节课我们再讲一下POS与DPOS机制的原理。
通过今天的学习,你知道了共识机制是怎么回事儿,以及工作量证明机制POW的原理。
感谢你的收听,我们下节课再见。
内容节选及参考文献:《从零开始学区块链》.黄振东。
蜡币小胖讨论群已经建立了,你可以加微信拉你入群,或者可以在公众号页面找到最新的联系方式:
蜡币小胖知识星球也建立了,你可以加入星球一起学习和提问:
领取专属 10元无门槛券
私享最新 技术干货