共识算法:计算机如何共同达成协议并保持安全_区块_网络_交易

|  一、引言

自人类社会诞生以来,贸易活动就从未停止。为了提高交换效率,货币应运而生。人类经历了从以物易物到使用贝壳等稀有实物,再到银本位、金本位,最终发展到今天的法币体系。

与实物货币相比,法币最大的不同在于它不具备天然的稀缺性。它的价值依赖于国家的信用,而非自身的材质。国家通过集中控制货币发行权来调控经济,但这也带来了通货膨胀等风险。一旦一个国家经济不稳或频繁印钞,其法币的信用也会迅速下降,比如美元近年来的持续贬值,就削弱了其在全球的公信力。

此外,在国际贸易中,各国之间必须频繁兑换法币,不仅流程复杂,还会造成损耗。这些问题暴露出传统货币体系的局限性,也促使人们寻求一种更加稳定、全球共识性强、具有稀缺性的货币形式。

2008年,中本聪提出了区块链技术,并创造了第一种去中心化的数字货币——比特币。区块链通过点对点协议和共识机制,实现了无需中介即可完成信任建立的交易体系。其去中心化、不可篡改、公开透明等特性,使其在金融、政务、防伪、征信、知识产权等领域具有广泛前景。

值得一提的是,共识算法的理念早在20世纪70年代便已出现,核心问题是:“在没有中心控制的情况下,多个节点如何达成一致?”区块链正是对这一问题的现实回答和应用。

什么是比特币现金| CMC Markets

|  二、为什么需要共识机制?

所谓“共识”,就是多个人达成一致意见的过程。其实我们日常生活中处处都是共识的例子,比如公司决策需要股东讨论,签合同要甲乙双方协商达成一致,这些都是共识的体现。

在区块链系统中,每个节点都维护着自己的账本,而为了保证系统的统一性,这些账本必须保持一致。这在传统中心化系统中不难实现,因为有一个主服务器,其他节点只需跟随即可。

但在去中心化的系统中,没有“老大”来统一指令,节点之间必须靠一套算法来协调,达成统一的账本状态。这套保障一致性的算法,就是我们今天要讲的——共识机制。

|  三、什么是共识机制?

共识机制(Consensus Mechanism)是一种通过特定节点投票,在极短时间内完成交易验证与确认的机制。只要若干个彼此无直接利益关系的节点对某笔交易达成一致,就可以认为这笔交易已获得全网的认可,从而确保系统的整体一致性。

虽然“共识”(Consensus)和“一致性”(Consistency)在许多场景中常被视为相近概念,但二者在内涵上仍存在细微差别:

  • 共识更关注的是分布式节点达成一致的过程和算法

  • 一致性则强调的是节点在共识过程后所达成的最终状态是否统一

此外,传统的分布式一致性算法通常假设网络环境是可靠的,不考虑节点恶意作恶的情况,也就是不具备拜占庭容错能力。但在区块链这种完全公开、去中心化的网络中,我们无法假设所有节点都是诚实的,因此,共识机制必须具备应对恶意行为(如数据篡改、伪造)的能力,这也正是区块链共识机制的关键挑战所在。

|  四、共识机制可以解决哪些问题?

共识机制的核心作用,是解决分布式系统中的信任问题,确保各节点之间的数据一致性与安全性。

在传统的分布式系统中,由于节点之间缺乏信任机制,系统容易受到恶意节点的攻击或数据篡改,进而引发崩溃或数据失真。而在区块链技术出现之前,加密数字货币和其他数字资产一样,存在可无限复制的问题。没有中心化的权威机构,人们无法判断一笔数字货币是否已经被使用,导致“双重支付”风险。

因此,共识机制的引入,有效解决了两个关键问题:

  1. 双花问题:防止同一笔数字货币被重复使用;

  2. 拜占庭将军问题:在存在恶意节点的情况下,系统依然能够达成可靠的一致决策。

通过共识机制,去中心化网络中的节点可以在无需信任彼此的前提下,共同维护一份可信的账本,实现真正安全、透明的数据交换。

|  4.1、双花问题(Double spend attack)

什么是双花问题?| 区块链课堂第13问-36氪

共识机制在一定程度上可以解决区块链中的双花问题(Double Spend Attack),即同一笔钱被重复使用两次或多次,也称为“双重支付”。

在电影《猫鼠游戏》中,小李子通过伪造支票进行双花操作。由于支票验证存在时间差,他在短时间内用同一张支票信息多次消费,这正是现实世界中的“双花”案例。

而在区块链中,系统通过共识机制来应对类似的攻击。一个关键原则是:区块链网络始终将“最长链”视为最有效、最可信的链条,并在其基础上继续延伸。

当两个节点几乎同时广播了不同的新区块时,网络中的其他节点会优先在先收到的区块上继续挖矿,同时也保留另一个分支作为备选。一旦有一个分支率先找到下一个合法区块,变得比另一个链更长,网络就会将其认定为主链,所有节点随即“转阵营”,放弃之前较短的链条。

这种“优胜劣汰”的机制,使得试图制造双花攻击的链条难以超越主链,从而提升系统安全性,有效抑制双重支付的风险。

双花是如何实现的?

所谓双花(Double Spend),是指一笔加密货币被多次使用的行为。在区块链系统中,常见的双花方式分为两类:

1. 确认前的双花(未上链交易)

在交易还没有被写入区块链、也就是“零确认”状态下,就可能被恶意取消或替换。这种攻击风险相对较高,尤其在交易金额较大时,应当等待区块确认以避免这种攻击。

2. 确认后的双花(链上回滚)

这种方式需要攻击者拥有超过 50% 的算力,制造出一个分叉链,将交易写入孤立区块中,随后抛弃原主链,令新的分支成为主链。虽然这种攻击难度极高,但在理论上是可行的。

常见的三种双花攻击方式

(1)51% 攻击

指某一方控制了全网 超过 50% 的计算能力或权益,可篡改交易历史、回滚已确认交易。

  • 在比特币这类工作量证明(PoW)系统中,这意味着掌控大部分算力。

  • 在权益证明(PoS)系统中,如 Cardano,则是控制了大部分质押代币。

(2)竞赛攻击(Race Attack)

攻击者几乎同时发起两笔交易,一笔发送给商家,一笔转回自己或另一个账户。如果商家在没有确认的情况下发货,而最终链上确认的是另一笔交易,商家就会损失货物而收不到款。

(3)芬尼攻击(Finney Attack)

攻击者事先挖好包含给自己转账交易的区块,但不立即广播。然后使用相同金额向商家付款。商家发货后,攻击者再发布之前挖好的区块,这样就用旧交易覆盖了给商家的交易,达到双花的目的。

案例:2018 年 BTG(Bitcoin Gold)双花攻击

攻击者在 BTG 网络中掌握了超过 51% 的算力:

  1. 分支 A上,将 BTG 发送到交易所并成功提现为现金;

  2. 同时,在分支 B中,将同样数量的 BTG 发送到另一个自己控制的钱包;

  3. 等分支 A 完成提现后,开始在分支 B 上持续挖矿,最终让其变成更长的主链;

  4. 分支 A 被链回滚,交易失效,但现金已到账,交易所损失了这笔资产。

这是一个典型的利用 51% 算力制造双花的例子。

|  4.2、拜占庭将军问题(Byzantine failures)

從「拜占庭將軍問題」到區塊鏈分散式系統的雛型- UNWIRE.PRO

拜占庭将军问题是 Leslie Lamport 等人在 1980 年代提出的一个著名假想问题,用以描述在不可信环境中达成一致的难度

4.2.1、问题背景

拜占庭是东罗马帝国的首都。假设若干支军队由不同的将军率领,他们分散在城市周围,只能通过信使来沟通,必须就“进攻还是撤退”达成一致。

然而,有些将军可能是叛徒,他们可能发送虚假命令、扰乱信息传递,从而使其他忠诚将军做出错误决策。

这个问题的本质是:如何在存在恶意节点的前提下,让忠诚节点达成一致共识?

4.2.2、拜占庭容错理论(BFT)

研究表明,如果系统中存在 x 个可能作恶的节点,则至少需要 3x + 1 个节点,才能在算法层面达成容错一致。这就是著名的拜占庭容错条件。

  • 少于 3 个节点的系统在存在一个作恶者时无法达成共识。

  • 例如,为抵御 1 个恶意节点,至少需要 4 个节点。

4.2.3、拜占庭问题与区块链

区块链网络正处于一个分布式、无中心的环境中:

  • 节点之间缺乏信任;

  • 有些节点可能故障、宕机,甚至作恶(篡改数据、广播错误信息)

这与拜占庭问题极其相似。因此,区块链系统必须设计强健的共识算法来确保:

  • 忠诚节点可以在恶意节点存在的情况下依然达成一致;

  • 网络整体数据保持一致和安全。

4.2.4、比特币如何应对拜占庭问题?

比特币通过引入工作量证明(PoW)机制,巧妙解决了拜占庭将军问题:

  1. 加入“成本”机制:节点必须付出大量计算资源(挖矿)来产生一个有效的区块;

  2. 随机选举“发言人”:谁先计算出有效哈希值,谁就拥有当前的“话语权”;

  3. 以最长链为准:全网默认最长合法链为主链,自动过滤恶意链;

  4. 持续同步账本:所有节点不断接收并验证新区块,保持账本一致。

这种机制下,即使存在作恶节点,只要大部分算力由诚实节点控制(>50%),系统依然可以保持安全与一致性。

|  五、分布式账本与共识机制的发展历程

随着计算机和网络技术在1980年代和1990年代的兴起,共享数据库开始广泛应用,允许多个用户跨不同地点访问存储的信息。这些数据库通常是中心化的,由管理员控制用户权限和数据完整性。

中心化数据库的局限

  • 数据存储和控制集中于单一实体;

  • 管理者负责维护数据安全和一致性;

  • 容易成为单点故障和攻击目标。

分布式账本的出现

为解决上述问题,逐渐出现了分布式账本(Distributed Ledger),其特点是:

  • 数据在多个节点间复制和同步;

  • 多个地理位置的用户均可访问同一份数据;

  • 通过网络实现去中心化的数据共享。

分布式账本面临的核心挑战是:如何防止数据被篡改或未经授权的访问?尤其是在存在潜在恶意节点的环境下,如何自动化保证数据的完整性和一致性?

分布式自治共识的诞生

为解决上述问题,学界和业界提出了分布式自治共识机制,其核心原理包括:

  • 利用加密算法(如哈希函数)生成数据的“指纹”——哈希值;

  • 哈希值对输入数据极度敏感,任何数据的微小变动都会导致哈希值完全不同;

  • 网络中每个节点独立计算哈希并相互验证;

  • 当所有节点计算的哈希一致时,说明它们的数据状态达成了共识。

通过这种机制,系统能够自动检测数据篡改,确保数据一致和安全。

共识机制的发展与贡献者

虽然中本聪(Satoshi Nakamoto)因比特币和其开创性的共识算法(工作量证明PoW)而闻名,但在其之前,许多学者和研究者已经在共识机制领域进行了大量研究和探索。

  • Moni Naor 和 Cynthia Dwork 等学者研究了加密协议和容错算法;

  • Adam Back 发明了 Hashcash,用于防止电子邮件垃圾信息的工作量证明机制;

  • Nick Szabo 提出了“智能合约”概念,并为数字货币理论奠定基础;

  • 还有众多计算机科学家和密码学家为分布式共识和安全系统做出了重要贡献。

这些基础工作为后续比特币及区块链技术的诞生铺平了道路。

|  六、共识算法的分类

共识算法是分布式系统中用于确保多个节点在缺乏完全信任的环境下对系统状态达成一致的重要机制。根据不同的容错模型和一致性目标,共识算法大致可以分为以下两类维度: 

🔸 CFT(非拜占庭容错)
这种算法假设节点不会作恶,只可能宕机或出错,适用于大家互相信任的环境,比如联盟链。代表算法有:Paxos 和 Raft

🔸 BFT(拜占庭容错)
这种算法考虑了“恶意节点”的存在,能在部分节点作恶的情况下,保障系统安全。适用于像公有链这种开放、低信任的网络环境。常见算法包括:PoW(工作量证明)PoS(权益证明)DPoS(委托权益证明)、PoA(权威证明)等。

此外,共识算法还可以从“一致性”角度来分

🔹 概率一致性算法
这些算法在大多数情况下能保证数据一致,但偶尔会有短时间的数据差异。比如:PoW、PoS、DPoS

🔹 绝对一致性算法
无论什么时候,所有节点的数据都完全一致,常用于高可靠要求的系统,比如:Paxos、Raft

|  七、共识算法详解

读到这里是不是有点烧脑了?别急,点个收藏,休息一下再继续。
接下来是本文最硬核的部分,也是精华内容。

⏰ 时间不太充裕的同学可以直接跳到第三部分:PoW 算法开始看!

7.1.1、Paxos 算法

图解Paxos 算法| Leo的技术分享

Paxos 算法是著名计算机科学家 Lamport 在 1990 年提出的一种分布式一致性算法,并因此获得了 2013 年的图灵奖。

它的目标是:让多个节点就某个值达成一致。这在分布式系统中至关重要,比如多个服务器需要确认一个订单是否成立时,大家必须达成统一意见。

核心流程是这样的:

  • 提议者(Proposer)发起一个提案;

  • 多数接受者(Acceptor)同意后,提案就算通过;

  • 如果提议者宕机,系统会重新选一个新的提议者,继续提案。

虽然 Paxos 有可能陷入“一直选不中”的极端情况,但这种情况非常少见

🚀 算法演进

最初的 Paxos(也叫 Basic Paxos)结构比较复杂、效率也不高。后来陆续有了改进版本:

  • Fast Paxos

  • Multi-Paxos

  • Byzantine Paxos(支持拜占庭容错)


🧠 应用场景:ZooKeeper

Paxos 被广泛应用于各种分布式系统中,比如大家熟知的 ZooKeeper 就借鉴了 Paxos 的设计理念来保证数据一致性。因为不能应对拜占庭节点(作恶节点),所以Paxos没有被用于公链上,更多用于用于可信环境的分布式一致性(比如企业内部系统、数据库)。


🔍 算法原理简要

Paxos 可以容忍节点宕机、消息丢失、延迟甚至乱序。只要有超过半数的节点正常,它就能达成共识(比如在 3 个节点中,允许 1 个宕机)。

但它有个前提:节点不能作恶(不考虑拜占庭问题),否则就不再适用。

Paxos 中的角色分为三类:

  • Proposer(提议者):发起提案

  • Acceptor(接受者):投票决定是否同意提案

  • Learner(学习者):学习并记录已经通过的提案结果

如果当前的提议者宕机,系统会等待选出新的提议者,再继续运行。

7.1.2、Paxos 算法

一文搞懂Raft算法- xybaby - 博客园

Raft(Reliable, Replicated, And Fault-Tolerant)是一种被广泛使用的分布式一致性算法,它是为了解决 Paxos 算法难以理解、实现复杂等问题而设计的“工程友好版”共识算法。

Raft 的设计目标很明确:让人更容易理解和实现一个强一致性的多节点系统。在一个由 n 个节点组成的系统中,只要超过一半的节点是健康的,Raft 就能确保整个系统的状态一致。

Raft 系统中定义了三种角色:

  • Leader(领袖):负责处理所有客户端请求并同步给其他节点。

  • Follower(追随者):被动接受 Leader 的指令和心跳包。

  • Candidate(候选者):当 Follower 超过一定时间没收到心跳时,就会发起选举成为新的 Leader。

节点每次只能给一个候选者投票,获得多数票的候选人将成为新的 Leader。

🔄 工作原理

  1. 心跳机制:Leader 定时向所有 Follower 发送心跳,保持“在线状态”。

  2. 选举机制:如果 Follower 超时未收到心跳,会进入“候选人”状态并发起新一轮选举。

  3. 日志复制:所有写操作都会先提交给 Leader,然后由 Leader 广播给其他节点,确保日志在大多数节点上达成一致。

⚖️ Raft 相比 Paxos 的优势

  • 更简单可实现

    • Raft 的日志是顺序提交的,Paxos 允许乱序提交,但需要额外协议来“补坑”。

    • Raft 的日志副本有统一的索引和任期,Paxos 则允许不一致。

  • 选举更高效

    • Raft 会优先选出日志最完整的节点作为 Leader,避免后续额外的日志同步延迟。

    • Paxos 有可能选出落后节点为 Leader,导致短时间内服务阻塞。

虽然 Raft 主要应用在联盟链(如 Fabric、Quorum)和数据库系统(如 etcd、TiKV、Consul)中,但它也被部分高性能链测试链用于替代更复杂的拜占庭容错算法(如 PBFT)。

当前典型应用链:

  • Hyperledger Fabric(联盟链)

  • Quorum(JP摩根开发的企业级区块链)

  • Polygon Edge(模块化区块链框架)

  • TiDB、etcd(虽然不是链,但在分布式架构中至关重要)

7.1.3、工作量证明(Proof of Work, PoW)

什么是工作量证明| Ledger

在所有区块链共识机制中,PoW(Proof of Work,工作量证明) 是历史最悠久、被验证最充分的一种。它最早被提出用于对抗垃圾邮件,真正被广泛应用是在 2008 年中本聪发布的比特币白皮书中。

PoW 是一种基于计算资源竞争的共识机制。它的核心思想是:用算力“挖矿”解题,抢先获得记账权。

具体来说,参与者需要反复尝试,寻找一个符合特定条件的数字(即 Nonce),让整块数据的 Hash 值小于目标值。这个过程耗时、耗电,但一旦找到,就能广播给全网打包成区块,并获得奖励。

PoW 的一个核心特征是计算难,验证容易。参与节点(矿工)需要进行大量哈希运算寻找“正确解”,而其他节点只需一次哈希就能快速验证这个答案是否有效。

这个过程体现出明显的不对称性:

  • ✅ 请求方(矿工):需付出大量算力做工作

  • ✅ 验证方(全网):几毫秒就能验证结果是否正

⚙️ 算法流程

  1. ⛏ 矿工打包交易 + 当前区块信息 + 变化的 Nonce

  2. 🔁 重复计算 Hash,直到满足条件(如:前 N 位为 0)

  3. 📢 广播新区块,其他节点验证通过后接入链中

  4. 🏆 成功者获得区块奖励(如 BTC、DOGE)

✅ 优点

  • ✅ 最成熟:自 2009 年以来,比特币网络一直在稳定运行,经历过多次实战检验。

  • ✅ 去中心化高(在初期):靠算力竞争,理论上人人平等。

  • ✅ 安全性强:篡改区块链需重算整条链的 PoW,成本极高。

❌ 缺点

  • ❌ 能耗高:比特币全网功耗已超过许多中等国家。

  • ❌ 速度慢:区块生成速度受限,TPS 较低。

  • ❌ 易被规模经济影响:大矿池集中算力,可能出现中心化趋势

🌐 当前使用 PoW 的主流链项目

项目名称

描述

Bitcoin

第一个采用 PoW 的区块链,仍是行业黄金标准

Litecoin

比特币的“轻量级版本”,区块时间更短

Dogecoin

基于 Litecoin 的热门模因币

Conflux

国内团队主导开发,支持高吞吐的 PoW 网络

ETH 1.0(已升级为 PoS)

曾是最大的 PoW 智能合约平台,2022年转向 PoS

7.1.4、权益证明(Proof of Stake, PoS)

在比特币开启 PoW 共识时代后,人们逐渐意识到其能耗高、效率低等问题。于是,PoS(Proof of Stake,权益证明)作为一种更绿色高效的共识机制,被提出并不断演化,逐步成为主流区块链项目的新选择。

📜 PoS 的由来

早在 2011 年,论坛用户 Quantum 在 Bitcointalk 上首次提出 PoS 概念。次年 8 月,全球首个实现 PoS 共识的加密项目——点点币(Peercoin)上线。

Peercoin 的创新点在于将“币龄”作为记账权的依据,彻底告别了“拼算力”的 PoW 模式。

🔍 什么是权益证明(PoS)

PoS 的核心思想是:币多者得记账权,持币即挖矿。

与 PoW 靠算力竞争不同,PoS 通过判断节点“持有多少币、持有了多久”来分配打包区块的权利。

在 Peercoin 中,这种权重叫做“币龄”(Coin Age):

持有数量 × 持有时间 = 币龄

举例说明:如果你持有 100 个点点币,连续持有 30 天,那么你的币龄为 3000。若你成功打包一个区块,币龄会被消耗,你还将获得利息奖励,如:

利息 = 5% 年利率 × 3000 / 365 ≈ 0.41 个币

🧠 PoS 的工作机制

  • 💼 用户持有代币,并随着时间累积币龄

  • ⛓ 每轮共识中,系统随机选择一个拥有高“权益”的节点

  • 🧾 被选中者打包区块、获得奖励,同时消耗对应币龄

  • 📡 区块广播全网,链继续向前推进

🌍 为什么 PoS 被越来越多链采用?

优势

描述

⚡ 高能效

不再消耗大量电力资源,绿色环保

💰 降低门槛

不需要矿机,普通用户也能参与网络维护

🔐 安全性提升

攻击者需囤积大额代币,成本高于 PoW 的 51% 攻击

🧬 多样可扩展

可结合随机数、选票机制等,衍生出多种改进算法(如 DPoS、NPoS 等)

❗ PoS 的潜在问题

  • ❌ 马太效应:币多者更易获得奖励,越富越富

  • ❌ 激励不均衡:节点可能囤币不动,减少流动性

  • ❌ 通胀风险:利息机制设计不当可能导致代币过度发行

这些问题正在通过引入惩罚机制、锁仓期、去中心化验证人制度等方式逐步改善。

🌐 采用 PoS 的主流链项目

项目名称

简介

Ethereum 2.0

全球第二大公链,2022 年完成从 PoW 到 PoS 的重大转型

Peercoin

首个 PoS 区块链,提出币龄概念

Conflux(树图)

中国主导的公链,结合 PoW + PoS 混合共识

Tezos / Cardano / Polkadot

都采用 PoS 或其变种,强调节能与治理机制

Overview of PoW and PoS Consensus Algorithms – Forex Academy

7.1.5、历史证明(Proof of History, PoH)

在区块链世界中,我们习惯了通过“共识”来达成一致:谁来出块?交易顺序怎样?如何验证?而 Solana 提出的历史证明(Proof of History, PoH)则打破了常规:它不是先共识再排序,而是先排序再共识

PoH 为高性能区块链提供了一种“时间可验证”的新思路,让 Solana 成为了当下最快公链之一。

PoH 由 Solana 团队于 2018 年提出,是专为高吞吐量场景设计的共识机制组件。它的核心创新是通过一种可验证延迟函数(VDF)生成时间戳,为网络提供一个无需信任的全球统一时钟

这使得 Solana 不再依赖“最长链”或等待广播的方式来确定时间顺序,而是用密码学手段记录下每一笔交易“发生的顺序”,像一本加密日记一样,谁也无法伪造。

🧠 PoH 如何运作?

可以将 PoH 理解为一台加密时钟机器,其基本工作流程如下:

  1. 🧩 节点不断运行一个递归哈希函数(例如 SHA256),生成连续输出

  2. 📅 每一笔交易、事件、区块哈希都“嵌入”到这条哈希链中

  3. 🔒 任何人都可以验证某事件是否发生在某段“时间哈希”之间

  4. 🧾 通过这些连续的哈希输出,建立事件的全局有序性

这条“时间链”与普通区块链不同:它不是把区块串起来,而是把“发生过的状态”和“经过的时间”以密码学形式组合在一起。

PoH 负责“时间戳”,但 Solana 的真正共识机制是 Tower BFT(类 PBFT 的变体),它配合 PoH 使用。

关键机制如下:

  • 验证者在投票后必须等待一定时间(由 PoH 确认时间流逝)

  • 每次投票都建立在之前投票的基础上,防止“双投”或回滚

  • 投票越靠后越难撤回,提高网络安全性

这种设计能大幅提升 TPS(每秒交易处理量),同时保证共识一致性。

💡 为什么 PoH 是大创新?

传统方式

PoH 模式

先广播,再排序

先排序,再广播

需要网络同步消息,慢

本地可验证,无需网络等待

延迟高,吞吐低

延迟低,吞吐高

通过这套设计,Solana 实现了:

  • ⚡ 超高速交易(理论最高可达 65,000+ TPS)

  • 💸 极低费用(每笔交易只需几分之一美分)

  • 📶 强可扩展性(无需分片即可线性扩展)

✅ 优点

  • 🚀 极致性能:高吞吐 + 低延迟 + 极低成本

  • ⏳ 顺序清晰:通过哈希链精确记录每个事件发生的“先后顺序”

  • 🧩 独立验证:节点可独立校验 PoH 输出,无需等待全网同步

⚠️ 缺点

  • 🧍‍♂️ 中心化担忧:Solana 目前活跃验证者不到 1200 个,远少于以太坊的数万个节点

  • 🔄 硬件要求高:验证者需高配置服务器,普通用户参与门槛较高

  • 🧨 频繁宕机历史:因网络负载爆发或验证器出错,Solana 曾多次短暂停机

7.1.6、权威证明(Proof of Authority, PoA)

权威证明(PoA)是一种不依赖矿工算力和代币激励的共识机制,最早由以太坊联合创始人 Gavin Wood 于 2017 年提出。PoA 通过选定“权威验证人”来生成区块,交易和区块的验证都由这些经过严格身份认证的验证人负责完成。

由于验证人的身份是公开且经过可靠审查的,PoA 特别适合在对参与者身份有明确要求的联盟链和私有链场景下使用。

🌐 采用 PoA的主流链项目

区块链项目

应用场景

Ethereum Kovan 测试网

测试环境,快速验证

xDai 链

稳定支付,低成本

VeChain

供应链管理

沃尔玛物流链

企业内部联盟链

🧠 算法原理

PoA 共识机制的核心在于:

  1. 选举权威验证人:通过身份审查和社区认可,确定一批具备高可信度的验证者。

  2. 验证人负责出块:验证人轮流生成区块,处理网络交易,并获得区块奖励和交易费用。

  3. 声誉机制约束行为:验证人必须保持良好信誉,否则会被链上治理机制移除,甚至面临法律追责。

  4. 治理和监督:验证人之间相互监督,社区或治理机制可以投票替换或剔除不合格验证者,保证网络安全和稳定。

这种机制下,验证人身份真实可靠,形成了一种“法定身份+链上治理”相结合的信任模式。

✅ 优点

  • ⚡ 高效节能:无需耗费大量算力,不进行挖矿,绿色环保

  • 🚀 交易速度快:出块速度快,适合对延迟敏感的应用

  • 👁️ 监督机制强:验证人互相制约,链上治理透明

  • 📜 法律保障:验证人签订法律协议,行为受法律约束,降低恶意攻击风险

❗ 缺点

  • 🕵️ 隐私牺牲:验证人需公开身份,匿名性较低

  • 🏢 中心化倾向:验证者数量有限,权力相对集中,易受法律和政策影响

图片

7.1.7、延迟工作量证明(Delayed Proof-of-Work, dPoW)

延迟工作量证明(Delayed Proof of Work,简称 dPoW) 是一种结合传统工作量证明(PoW)和焚烧证明(PoB)的混合共识机制,旨在提升区块链的安全性、节能性与去中心化程度

dPoW 借用了 PoB 的思路:不是直接用算力竞争出块权,而是用算力「挖」出一种名为 wood(燃木) 的资源,再将它焚烧,来争取出块机会。每燃烧一次 wood,相当于为自己争取一个更高的“出块概率”。

⛏️ 简单说:挖矿 → 积攒 wood → 焚烧 wood → 赢得出块机会。

这种机制打破了传统 PoW 中“大矿池霸权”的局面,让“小矿工”只要够勤快,也能出块,极大地提升了网络的公平性与参与度。

🌐 采用 dPoW的主流链项目

项目

简介

Komodo

第一个采用 dPoW 的区块链平台,致力于提升多链系统的安全性。通过将数据锚定在比特币链上,提供类比特币级别的安全保护。

核心机制解析:

🔥 Wood 燃烧机制

  1. 矿工通过算力挖掘获取 wood(燃木),但 wood 本身无法交易

  2. 当 wood 达到一定数量时,矿工可以选择燃烧 wood 来获得下一轮的出块机会

  3. 燃烧越多,出块概率越高,但不是绝对。确保小矿工也有机会获胜,维护去中心化。

🔗 与比特币区块链绑定(安全加持)

dPoW 使用一种 跨链公证机制 将自己的区块锚定到比特币等主链上,大幅提升安全性:

  • 系统中设有 64 个 公证人节点(Notary Nodes),由持币人投票选出;

  • 公证人将 dPoW 区块的哈希值写入比特币交易中;

  • 一旦完成锚定,该区块就等于“被比特币保护”,篡改几乎不可能,实现类比特币级别的安全性

⚙️ 双模式挖矿:兼顾公平与效率

dPoW 网络根据公证人是否激活,切换挖矿机制:

  1. No Notary 模式:任何节点均可挖矿,类似普通 PoW。

  2. Notaries Active 模式

    • 激活的公证人可用最低难度出块;

    • 其他公证人难度 ×10;

    • 普通节点难度 ×100;

    • 这样保证公证人主要产块,提升效率,同时保持公正性。

✅ 优点

  • 🌿 节能环保:相比传统 PoW,wood 燃烧是逻辑层“燃烧”,节省算力;

  • 🛡️ 安全增强:通过锚定 Bitcoin 等强链,获得更高安全保障;

  • ⚖️ 公平参与:打破算力壁垒,小矿工也有机会出块;

  • 🔄 跨链保护:可以为其它链“背书”,提供外部安全性支持。

❌ 缺点

  • 🧬 机制复杂:需要理解和协调 wood 燃烧、公证人、锚定等多种机制;

  • ⚙️ 仅适用于 PoW / PoS 链:非工作量或权益证明链无法接入;

  • 📉 挖矿难度配置敏感:若哈希率配置不当,可能导致网络失衡。

7.1.8、授权 PoS(DPoS,Delegated Proof-of-Stake)

DPoS(Delegated Proof of Stake),中文叫股份授权证明机制,是由 BitShares 创始人 Dan Larimer(BM) 于 2014 年提出的一种共识机制。

这是一种将「投票选代表」的民主理念引入区块链的机制,和 PoS 不同,普通用户不直接出块,而是选出一批“代表”来出块

可以把它理解为区块链版的“人民代表大会制度”。

想象你在一家公司:

  • 公司有 1000 名员工,每人拥有不同数量的公司股份;

  • 每隔一段时间,大家都可以投票选出10 名“领导人”

  • 每张票的分量和你持有的股份数量成正比(持股越多,影响越大);

  • 最后得票最多的 10 个人成为“出块代表”,负责维护公司运营(即出块);

  • 如果某位领导摸鱼、不干活(未按时出块),那就会被投票踢出,换上新的人。

这就是 DPoS 的运行逻辑!

🌐 采用 DPoS 的主流链项目

项目

简介

BitShares

最早的 DPoS 实现者,由 BM 创建

Steemit

区块链内容平台,曾是高流量博客

EOS

区块时间达 0.5 秒,追求高 TPS

Lisk

面向 JavaScript 开发者的 DApp 平台

Ark

侧重互操作性和模块化架构

✅ 优点

  • 🌿 节能环保:无需拼算力,大幅降低能耗;

  • ⚡ 出块速度快:例如 EOS 的区块时间仅 0.5 秒;

  • 🗳️ 民主机制:持币者通过投票参与治理;

  • 🛠️ 升级灵活:少数代表节点更容易推动网络更新。

❌ 缺点

  • 🧍 略中心化:出块权集中在少数“超级节点”手中;

  • 💰 富者恒富风险:大户可投票使自己当选,垄断出块权;

  • 🤖 可能被操纵:节点间可形成“投票联盟”,影响公平性(如 EOS 社区曾被诟病)。

blockchain]共識演算法DPoS(Delegated Proof of Stake) - john - Medium

7.1.9、实用拜占庭容错(Practical Byzantine Fault Tolerance, PBFT)

PBFT,中文叫实用拜占庭容错算法,是一种在部分节点可能作恶的前提下,仍能达成共识的机制

它来源于经典的“拜占庭将军问题”:

多个将军围攻一座城市,他们必须协调行动,但部分将军可能是叛徒,怎么才能确保忠诚的将军达成一致决策?

PBFT 就是这个问题的实际解法之一,而且效率非常高!

⚙️运作机制

一个 PBFT 系统中包含:

  • 🧑‍✈️ 主节点:负责接收客户端请求并协调共识;

  • 🧑‍✈️ 备份节点:监听主节点广播并进行确认;

  • 👩‍💻 客户端:用户,发起请求的实体。

步骤:

  1. 客户端发送请求给主节点(Leader)。

  2. 主节点广播请求给所有副本节点(Replica)。

  3. 节点们互相确认消息(准备阶段),大家先确认收到请求。

  4. 节点们再次确认(提交阶段),确认大家准备好了。

  5. 达成共识,执行请求,并把结果返回给客户端

⚙️共识流程

1️⃣ 客户端将请求发送给主节点
2️⃣ 主节点将请求广播给所有备份节点
3️⃣ 所有节点执行操作,并将结果返回给客户端
4️⃣ 客户端收到 f+1 个一致的响应后,认为该操作有效!

其中 f 是系统中可容忍的最大作恶节点数。PBFT 至少需要 3f + 1 个节点来保证安全。如果总节点数是 N,那么它能容忍最多 f = (N-1)/3 个坏节点

🌐 采用 PBFT 的主流链项目

项目

简介

Hyperledger Fabric

企业级联盟链平台

Stellar

主打跨境支付和快速交易

Ripple

国际汇款网络

Dispatch

支持智能合约和数据共享的企业链

PBFT 在联盟链、许可链场景尤其受欢迎。

✅ 优点

  • ⚡ 速度快:无需挖矿,出块几乎实时;

  • 📈 高吞吐:适合高并发、高性能场景;

  • 🔒 安全性高:可抵抗部分节点作恶(拜占庭容错);

  • 🔧 可扩展性好:节点数可控,易管理。

❌ 缺点

  • 🌐 只适用于私有链/联盟链:节点必须是“可信”的;

  • 🔊 通信复杂度高:所有节点要频繁通信,节点数多时效率会降低;

  • 🧠 算法复杂:部署和维护成本相对较高。

7.1.10、授权拜占庭容错(dBFT Delegated Byzantine Fault Tolerance,dBFT)

授权拜占庭容错(Delegated Byzantine Fault Tolerance,dBFT)是由中国区块链项目 NEO(原名小蚁) 提出的共识算法。

它结合了经典的拜占庭容错(PBFT)和权益证明(PoS)机制的优点,专门为金融级应用打造,解决了 PoW 和 PoS 难以实现“最终一致性”的痛点。

⚙️运作机制

dBFT 体系中有两类参与者:

  • 普通用户:基于持币比例投票选出“记账节点”(代表);

  • 记账节点(代表):专业的区块验证者,负责生成区块和达成共识。

共识流程:

1️⃣ 代币持有者投票,选出一批 代表(验证者)节点,这些节点负责维护网络。
2️⃣ 系统随机从代表中选出一名发言人,由他提出新区块方案
3️⃣ 其他代表节点根据拜占庭容错规则对方案进行表决
4️⃣ 若超过 66% 代表同意,区块被添加链上;否则重新选发言人,重复流程

dBFT 就像一个班级(链):

  • 全班同学(代币持有人)选出几个班干部(代表节点);

  • 班干部开会(PBFT)决定要做什么事情(区块确认);

  • 就算有几个坏班干部捣乱,班级也能正常运转。

✅ 优点

  • ⚡ 速度快:平均生成一个区块只需 15-20 秒

  • 🚀 高吞吐:支持大量交易,适合金融场景

  • 🌱 节能环保:无挖矿,无大量算力消耗

  • 🔄 无分叉:确保链上数据最终一致性和稳定性

❌ 缺点

  • 🕵️‍♂️ 需要实名身份,缺乏匿名性

  • 🌐 代表节点有可能过多,存在多个根链风险

  • 🔄 竞争激烈,人人争当代表,治理压力较大

7.1.11. 轮流拜占庭容错(Rotation Practical Byzantine Fault Tolerance, RBPFT)

FISCO BCOS 2.0 技术文档— FISCO BCOS 2.0 v2.11.0 文档

轮流拜占庭容错(Rotation Practical Byzantine Fault Tolerance,RBPFT)是一种改进的拜占庭容错算法,基于经典的 PBFT,但对节点角色进行了明确分工。

RBPFT 将网络节点分为两类:

  • 共识节点:执行完整的 PBFT 共识流程,拥有轮流出块的权限

  • 验证节点:不直接参与共识,只负责验证共识节点的行为和出块合法性

经过若干轮共识后,验证节点会轮流替换共识节点,保持网络活力和安全。

⚙️工作机制

  • 节点角色轮流切换,共识节点与验证节点互换职责

  • 通过这种方式,减少了每轮共识参与节点的数量,降低了通信复杂度

为什么要轮换主节点?

  • 在传统 PBFT 中,主节点负责发起提案,但如果主节点作恶或故障,会拖慢共识甚至卡住网络。

  • RBPFT 通过让主节点按顺序轮换,每轮换一个新主节点来发起提案,降低单点风险,提高系统鲁棒性。

想象一群朋友轮流当队长,每个人依次领导一次“做决定”,大家都参与表决,就算某个人偶尔不靠谱,也不会一直当队长拖累大家。

Fisco-BCOS 区块链平台采用了 RBPFT 作为其核心共识机制

✅优点

  • 📡 信息传播速度快,比传统的 gossip 机制更高效

  • 🛠 消息冗余少,带宽负担小,节点带宽需求为 O(1),扩展性强

❌缺点

  • ⚠️ 中间节点可能成为单点故障,需要额外容错策略保障稳定性

  • 🌐扩展性有限,PBFT 类算法本身消息复杂度高(大约节点数平方级),节点多了通信开销大,适合节点数较少的网络。

7.1.12. AptosBFT

AptosBFT 是一种基于经典拜占庭容错算法 PBFT 的衍生共识协议,灵感来源于 HotStuff 共识算法,而 HotStuff 又是在 PBFT 基础上发展起来的。

它采用类似“洋葱剥皮”或“俄罗斯套娃”的设计理念,分层推进共识过程,显著简化了通信复杂度。

图片

⚙️工作机制

  • 领导者(Leader)负责广播建议的区块(投票请求),

  • 普通节点只需与领导者通信,将自己的投票发送回领导者

  • 领导者收集节点投票后,推动共识继续进行

这种设计避免了传统 PBFT 中节点之间互相广播消息的繁琐,提升了效率和扩展性。

AptosBFT 是 Aptos 区块链采用的核心共识机制,致力于提供安全、高效且可扩展的链上交易处理。

保证去中心化,AptosBFT 主要靠这些设计:

  1. 轮换领导者(Leader Rotation)
    领导权不停换,没人能长期掌控“话语权”,防止权力集中。

  2. 公开且多样的验证者集合
    验证者节点不是固定死一批,社区或代币持有者可以动态加入、退出或被选举,增加节点多样性。

  3. 门槛和选举机制
    通过代币质押、信誉评分、治理投票等机制公平选出验证者,避免少数大户垄断。

  4. 拜占庭容错机制
    即使部分节点作恶或宕机,系统仍能正常运行,保证整体网络稳定性和抗审查性。

  5. 去中心化治理
    验证者和代币持有者共同参与协议升级、参数调整,避免单点控制。

AptosBFT 把传统 BFT 变得“更轻、更快、更公平”,同时保证安全和去中心化,才真正能用在大规模公链上

|  八、总结

图片

图片

如果跳出纯粹技术和开发者的视角,将政治学和经济学的理念融入对共识算法的理解,或许我们会发现更多创新的可能性。比如,借鉴公共私营合作模式(PPP)的思想设计共识机制,既能实现对恶意行为的惩戒和约束,又能最大化资源的利用效率,节约算力开销,达到一种共赢且可持续的共识生态。

共识机制是区块链技术的基石,正如政治体系中的规则保障社会秩序一样,它解决了分布式网络中“信任”的难题,确保各节点间数据的一致性和安全性。通过抵御恶意节点的攻击与篡改,它维护了整个系统的稳定和公正。更重要的是,共识机制有效避免了“数字双花”问题,同时推动了系统的吞吐量和处理效率。

然而,需要深刻认识到,没有一种共识算法是完美的。它们在安全性、高效性和去中心化之间往往存在权衡。正如政治学中没有完美的政体一样,区块链共识算法也需要根据具体场景灵活选择。可信赖的环境适合 Paxos 或 RAFT,联盟链适合 PBFT,开放的公链则多采用 PoW、PoS 或 Ripple 等机制。最好的共识机制不是绝对意义上的最优,而是最契合用户需求与应用场景的那个。

换言之,共识机制不仅是技术问题,更是一场关于信任、权力和资源分配的社会实验。它反映了我们如何在无中心的环境下,通过规则设计协调利益、化解冲突,塑造出一种新的共治秩序。未来的共识算法,或许正是政治智慧与经济机制的完美结合,开启区块链更加公平、高效与包容的新篇章。

码因,愿做你通向智能未来的桥梁。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐