2024-10-30 11:00:38
我们知道区块链是去中心化分布式记账技术,在区块链系统当中,没有一个像银行一样的中心化记账机构,如何保证每一笔交易在所有记账节点上的一致性呢?共识机制解决的就是这个问题,因此也可以说共识机制是区块链的灵魂。
目前比较常见的共识机制有:工作量证明PoW(ProofofWork)、权益证明(ProofofStake)以及委托权益证明(DelegatedProofofStake):
?01?
PoW(Proof-of-Work)
工作量证明机制
POW的全称为ProofofWork,翻译过来即“工作证明”或者“工作量证明”。挖矿获得多少货币奖励,取决于挖矿贡献的有效工作,也就是说矿机的性能越好、挖矿的时间越长,所获得的货币奖励就越多。
BTC就是POW机制下最成功的加密货币。POW机制虽然已经成功证明了其长期稳定和相对公平,但在现有框架下,采用POW的“挖矿”形式,将消耗大量的能源。其消耗的能源只是不停的去做SHA256的运算来保证工作量公平,并没有其他的存在意义。而目前BTC所能达到的交易效率为约5TPS(5笔/秒),以太坊目前受到单区块GAS总额的上限,所能达到的交易频率大约是25TPS,与平均千次每秒、峰值能达到万次每秒处理效率的VISA和MASTERCARD相差甚远。
?02?
PoS(Proof-of-Stake)
权益证明机制
POS即权益证明或者股权证明,全称为ProofofStake。权益证明模式就是根据所持有货币的量和时间,来发利息的的一个模式。
POS机制,相比于POW,POS机制节省了能源,引入了“币龄”这个概念来参与随机运算。POS机制能够让更多的持币人参与到记账这个工作中去,而不需要额外购买设备(矿机、显卡等)。每个单位代币的运算能力与其持有的时间长成正相关,即持有人持有的代币数量越多、时间越长,其所能签署、生产下一个区块的概率越大。一旦其签署了下一个区块,持币人持有的“币龄”即清零,重新进入新的循环。
在POS机制下,因为区块的签署人由随机产生,则一些持币人会长期、大额持有代币以获得更大概率地产生区块,尽可能多的去清零他的“币天”。因此整个网络中的流通代币会减少,从而不利于代币在链上的流通,价格也更易受到波动。由于可能会存在少量大户持有整个网络中大多数代币的情况,整个网络有可能会随着运行时间的增长而越来越趋向于中心化。相对于PoW而言,PoS机制下作恶的成本很低,因此对于分叉或是双重支付的攻击,需要更多的机制来保证共识。稳定情况下,每秒大约能产生12笔交易,但因为网络延迟及共识问题,需要约60秒才能完整广播共识区块。长期来看,生成区块(即清零“币龄”)的速度远低于网络传播和广播的速度,因此在PoS机制下需要对生成区块进行“限速”,来保证主网的稳定运行。
?03?
DPoS
委托权益证明机制
DPOS即授权股权证明(delegatedproofofstake)。
DPoS机制要求在产生下一个区块之前,必须验证上一个区块已经被受信任节点所签署。相比于PoS的“全民挖矿”,DPoS则是利用类似“代表大会”的制度来直接选取可信任节点,由这些可信任节点(即见证人)来代替其他持币人行使权力,见证人节点要求长期在线,从而解决了因为PoS签署区块人不是经常在线而可能导致的产块延误等一系列问题。DPoS机制通常能达到万次每秒的交易速度,在网络延迟低的情况下可以达到十万秒级别,非常适合企业级的应用。
?04?其他共识机制
区块链系统中还有其它共识机制比如联盟链常用的PBFT,新经币(NEM)用的POI等。这些共识机制是为了解决现有共识机制的一些缺点而被提出的。但目前使用的系统不如POW,POS和DPOS多。
共识机制是区块链系统的核心,它决定了一个区块链系统的去中心化程度,性能和安全性。因此公链的开发中,共识机制的设计是核心和关键。
区块链的共识机制是什么?
所谓共识,简单理解就是指大家都达成一致的意思。
在区块链中,其实就是一个规则,每个节点都按照这个规则去确认各自的数据,最后维护整个网络的数据库保持一致。
如果以生活中的例子来举例的话,比如今天公司开个会议,但是由于老总不在,需要大家讨论决定一个项目做与否。
在这么一个群龙无首的环境中?
如何达成这个一致意见,最后形成一个决策来交给老总呢?这个过程就是需要共识机制发挥作用了。
这时也许就有人提议,大家都发个言,表个态,最后大家进行投票,并且提议人就会把讨论发言过程记录,并且最后把举手投票结果登记后,将结果交给老总。
最后根据“如果投赞成票的人数多于反对票的,则项目就开干;否则就不干了”的规则,形成了决定结果。那么这个投票的规则就是共识机制。
在区块链世界里面,由于区块链运行的是一个分布式账本,或者是说分布式数据库,当一个新区块产生时,如何核对区块上面的每一笔账的准确性,让每台电脑上登记的账本都长期保持一致呢?
这就需要一个共识机制的存在了。因此共识机制,就是一套使区块链系统长期保持各个节点的账目(或者说数据)一致的机制,
区块链里,共识是区块链技术里的信任解决方案。
共识,是大家认可的,认可即生效,反对即出局。
就如你经常违反社区机制,做一些损人利己的事。
那么你就会变成恶意节点寸步难行,个人信誉度降低。甚至被社区拉入黑名单,或者驱除出境。
区块链的共识机制是什么?优缺点有哪些?区块链的共识机制有很多,说一个影响力最大的比特币背后的pow共识机制,好处是安全不可篡改全球流通缺点是速度太慢了一秒钟只能处理7笔交易
区块链目前用到哪些共识机制?它们各自的优缺点和适用范围是什么目前主要有四大类共识机制:Pow、Pos、DPos、Pool
1、Pow工作量证明,就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
优点:完全去中心化,节点自由进出;
缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用
2、Pos权益证明,Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。
优点:在一定程度上缩短了共识达成的时间
缺点:还是需要挖矿,本质上没有解决商业应用的痛点
3、DPos股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的
4、Pool验证池,基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制
优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证;
缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式
在使用共识机制,保证数据一致性时的巨大优势(共识机制则是Ripple首先提出的,数据正确性优先的网络交易同步机制,在共识网络中,无论软件代码怎么变动,无法取得共识就无法进入网络,更不要提分叉了)。
——————————————————
PS:稍微自黑下,虽然共识机制绝对能确保任何时候都不会产生硬分叉。但是,这种机制的缺点也比较明显,那就是要取得与其他节点的共识,明显要比当前Bitcoin网络漫长的多。极端情况下,在Ripple共识机制网络中掉线的后果也是很恐怖的。
有可能你家停电一天,第二天整个系统就再也无法与其它Rippled节点取得共识了(共识机制事实上需要超过80%的节点承认了你的数据,你的提交才会被其它节点接受,否则就会被排它的拒绝连接),甚至只能清空自己全部500多GB数据重新同步才能连上其它Ripple节点。
所以目前来说,现有的Rippled端并不适合民用(商用的话影响就比较小,比如RL自己的Rippled节点托管在亚马逊云数据中心,长时间无响应是可以高额索赔的,而且那种地方除了大型灾害几乎不会断),这也是RL一直想改进的方面之一。