全栈工程师-基础:共识算法知多少

共识算法,简单理解是通过算法让参与其中成员共同达成共识。

在计算机里共识算法主要在分布式系统中通过参与之中的节点,对数据或者状态达成一致的方法。

那是不是可以理解为参与人,按照认可的规则来就好。

你可能会想到,那石头剪刀布游戏,参与方也认同这个规则算法,这个算不算共识算法?

不算。

虽然它涉及多个参与者之间的决策过程,但它的目的是决定一个赢家,而不是在分布式系统中达成一致的状态。

共识算法强调什么

  • 一致性:确保所有节点在任何时间点都能对某一状态或数据达成一致。
  • 容错性:能够容忍一定数量的节点故障或恶意节点的存在,并且系统仍然能够正常运行。
  • 去中心化:没有单一的控制节点,所有节点都平等参与共识过程。
  • 安全性:防止恶意节点的攻击,确保数据的完整性和不可篡改性。

其实这些核心也正是在分布式系统里的最基本保障。

有了大概的理解和概念后,看看现在常用的共识算法都有哪些,这些共识算法不会进行详细展开,因为每一种共识算法,都有复杂的算法基础和相关论文支持,根据汇总的常用算法可以进行深入论文学习。

共识算法有哪些

工作量证明(PoW)

  • 参与者通过解决复杂问题(如数学难题)来证明他们的工作量,从而获得权利执行某些操作。这种方法确保系统不易被攻击。
  • 例如用于防止垃圾邮件和保护分布式网络的安全性。

权益证明(PoS)

  • 持有更多资源(通常是加密货币)的用户,拥有更大的影响力和决策权。这种方法可以确保系统参与者有利益维护系统的稳定和安全。
  • 最常见应用于加密货币的区块链网络中,如以太坊的Casper协议,通过持有以太币来参与验证和安全维护网络。

委托权益证明(DPoS)

  • 用户通过投票选出少数代表(通常是验证者)来执行决策,以提高系统的效率和扩展性。
  • 应用场景例子:用于去中心化的社交媒体平台,如Steemit,用户可以通过持有代币来投票选择内容和平台发展方向的代表。

拜占庭容错(BFT)

  • 系统通过多轮投票确保即使在存在恶意节点的情况下也能达成一致,增强系统的安全性和可靠性。
  • 广泛用于航空航天、军事和金融领域的分布式系统,确保在存在恶意节点的情况下系统仍能正常运行。

实用拜占庭容错(PBFT)

  • 预选的节点通过多轮投票快速达成共识,适用于需要高效和低延迟的分布式系统。
  • 应用场景例子:企业内部的分布式数据库管理系统,如Ripple的XRP Ledger,通过PBFT算法快速确认和执行跨国支付交易。

以下这几个更多用在区块链相关的共识算法上,可以稍微了解下证明容量(PoC)、证明燃烧(PoB)和证明时间和空间(PoST)是共识算法,通过提供存储空间、销毁资源或等待时间来获得操作权。PoC鼓励资源共享,PoB减少资源供应防止滥用,PoST结合存储和时间增加系统安全性,确保资源公平分配。这些算法在区块链和其他分布式系统中广泛应用,如分布式存储、在线服务和云存储。

如前面介绍,共识算法的核心是确保分布式系统中各个节点达成一致,即使有部分节点可能出现故障或恶意行为,基于这些特性,常常在区块链、分布式数据库、云存储等领域使用。有这么一个基础,对后续一些共识领域的理解还是很有帮助的,当然每一个共识算法在具体应用中都需要深入研究和学习,我们文中介绍更多还是先有个核心原理和概念的认知。