美文网首页
迅雷链基于智能硬件的DPoA共识机制介绍

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

作者: 郑小峰 | 来源:发表于2018-12-06 12:39 被阅读17次

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

    玩客云网络相对于中心化的服务器节点组成的网络,其特点可概括为以下几个方面:

    1)网络节点多:目前已经过150万节点;

    2)计算性能低:采用廉价、低功耗的ARM架构的CPU,绿色环保但计算性能较低;

    3)存储容量小:存储容量各不相同,但与服务器相比容量很小;

    4)网络环境差:用户家庭的网络环境各不相同,包括不同的地理位置、不同的网络运营商、不同的带宽,普遍带宽小、时延高、稳定性低。

    面对这种基础设施环境和业务需求,我们需要一种安全的、一致性强、可扩展性高的共识算法。

    已有的共识算法研究

    PoW(Proof of Work):工作量证明消耗大量算力寻找满足条件的随机数,它存在以下缺点:

    1)速度慢。绝大部分时间消耗在工作量证明中的hash运算;

    2)能源消耗巨大,对环境不好。目前比特币挖矿比159个国家消耗的能源还多;到2020年2月,它将使用和今天全世界一样多的电力;

    3)属于概率一致性算法,而非绝对一致性算法。在产生分叉后,两个分叉的网络各自继续挖矿,经过一段时间后选择包含最多区块的那个链(最长链)为主链,例如比特币中的一个交易等待6个区块才能确认。

    PoS(Proof of Stake): 权益证明根据节点持有的token数量以及时间获得相应的记账权。PoS减少了PoW的资源消耗,但是也存在问题:

    1)安全性问题:带来如Nothing-at-Stake Problem和Long-range attacks安全性上的问题;

    2)依据权益结余来选择,会导致首富账户的权力更大,有可能支配记账权;

    3)PoS同样属于概率一致性算法,而非绝对一致性算法。

    DPoS(Delegated Proof of Stake):授权权益证明是通过拥有token的人投票选出代理节点行使记账的权利,是在可用性和去中心化这两个维度上做出的平衡。它存在的问题包括:

    1)由少数节点代替多数节点进行共识,其实是牺牲了区块链去中心化的特性,以此来换取共识效率的提升;

    2)节点之间可能存在内在联系的共谋;

    3)超级节点竞选争议。由于网络无法解决女巫***问题,1人1票的民主投票制会被1代币1票制度所取代,导致“富豪统治”的结果;

    4)DPoS同样属于概率一致性算法,而非绝对一致性算法。

    Paxos 算法:Paxos 算法及其衍生出的 Raft 算法等是强一致性算法,但它们是CFT(Crash Fault Tolerance)类算法,也就是它们只能处理节点故障的错误,而不能处理存在作恶节点的情况。

    PBFT(Practical Byzantine Fault Tolerance): 实用拜占庭容错共识是一种基于严格数学证明的强一致性算法,经过多阶段的信息交互最终达成共识,只要系统中有三分之二以上的诚实节点,就能保证最终达成共识。PBFT的问题是通信量大—— PBFT共识需要大量信息交互,并且数量会随着节点数的增加而急剧上升。这一特性决定了PBFT无法直接支持众多的玩客云节点参与共识。

    根据我们的业务需求,PoW、PoS、DPoS等概率一致性算法都不能满足需求;Paxos、Raft等CFT类算法也不适用于公共链;PBFT是强一致的BFT类算法,但存在通信量大的问题,也不能直接用于公有链。

    同构多链架构下的DPoA + PBFT

    根据玩客云网络的实际情况和业务需求,现有的共识机制都无法满足要求,因此迅雷链提出了独有的同构多链架构结合DPoA + PBFT的共识机制。

    同构多链架构,即系统由一条条相对独立(独立进行共识)的链组成,每条链有多个节点,每个节点被分配到其中一条链上,不同的账户数据被锚定在不同的同构链上,然后接入层将交易路由到发送方所在的链上进行区块打包与共识。系统中链的数量能够按业务需求动态增加。因此同构多链的架构首先保证了系统的可扩展性,解决了玩客云存储容量小的问题,因为节点无需存储全量的区块数据,而是只存储它所在子链的数据。

    改进的PBFT,为保证分布式系统中的强一致性,并具备一定的容错和防拜占庭节点作恶的能力,因此我们选择了类 BFT 算法。在每一条单独的链上,我们使用了改进的实用拜占庭容错算法(PBFT)保证强一致性。为了解决PBFT算法网络消耗高的问题,对算法作出了一些优化,降低网络消耗,提高了算法的可用性。

    DPoA(Delegated Proof-of-Ability),迅雷链在PBFT的基础上,还根据DPoS的思想,提出了适用于玩客云设备的、我们称之为DPoA共识机制。与传统的DPoS不同之处在于,迅雷链的DPoA并不是根据矿工持有的代币数量或币龄作为选举标准投票权重,而是按玩客云节点的存储容量、网络稳定性、带宽、时延、CPU使用率等指标作为衡量标准,以获得更好的公平性和网络效率。

    DPoA的具体处理机制如下:

    1)对于存储空间不足的设备,则不再参与记账;

    2)对于网络不稳定的节点,则减小其权重,则由它提议(Propose)区块的机率降低,这样就能让网络状况好的节点多提议区块;

    3)对于带宽大的节点,则增加其权重,以提高它提议区块的机率;

    4)对于时延低的节点,则增加其权重,以提高它提议区块的机率;

    5)对于CPU使用率高的节点,则减小其权重,以降低它提议区块的机率。

    DPoA的共识机制说起来其实很简单,但它能有效保证参与记账的节点总是有足够存储空间、系统状态较好、网络环境较好的节点,保证了区块链系统的稳定运行,解决了玩客云节点网络环境差异大的问题。由于DPoA每轮动态选择部分满足条件的节点作为投票节点,使共识机制更加安全、稳定和高效。

    为什么我们能够使用DPoA的共识机制?我们之所以能够采用DPoA的共识机制,原因在于:

    1)在玩客云设备中,我们可以内置完善的检测与监控系统,能持续检测玩客户云设备的存储容量、在线时长、带宽、时延等信息,为DPoA共识算法提供实时状态的数据支持,而这是普通的公共链项目无法做到的。

    2)玩客云节点数量庞大,并且一直在增加,即使排除不满足条件的节点,也仍然有大量的节点可以使用,并能一直得到补充。

    玩客云的激励机制和作为家庭共享存储的功能,让用户乐于投入更大的存储空间。

    总结

    迅雷链结合玩客云网络节点多、计算性能低、存储容量小、网络环境差的实际情况,采用同构多链架构实现了可扩展性,采用PBFT实现了强一致性和高效率共识,用更公平的DPoA机制得到了更高的可用性,也进一步提升了共识效率。

    相关文章

      网友评论

          本文标题:迅雷链基于智能硬件的DPoA共识机制介绍

          本文链接:https://www.haomeiwen.com/subject/seancqtx.html