超级链

【Libra 技术解读】详解LibraBFT共识机制

♀尐吖头ヾ 提交于 2020-04-07 10:33:26
本文作者:nonoren1985 Libra技术系列解读 往期回顾 move语言简介 move语法、解释器和验证器 本期详解“LibraBFT共识机制” Libra白皮书中关于共识机制的描述 Libra 区块链采用了基于 LibraBFT 共识协议的 BFT 机制来实现所有验证者节点就将要执行的交易及其执行顺序达成一致。这种方法可以在网络中建立信任,因为即使某些验证者节点(最多三分之一的网络)被破坏或发生故障,BFT共识协议的设计也能够确保网络正常运行。与其他一些区块链中使用的“工作量证明”机制相比,这类共识协议还可实现高交易处理量、低延迟和更高能效的共识方法。 1. libra共识简介 Libra的共识采用的是LibraBFT共识,是一个为Libra设计的鲁棒的高效的状态复制系统。它基于一种新型的BFT共识算法,HotStuff(BFT Consensus in Lens of Blockchain),在扩展性和一致性上达到了较高的水平。LibraBFT 在HotStuff的基础上引入显示的活跃机制并提供了具体的延时分析。LibraBFT在3f+1个验证节点之间收集投票,这些验证者可能是诚实的节点也可能是拜占庭节点。在网络中有2f+1个诚实节点的前提下,Libra能够抵御f个验证节点的双花攻击和分叉攻击。LibraBFT在一个有全局统一时间(GST),并且网络最大延时(ΔT

【Libra 技术解读】详解Libra共识源码

筅森魡賤 提交于 2020-04-07 10:31:33
本文作者:nonoren1985 Libra技术系列解读 往期回顾: move语言简介 move语法、解释器和验证器 LibraBFT共识机制 本期由百度超级链颜值与才华并存的“小X姐姐”带来 “Libra共识源码”详解 快来围观吧! 一、LibraBFT算法简介 上一篇对于LibraBFT进行了相关的介绍,本文在正式开始前,先再介绍一下相关的概念和流程: 基本概念: 1. SMR(State Machine Replication):在计算机领域,SMR是在网络中不同副本间进行状态复制的一种协议。 2. Safety: 简单地理解就是共识的一致性保证,即诚实的节点能够达到状态一致; 3. Liveness: 简单地理解为区块链网络的可用性,类似于分布式系统中的分区可用性; 4. Epochs,实际的应用中,参与协议的节点的状态是随着时间而发展的,LibraBFT中通过epoch来支持这种状态更迭。 a. 每个epoch都是基于他的前一个epoch发展的。或者基于一个系统定义的初始epoch; b. 每个epoch有一个唯一的epochid所标识; c. 每当一个新的epochid被提交,当前这个epoch会结束,下一个epoch会开始; 5. LibraBFT假设网络是一个有全局稳定时间(GST),并且最大延时(ΔT)可控的 Partial Synchrony的网络; 6.