上周五的推送,韭菜芯儿给自己留了一份作业:
想想看,择日不如撞日,就今天吧!
韭菜芯儿跟大家一起学习数字货币世界的共识机制。
什么是共识机制?
在我们LeeksPro开号的第二篇,我们就介绍了数字货币名词入门,简单讲解了16个最高频名词,其中一个就是共识机制,还记得吗?
为什么要有共识机制呢?
这就必须要解释一下在分布式系统中不得不了解的“拜占庭将军问题”了。
拜占庭将军问题(The Byzantine Generals Problem)可以总结为一句话:
在古代,11位忠诚的、不同位置的将军,如何排除叛徒的影响,对进攻或撤退达成一致。
当然,拜占庭将军问题并不是如今才提出的,我们大中华在春秋战国时期就发明了“虎符”这个神奇的方式来保障命令的正确执行。
在分布系数系统中,各个节点就是“拜占庭将军”,算法执行中的任意一个错误就是“叛徒”。
为了尽可能地排除错误、快速达成一致,来让系统有效地、正确地运行,便应运而生了各种“共识机制”。
下面,韭菜芯儿就来跟大家共同学习,数字货币世界中常见的几种共识机制:
PoW
工作量证明 Proof of Work
PoW是比特币所采用的共识机制,最早是由Adam Back为了解决垃圾邮件的问题而开发的一个“哈希现金Hashcash”程序。
比特币采用的是SHA256的单向函数,其具体的工作原理实在太专业,韭菜芯儿只能理解到“SHA256的结果很容易验证,但是要将其计算出来,需要不断尝试运算,直到匹配到某个随机数;技术上而言,任何新增区块都需要经过232394亿运算才能得到”的程度,感兴趣的小伙伴可以搜索SHA256去深入学习。
因此,只要矿工出示运算结果,那通过PoW,全网节点就认可了他所付出的成本,承认新的区块奖励属于他。
如此大量的运算相当浪费资源,实际上并没有任何科学或实际用途,只是为了实践工作量证明机制、阻止攻击者伪装成节点来控制网络。
虽然在2009年时为了构建这种去中心化的、允许所有人可以免费参与的全球货币网络,没有更好的选择;但是发展到如今,已经有了其他不需要大量浪费算力的证明机制,比如我们下面就要提到的,PoS权益证明。
PoS
权益证明 Proof of Stake
主要思想是:节点记账权的获得难度与节点持有的权益成反比,也就是说,一个节点拥有的币越多、时间越久,越容易获取记账权,也就越容易获取区块奖励。
实际上,最初的PoS是PoW的一种升级,根据每个节点的币龄,来等比例地降低挖矿难度,从而加快找到随机数的速度。
什么是币龄呢?
币龄=数量*拥有天数。
由于区块链中的每笔交易记录都会被标记时间戳,这个时间戳就可以作为币龄的证明,因此币龄也不可能被轻易伪造。
比如韭菜芯儿从韭菜芽儿那里收到10个币,并且持有了90天,那么,韭菜芯儿就拥有了900的币龄;如果韭菜芯儿卖了这10个币,这900币龄就被消耗了;
后来,为了彻底摆脱PoW这种依靠算力的共识机制,PoS引入了“利息”的概念;年利率是在PoS机制最初确认时就设定的,一般不会变化。
利息=(币龄*年利率)/365,如果利率是1%,在上个例子中,韭菜芯儿就可以得到0.02466个币的利息。
如此一来,PoS区块链的作用过程就可以这样描述:
在初期,通过PoW机制,产生创世币;
在创世币达到一定规模时,PoS机制开始作用,交易时消耗币龄、获得产生区块的优先权,并获取利息,同时PoW机制由于消耗太多资源、浪费算力而逐渐淡出;
最终系统中仅剩PoS来维持正常运作。
目前大家所熟悉的以太坊,主要还是采用PoW的机制,不过正在转向PoS。
大家了解了PoW和PoS,在遇到其他共识机制的时候,相信也会比较快得就能理解。
比如:股份授权证明DPOS,类似于董事会投票;燃烧证明POB;沉淀证明POD;能力证明POC;消逝时间证明PODT,等等。
韭菜芯儿就不在这里为大家一一展开了,感兴趣的同学可以百度或知乎一下~
网友评论