![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
共识算法
文章平均质量分 89
web3.0前沿技术研究者
区块链研究员
展开
-
为什么PBFT需要View Changes
前言在当前的PBFT资料中,尤其是中文资料,多数都在介绍PBFT的3阶段消息过程,很少提及View Changes(视图切换),View Changes对PBFT的重要性,如同Leader Election对Raft的重要性,它是一个一致性算法中,不可或缺的部分。作者为大家介绍下,为什么View Changes如此重要,即为什么PBFT需要View Changes,以及View Changes的原理。为什么PBFT需要View Changes一致性算法都要提供:safety :原意指不会转载 2022-01-05 18:18:23 · 1315 阅读 · 0 评论 -
对PBFT算法的理解
PBFT论文断断续续读了几遍,每次读或多或少都会有新的理解,结合最近的项目代码,对于共识的原理有了更清晰的认识。虽然之前写过一篇整理PBFT论文的博客,但是当时只是知道了怎么做,却不理解为什么。现在整理下思路,写一篇关于PBFT的理解。1. 前提假定1.1 同步模型在分布式系统中谈论共识,首先需要明确系统同步模型是synchrony,asynchrony还是partial synchrony?synchrony: 节点所发出的消息,在一个确定的时间内,肯定会到达目标节点; asynchro转载 2021-10-01 23:08:21 · 703 阅读 · 0 评论 -
HotStuff共识
分布式系统一般通过状态复制机[1]原理来实现一致性。其核心思想是系统中所有副本运行着相同的状态机,只要所有副本都以相同的初识状态开始,并基于相同的初识状态执行一组相同顺序的操作,那么所有的状态最终会收敛一致,即整个系统对外表现出一致性。而确定这一组相同顺序的操作需要系统达成共识,进一步说即所有诚实节点对执行顺序达成共识,这便是著名的拜占庭将军[2]问题。—— 前言 ——我们已经了解到分布式系统一般通过状态复制机[1]原理来实现一致性。其核心思想是系统中所有副本运行着相同的状态机,只要所有副本都以相.转载 2021-09-26 19:11:45 · 604 阅读 · 0 评论 -
【共识专栏】Quorum机制与PBFT
实用性拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT),是一种在信道可靠的情况下解决拜占庭将军问题的实用方法。拜占庭将军问题最早由Leslie Lamport等人在1982年发表的论文[1]提出,论文中证明了在将军总数n大于3f,背叛者为f或者更少时,忠诚的将军可以达成命令上的一致,即3f+1<=n,算法复杂度为O(n^(f+1))。随后Miguel Castro和Barbara Liskov在1999年发表的论文[2]中首次提出PBFT算法,该算法容转载 2021-09-26 19:10:09 · 482 阅读 · 0 评论 -
比较各种共识算法的Finality和Liveness
不要浪费时间为纯异步网络设计共识算法。原作者:灵魂机器由于 FLP Imposibility 原理,No completely asynchronous consensus protocol can tolerate even a single unannounced process death因此不要浪费时间为纯异步网络设计共识算法。解决办法就是,要么加强对网络的要求,要求网络是Synchronous或者Partially Synchronous的(从异步到同步或者半同步,网络状态变.转载 2021-09-26 17:49:51 · 368 阅读 · 0 评论 -
深入Tendermint --- 出块节点选择
Tendermint本身是BFT+POS共识,在BFT之前需要先通过POS方法选出一个proposer来进行提案,proposer是从Validator节点中选出的,Validator是在创世区块(genesis.json)中配置的。这里有两个概念区分一下:validator:所有参与共识验证的节点 proposer:出块节点,validator中选出来的出块节点Proposer选择规则validator可以配置一个或多个,但只会有一个Validator被选中作为proposer出块,那么如转载 2021-09-26 11:16:37 · 446 阅读 · 0 评论 -
Tendermint 共识分析
概述Tendermint的共识算法可以看成是POS+BFT,Tendermint在进行BFT共识算法确认区块前 ,首先使用POS算法从Validators中选举出Proposer。然后由Proposer进行提案,最后使用BFT算法生成区块。Tendermint 的共识协议使用的gossip协议。其中使节点成为Validator有两种方法,具体可参考:Validators | Tendermint Coreround-robin从Validators中选举出proposer需要使用round-转载 2021-09-26 11:05:53 · 536 阅读 · 0 评论 -
区块链主流共识算法分析
区块链是一个不断增长的分布式账本[2],账本用“区块”的形式衔接在一起,区块中包含交易, 时间戳,随机数等元数据,每个区块中含有一个指针指向上一个交易链接,区块链的设计是安 全的,因为其具有良好的拜占庭容错能力。区块链可以概括为一个分布式的高频交易系统,如 下图 1 所示,区块链的核心技术可以总结为四部分:分布式的数据库,密码学相关理论,共识机制和 P2P 网络。中分布式数据库负责数据的写入与读取,密码学中非对称密钥和 HASH 等算法来标识交易者的身份和保证系统的完整性;对等网络是系统运行的基础;原创 2021-08-02 18:01:47 · 763 阅读 · 0 评论 -
分布式共识历史简介
历史:1988年,Liskov发文指出了主从备份的算法,而Leslie Lamport在1989年才提出了Paxos这个名词。但是知道1998年才正式发表。而Liskov团队后来在1999年提出了风靡一时的PBFT(使用的拜占庭容错算法)算法。paxos是分布式共识算法的灵魂,以至于谷歌在08发表的大数据经典论文《The Chubby lock service for loosely-coupled distributed systems》中直接指出“所有异 步共识的协议,其本质核心都是Paxos...转载 2021-08-02 14:55:33 · 374 阅读 · 0 评论 -
区块链共识算法原理
两种共识算法:拜占庭容错(BFT) Byzantine Fault Tolerance,非拜占庭容错(CFT) Crash Fault ToleranceCFT认为机器可能宕机,网络可能异常,但是所有信息真实可信。BFT在CFT的基础上,认为出错的机器是可能说谎的。 CFT模型容错需要至少2f+1台机器,BFT模型容错需要至少3f+1台机器BFT代表的算法:PBFT(基于两阶段提交的算法)POW(工作流证明算法)XFT( Cross Fault Tolerance)CFT代表的算法:Paxo转载 2021-08-02 14:54:15 · 1091 阅读 · 0 评论 -
FISCO-BCOS平台共识
FISCO-BCOS应用于区块链的多节点并行拜占庭容错共识算法看了下微众平台的wiki共识知识 学习下 ()内是自己的思考 参考:https://github.com/FISCO-BCOS/Wiki/tree/master/问题与动机:PBFT是一种可用的拜占庭容错算法,但是由于该算法的三个阶段是串行执行,存在共识效率低的问题提出的算法内容:区块链节点的角色有两种,分别是“领导节点”和“随从节点”。领导节点:负责对交易进行打包成块,把块广播给其他节点,通过共识过程对块中所有交易进行...转载 2021-08-02 14:18:26 · 1145 阅读 · 0 评论 -
Istanbul BFT共识算法解读
Istanbul BFT共识算法详细文档Istanbul BFT作为BFT类算法的一种已经有过在以太坊上的实践。虽然Istanbul目前还存在一些潜在的问题,但其算法思想和实现还是值得学习和借鉴的。源代码:https://github.com/jpmorganchase/quorum/tree/master/consensus/istanbul术语Validator: 区块验证者。 Proposer: 出块者。 Round: 共识的轮数。一轮从出块者提出一个区块proposal开始,转载 2021-08-02 14:16:20 · 540 阅读 · 0 评论 -
共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)
目录一.拜占庭容错技术(Byzantine Fault Tolerance,BFT) 二.PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法。 三.Raft协议。 1.Leader Election 2.Log Replication 四.POW:Proof of Work,工作证明。 五.POS:Proof of Stake,股权证明。 六.DPOS:Delegated Proof of Stake,委任权益证明 七.Rippl转载 2021-08-02 13:53:46 · 698 阅读 · 0 评论 -
开源区块链Tendermint开发详解
Tendermint是一个开源的完整的区块链实现,可以用于公链或联盟链,其官方定位是面向开发者的区块链共识引擎:与其他区块链平台例如以太坊或者EOS相比,tendermint最大的特点是其差异化的定位,尽管包含了区块链的完整实现,但它却是以SDK的形式将这些核心功能提供出来,供开发者方便地定制自己的专有区块链:tendermint的SDK中包含了构造一个区块链节点旳绝大部分组件,例如加密算法、共识算法、区块链存储、RPC接口、P2P通信等等,开发人员只需要根据其应用开发接口(Applicat转载 2021-07-31 15:07:15 · 1316 阅读 · 0 评论 -
共识算法比较Tendermint的BFT与EOS的dPoS
这项技术深入研究由Chjango Unchained编写。本文比较了不同的共识系统,它们为EOS和Tendermint提供了关于每种基础技术以及它们有什么样的独特地类似证明(PoS)能力。在由单个组织运行的传统分布式系统中,信任和安全由防火墙,信息安全团队和硬件安全来提供,以确保恶意行为者不会破坏分布式数据库的一致性。区块链系统需要一种不同的架构,其中信任机制在许多组织之间分配,但我们必须容忍系统中的对抗角色。区块链系统的设计是安全模型,博弈论,计算机科学和机构声誉之间的权衡。比特币的Nak转载 2021-07-31 15:05:59 · 342 阅读 · 0 评论 -
区块链常见共识机制简介
区块链相关的讨论仍然很热闹。区块链是去中心化的,分布式的和公共的数字分类帐,用于记录许多计算机上的交易,这样就不会在不改变后续块和网络串通的情况下追溯地改变记录。区块链需要功能强大,高效且安全的一致性算法,以便通过共享公共分类帐在全球范围内运行。在这里,我将讨论区块链使用的共识机制。它不等同于区块链,对于不同区块链可能使用不同技术,例如:以太坊使用股权证明和比特币使用工作量证明。区块链共识机制:1.工作量证明(PoW,Proof of Work)工作量证明是一种协议,其主要目标是阻止网络转载 2021-07-31 14:57:20 · 3683 阅读 · 0 评论 -
NEO dBFT共识机制分析与完善
在NEO采用dBFT机制实现共识节点之间的“拜占庭容错”,并在NEO白皮书中描述恶意共识节点小于1/3的时候,该共识机制能够保证系统的安全性和可用性。我们经过研究发现,目前NEO的dBFT机制仅能保证诚实的共识节点之间达成共识。但共识节点之间不存在分叉,并不意味着全网不会存在分叉。NEO目前对dBFT共识机制的实现还不满足的拜占庭容错性质。NEO dBFT共识机制简介NEO区块链是一个分布式的智能合约平台。NEO实现了一种委托的拜占庭容错共识算法,它借鉴了一些 PoS 的特点(NEO持有人需要对共.转载 2021-07-16 14:38:08 · 496 阅读 · 0 评论 -
RBFT共识算法
1. 概述共识机制是保证区块链中所有共识节点(即验证节点:validating peer, VP)按照相同顺序执行交易、写入账本的基础,而记账节点(即非验证节点:non-validating peer, NVP)只需要从其所连接的共识节点中同步账本信息,因此无需参与共识。Hyperchain平台支持可插拔的共识机制,可以针对区块链的不同应用场景提供不同的共识算法,当前版本已经实现了PBFT算法的改良算法:高鲁棒拜占庭容错算法RBFT(Robust Byzantine Fault Tolerance)原创 2021-05-17 14:32:24 · 9821 阅读 · 13 评论 -
分布式问题分析
参考:https://github.com/CyC2018/Interview-Notebook/blob/master/notes/业务中的分布式:分布式存储:将数据分片到多个节点上,不仅可以提高性能(可扩展性),同时也可以使用多个节点对同一份数据进行备份(高可用性)分布式计算:将一个大的计算任务分解成小任务分配到多个节点上去执行,再汇总每个小任务的执行结果得到最终结果。MapReduce 是分布式计算最好的例子。分布式事务:指事务的操作位于不同的节点上,需要保证事务的 AICD .转载 2021-05-18 10:27:05 · 178 阅读 · 0 评论 -
分布式基础知识
参考https://github.com/CyC2018/Interview-Notebook/blob/master/notes/基本概念(1)异常:1. 服务器宕机 内存错误、服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用。 服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上。2. 网络异常 有一种特殊的网络异常称为网络分区,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。3. 磁盘故障 ...转载 2021-05-17 14:15:13 · 174 阅读 · 0 评论 -
详解Casper FFG共识算法
本文配套视频:https://v.qq.com/x/page/f07704nx4iq.htmlCasper FFG是Vitalik提出来的一个PoW/PoS混合的算法,目的是为了让Ethereum平滑过渡到纯PoS。论文在这里,Casper the Friendly Finality Gadget,本文主要讲解这篇论文的核心知识点。Casper FFG算法流程目前是2018年,Ethereum依旧是一个纯PoW算法的区块链,跟比特币一样。PoW是一个非常简洁的算法,也非常安全,例如这篇论文...转载 2021-05-17 13:52:31 · 1230 阅读 · 1 评论 -
区块链中VRF的应用及原理解析
VRF 的基本原理是什么?如何利用 VRF 来实现共识?VRF 还可以用在哪些场景?《区块链中VRF的应用及原理解析》,起因是来自我们团队在做的一条叫 Tarax Network 的公链。因为场景定位的缘故,我们想找到一种低功耗的方式来进行共识。那么 POW 肯定是没办法考虑的,很容就会想到 POS。继而考虑到,无论是 POW 或是 POS,都是想不被预测的随机找到一个节点进行区块打包,并让这个区块能被全网承认。 那么在随机选点这件事上,VRF基于可验证随机选点的抽签,是做的最直接的...转载 2021-05-17 13:49:55 · 1998 阅读 · 0 评论 -
比较各种共识算法的Finality和Liveness
不要浪费时间为纯异步网络设计共识算法。由于 FLP Imposibility 原理,No completely asynchronous consensus protocol can tolerate even a single unannounced process death因此不要浪费时间为纯异步网络设计共识算法。解决办法就是,要么加强对网络的要求,要求网络是Synchronous或者Partially Synchronous的(从异步到同步或者半同步,网络状态变好了),或者放松对f.转载 2021-05-17 13:47:39 · 466 阅读 · 0 评论 -
详解Tendermint共识算法
Tendermint算法核心流程是什么?Tendermint隐含了什么锁机制?Tendermint 是 Tendermint公司开源的的一个项目,是一个pBFT算法的变体,Tendermint和pBFT的关系类似于Raft和Paxos的关系,Tendermint是pBFT的简化版。算法核心流程Tendermint 核心算法流程如下图所示:Tendermint算法先随机选出一些节点作为Validators(怎么选择验证节点?见后面的“如何选择验证节点”),然后选择其中一个valid..转载 2021-05-17 13:46:07 · 1576 阅读 · 0 评论 -
分布式一致性协议介绍(Paxos、Raft)
两阶段提交Two-phase Commit(2PC):保证一个事务跨越多个节点时保持 ACID 特性;两类节点:协调者(Coordinator)和参与者(Participants),协调者只有一个,参与者可以有多个。过程: 准备阶段:协调者询问参与者事务是否执行成功; 提交阶段:如果事务在每个参与者上都执行成功,协调者发送通知让参与者提交事务;否则,协调者发送通知让参与者回滚事务。 需要注意的是,在准备阶段,参与者执行了事务,但是还未提交。只有在提交阶段接收到协调者发来.翻译 2021-05-17 13:40:46 · 420 阅读 · 0 评论 -
【深度知识】Tendermint共识算法原理和框架流程
1. 摘要Tendermint是跨链Cosmos项目的核心技术。本文主要介绍以下内容:(1)Tendermint的网络层级框架图(2)Tendermint模块组成及共识算法原理(3)Tendermint工作流程2. Tendermint概述Cosmos的开发团队Tendermint其实早在2014年就开始意识到了其不足,并持续专注于寻求不依赖挖矿等高电力消耗的共识机制,提供快速的交易处理能力,它们的目标是为全事件所有的区块链提供速度、安全和可扩展性。目前,Tendermint加入了微软Az转载 2021-05-17 10:31:20 · 1013 阅读 · 0 评论 -
深度解析Tendermint,快速融入Cosmos生态
区块链的公链项目越来越多,每个项目都是一个孤立的网络体系,因此区块链项目之间的互联互通能力也是技术发展的大方向。这其中Cosmos项目是其中的优秀代表。本文作者从Cosmos核心技术Tendermint开始,深度剖析Cosmos项目,让大家对跨链技术将一个比较深入的了解。导读2017年以来,区块链项目出现了井喷式地上升,然而在喜人增长态势的背后,人们也注意到大部分项目都缺乏与其它区块链项目互连互通的能力而成为孤立的网络体系。因此,跨链技术也逐渐进入了大家的视野,本文将为大家解读一个跨链项目Cosmo转载 2021-05-17 10:04:18 · 275 阅读 · 0 评论 -
HotStuff共识算法详解
1. 前言HotStuff提出了一个三阶段投票的BFT类共识协议,该协议实现了safety、liveness、responsiveness特性。通过在投票过程中引入门限签名实现了O(n)的消息验证复杂度。Hotstuff总结出对比了目前主流的BFT共识协议,构建了基于经典BFT共识实现pipeline BFT共识的模式。HotStuff是基于View的的共识协议,View表示一个共识单元,共识过程是由一个接一个的View组成。在一个View中,存在一个确定Leader来主导共识协议,并经过三阶段投.转载 2021-02-24 14:18:33 · 3321 阅读 · 2 评论 -
寻找一种易于理解的一致性算法(扩展版)
摘要Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明,对于学生而言,Raf...原创 2019-04-01 09:33:23 · 10477 阅读 · 0 评论 -
有向无环图 (DAG) 技术:超越区块链的分布式账本
一、起源DAG(Directed Acyclic Graph,有向无环图)是一种数据结构,最早提出在区块链中加入DAG概念作为算法,是在2013年的bitcointalk论坛,被称作为“Ghost协议”,这一提议也是为了解决当时比特币的扩容问题。后来,在NXT社区,又有人提出了DAG of block,将DAG的拓扑结构用来存储区块,解决效率问题。那时对于DAG的应用,还停留在类似于侧链的一个...原创 2019-04-01 09:33:16 · 12222 阅读 · 1 评论 -
关于共识机制的一些想法
前言之前搞过一段时间并行计算相关的东西,写过一些Lock-Free的代码。接触以太坊社区之后,看到了共识机制的概念。当时就感觉这两者之间一定有什么联系。刚好没几天,就在知乎上看到有一个Lock-Free的问题,下面张德力回答里面提到了:无锁算法 (lock-free algorithm) 和 无等待算法 (wait-free algorithm) 的近代起源可以追溯到Herlihy的论...原创 2019-04-01 09:33:07 · 10557 阅读 · 0 评论 -
什么是共识算法
本文尝试从源头开始,告诉大家区块链共识算法的来龙去脉。包含以下三部分:什么是共识算法著名的共识设计理论经典的共识算法设计什么是共识算法背景分布式系统集群设计中面临着一个不可回避的问题,一致性问题对于系统中的多个服务节点,给定一系列操作,如何试图使全局对局部处理结果达成某种程度的一致?这个一致性问题大致有如下的场景:节点之间通讯不可靠的,延迟和阻塞节点的处理可...原创 2019-04-05 10:28:26 · 33079 阅读 · 1 评论 -
分布式一致性与共识算法
分布式一致性与共识算法 UTXO 与账户余额模型区块链技术是近几年逐渐变得非常热门的技术,以比特币为首的密码货币其实已经被无数人所知晓,但是却很少有人会去研究它们的底层技术,也就是作为一个分布式网络比特币等加密货币是如何工作的。无论是 Bitcoin、Ethereum 还是 EOS,作为一个分布式网络,首先需要解决分布式一致性的问题,也就是所有的节点如何对同一个提案或者值达成共识...原创 2019-04-05 10:28:08 · 11413 阅读 · 1 评论 -
UTXO 与账户余额模型
分布式一致性与共识算法 UTXO 与账户余额模型从写上一篇介绍区块链共识算法的文章分布式一致性与共识算法到现在已经过去了三个多月的时间;虽然整个行业内有非常多的变化,但是区块链技术,尤其是底层技术却没有太多的改变。这篇文章将要介绍的就是 Bitcoin 以及众多的加密货币,比如 Ethereum、NEO 和 Qtum 的底层结构究竟是什么样的。目前的绝大多数区块链项目不是使用UTXO...原创 2019-04-05 10:27:39 · 13471 阅读 · 2 评论 -
共识算法分析
POW:Proof of Work,工作证明。比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理ha...原创 2021-05-19 17:14:49 · 11233 阅读 · 2 评论 -
区块链 :拜占庭将军问题 [BFT]
目录背景: 什么是拜占庭将军问题: 通俗分析: 问题抽象: 中本聪的解决方案: 经济学分析 REFERENCE正文回到顶部背景: 拜占庭将军问题很多人可能听过,但不知道具体是什么意思。那么究竟什么是拜占庭将军问题呢? 本文从最通俗的故事讲起,并对该问题进行抽象,并告诉大家拜占庭将军问题为什么在区块链领域作为一个重点研究问题。回到顶部什么是拜占庭将...原创 2019-04-18 09:38:59 · 11012 阅读 · 0 评论 -
共识算法
共识算法(consensus)#peer节点启动的时候根据配置文件core.yaml文件配置项peer.validator.consensus.plugin选择采用哪种共识算法。目前Fabric实现了两种共识算法NOOPS和PBFT,默认是NOOPS:NOOPS:是一个供开发和测试使用的插件,会处理所有收到的消息。 PBFT:PBFT算法实现。0x01 插件接口Consenter...原创 2019-04-05 10:30:49 · 8308 阅读 · 0 评论 -
30 种共识算法完全列表
共识算法是所有区块链 /DAG 的基础,它们构成了区块链 /DAG 平台中的最重要部分。如果没有共识算法,我们得到只是一个不可写的哑(dummy)数据库。我将在本文中尽可能列出所有主要的共识算法,评估各自的优劣之处。如果读者发现有所遗漏,或是存在错误,希望能通过评论指出。此外,我个人也在逐步深入研究共识算法及其对经济的影响,为此本文也将做定期的更新。另:本文假定读者理解共识算法及其在区...原创 2019-04-05 10:32:02 · 12354 阅读 · 0 评论 -
区块链共识算法简介
共识算法是区块链项目中最核心的部分。有分布式,就需要达成共识。目前为止,对于区块链项目争议最大的之一也是共识算法,比如EOS的DPoS机制。回到共识机制本身,我们如何来理解背后的本质呢?而不是人云亦云呢?从蓝狐笔记的角度,共识算法是一个不断演进的过程,也是治理机制的一部分,无须一概否定。共识算法的使用是去中心化加密货币最重要的一个特征。共识算法对于加密货币而言至关重要的,因为它可以防止...原创 2019-04-05 10:32:55 · 9019 阅读 · 0 评论 -
区块链中五种常见共识算法
区块链是一种去中心化的分布式账本系统,可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统中心化系统相比,具有公开透明、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此,区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对...原创 2019-04-05 10:33:50 · 13659 阅读 · 0 评论