共识算法——区块链的“玄铁重剑”

在金庸小说《神雕侠侣》中,杨过在断臂后寻得“玄铁重剑”,并由独孤求败的“朋友”神雕引导,根据独孤求败的独门秘籍及练功方法,练成了一身天下无敌的剑法及内功心法,可以说“玄铁重剑”成就了杨过的绝世武功。在区块链的世界里,共识机制就是这把“玄铁重剑”。本文重点来谈谈Ulord的投票机制以及对共识的理解。

什么是共识机制?

首先我们应当了解什么是共识。共识就是大多数人都赞成。大多数人赞成,就意味着需要投票。全民投票,肯定是参与度最高,满意度最高的。但这样一来效率就很低。选举民意代表去投票,民众参与度会低一点,效率就上来了,同时也会出现垄断和腐败。

共识机制,就是通过设计一种算法(激励机制),来激励网络中的各个节点,在不需要基于任何互相信任的条件下,来诚实的(自身利益最大化的)对网络中每个时间段的数据交易记录的前后顺序进行确认并记录的一种机制。也就说,大家都老老实实的做事情(记账,交易数据打包和确认),谁也不作假。

共识机制是公链的灵魂,它赋予代码以生命,让一切不信任都变得很简单。当然不同的共识机制的设计,也会对效率和参与度各有侧重。

什么是PoW?

PoW:proof of work,也称工作量证明。在区块链中,PoW代表的是一种运作机制。这种机制强制要求财富的获取方式只能是通过劳动所得,也就是算力运算——挖矿。通俗来讲,游戏中,游戏角色如果要升级就必须通过不断打怪战斗获取经验,这个游戏的升级机制就是PoW。

比特币所使用的共识机制就是PoW。在中本聪的设计下,比特币矿工们(志愿者,谁都可以上)为了获得记账权(比特币奖励),通过不停挖矿(计算HASH值难题),对交易数据进行确认和打包。不得不承认这是一个天才的创举。

只是,谁的算力越大,谁就更有机会获得记账权和奖励。矿霸就是这么产生。很难想象,全世界比特币挖矿算力60%以上,掌握在一个叫吴忌寒的中国人手中。

此外,在挖矿耗费电力资源造成浪费的同时,达成共识的周期较长(需要所有节点确认,生成6个区块确认一次交易),区块容量设计的限制(只有1M)、容易造成分叉等也是比特币的共识机制的缺陷。

什么是PoS?

PoS:Proof of Stake,也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。通俗的讲,有个丐帮弟子名为白世镜,曾是丐帮八袋弟子,他持有这八个袋子已经五年了,要知道这些在丐帮都是资历的证明。有一天,白世镜给丐帮立功了,再加上他在丐帮的资历,帮主就提拔他做了九袋弟子并擢升为执法长老。这就是Pos机制,一个丐帮弟子持有的袋子越多,持有的时间越长就越有可能上升到丐帮的长老位。

以太坊(ETH)在总结比特币的算力计算耗费资源的经验上,提出了PoS,权益证明机制。就是让权益更多的人(持有ETH更多的人)更容易能挖到矿(算出哈希值难题),这样就避免了大部分的算力和电力的浪费,也大大缩短了共识周期。

Ulord的共识算法

Ulord采用PoW和PoS相结合的方式作为共识算法。其中,PoW采用CPU挖矿算法,通过采用多级串行密码学原语操作,同时结合计算机体系结构特征,具备永久防ASIC的挖矿特征。PoS机制主要是为了鼓励更多的主节点加入,通过提供更多的分布式资源,获取更多系统收益, Ulord通过Token激励社会上的闲置资源参与Ulord系统建设也是对区块链思想很好的诠释。

(1)PoW实现机制

为了充分利用闲置的资源进行挖矿,Ulord原链采用CPU挖矿算法——CryptoHello。借鉴存储器难(Memory-Hard)工作量证明算法的设计思路,并结合CPU、GPU、ASIC等体系结构的特点,设计了针对CPU体系结构优化的工作量证明方法CryptoHello。

该方法分为三个阶段:使用伪随机序列初始化工作存储器、修改工作存储器和根据工作存储器内容产生最后结果。如图1所示:

图 1工作量证明算法的基本框架

图2工作量证明算法原理示意图

上述算法的主要特点包括:

1、工作存储器容量选择面向CPU的Cache容量优化,但是对于GPU或者ASIC则难以满足同时执行大量工作量证明算法的存储器容量需求;

2、使用16种散列函数构成的散列函数族,并从中随机选择执行。这将增加ASIC实现的芯片面积,而且会导致GPU的多线程执行不同的路径,降低其并行化效率;

3、在修改工作存储器阶段使用严格串行的执行序列,而且以字节为单位访问,以控制ASIC或GPU的执行并行度,并大幅度降低其存储器系统效率;

4、整个方案控制逻辑复杂,所需存储器容量大,内存访问地址不规则,难以使用传统堆叠大量加速部件模块的方法实现ASIC。

实际测试表明,在CPU上执行上述工作量证明的性能与其核数成正比关系,在GPU(GTX 1080)上的性能与一般服务器CPU的性能基本相同。

(2)PoS实现机制

在Ulord中,主节点同样是一个全节点,由于考虑主节点候选时考虑了QoS,通过主节点能快速地传播区块和交易。运行一个主节点,需要10000个UT和1TB以上的存储空间。这些存储在主节点上的押金不会丢失或损耗,这可让主节点拥有者为全网提供服务的同时,赚取一定的投资收益,减少UT的价格波动。

共识机制是区块链的灵魂,PoW+PoS机制则使Ulord各个参与方很好地履行自己的职责。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180720G1ZZB500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券