1、共识机制介绍

共识机制是区块链技术的重要组成部分。它就像一本法典,维系着区块链世界的正常运转,让陌生人之间在没有第三方作为信用背书的情况下发生的一切交易变成可能。目前主流的区块链共识机制包括POW,POS,DPOS等。

POW,工作量证明 proof of work。就是大家熟悉的挖矿,通过计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储,节点可以自由进出。

POS,权益证明 proof of stake。POS简单说就是,当节点发表一条消息的时候,不用证明你的工作量,而要证明你拥有一定数量的钱。如果你作弊损害了这个系统的安全性,你的钱会贬值,这变相地让你付出了代价。目前为止,POS仍旧是一个缺乏足够实践检验的共识机制。

DPOS,股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。EOS的21个超级节点采取了DPOS的共识算法,尽管其解决了交易低效的问题,但这种通过牺牲去中心化为代价的高效率,常常被行业指责和攻击,是一种趋向于中心化的共识机制。

2、MPOS共识算法机制

在研究了目前主流公链技术后,以太零团队提出了创新性的Masternode+PoS的共识算法,简称为MPoS,同时采用了零交易手续费,社区自治等公链发展方式。

以太坊的出块方式

目前以太坊有两种出块的方法,第一种:把所有的交易和区块从创世块开始一个接一个地连接起来,这种方式已经被证实在以太坊这种复杂的网络中非常耗费计算资源;第二种:是只有授权的机器才拥有出块权,节点之间通过投票的方式来授权或者解除授权,这些额外的投票机制被记录在了区块extra data字段中。采用这种方式降低了网络的出块难度和维护成本,节点只需下载区块头并验证它们的有效性,此后可以从网络上下载一个任意的最近的状态并检查最近的header,这套共识机制目前运行在以太坊的测试网络中,被称为Clique。

MPOS共识算法

以太坊有以Casper为基础的长期POS目标,但这是一个繁琐持久的研究,所以我们不能依靠这个来很快的解决今天网络拥堵、到账缓慢的问题。于是我们提出了MPoS共识算法。这种共识算法的特点是:采用主节点的方案,取代了EOS21个超级节点,降低了节点加入门槛,只要拥有2万个以太零和一台云服务器,便可以成为主节点并拥有自治社区的投票权。

以太零的MPoS共识算法,借鉴了以太坊的Clique共识机制,出块只能由可信签署人完成。各个节点看到的每个块都可以与可信任的见证者列表进行匹配。在实现中,采用的系统智能合约来保障维护一个可以及时更改的授权见证者列表,每一轮次的维护授权见证者列表的协议包含在区块中。同时将节点的签名放入区块头的ExtraData部分,这将允许任何获得一个区块的节点可以根据授权见证者的名单对其进行验证。 使区块头中的矿工地址的字段作废,从另外一个角度增加了主节点账户的安全。下图解释了我们的区块存储情况:

为了保证授权见证者的列表是动态随机变化的,采用了区块的Hash值来和主节点ID进行计算并根据计算结果进行排序,保证了见证者列表的不可预估和随机性,同时也保证所有节点计算结果的一致性。

授权策略

只要见证者符合上述规范,他们可以授权和分配他们认为合适的块, 通过采用以下策略减少网络流量和分叉:

  • 计算下一个块的最佳签名时间(父+ BLOCK_PERIOD)。
  • 若轮到了,等待准确的时间到达,立即签名和广播。
  • 若未轮到,则延迟 rand(SIGNER_COUNT * 500ns)的时间签名。 这个的策略将确保当前轮到的见证者对签名和传播相较外转见证者有稍微的优势。

3、面临的挑战

以太零公链目前的出块时间是1s出一个块,需要进一步考虑EVM在执行智能合约时的状态读取速度。比特币体系中,在比特币网络的交易延迟问题上从来不会考虑比特币脚本的执行时间,主要是因为比特币脚本是非图灵完备的,实现的功能单一。而以太坊是采用的账户模型,其本身是一个状态机并支持图灵完备的智能合约,比起比特币脚本来说非常强大,以太坊底层的WorldState 采用MPT(Merkle Patricia tree)记录整个状态的变迁。以太坊的EVM在执行智能合约时很大一部分耗时是花费在读取WorldState上面。

下面这张图描述了MPT状态树根散列的存储情况

由于这种独特的数据结构会随着记录的交易量的增加,每读取一个特定的值与底层数据库交互次数会以O(n)的次数增加,这些访问不是顺序存储,而是离散随机存储,底层leveldb在面对这样大量的读取时,性能表现十分低下。优化智能合约执行时对状态读取的整体性能,提升网络的处理速度和稳定性,也是以太零下一步的目标。

4、MPOS共识算法的优势

DPOS对去中心化的伤害太大,为了保障其出块速度,超级节点的参与者必须要付出巨大的成本,这样就隔离了大部分的用户。以太零的MPoS共识机制,从性能、去中心化、和安全性这个不可能三角中找到了一个更好的平衡点。从性能上来说,我们只用了EOS近百分之一的成本,便达到了1400+的TPS,几乎与EOS性能相当,完全能够满足目前DAPP应用的正常运行。以太零极大的降低了加入门槛,让几乎所有人都能参与到区块链的实践中来。

安全性方面,PoW共识中,算力的过度集中,让51%的算力攻击隐患加重,而在以太零网络,想要发动攻击,必须要控制整个网络51%的主节点,才能达到篡改交易的目的。随着主节点的不断增加,以太零网络的安全性也将进一步提升。

以太零MPOS共识机制介绍相关推荐

  1. 以太坊POA共识机制Clique源码分析

    以太坊中除了基于运算能力的POW(Ethash)外,还有基于权利证明的POA共识机制,Clique是以太坊的POA共识算法的实现,这里主要对POA的Clique相关源码做一个解读分析. Clique的 ...

  2. 以太坊POA共识机制Clique源码分析 1

    转载自Ryan是菜鸟 | LNMP技术栈笔记 以太坊中除了基于运算能力的POW(Ethash)外,还有基于权利证明的POA共识机制,Clique是以太坊的POA共识算法的实现,这里主要对POA的Cli ...

  3. algorand共识协议_基于Algorand结合VRF的共识机制介绍

    相信大家对于PoS权益证明的概念都不陌生,但是究竟一个PoS的Protocol是如运作的?如何公平的选出下个区块的生产者?如何保证区块生产者不能bias下次自己再次当选的机率?这些实行的细节都是需要经 ...

  4. 迅雷链基于智能硬件的DPoA共识机制介绍

    迅雷链基于海量的玩客云设备作为记账节点来构建区块链服务.这些玩客云设备放置在用户家里,共享家庭带宽和存储,作为CDN.云计算.区块链等服务的基础设施,构成了一个庞大的计算机网络. 玩客云网络相对于中心 ...

  5. 区块链的共识机制介绍及几种常见共识的优缺点

    共识机制简介 关注区块链项目的朋友们大多都听说过共识机制,也可能知道共识机制是区块链网络用来达成交易确认共识的协议.其实,共识机制的产生远远早于区块链,而其设计之初也并不是为了解决区块链上的问题,毕竟 ...

  6. 区块链共识机制技术二——POS(权益证明)共识机制

    前言 由于区块链是去中心化分散网络,所以必须设计一套维护系统的运作顺序和公平性的机制,即共识机制,用来决定谁取得区块链的记账权并获得系统新币奖励.比特币的POW共识机制是一种多劳多得的模式,其优点是算 ...

  7. 016 | 漫谈区块链共识机制

    原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/blockchain/20180425 微信订阅号:keeganlee_me 写于201 ...

  8. 区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点

    近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...

  9. 总搞不懂区块链各共识机制的优缺点?来听听这位十多年经验技术老兵的吐血分享吧!

    2018区块链技术及应用峰会 (BTA)·中国 倒计时5天 2018,想要follow最火的区块链技术?你还差一场严谨纯粹的技术交流会--2018区块链技术及应用峰会(BTA)·中国将于2018年3月 ...

最新文章

  1. 苹果认输!组装iPhone,富士康工人比机器好多了
  2. 图像拼接 SIFT资料合集
  3. Python之pandas-profiling:pandas-profiling库的简介、安装、使用方法之详细攻略
  4. 找找 Spring Event 源码中各种设计模式的使用
  5. Java并发编程实战~Worker Thread模式
  6. python地址多少位_Python获取IP地址对应的地理位置信息!
  7. SQL语句的解析过程
  8. IDEA 更换主题样式
  9. linux 图片转视频教程,如何在Ubuntu上转换图像、音频和视频格式
  10. 视频加密能做到完全防止外传播吗?
  11. 服务器操作系统套什么定额,数据库服务器套什么定额
  12. excel几个表合成一张_excel多表如何合并到一张表格
  13. 素数----南阳OJ
  14. 【MongoDB】使用$lookup做多表关联处理
  15. javajavaScript常见校验器
  16. 微信朋友圈得内容可以爬取吗?看完这篇你心里就有底了
  17. Kali学习笔记32:Maltego、Exiftool
  18. python统计英文文章中单词出现的次数
  19. 怎么样用matlab做视频,MATLAB:使用writeVideo制作视频
  20. 万字长文解析何时使用领域驱动设计

热门文章

  1. 计算机程序设计员初级pdf,计算机程序设计员(实摩)国家职业标准.pdf
  2. 16位二进制补码 c语言,2,16进制原码补码反码问题
  3. wex5 实战 单页模式下的多页面数据同步
  4. SOA构建电子政务平台 可用多种通信手段访问
  5. Numpy中的数组、行/列向量及其之间的转化
  6. 网站关键词如何设置覆盖上百个关键词(佐伊科技分享干货)
  7. Linux好书、经典书籍推荐
  8. 无法连接到此网络 win10
  9. Hydra Attention学习笔记
  10. OLA/SOLA/WSOLA语音重叠相加算法分析