介绍

共识算法是一种允许用户或机器在分布式环境中进行协调的机制。它需要确保系统中的所有代理都能就单一事实来源达成一致,即使某些代理发生故障也是如此。换句话说,系统必须具有容错能力(另请参阅:拜占庭容错解释)。

在集中式设置中,单个实体对系统拥有权力。在大多数情况下,他们可以随心所欲地进行更改——不需要一些复杂的治理系统来让众多管理员达成共识。

但在去中心化设置中,情况就完全不同了。假设我们正在使用分布式数据库——我们如何就添加哪些条目达成一致?

在陌生人互不信任的环境中克服这一挑战或许是区块链发展道路上最重要的进步。在本文中,我们将探讨共识算法对加密货币和分布式账本的运作至关重要。

共识算法和加密货币

在加密货币中,用户的余额记录在数据库(区块链)中。每个人(或更准确地说,每个节点)都必须维护相同的数据库副本。否则,您很快就会得到相互矛盾的信息,从而破坏加密货币网络的整个目的。

公钥加密确保用户无法使用彼此的货币。但网络参与者仍然需要依赖单一事实来源,以便确定资金是否已被使用。

比特币的创始人中本聪 (Satoshi Nakamoto) 提出了一种工作量证明系统来协调参与者。我们很快就会了解 PoW 的工作原理 - 现在,我们将确定现有的许多共识算法的一些共同特征。

首先,我们要求想要添加区块的用户(我们称他们为验证者)提供权益。权益是验证者必须提出的某种价值,这可以阻止他们不诚实的行为。如果他们作弊,他们将失去他们的权益。例子包括计算能力、加密货币甚至声誉。

他们为什么要冒着自己的资源风险呢?因为还有奖励。这通常包括协议的原生加密货币,由其他用户支付的费用、新生成的加密货币单位或两者组成。

我们最不需要的就是透明度。我们需要能够发现有人在作弊。理想情况下,他们生产区块的成本应该很高,但任何人验证区块的成本都应该很低。这确保了验证者受到普通用户的制约。

共识算法的类型

工作量证明(PoW)

工作量证明 (PoW) 是区块链共识算法的鼻祖。它最早在比特币中实现,但实际概念已经存在了一段时间。在工作量证明中,验证者(称为矿工)对他们想要添加的数据进行哈希处理,直到他们产生特定的解决方案。

哈希值是一串看似随机的字母和数字,当您通过哈希函数运行数据时会创建它。但是,如果您再次运行相同的数据,最终总会得到相同的输出。但是,即使更改一个细节,您的哈希值也会完全不同。

从输出结果来看,你不可能知道函数中输入了什么信息。因此,它们对于证明你在某个时间之前知道一段数据很有用。你可以把它的哈希值给某人,当你后来透露数据时,那个人可以通过函数运行它来确保输出是相同的。

在工作量证明中,协议规定了使区块有效的条件。例如,它可能会说,只有哈希值以 00 开头的区块才是有效的。矿工创建与该组合匹配的区块的唯一方法是暴力破解输入。他们可以调整数据中的参数,使每次猜测都产生不同的结果,直到得到正确的哈希值。

对于主流区块链来说,门槛非常高。为了与其他矿工竞争,你需要一个装满特殊哈希硬件(ASIC)的仓库,才有机会生成有效区块。

挖矿时,您的权益是这些机器的成本以及运行它们所需的电力。ASIC 是为一个目的而制造的,因此它们在加密货币挖矿之外没有用处。您收回初始投资的唯一方法是挖矿,如果您成功将新区块添加到区块链中,您将获得丰厚的回报。

网络验证你是否确实创建了正确的区块是轻而易举的事。即使你尝试了数万亿种组合来获得正确的哈希值,他们也只需要将你的数据通过一次函数运行即可。如果你的数据产生了有效的哈希值,它将被接受,你将获得奖励。否则,网络将拒绝它,你将白白浪费时间和电力。

权益证明(PoS)

权益证明 (PoS) 是在比特币早期提出的,作为工作量证明的替代方案。在 PoS 系统中,没有矿工、专用硬件或大量能源消耗的概念。您所需要的只是一台普通 PC。

嗯,不是全部。你仍然需要投入一些资金。在 PoS 中,你不需要投入外部资源(如电力或硬件),而需要投入内部资源——加密货币。每个协议的规则都不同,但通常你必须持有一定数量的资金才有资格参与质押。

从那里开始,你将资金锁定在钱包中(在你质押期间无法移动)。你通常会与其他验证者就哪些交易将进入下一个区块达成一致。从某种意义上说,你是在押注将要选择的区块,协议将选择一个。

如果您的区块被选中,您将获得一定比例的交易费,具体取决于您的权益。您锁定的资金越多,您获得的收益就越多。但如果您试图通过提出无效交易来作弊,您将损失部分(或全部)权益。因此,我们有一个与 PoW 类似的机制——诚实行事比不诚实行事更有利可图。

一般来说,没有新创建的货币作为验证者的奖励。因此,区块链的原生货币必须以其他方式发行。​​这可以通过初始发行(即 ICO 或 IEO)来实现,也可以通过先使用 PoW 启动协议,然后再过渡到 PoS。

到目前为止,纯粹的权益证明实际上只在较小的加密货币中得到部署。因此,目前还不清楚它是否可以作为 PoW 的可行替代方案。虽然它在理论上看起来很合理,但在实践中会有很大不同。

一旦 PoS 在具有大量价值的网络上推出,该系统就变成了博弈论和财务激励的竞技场。任何知道如何“破解” PoS 系统的人很可能只有在能从中获益的情况下才会这么做——因此,唯一能确定其可行性的方法是在实时网络上。

我们很快就会看到 PoS 大规模测试——Casper 将作为以太坊网络一系列升级的一部分实施(统称为以太坊 2.0)。

其他共识算法

工作量证明和权益证明是讨论最多的共识算法。但还有许多其他算法,它们各有优缺点。请查看以下文章:

  • 延迟工作量证明详解

  • 租赁权益证明共识机制解析

  • 权威证明解释

  • 燃烧证明解释

  • 委托权益证明机制解释

  • 混合 PoW/PoS 共识详解

结束语

达成共识的机制对于分布式系统的运作至关重要。许多人认为,比特币的最大创新是使用工作量证明,使用户能够就一组共享的事实达成一致。

如今,共识算法不仅支撑数字货币系统,还支撑区块链,让开发人员能够在分布式网络上运行代码。它们现在是区块链技术的基石,对现有各种网络的长期生存至关重要。

在所有共识算法中,工作量证明仍占主导地位。目前还没有提出更可靠、更安全的替代方案。话虽如此,人们正在对 PoW 的替代方案进行大量的研究和开发,未来几年我们很可能会看到更多替代方案出现。