区块链核心算法之共识机制
共识机制在区块链系统中起到决定谁负责生成新区块的作用。
一、什么是共识?
在理解共识的概念之前,先简单粗爆地假设——咱们村有100人,现在要投票选举谁当村长,如果100人都亲自到场投出自己的一票,那参与度是100%;如果这100人选出了10个代表去投票,参与度则只有10%。这两种投票,哪一种投票更能代表民意呢?毫无疑问是前者,因为参与度更高;相反,后者选出了10位代表去投票,参与度低,难免以偏盖全。通过这个假设,我们可以对什么是参与度有一个简单粗暴的理解。
共识(Consensus)是一切交易的基础,达成共识越分散(参与度越高),其效率就越低,但满意度越高,因此也越稳定;相反,达成共识越集中(参与度越低),效率越高,也越容易出现独裁和腐败现象。
区块链技术的伟大之处在于去中心化和去信任(或降低信用成本),如何在一个完全陌生的网络环境里,通过代码撮合交易?言外之意,这些代码究竟发挥了何种神奇的魔力,让买卖双方产生信任呢?
答案就是共识机制。
共识机制
区块链系统的核心是有系统中节点竞争记账,这个竞争的过程称为共识机制,区块链的底层有四部分构成,一个分布式的数据库用来存储以往和将来的交易数据,密码学的公私密钥体系用来确认交易双方的身份,P2P网络用来广播和蔓延各类消息(如节点加入消息,节点失效消息,得到挖矿数据的消息)和 用来决定节点记账权利的共识机制。
共识机制在区块链中扮演着核心的地位,共识机制决定了谁有记账的权利,以及记账权利的选择过程和理由。不用的虚拟货币采用共识机制不同,常见的共识机制如POW,POS,DPOS 拜占庭容错等。现梳理如下:
目前区块链的共识机制大致可以分为PoW(工作量证明)、PoS(权益证明)、DPoS(股份授权证明)以及分布式一致性算法几类。
(一):工作量证明PoW
POW(Proof of Work),即工作量证明机制。整个系统中每个节点为整个系统提供计算能力(简称算力),通过一个竞争机制,让计算工作完成最出色的节点获得系统的奖励,也就是完成新生成货币的分配。区块链是一个持续增长的顺序块组成的,每个块包含了头文件和一系列的交易信TXi,其中头文件中保护了timestamp Ti ,上一个块的索引Hi-1,和nounce Ni-1,区块链是密码上的安全,对于每一轮只要找到相应的HASG的碰撞就算成功,HASG的碰撞的意思可以了解为hash值的前多少位相同,我们知道何难找到两个hash一模一样的文件,但是我们可以找到前几位相同的,我们将一个完整的挖矿过程整理如下:
其中Di是难度系数,可以认为是前多少位的碰撞。挖矿的过程就是在不停的尝试找Ni的过程。下面我们给出一个模拟挖矿的例子。测试环境说明:
运行如下脚本:
对结果进行排序,找到前9位对撞成功的n的值.
实验结果如下:
虽然只是模拟实验,但是完整的反映了POW的运作原理。
(二):权益证明PoS
POS(Proof of Stake)即股权证明。顾名思义,指的是直接根据所持有的份额来达成共识机制。其目的在于让链上所谓的“股权持有者”来代替POW里的矿工,这本质上的共识过程是以“股权所有”代替“挖矿”过程。
在PoW机制中,由于想要找到符合条件的 nonce.nonce往往需要花费大量的电力和时间成本,因此,为了使每个Block更快被生成,PoS机制去掉了穷举 noncenonce这一过程,继而采用以下更快速的算法:
SHA256(SHA256(Bprev),A,t)≤balance(A)m
H 某个哈希函数
t 为 UTC 时间戳
Bprev指的是上一个区块
balance(A)代表账户A的账户的余额
唯一可以不断调整的参数是t,等式右边m是某个固定的实数,因此,当balance(A)越大,找到合理t的概率越大,网络中,普遍对于t的范围有所限制,如可以尝试的时间戳不能超过标准时间戳1小时,也就说,一个节点可以尝试 7200次,来找到一个符合条件的t,如果找不到即可放弃。因此,在PoS中,一个账户的余额越多,在同等算力下,就越容易发现下一个区块。
但是它和POW机制一样解决问题的思想也导致了它与POW拥有一样的缺点,也是牺牲了一部分的共识(同样分叉),而且需要等待多个确认。
优点:对节点性能要求低,达成共识时间短(网络环境好的话可实现毫秒级);
缺点:没有最终一致性
PoW与PoS流程对比图:
(三):股份授权证明DPos:
是基于POS衍生出的更专业的解决方案,股份授权证明类似于董事会投票,假设某个区块链系统的世界里有10万人,现在这10万人投票选出了4位股东作为代表来行驶记账权,这4位董事分别是A、B、C、D,在记账过程中,按顺序每位董事有两秒钟的时间来记账,如果在规定的时间内记账失败,则直接把权限交给下一位董事,这样原本10万人参与记账竞争的游戏,现在变成了4人。
这样做的优点是大幅缩减了参与验证和记账的数量,形成共识几乎可以达到秒级,缺点是固定数量的董事作为记账候选人,与去中心化的理念相违背,董事数量太少,参与度太低,也缺乏一定的代表性。
对比这三种最常用的共识算法,不难发现各有利弊,它们的诞生都围绕着一个核心——如何更加公平、公正、透明、轻量(不过多消耗资源)、高效(更快)地达成共识,挑选出记账的人(节点)。
PoS与DPoS对比图:
结论:
PoW采用简单粗暴但极为有效的方式,通过节点首先自证其资质后才进行广播的方式,大幅度减少了网络间的通讯压力,但与之带来的问题则在于自证资质的计算资源消耗极大。
PoS采用与传统分布式一致性验证类似的机制,通过代币数量(或存储容量等指标)作为权重依据,使用某种分布式算法选举出每次的检查点节点。这种机制的好处在于没有消耗计算资源的自证资质过程,但是带来的问题在于每次选举时在大量节点的网络中对网络压力极大。
DPoS作为PoS的变形,通过缩小选举节点的数量以减少网络压力,是一种典型的分治策略:将所有节点分为领导者与跟随者,只有领导者之间达成共识后才会通知跟随者。该机制能够在不增加计算资源的前提下有效减少网络压力,在优秀的软件实现中将会具有较强的应用价值。
在区块链的共识机制中,其本质与分布式数据库的一致性算法存在极多的相似之处。拜占庭问题的引入仅仅从算法和选举节点数量上对网络结构做出一些调整,但是并不从本质上改变分布式系统一致性选举的机制。
你可能感兴趣的文章
-
给区块链大佬泼盆冷水:先吃螃蟹者,不一定是英雄,也可能是烈士
-
给区块链大佬泼盆冷水:先吃螃蟹者,不一定是英雄,也可能是烈士
朱啸虎冷眼旁观区块链昨天朱啸虎与陈伟星(快的打车创始人)的互怼,想必大家都有目共睹了,有人觉得朱啸虎理性,有人觉得陈伟星更有前瞻性。不过区块链的火热,也引发了许...
2024-10-18
连获2个“全市第一”苏州高铁新城区块链又到高光时刻
-
连获2个“全市第一”苏州高铁新城区块链又到高光时刻
11月6日,2020(第八届)江苏互联网大会可信区块链高峰论坛上,正式公布了江苏省50大区块链典型应用案例。在这份极具含金量的省级名单中,苏州高铁新城14项相关...
2024-10-18
解读:腾讯区块链方案白皮书(三)
-
解读:腾讯区块链方案白皮书(三)
“我们很清楚,孤木难成林。只有赋予开放分享的基因,生态才可能长成一片森林。”这是马化腾2016年在至伙伴公开信中曾经提到,显然,区块链已经成为腾讯开放基因中的重...
2024-10-18
手机挖矿app有哪些这三种目前比较火
-
手机挖矿app有哪些这三种目前比较火
手机挖矿应成为现在很流行的一种赚钱方式了,那么手机挖矿app哪个好?那个app靠谱?有哪些手机挖矿app呢?下面一起了解一下吧!什么是手机挖矿手机挖矿其实本质还...
2024-10-18
以太币是什么?新人必看教学
-
以太币是什么?新人必看教学
以太币是什么
2024-10-18
虚拟货币投资详解,哪些币种值得入手?!
-
虚拟货币投资详解,哪些币种值得入手?!
3、定投定期定额买虚拟货币是一种比较适合新手投资的方式,定投指每隔一段时间,以固定的金额买入同一种加密资产或者组合
2024-10-18
野路子能出奇迹?快来看区块链十大主流代币
-
野路子能出奇迹?快来看区块链十大主流代币
比特币(BTC)数字货币鼻祖,最具价值的虚拟货币。因勒索病毒点名只收比特币而进入大众视野,2017年比特币自身价格的暴涨更是吸引了大批投资者进入数字货币市场。由...
2024-10-17
一文看 懂国内区块链产业,到底哪块最赚钱?
-
一文看 懂国内区块链产业,到底哪块最赚钱?
区块链火了。无论它是徐小平、陈伟星等人眼中的“风口”,还是巴菲特、朱啸虎等人口中的“泡沫”、“骗局”。当你为没加入“3点钟”社群而深深焦虑的时候,不如平心静气地...
2024-10-17
央行数字货币五大好处曝光以人的价值为基础,用区块链定义
-
央行数字货币五大好处曝光以人的价值为基础,用区块链定义
2月28日,国际货币基金副总裁张涛在伦敦经济学院发表了演讲,探讨了最近的国际热门话题,即“中央银行数字货币(简称:CBDC)”。演讲中,张涛简单阐述了CBDC的...
2024-10-17
详解印度区块链,你不可错过的二三事
-
详解印度区块链,你不可错过的二三事
区块链在印度发展可谓一波三折,但数字货币的快速升值也引起了印度媒体的关注,主流媒体对加密货币进行了密集报道,大多数文章对比特币和加密币持支持的态度,会给出“投资...
2024-10-17