共识算法是一种允许用户或机器在分布式环境中协调关系的机制。它需要确保系统中的所有代理对单一事实来源能够最终达成一致意见(即使某些代理持反对意见)。换而言之,系统必须具有良好的容错性(另请参阅《拜占庭容错详解》)。
在中心化的环境当中,单个实体的控制权凌驾于整个系统。多数情况下,由于没有创建条例详尽的治理系统,无法使众多管理员达成共识,导致这些实体往往可以随意更改系统。
但如果是在去中心化的环境之中,则全然是另一番景象了。假设我们正在使用分布式数据库,如何针对该添加哪些条目达成一致呢?
此环境中充斥着互不信任的陌客,如何克服这种挑战也许正是解决发展问题的关键所在,能够为区块链铺平道路。本文中,我们将了解共识算法对于运行加密货币和分布式账本的重要性。
在加密货币环境下,用户的余额均记录在区块链这个数据库中。每名用户(更准确地说,每个节点)都维护着同一份数据库副本,这一点至关重要。如若不然,最终会导致信息冲突问题,从而破坏加密货币网络的全盘宗旨。
公钥密码学能够确保用户无法使用其他用户的代币。但是必须存在可供网络参与者信任的单一事实来源,才能了解资金是否已经用掉。
比特币创造者中本聪提出了工作量证明系统,以此来协调参与者。我们稍后将详细介绍工作量证明的工作原理。现在,先来了解一下现有各种共识算法的共同特征。
首先,我们需要想添加区块的用户(亦称为验证者)质押权益。验证者必须质押具有某种价值的权益,这是为了防止他们使诈。一旦作弊,他们将失去自己质押的权益。比如失去算力和加密货币,甚至还有可能名誉扫地。
那他们为什么要赌上自己的资源冒险?因为这个过程中还存在奖励机制。奖励通常是协议的原生加密货币。奖励也可能是其他用户支付的手续费、新生成的加密货币单位,或者同时包括这两者。
最后,我们还需要确保透明度。我们需要具备及时发现作弊的能力。理论上,生产区块会消耗大量成本,但验证其真实性的成本却相当低。通过这种机制,普通用户可轻松约束验证者。
工作量证明 (PoW) 被视为区块链共识算法的教父。该机制首次应用于比特币领域,不过实际概念早已存在。在工作量证明中,验证者(称为矿工)会对想要添加的数据进行哈希计算,直到产生特定的解决方案。
哈希是指通过哈希函数运行数据所创建的一串看似随机的字符串,由字母和数字组成。重复运行同一个数据总是会得出相同的输出。但是,哪怕更改了一个小细节,产生的哈希值就会截然不同。
仅凭输出根本无法推断出函数中输入了什么信息。因此,这种方法能有效地证明您在某个特定时间点之前便已知晓某一段数据。您完全可以事先将哈希值告诉别人,而且之后等您透露该数据时,此人只要运行该函数即可查验输出是否相同。
在工作量证明中,协议规定了使区块具有效力的条件。例如,它可能会规定只有得出以 00 开头的哈希值才是有效区块。矿工要想创建符合该组合的区块,唯一的途径便是蛮力破解输入。他们会调整数据参数,测遍每一种猜测,得出不同的结果,直到获得正确的哈希值。
对于主区块链,门槛往往相当高。为了与其他矿工竞争,您需要准备大量的特殊哈希硬件(专用集成电路),为生产有效区块创造条件。
在挖矿过程中,您质押的权益包括购买机器的成本以及运行机器所需的电力。专用集成电路 (ASIC) 专为加密货币挖矿而生,对于其他应用毫无用处。您回收初始投资的唯一途径便是挖矿,如成功添加新块至区块链上,便能获得相当可观的回报。
网络可轻松验证您所创建区块的真伪。您也许需要尝试数万亿种组合才能得出正确的哈希值,但验证数据却只需执行一次哈希函数计算。如果您的数据产生了有效的哈希值,那么网络会接受该值,您也可因此获得奖励。否则,网络会拒绝该值,您所花费的时间和电力都将付诸东流。
在比特币推行早期,权益证明 (PoS) 被视为工作量证明的替代方案。在权益证明系统中,不存在矿工、专用硬件或大量能源消耗这些概念。您只需准备一台普通计算机即可。
不过,也不尽然。您还需要下一点儿本钱。在权益证明机制中,虽然无需消耗外部资源(如电力或硬件),但必须提供内部资源,即加密货币。每个协议的规则都有所不同,但一般都会设置最低出资量,您必须达到标准才有资格进行权益质押。
完成此操作后,您钱包中的资金将被锁定(进行权益质押时无法移动资金)。通常来说,您需要与其他验证者就哪些交易将进入下一个区块达成一致。从某种意义来看,这相当于您在对即将选中的区块进行押宝,而协议只会选择其中一个区块。
如果协议选中了您的区块,那么您将获得与所质押权益量呈正比的交易手续费。您锁定的资金越多,代表收益越可观。假如您企图作弊,从而提出无效的交易,那么您将失去部分(或全部)质押的权益。因此,我们运行着一个类似于权益证明的机制,在这个机制内,诚实守信比作弊使诈能够获得更多收益。
一般来说,验证者的奖励不会以新造代币的形式发放。因此,区块链的原生货币必须以其他方式发行。可以采用初始发行(即 ICO 或 IEO)的方式,也可以采用先通过工作量证明启动协议,然后再过渡至权益证明的方式。
目前为止,纯权益证明仅部署在规模较小的加密货币中。因此,尚不明确它能否作为工作量证明的可行替代方案。虽然理论上行得通,但实践起来完全不是那么回事。
一旦权益证明机制在具有大量价值的网络上推行,整个系统就会变成一个充斥着博弈论和经济激励的竞技场。只要有利可图,那些技术高超的黑客就会“入侵”权益证明系统。因此,唯一确定是否可行的途径,只有将其运用于在线网络之中。
很快,权益证明会进行大规模测试,而以太坊网络也即将实施一系列升级措施(统称为以太坊 2.0),其中包括执行 Casper。
工作量证明和权益证明是当前讨论热度最高的共识算法。但除此之外还有许多其他算法,而且各有利弊。详情请阅读以下文章:
达成共识的机制对分布式系统的运作至关重要。许多人认为,比特币最大的创新便是使用了工作量证明,通过这种机制,用户往往能够就一组共享事实达成一致。
如今,共识算法俨然成为了数字货币系统和区块链的基础,它能够允许开发者在分布式网络上运行代码。共识算法在区块链技术中占据着奠基石的地位,对现有各种网络的长期生存能力具有至关重要的作用。
在所有的共识算法中,工作量证明占据着主导地位。如今尚未有人提议出更可靠更安全的替代解决方案。话虽如此,专业人员仍在研发大量产品来替代工作量证明,未来几年,我们有望见证更多的替代解决方案出现。