虾说区块链-64-共识机制POS

一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。

区块链-共识机制pos:

继续整理共识机制,这里简单介绍下POS机制。

POS

POS:proof of stake,称为股权证明。Pos机制是一个新的机制,在bitcoin出现后,不断摸索出来,到现在为止pos还一直在不断改进中。

由于bitcoin的火热,挖矿的激烈竞争,发现大量矿机加入挖矿,造成了众多电力硬件资源的浪费。同时理论上的51%算力攻击随着大矿池的不断扩展,理论上出现了攻击的可能性。Bitcoin的高额收益使得联合挖矿,使得对区块链本质去中心化构成了威胁。Pos机制的出现一定程度的上改善了pow的一些劣势,但是pos本事也存在一定的缺陷。这里简单做pos机制作个说明。

2011年在bitcointalk论坛上,Quantum Mechanic提出proof of pos机制,这个机制通过证明验证其可行性。在pow流行的时候,从一开始的cpu挖矿、到显卡挖矿、到ASIC挖矿,到现在各种专业的矿机,强大的算力,也造成了大量的电力资源浪费。Pos出现之前,2011年莱特币中的scrypt算法和zcash中的equihash算法,试图改善,通过控制cpu挖矿和内存依赖性算法来缓解算力中心化的现象,但是最终还是出现了各种专业矿机,于是换一种思路,考虑新的共识机制。

Pos机制简单理解为,网络中节点中打开自己钱包,上线后,增加权重,在pow中依靠计算算力决定区块的产生,那么pos中使用虚拟货币的数量作为抵押,从而有一定几率产生区块。同时也会产生一部分理论,理解为银行中存钱获得利息的概念。Pos在点点币中最开始使用。

运行机制:网络中节点把节点中的数字货币放入pos机制中,身份转变为验证者,pos机制在这些验证者中随机选择一个做为区块的产生者,当然这个随机和投入的数字货币数量有关系,投入多的币自然比少的被选取的概率要大,根据数量比例基本成正比。当然在一定的时间内,这个被pos选出来的生成者没有生成区块,那么就再次选择下一个验证者。至于有效链,这个遵循区块链的最长链原则。通俗理解:手上的数字货币越多产生区块的可能性就越大,那么一个合格的pos区块表达式为:F(timestamp)

以点点币为例子说明pos具体流程:点点币2012年发布,Sunny King提出,一种混合挖矿方式,即Pow+Pos,pow用于发行货币,pos用于系统维护。具体参考:

系统中设计了几个具体的概念:

coinstake:一种特殊交易。类似bitcoin中coinbase,coinstake需要输入的数量必须等于一,第一个输入的prevout不能为空,输出数量必须大于一。Coinstake不会单独广播,只存在区块中,客户端节点一般不介入内存池,当花费时检查是否成熟。

Kernel protocal:第一个输入叫kernel,这个判断区块是否合法,判断标准:

SHA256D(nStakeModifier+ txPrev.block.nTime + txPrev.offset + txPrev.nTime + txPrev.vout.n +nTime)

nStakeModifier:调节器,防止矿工提前计算,理解为一个POS区快属性。

txPrev.block.nTime:所在区块时间戳,交易发起者对于交易纳入区块的时间不确定,节点可能通过预估来计算对自己有利的时间戳,该参数防止节点预估提前生成交易。

txPrev.offset:偏移量。降低生成coinstake的概率。

txPrev.nTime:构造时间。

txPrev.vout.n:输出下标。

bnTarget *nCoinDayWeight:全网的目标难度基础值,类似bitcoin的难度值,nCoinDayWeight是币龄的一个概念。

上述条件设置为公式,目的为了提供给矿工充足的一个随机性,保证影响到合格区块的最大因素是币龄。

币龄的概念:这个类似于银行的一种存款利息,币龄通过币和存在实践计算,一旦这个币被消费,那么币龄清空重新计算。简化得到一个利息公式:

stakeReward =nCoinAge * 33 / (365 * 33 + 8) * 0.01 * COIN

pos机制也存在51%的攻击,只是和bitcoin不同,这个需要掌握51%的币龄,无疑对比下掌握算力和币龄,还是币龄51%的难度更为大点。

POS2.0:

2014年出现黑币,使用完善后的pos协议,在黑币前5000个块,使用纯粹的pow机制,使用scrypt算法,后续采5000到10000的块使用pos和pow混合,在10001使用纯pos机制。通胀率1%。

上文提到的黑币方式,称为pos2.0,这种方式前期通过算法改进后的pow方式发币,但流通一定数量后,通过投资形式再获取利益。促进整个生态环境。Pos2.0的主要对细节进行修改,使用余额来代替币龄。一个合格区块的条件为:

F(Timastamp)

POS3.0:

黑币通过修改交易手续费,调整难度等优化,将收益修改为固定值。

Pos劣势:

pos机制最初节点只要持有币,那么会有固定收益,参与者需要获得pos机制的数字货币只有转让,那么有可能原始人不愿意,甚至恶意节点故意大量隐瞒拥有的数字货币,会出现零成本获利。所以现在pos都会结合pow一块的共识机制。

本文由币乎社区(bihu.com)内容支持计划赞助。

之前写了点东西,随着对区块链的理解,发现有些理解的并不透彻,重新整理。如有理解不正确的地方,请及时指正,同时有兴趣一块交流的可以加笔者微信:

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180112B0CBW400?refer=cp_1026

扫码关注云+社区