共识机制
区块链中,各个节点需要一起来进行交易的记录,保证交易的有效性和一致性,拿比特币举例子,因为是网络记录,没有纸质的货币,不能我说我有多少钱就多少钱吧,也不能一份钱当两份钱来花吧,那这对诚实节点不太公平,所以说,需要一种机制,让每一个节点信服,保证每个人的钱都是公平的进行的交易,所以说,共识机制由此而来,防止双花(一份钱两份花)、确保数据不可篡改、维护网络安全稳定运行。即要面对节点故障或恶意节点(拜占庭错误)做到安全性,活性,容错性。
安全性:所有诚实节点最终达成并保持的共识状态必须是正确的、一致的。就是不要让恶意节点进行恶意的行为。
活性:系统在合理的等待时间后会持续取得进展。新的有效交易最终会被包含进区块并确认。就比如一些恶意节点死活不进行投票,这个时候系统不能一直等待呀,必须要进行后续行为的推进。
容错性:即使系统中一部分节点(不超过一定比例)发生故障(崩溃、掉线)或甚至是恶意行为(故意作恶,即“拜占庭错误”),整个系统仍能保持安全性和活性。就是说哪怕有恶意的节点,也要做出好的行为来,是可以容忍恶意节点的,毕竟总会有坏的东西。
这三点是判断一个共识机制好坏的底层逻辑。
来说一下现在很常见的二个共识机制吧,POW和POS。
POW
工作量证明,也叫POW,是出现很早的一种共识机制,就如它的名字一样,你需要通过工作来进行证明,拿比特币举例,各个节点需要去解密HASH秘密(因为解密出来有钱),简单公式相当于hash(x)=y,因为hash函数是单向的,你知道了x就知道了y,但是你只知道y是求不出来x的,这就需要你一个一个的去算,这就导致你需要去暴力破解,这巨大的计算量(算力)就是“工作”的核心体现。
说一下这个难度吧,可能会想那我一个值一个值去遍历不就好了。首先这个x,这个x是区块头(一堆信息的集合),真正要找的是区块头里的Nonce,也就是随机值,Nonce是一个32位或64位的整数字段,它可能数值总量高达42.9亿种(2^32),除了改变Nonce,还可以通过修改区块中的Coinbase交易(影响Merkle根哈希)、调整Timestamp(时间戳)、甚至加入新的交易来微调区块头内容,从而改变其哈希输入。并且这个y也是有要求的,也就是挖矿难度,可以先想象y是256位的二进制数,如果要求y开头必须有70个零,那么每次哈希计算命中的平均概率是 1 / (2^70)!
POW共识的优势很容易看出来,因为x可以很容易的被验证,但x很难被发现,完完全全的靠算力来竞争(当然了氪命也行),每一个节点都有机会,安全很高,想要篡改账本,除非你有51%的算力才能作弊。
说了它的优势也说一下它的劣势,那就是消耗极大,解题需要大量计算,消耗很多电力和硬件资源,就像为了做对那道超难数学题,全班同学都得熬夜点灯学习,费电又费精力。并且一旦别人找到了你之前消耗的算力统统白搭。并且效率很低,导致交易确认时间长,要是着急确认交易,在PoW机制下就得等很久。
POS
为什么会出现权益证明(POS)呢,这就得说POW的劣势了,PoW要求所有的节点消耗大量的算力来争夺记账权,但在每一轮共识中,只有一个节点的工作量有效,意味着有大量的资源被浪费,因此,权益证明机制Proof of Stake(PoS)在2013年被提出并首次应用在PeerCoin系统中,目的是解决资源浪费的问题。
权益证明(POS)用持有的代币(“权益”)作为抵押来获得记账权,替代POW的算力竞争。也就是谁有钱谁当老大,带领小弟一起赚钱。说一下大概过程吧,首先会有一些节点持用有的币进行抵押以此获得记账权,这样如果这个节点作恶那么它的币会被扣除,然后系统会随机选出提议者和委员会,相当于大哥与小弟,大哥对交易进行打包,小弟则是验证区块的正确性,有2/3以上的小弟认可了这个区块,那么这个区块进行生成,最后进行奖励,大哥拿大头,小弟拿小头。
说一下劣势吧,这得提一下pos的现实原理了,hash(block_header) =<target * coinage,币龄的计算:coinage = 币的个数*币的剩余使用时间,这是pos实现的公式,coinage表示币龄,这将意味着,币龄越大,越容易得到答案。而其中币龄的计算是通过挖矿者拥有的币乘以每个币的剩下使用时间得到,这也将意味着拥有的币越多,也越容易得到答案。一旦挖矿者囤积一定的币,很久很久之后发起攻击,这样他也将很容易拿到记账权。也就是有钱的越来越富,可以“为所欲为”。
这两种都是最常见最基础的共识机制,可以在这里大概说一下,其他的共识还是根据论文来进行解释比较好,我就没有说其他的共识,比如BFT共识,共识机制说白了就是为了让区块链系统能够安全的走下去,哪怕有恶意节点,就像我们的城市一样,哪怕有恶人,我们的城市也可以正常的运行。
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_45964396/article/details/149257378