Consensus共识机制

“共识机制”一词常常泛指“权益证明”、“工作量证明”或“权威证明”协议。 但是,它们只是共识机制中用于防御“女巫攻击”的部分。 共识机制是由一整套想法、协议和激励构成的体系,使得一系列分布式节点能够就区块链状态达成一致。

对于以太坊区块链来说,达成共识的过程是标准化的,达成共识意味着全网络中至少 66% 的节点就网络的全局状态达成一致。

以太坊使用被称为 Gasperopen in new window 的共识机制,该机制结合了 Casper 友好的最终确定性工具权益证明open in new windowGHOST 分叉选择规则open in new window

什么是共识机制

共识机制是一整套由协议、激励和想法构成的体系,使得整个网络的节点能够就区块链状态达成一致。

以太坊采用基于权益证明的共识机制,其加密经济的安全性来自于对质押人的锁定资本实施的一系列奖励和罚没措施。 这种激励体系鼓励各个质押人诚信运行验证者节点,并惩罚那些有不良行为的质押人,让攻击网络的行为付出极其高昂的代价。

还有一个协议,用于规范如何选择诚实的验证者,让它们提议或验证区块、处理交易并投票支持其链头部的视图。 极少数情况下,如果链头部附近的同一位置存在多个区块,就会利用一个分叉选择机制来选择区块组成“最重的”链。区块权重根据为相应区块投票的验证者数量进行计算,并由验证者质押的以太币余额进行加权。

有些关于共识的重要概念并未在规范中明确定义,例如由潜在“带外社交协调”提供的额外安全保障,可作为防止网络攻击的最后防线。

这些部分共同组成了共识机制。

共识机制类型

基于工作量证明PoW

以太坊网络最初采用一种称为工作量证明 (PoW) 的共识机制。 这种机制允许以太坊网络的节点就以太坊区块链上记录的所有信息的状态达成共识,并防止某些产生经济影响的攻击。 然而,以太坊在 2022 年终结了工作量证明并开始采用权益证明。

工作量证明是一种基础性算法,它为矿工在工作量证明区块链上进行的工作设置难度和规则。 挖矿就是“工作”本身。 挖矿是向区块链中添加有效区块。

以太坊交易处理到区块中。 在现已弃用的工作量证明以太坊中,每个区块包含:

  • 区块的难度,例如:3,324,092,183,262,715
  • 混合哈希(mixHash),例如:0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29
  • nonce--例如:0xd3ee432b4fb3d26b

这些区块数据与工作量证明直接相关。

工作量证明协议 Ethash 要求矿工经过激烈的试错竞赛,找到一个区块的随机数。 只有具备有效随机数的区块才能加入区块链中。当矿工们争相创建区块时,他们会反复通过一个数学函数放置一个数据集,此数据集只能通过下载和运行整条区块链获得(矿工们都是这样做的)。 该数据集用来产生一个低于目标随机数的混合哈希,而此目标随机数由区块难度决定。 难度决定了哈希的目标值。 目标值越小,有效哈希的集合就越小。做到这些最好的方式是试错。

与权益证明对比

从更高层面上看,权益证明和工作量证明的最终目标相同,即帮助去中心化网络安全地达成共识。 但它们在实现方式和人员上有些不同:

  • 权益证明 (PoS) 让质押 ETH 不再需要算力。
  • 权益证明 (PoS) 将矿工替换为验证者。 验证者通过质押他们的 ETH 来创建新的区块。
  • 验证者不会竞争创建区块,而是由算法随机选择。
  • 终局性(最终确定性)是很清晰的:在特定的检查节点,如果 2/3 验证者确定了区块,这个区块将被视为最终状态。 验证者必须在区块压上自己全部质押,因此如果他们试图串通更改区块链,他们就会失去他们的全部质押。

权益证明PoS

权益证明 (PoS) 是支撑以太坊共识机制的基础。 以太坊于 2022 年启动了权益证明机制,这是因为和原先的工作量证明架构相比,以太坊更安全、能耗更低并且更利于实现新的扩容解决方案。

权益证明是一种证明验证者已经将有价值物品质押到网络上的方法。如果验证者有失信行为,这些物品可能会被销毁。 在以太坊的权益证明机制下,验证者明确地通过以太币将资产质押到以太坊上的智能合约中。 之后,验证者负责检查在网络上传播的新区块是否有效,偶尔自己也创建和传播新区块。 当他们试图欺骗网络(例如,在应该发送一个区块时提出多个区块,或者发送冲突的认证)时,他们质押的部分或全部以太币可能会被销毁。

操作

要想作为验证者参与,用户必须向存款合约中存入 32 以太币运行三种独立的软件:执行客户端、共识客户端和验证者客户端。 存入以太币时,用户会进入一个激活队列,限制新验证者加入网络的速度。 激活后,验证者将从以太坊网络上的对等节点接收新区块。 区块中的交易会被重新执行,以检查提议的以太坊状态变更是否有效,并检查区块的签名。 然后验证者在整个网络上发送支持该区块的投票(称为认证)

在工作量证明中,生成区块的时间是由挖矿难度决定的,而在权益证明中,节奏是固定的。 权益证明以太坊中的时间分为时隙(12 秒)和时段(32 个时隙)。 在每个时隙中随机选择一位验证者作为区块提议者。 该验证者负责创建新区块并发送给网络上的其他节点。 另外在每个时隙中,都会随机选择一个验证者委员会,通过他们的投票确定所提出区块的有效性。 将验证者集合划分为若干个委员会对于保持网络负荷易于管理非常重要。 委员会将验证者集合分成不同部分,以便每个活跃的验证者在每个时段都会出示证明,但并不在每个时隙都这样做。

这玩意也太多了,傻逼,官网以后再说吧open in new window

权威证明 PoA

权威证明(PoA)是一种基于声誉的共识算法,是权益证明的修改版本。它主要用于私有链、测试网和本地开发网络。PoA是一种基于声誉的共识算法,它需要信任一组授权签名者来生成区块,而不是PoS中基于利益的机制。

共识算法实现

以太坊和币安链现在共有四种共识算法: ParliaBeaconEthashClique

Parlia

  • 类型: 权益证明(Proof of Stake, PoS)的变体
  • 使用场景: 用于 Binance Smart Chain (BSC)
  • 工作原理: Parlia 是一种基于区块生产者选举的共识机制,类似于传统的 PoS 系统,但其设计目的是为了实现更高的吞吐量和更快的区块确认速度。在 Parlia 中,验证者通过投票选出区块生产者,每个区块生产者会按顺序轮流打包区块。被选中的验证者负责验证交易并生成新区块。
  • 优点: 高吞吐量、低延迟,适合高频交易场景。
  • 缺点: 集中化的风险较高,因为少量验证者可以控制区块生产。

Beacon (信标链共识)

  • 类型: 权益证明(Proof of Stake, PoS)
  • 使用场景: 以太坊 2.0
  • 工作原理: Beacon Chain 是以太坊 2.0 的核心,它引入了 PoS 机制,并负责协调以太坊网络中的各个分片链。在信标链中,验证者通过抵押 ETH 来参与共识,他们被随机分配到验证和提议新区块的角色。验证者根据正确性获得奖励,并因错误行为(如双重签名或恶意操作)被惩罚。
  • 优点: 更高的可扩展性和能效,逐步淘汰 PoW 机制,减少能源消耗。
  • 缺点: 过渡过程较长,网络完全过渡到以太坊 2.0 需要时间。

Ethash

  • 类型: 工作量证明(Proof of Work, PoW)
  • 使用场景: 以太坊 1.0 和部分分叉网络
  • 工作原理: Ethash 是以太坊 1.0 使用的 PoW 算法,它要求矿工通过计算哈希值来找到符合要求的区块头,这需要消耗大量的计算资源。Ethash 算法设计中强调内存使用,以抵御 ASIC(专用集成电路)设备的垄断,确保矿工可以使用通用硬件(如 GPU)进行挖矿。
  • 优点: 通过消耗算力保障网络安全,抗 ASIC 性较强。
  • 缺点: 能耗较高,扩展性有限,低效。

Clique

  • 类型: 权威证明(Proof of Authority, PoA)
  • 使用场景: 以太坊私链、测试网(如 Goerli 测试网)
  • 工作原理: Clique 是一种 PoA 共识算法,区块生产者(称为授权者)是预先选定的验证者,他们轮流生成区块。Clique 通过减少随机性和竞争来加快区块生产速度。它非常适合于测试网或私有链,因为它不依赖于挖矿算力,只需由可信任的节点来管理和生成区块。
  • 优点: 简单且快速,非常适合非公共环境,如企业内部区块链。
  • 缺点: 去中心化程度较低,节点需要完全信任,风险较高。
Last Updated:
Contributors: liushun-ing