三十种共识算法,直抵背后的灵魂

共识算法是所有区块链 /DAG 的基础,它们构成了区块链 /DAG 平台中的最重要部分。本文中列出了 30 种主要的共识算法,对算法做了概要介绍,并评估了各自的优劣之处。

共识算法是所有区块链 /DAG 的基础,它们构成了区块链 /DAG 平台中的最重要部分。

如果没有共识算法,我们得到只是一个不可写的哑(dummy)数据库。

我将在本文中尽可能列出所有主要的共识算法,评估各自的优劣之处。如果读者发现有所遗漏,或是存在错误,希望能通过评论指出。此外,我个人也在逐步深入研究共识算法及其对经济的影响,为此本文也将做定期的更新。

另:本文假定读者理解共识算法及其在区块链中的重要性。

下面列出 30 种共识算法。

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

优点:

  • 自 2009 年以来得到了广泛测试,目前依然得到广泛的使用。

不足:

  • 速度慢。

  • 耗能巨大,对环境不好。

  • 易受“规模经济”(economies of scale)的影响。

使用者:Bitcoin、Ethereum、Litecoin、Dogecoin 等。

类型:有竞争共识(Competitive consensus)。

解释:PoW 是是首个共识算法。它是由中本聪在他的论文中提出的,用于建立分布式无信任共识并识别“双重支付”(double spend)问题。PoW 并非一个新理念,但是中本聪将 Pow 与加密签名、Merkle 链和 P2P 网络等已有理念结合,形成一种可用的分布式共识系统。加密货币是这样系统的首个基础和应用,因而独具创新性。

在 PoW 的工作方式中,区块链参与者(称为“矿工”)要在区块链中添加一块交易,必须解决某种“复杂但是无用”的计算问题。

本质上,这种做法可确保矿工花费了一些金钱或资源(矿机)完成工作,这表示了它们将不会损害区块链系统,因为对系统的损害也将会导致投资的损失,进而损害他们自身。

为保证运行区块时间不变,问题的复杂性会发生变化。有时,会存在多名矿工同时解决了问题。在这种情况下,每位矿工从中选取一个区块链,并以选取最长链者为获胜者。因此,如果假定大多数矿工工作在同一个链上,那么成长最快的链将成为最长和最值得信任的链。这样,只要由矿工提交的工作有超过一半是值得信任的,那么 Bitcoin 就是安全的。

2. 权益证明(PoS,Proof of Stake)

优点:

  • 节能。

  • 攻击者代价更大。

  • 不易受“规模经济”的影响。

不足:

  • “无利害关系“(Nothing at stake)”攻击问题。

使用者:Ethereum(即将推出)、Peercoin、Nxt。

类型:有竞争共识。

解释:PoS 是作为 Pow 的替代技术提出的,意在解决 PoW 的一些内在问题。PoS 没有使用挖矿方法,而是用户必须具有系统中的一些权益(币)。因此,如果用户拥有 10% 的权益(代币),那么该用户挖掘下一个区块的可能性就是 10%。

挖矿为解决计算上的挑战,需要运行各种加密计算,这需要耗费大量的算力。算力将转变为 PoW 所需的大量电能。据估计在 2015 年时,一个 Bitcoin 交易所需的电力,可达 1.57 个美国家庭一日所需的电力。PoS 的提出是为了节约电力耗费。

在 PoS 中,一个美元就是一个美元。例如,假定有一万名每位每分钟花费 1 美元(一年 8760 万美元)的矿工,要比一位具有每分钟花费一万美元挖掘矿池能力的矿工拥有更少的哈希能力(Hashing Power)。但是在 PoS 中不支持一次用光所有算力,一美元就是一美元。因此 PoS 不易受“规模经济”的影响。

此外,攻击 PoS 系统也要比攻击 PoW 系统的代价更大。引用 Vlad Zamfir 的说法:

在 PoS 中,重复 51% 攻击的代价,可类比为每额外运行一轮,都会“烧毁你的 ASIC 农场”。

这意味着,每次攻击 PoS 系统,攻击者都会失去自己的权益。而在 PoW 中,攻击者不会丢失挖矿设备,或是代币。对 PoW 系统的攻击只会使攻击本身难以执行。

但是 PoS 会在“无厉害关系”上出问题。这种对多个区块历史(forks)投票的方式不会让区块生成器有任何损失,进而阻碍了达成共识。

在 PoS 中,你可以在区块链的双方押注资产(“无厉害关系”问题)。而在 PoW 中,你不能从链的两个方向同时挖矿,因为这难以实现。

不同于 PoW 系统(用户为扩展链必须做大量的计算),PoS 在多个链上工作的代价很小。有一些项目试图通过多种方式解决这个问题(参见“扩展阅读”)。例如,一个解决方案就是上文所介绍的,对不好的验证者做惩罚。

3. 延迟工作量证明(dPoW,Delayed Proof-of-Work)

优点:

  • 节能。

  • 安全性增加。

  • 可以通过非直接提供 Bitcoin(或是其它任何安全链),添加价值到其它区块链,无需付出 Bitcoin(或是其它任何安全链)交易的代价。

不足:

  • 只有使用 PoW 或 PoS 的区块链,才能采用这种共识算法。

  • 在“公证员激活”(Notaries Active)模式下,必须校准不同节点(公证员或正常节点)的哈希率,否则哈希率间的差异会爆炸(下文将给出详细解释)。

采用者:Komodo

类型:协同型共识(Collaborative consensus)

解释:dPoW 是一种混合共识方法,允许一个区块链利用第二个区块链的哈希算力(Hashing Power)所提供的安全。该机制是通过一组公证员节点(Notary Node)实现的。公证员节点实现将第一个区块链的数据添加到第二个区块链中。进而,第二个区块链请求在两个区块链间达成妥协,弱化第一个区块链的安全。Komodo 是首个使用该共识方法的区块链,它就是附加于 Bitcoin 区块链之上的。

使用 dPoW 的区块链也可以使用 PoW 或 PoS 共识方法工作,并可以附加在任何采用 PoW 的区块链上。但对于由 dPoW 提供安全的区块链,当前 Bitcoin 给出了最高安全层级的哈希率。下图展示了主区块链的单个记录以及其所附着的 PoW 区块链。

dPoW 系统中有两种类型的节点:公证人节点和正常节点。64 个公证人节点是由 dPoW 区块链的权益持有者(stakeholder)选举产生的,它们可从 dPoW 区块链向所附加的 PoW 区块链添加经公证确认的块。一旦添加了一个块,该块的哈希值将被添加到由 33 个公证人节点签署的 Bitcoin 交易中,并创建一个哈希到 Bitcoin 区块链的 dPow 块记录。该记录已被网络中的大多数公证人节点公证。

为避免公证人节点间在挖矿上产生战争,进而降低网络的效率,Komodo 设计了一种采用轮询机制的挖矿方法。该方法具有两种运行模式。在“无公证人”(No Notary)模式下,支持所有网络节点参与挖矿,这类似于传统 PoW 共识机制。而在“公证人激活”(Notaries Active)模式下,网络公证人使用一种显著降低的网络难度率挖矿。“公证人激活”模式下,允许每位公证人使用其当前的难度挖掘一个区块,而其它公证人节点必须采用 10 倍难度挖矿,所有正常节点使用公证人节点难度的 100 倍挖矿。

但这会导致一些问题。我在与 Komodo 创始人的一次谈话中提及,这将导致公证人矿工和正常矿工间的哈希率存在很高的差异:

图 本文作者与 Komodo 创始人间就不一致性问题进行交流的截图

dPoW 系统在设计上支持区

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值