公链常用的共识算法

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

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

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)的变体,结合了分片技术。

值得注意的是,一些公链会随着时间的推移而改变其共识算法,以适应技术和网络需求的变化。例如,以太坊从工作量证明(PoW)过渡到了权益证明(PoS)。同时,新的公链和共识算法持续出现,推动着区块链技术的边界。

相关推荐
迷迭所归处14 分钟前
C++ —— 关于vector
开发语言·c++·算法
leon62543 分钟前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林43 分钟前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
Navigator_Z1 小时前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表
Aic山鱼1 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
天玑y2 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
sjsjs112 小时前
【数据结构-一维差分】力扣1893. 检查是否区域内所有整数都被覆盖
数据结构·算法·leetcode
redcocal2 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
码了三年又三年2 小时前
【算法】滑动窗口—找所有字母异位词
算法
山脚ice2 小时前
【Hot100】LeetCode—72. 编辑距离
算法·leetcode