公链常用的共识算法

简介: 公链常用的共识算法

1. 工作量证明(Proof of Work, PoW)

  • 工作原理:要求节点(矿工)解决一个数学难题,这个过程称为挖矿。第一个解决难题的矿工将有权添加一个新的区块到区块链上,并获得一定数量的加密货币作为奖励。
  • 优势
  • 安全性高,因为篡改历史记录需要超过50%的网络算力,成本极高。
  • 去中心化,任何拥有足够算力的人都可以参与。
  • 劣势
  • 极高的能源消耗
  • 交易确认时间较长
  • 随着专业挖矿设备的普及,小型矿工越来越难与大型矿池竞争,增加了中心化风险。

2. 权益证明(Proof of Stake, PoS)

  • 工作原理:节点根据持有代币的数量和时间来决定其验证交易和创建新区块的概率。这减少了对能源的消耗,因为不需要大量计算。
  • 优势
  • 显著降低了能源消耗。
  • 通常具有更快的交易确认时间。
  • 劣势
  • “无利益损失”问题,理论上可能造成网络分叉。
  • “富者愈富”现象,代币持有量多的节点有更大机会验证交易,可能导致财富集中。

3. 授权权益证明(Delegated Proof of Stake, DPoS)

  • 工作原理:持币人可以将其权益“委托”给代表,由这些代表负责创建区块和维护网络安全。
  • 优势
  • 极高的交易处理速度,例如EOS可以达到数千TPS。
  • 增加了去中心化,因为任何持币人都可以参与共识过程。
  • 劣势
  • 中心化风险,如果少数代表控制了网络。
  • 代表的道德风险,需要持币人信任他们不会滥用权力。

4. 实用拜占庭容错(Practical Byzantine Fault Tolerance, PBFT)

  • 工作原理:基于消息传递的算法,每个节点都必须达成一致才能确认交易,能够容忍恶意节点的存在,只要不超过总节点数的三分之一。
  • 优势
  • 高效,尤其在节点数量有限的情况下。
  • 能够处理拜占庭故障,即节点可能发送错误信息或拒绝响应。
  • 劣势
  • 不适合大规模去中心化网络,因为性能随节点数量增加而下降。
  • 需要所有节点预先知道,不适合完全开放的公链环境。

5. 拜占庭容错(Byzantine Fault Tolerance, BFT)

  • 工作原理:类似于PBFT,但有多种变体,如HotStuff和Tendermint,这些变体优化了性能和效率。
  • 优势
  • 快速的交易确认和高可用性。
  • 能够容忍恶意行为而不崩溃。
  • 劣势
  • 同样受限于节点数量,不适合大规模去中心化网络。
  • 需要预知的节点集,限制了其在公链上的应用。

6. 随机抽样共识(Randomized Consensus)

  • 工作原理:通过随机选择节点参与共识过程,增加去中心化和安全性。
  • 优势
  • 减少了中心化风险。
  • 增强了网络的安全性。
  • 劣势
  • 实现复杂,可能引入额外的延迟。
  • 随机性可能受到攻击,如“随机性攻击”。

7. 空间证明(Proof of Space, PoSpace 或 PoC)

  • 工作原理:节点通过提供硬盘空间作为抵押品参与共识,类似于PoW但用存储空间代替计算力。
  • 优势
  • 更环保,因为不需要大量电力。
  • 降低了进入门槛,硬盘比专用挖矿设备更容易获得。
  • 劣势
  • 技术成熟度较低,可能存在安全漏洞。
  • 随着技术进步,硬盘成本降低,可能导致中心化风险。

8. 时间证明(Proof of Time, PoTime)

  • 工作原理:通常与PoS或PoC结合使用,确保节点在特定时间内保持活跃。
  • 优势
  • 增加了公平性和安全性。
  • 防止节点突然离线或作弊。
  • 劣势
  • 实现和验证机制复杂,可能引入新的攻击面。

下面列举了一些知名公链及其所使用的共识算法:

1. 比特币(Bitcoin)

  • 共识算法:工作量证明(Proof of Work,PoW)

2. Ethereum

  • 当前共识算法:权益证明(Proof of Stake,PoS);之前使用工作量证明(PoW),在The Merge(合并)之后,正式转向PoS。
  • 升级计划:Casper协议,旨在进一步完善权益证明机制。

3. Cardano(ADA)

  • 共识算法:Ouroboros,这是一种权益证明(PoS)的变体。

4. Polkadot(DOT)

  • 共识算法:Nominated Proof of Stake(NPoS),一种授权权益证明(Delegated Proof of Stake,DPoS)的变体。

5. Algorand

  • 共识算法:Pure Proof of Stake(PPoS),一种权益证明(PoS)的变体,结合了拜占庭容错(BFT)机制。

6. Cosmos(ATOM)

  • 共识算法:Tendermint Core,基于拜占庭容错(BFT)的权益证明(PoS)。

7. Tezos(XTZ)

  • 共识算法:Formalized Proof of Stake(FPoS),一种权益证明(PoS)的变体,强调形式化验证。

8. EOS

  • 共识算法:Delegated Proof of Stake(DPoS),一种授权权益证明的实现。

9. NEO

  • 共识算法:Delegated Byzantine Fault Tolerance(dBFT),基于拜占庭容错(BFT)的变体。

10. Stellar(XLM)

- **共识算法**:Federated Byzantine Agreement System(FBAS),一种拜占庭容错(BFT)的变体,旨在提供更高效的共识。

11. Tron(TRX)

- **共识算法**:Delegated Proof of Stake(DPoS),与EOS类似。

12. Solana

- **共识算法**:History Proof of Stake(HPoS),结合了权益证明(PoS)和时间证明(Proof of History,PoH)。

13. Avalanche

- **共识算法**:Snowball+,一种新颖的拜占庭容错(BFT)变体。

14. Binance Smart Chain(BSC)

- **共识算法**:Delegated Proof of Stake(DPoS),与EOS和Tron相似。

15. Near Protocol

- **共识算法**:Nightshade,一种权益证明(PoS)的变体,结合了分片技术。

值得注意的是,一些公链会随着时间的推移而改变其共识算法,以适应技术和网络需求的变化。

相关文章
|
2月前
|
算法 Go 分布式数据库
构建高可用的分布式数据库集群:使用Go语言与Raft共识算法
随着数据量的爆炸式增长,单一数据库服务器已难以满足高可用性和可扩展性的需求。在本文中,我们将探讨如何使用Go语言结合Raft共识算法来构建一个高可用的分布式数据库集群。我们不仅会介绍Raft算法的基本原理,还会详细阐述如何利用Go语言的并发特性和网络编程能力来实现这一目标。此外,我们还将分析构建过程中可能遇到的挑战和解决方案,为读者提供一个完整的实践指南。
|
2月前
|
分布式计算 算法
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式系统设计之共识算法—2PC、3PC、 Paxos
79 1
|
2月前
|
存储 分布式计算 负载均衡
浅谈分布式共识算法概念与演进
浅谈分布式共识算法概念与演进
79 0
|
2月前
|
存储 算法 NoSQL
分布式一致性与共识算法(一)
分布式一致性与共识算法(一)
77 0
|
算法
raft共识算法动态演示
raft共识算法动态演示
58 0
|
存储 算法 NoSQL
分布式一致性与共识算法(一)
分布式一致性与共识算法(一)
135 1
|
机器学习/深度学习 传感器 算法
基于共识的捆绑算法CBBA实现多无人机多任务调度附matlab代码
基于共识的捆绑算法CBBA实现多无人机多任务调度附matlab代码
|
算法 索引
共识算法之Raft算法模拟数
共识算法之Raft算法模拟数
82 0
|
存储 算法 安全
Raft 共识算法4-选举限制
本节通过添加对哪些服务器可以被选为领导者的限制来完成 Raft 算法。 该限制可确保任何给定任期的领导者都包含之前任期已提交的所有条目(@fig3 中的领导者完整性(Leader Completeness)属性)。 考虑到选举限制,然后我们使提交规则更加精确。 最后,我们展示了领导者完整性的证明草图,并展示了它如何保证复制状态机的正确行为。
107 0
|
2天前
|
算法 数据安全/隐私保护
基于GA遗传优化算法的Okumura-Hata信道参数估计算法matlab仿真
在MATLAB 2022a中应用遗传算法进行无线通信优化,无水印仿真展示了算法性能。遗传算法源于Holland的理论,用于全局优化,常见于参数估计,如Okumura-Hata模型的传播损耗参数。该模型适用于150 MHz至1500 MHz的频段。算法流程包括选择、交叉、变异等步骤。MATLAB代码执行迭代,计算目标值,更新种群,并计算均方根误差(RMSE)以评估拟合质量。最终结果比较了优化前后的RMSE并显示了SNR估计值。
16 7