其乐融融的IT技术小站

共识算法:计算机如何共同达成协议并保持安全

译者 | 刘涛

审校 | 重楼

在去中心化网络的世界里,计算机需要在没有中心权威控制的情况下协作。共识算法是帮助它们合作并找到共同基础的关键所在。这些算法确保网络中的所有节点对真实信息以及虚假信息地达成一致,以保证数据安全和交易有效性。

在这篇博客中,我们将以简单的术语探索共识算法的奥秘。我们将了解这些智能系统如何确保所有计算机状态一致,以及它们如何防范欺诈性攻击。做好准备,来发现计算机如何在一个没有中心权威控制的数字世界中团队协作并保持安全!

共识算法

简单来说,共识算法就是计算机网络的节点在某些问题上达成一致,比如共享数据库的状态或交易的有效性。它确保网络中的所有计算机保持状态一致,平稳协作。

实例展示

想象这样一个场景,一群朋友在网络文件夹中共享一份数字文档。所有人都可以访问这个文件并对其进行修改。然而,为避免混乱,他们需要就文档的同一个版本达成一致

共识算法的实际应用

还是以上述一群朋友共享数字文档的场景为例:

  1. 爱丽丝对文档提出了修改建议,在文末添加一个新段落。
  2. 网络中的另外两个朋友鲍勃和查理看到了爱丽丝的建议,并表示赞同。他们对这项修改投了赞成票。
  3. 由于大多数朋友(超过一半)同意这一调整,所以小组成员达成共识,对文档进行了相应修改。
  4. 现在,所有朋友都可以看到更新后的版本,他们知道这个版本已经被公认为有效文件了。

在这个例子中,朋友们通过对文档修改建议进行投票,使用了一个简单的共识算法。多数人的意见统一才能保证文档的一致性,每个人都在处理相同的信息。

在更复杂的系统中,比如区块链网络(例如比特币或以太坊),共识算法在验证和保障交易的安全性方面发挥着至关重要的作用,而不需要中心权威控制。算法确保网络中的所有节点就交易顺序和有效性达成一致,维护区块链和参与者之间共享信息的完整性。

以太坊中的权益证明(PoS)共识算法

在 PoS 共识算法中,根据“抵押"或冻结的代币数量(以太币)来选择校验者,从而创建新的区块并保障网络安全。一个校验者抵押的以太币数量越多,其被选中提议和验证区块的机会就越大。

工作原理

  1. 校验者在 PoS 系统中,部分节点被选为校验者。要成为校验者,节点需要"抵押"一定数量的加密货币(在这里是以太币)作为担保。抵押的以太币越多,被选为校验者的机会就越大。
  2. 区块提议者校验者轮流成为“区块提议者”来创建新的交易区块。抵押数量最高的校验者通常有更高的机会被选为区块提议者。
  3. 区块验证一旦一个校验者提出新的区块,其他校验者就会检查区块内交易的合法性,确保它们符合网络规则,并且不是欺诈性行为。
  4. 达成共识和最终确定如果大多数校验者同意提议的区块有效,它就会被添加到区块链中。共识是通过这些校验者的协议达成的,因为他们有经济动机诚实行事,否则他们就会面临失去抵押代币的风险。

实例展示

想象一群朋友运营一个类似以太坊的网络,来跟踪他们的共同费用和交易。他们使用权益证明(PoS)来达成共识。

1. 校验者在他们的网络中,每一个人都要拿出自己一定数量的以太币作抵押,才能成为校验者。爱丽丝抵押了10个以太币,鲍勃抵押了5个以太币,查理抵押了8个以太币。

2. 区块提议者由于爱丽丝抵押的以太币最多(10 个以太币),她在第一轮中被选为区块提议者的机会更大。

3. 区块验证爱丽丝提议了一个包含最近交易的新区块。鲍勃和查理像其他校验人员一样,对交易进行检查,以确保其合法性。

4. 达成共识和最终确定性:如果鲍勃和查理对爱丽丝提出的新区块的提议表示赞同,他们就会将其添加到区块链中。作为提出该新区块的校验者,爱丽丝会获得一定的交易手续费作为奖励,然后这个朋友圈组成的类以太坊网络就进入下一轮区块生成流程。

在这个实例中,朋友们通过轮流提出新的区块并通过PoS共识算法对其进行验证,从而维护他们共享的财务记录。他们抵押的以太币越多,成为校验者并因保护网络而获得奖励的机会就越大。

以太坊权益证明(PoS)可能遭遇的攻击

以下用实际例子更详细地说明以太坊的权益证明(PoS)共识算法可能遭受的一些常见攻击:

  1. 无成本攻击(Nothing-at-Stake Attack)
  • 描述:在PoS中,校验者可以去创建和验证多个冲突的区块链版本,而不需要承担任何成本。这种无代价的做法会助长不诚信的行为,导致无法达成共识,从而降低了安全性。
  • 实例:想象爱丽丝和鲍勃都是以太坊的校验者。他们没有就单一的区块链版本达成共识,而是分别创建和验证不同的区块链,也不需要承担真正的后果。这会引起混乱,损害了网络的安全性。当用户试图确认区块链的真实状态时,所得到的信息却互相矛盾,这使得用户很难相信系统的完整性。
  1. 长程攻击(Long-Range Attack )
  • 描述:这类攻击是指攻击者在初始区块创立时,就准备好另外一个可替代的区块版本,然后用它取代当前的区块链。
  • 实例:假定查理想在以太坊中更改一个以前的交易。他开始从第一个区块创建一个可替代的区块,并将其隐藏起来。随着时间推移,查理还在秘密地向自己的替代品中增加更多的区块。当他终于公开这个被他隐藏起来的更长区块链时,整个网络都会对区块真正的历史版本感到困惑。参与者很难决定要相信哪条区块链,致使网络变得很容易被操纵。
  1. 无风险套利攻击(Nothing-to-Stake Attack)
  • 描述:在这种攻击下,校验者抵押的担保很少,因此缺乏足够的动机遵守规则并诚信行事。
  • 实例:想象夏娃成为以太坊的一个校验者,却没有抵押多少以太币。由于她没有太多资金押注,所以她可以不诚信行事而又无须承担严重后果。夏娃可能会验证包含无效交易的区块,或支持互相冲突的区块链,从而破坏网络的一致性。因此,参与者会丧失对区块链的有效性的信心,进而引发信任危机,导致系统可能陷入混乱。
  1. 51% 攻击
  • 描述:在这种攻击下,攻击者控制了网络中超过51%的投票权,使其可以控制共识过程,并可能操纵交易。
  • 实例:一群攻击者设法抵押了以太坊网络中超过51%的以太币总量。有了多数控制权,他们可以决定哪些区块被添加到区块链中,并排除特定的交易。这种攻击可能造成同样的金额两次支出,造成经济损失并破坏网络的完整性。用户无法依赖区块链的精准性,这导致对系统的信心崩溃和信任丧失。

为了防范这些攻击,以太坊的 PoS 协议包含了惩罚抵押和检查点等安全措施。这些机制共同保证了网络的安全性,并使参与者能够达成共识。有了这些防范措施,以太坊仍然是安全的,区块链也可以被信任。共识算法维护了网络的可靠性和安全性,在确保所有参与者能够充满信心地协作方面发挥着至关重要的作用。

因此,下次当你听到区块链或加密货币时,请记住共识算法在保持每件事同步和确保计算机之间的完美协作方面所发挥的重要作用。

感谢您加入我们对共识算法奥秘的探索之旅。

译者介绍

刘涛,51CTO社区编辑,某大型央企系统上线检测管控负责人。

原文标题:Consensus Algorithms: How Computers Agree and Stay Safe Together,作者:Sahil Sojitra

赞 ()
分享到:更多 ()

相关推荐

内容页底部广告位3
留言与评论(共有 0 条评论)
   
验证码: