什么是共识机制?
区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质:
1)一致性。所有诚实节点保存的区块链的前缀部分完全相同。
2)有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。
目前区块链主流项目共识机制主要有以下几类:
工作量证明机制(POW)
Proof of Work,工作量证明机制具有完全去中心化的优点,节点可以自由进出。但一定程度上基于工作量证明机制的挖矿行为造成了大量的资源浪费。通俗的说,POW 的意思就是按劳分配,多劳多得。
代表项目:BTC
权益证明机制(POS)
Proof of Stake,权益证明机制。该机制以资产数量及持有时间取代算力,依照币龄或者押金数额决定节点获得记账权的概率。通俗的说,POS的意思就是按钱分配,钱生钱。
代表项目:NXT
股份授权证明机制(DPOS)
Delegated Proof of Stake,股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。
代表项目:EOS
以上几种共识机制相信大家都非常熟悉了,接下来就重点介绍下POC共识机制、原理及其优势。
什么是POC?
Proof of Capacity,容量证明机制是一种利用本地计算机硬盘驱动器里的闲置空间来进行挖矿的共识算法——即硬盘挖矿。
代表项目:Burstcoin
POC共识的原理?
在挖矿前,通过Shabal散列函数生产的哈希值,写入挖矿的硬盘,这个过程我们称之为P盘(Plot),开始挖矿的过程中,通过快速读取硬盘中足够多的样本哈希数据进行碰撞,直到找到最接近的哈希值。
挖矿过程中,Plot文件内的数据会被逐次访问读取,需要的是每个 Nonce 中的具体的 Scoop值。为了能够高效验证数据,每次挖矿起始都会诞生一组Scoop编号,挖矿程序根据Scoop编号读取在不同 Nonce 中的同一编号的Scoop值,需要依次访问不同的 Nonce。再读取完所有相应的Scoop值后,程序根据钱包释放的信息将所有Scoop值进行Shabal256函数生成Target,再与出块的Base Target验证对比,得到Deadline,一次出块周期内谁得出的Deadline最小,就可以完成打包出块,获得挖矿奖励。
相比 POW 工作量证明不停改变区块头的某个数字来猜测正确的哈希值,POC 把工作量变成了硬盘空间里的“测绘”的工作量。POC 背后真正的挖矿算法,如果要实时计算的话是非常复杂的,而产生一个区块的时间又太短(平均每 4 分钟产生一个新的区块),因此这种挖矿的计算方法必须提前存储在硬盘驱动器的空间里。最终,如果你在硬盘空间里拥有越多的Plots,你用最快的速度去破解当前这个区块的谜题,实现的概率也就越大。
通俗来讲,可以想象为你的硬盘空间里塞满了一大堆的彩票,当彩票生成一个随机数字开奖的时候,你就在硬盘里找和这个随机数字最接近的那一张,如果你有数字最接近的那一张,那么你就中奖了!
POC共识的优势?
相比于POW机制需要计算机通过大量运算寻找哈希值,矿工们通过大量且重复的运算工作来达到打包区块的目的,这样会消耗大量的电力资源。而POC(条件化容量证明共识机制)挖矿模式基于硬盘挖矿,相比POW形式更加绿色环保、节能、无噪音,用户拥有闲置硬盘即可参与挖矿,人人皆可挖矿,做到家家有“矿”。
Miner X Protocol(MXP)是全球首个兼容IPFS\Filecoin的智能硬盘挖矿协议,采用POC+POST的共识机制,MXP的出现将会为全球区块链数据存储的数字货币应用做出巨大的贡献。