当前位置:首页 » 区块链精品文章 » 正文

5.6 小蚁共识机制

1451 人参与  2018年09月30日 14:43  分类 : 区块链精品文章  评论

小蚁是基于区块链技术,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行、转让交易、清算交割等金融业务的去中心化网络协议[1] 。小蚁可以被用于股权众筹、P2P网贷、数字资产管理、智能合约等领域。

小蚁共识机制使得运行小蚁协议的各节点能够对当前区块链状态达成一致意见。通过股权持有人投票选举,来决定记账人及其数量;被选出的记账人完成每个区块内容的共识,决定其中所应包含的交易。

小蚁的记账机制被称为中性记账。PoW/PoS/DPoS解决谁有记账权的问题,而中性记账则侧重于解决如何限制记账人权力的问题。在中性记账的共识机制下,记账人只有选择是否参与的权力,而不能改变交易数据,不能人为排除某笔交易,也不能人为对交易进行排序。

小蚁的中性记账区块链可以做到:

1)每15s产生一个区块,优化后有望达到小于5s;

2)单个记账人不能拒绝包含某笔交易进入当前区块;

3)每个确认由全体记账人参与,一个确认就是完全确认;

4)结合超导交易机制,记账人不能通过构造交易来抢先成交牟利。

小蚁股权持有人可以发起选举记账人交易,对所选择数量的(1~1024个)候选记账人进行投票支持。一般认为,记账人应当实名化,候选记账人应当通过其他信道提供能证明其真实身份的数字证书。

小蚁协议实时统计所有投票,并计算出当前所需记账人的人数和记账人名单。为确定所需记账人数,将所有选票按支持人数排 序,按所持小蚁股权的权重取中间的50%,然后求算术平均值。当人数不足最低标准时,启用系统预置的后备记账人来顶替。所需记账人数确定后,按由高到低的 得票数确定记账人名单。

我们以区块随机数的生成来了解小蚁共识机制。每个区块生成前,记账人之间需要协作生成一个区块随机数。小蚁使用沙米尔秘密共享方案(Shamir’s Secret Sharing Scheme,SSSS)来协作生成随机数。

依据SSSS方案,可以将密文S生成N份密文碎片,持有其中的K份,就能还原出密文S。小蚁记账人(假设为N+1个)之间通过以下3步对随机数达成共识:

1)自选一个随机数,将此随机数通过SSSS方案生成N份碎片,用其他N个记账人的公钥加密,并广播。

2)收到其他N个记账人的广播后,将其中自己可解密的部分解密,并广播。

3)收集到至少K份密文碎片后,解出随机数;获得所有记账人的随机数后,合并生成区块随机数。

区块随机数由各个记账人协同生成,只要有一个诚实的记账人参与其中,那么即便其他所有记账人合谋,也无法预测或构造此随机数。

在上述区块随机数生成的第一步的广播中,记账人还同时广播其认为应该写入本区块的每笔交易的哈希值。其他记账人侦听到广播后,检查自己是否有该交易哈希值的对应数据,如没有则向其他节点请求。

当区块随机数产生后,每个记账人合并所有第一步广播中的交易(剔除只有哈希值但无法获得交易数据的交易),并签名。获得2/3记账人的签名,则本区块完成;否则,共识失败,转回随机数共识的第一步,再次尝试。

[1] 小蚁白皮书 https://www.antshares.org/Files/小蚁白皮书%201.0.htm.

本章主要讨论共识机制。如何在分布式系统中高效地达成共识是分布式计算领域的重要研究问题,经典的拜占庭容错技术能够 在拜占庭服务器不超过1/3以及同步通信的情况下,达成拜占庭系统中的共识。而在异步通信情况下,理论上只要有一个拜占庭故障服务器,就无法在全网中达成 一致的共识。为了解决实际的分布式一致性问题,很多实用的共识算法被设计了出来。这些算法有不同的假设条件,具有不同的优点和局限。本章重点介绍了适应于 私有链和联盟链环境的实用拜占庭容错(PBFT)协议,以及针对非拜占庭故障的Raft共识算法。

早期的比特币区块链采用高度依赖节点算力的PoW机制,来保证比特币网络分布式记账的一致性,之后又出现了PoS和 DPoS等共识机制。除这3类主流共识机制外,实际区块链应用中也衍生出了多个变种机制。这些共识机制各有优劣。例如PoW共识机制在安全性和公平性上比 较有优势,也依靠其先发优势已经形成成熟的挖矿产业链,但也因为其对能源的消耗而饱受诟病。而新兴的机制,如PoS和DPoS等则更为环保和高效,但在安 全性和公平性方面比不上PoW机制。

一般来说,PoW和PoS机制比较适合公共链环境,而PBFT和Raft则比较适合联盟链和私有链的分布式环境。比特币的PoW机制是一种概念性的拜占庭协议,能在一定程度上解决拜占庭问题。而PoS等其他机制,目前并没有严格的分析证明其在拜占庭协议方面的属性。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1015

区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!