8.4不可外包的谜题

我们来看看替代采矿谜题的另一个潜在设计目标:防止采矿池的形成。正如我们在第5章和其他地方所讨论的,大多数比特币矿工都是矿池的一部分,而不是独立的。这导致了几个大型的水池,它们共同代表了大部分的采矿能力。由于每个池都由中央池管理员操作,有些人认为这是比特币的分散化核心设计原则的一个危险的趋势,并且会损害其安全性。

虽然大多数共享的采矿池是一个明显的问题,但是任何大型的集中管理池都可能实现非默认的采矿策略并攻击网络。这些池也是黑客尝试和妥协立即控制大量采矿权的一个有趣的目标。池运营商可能会勾结审查交易或强制执行高额的交易费用。至少,大多数矿工在池中也意味着大多数矿工没有运行完全验证节点。

有趣的是,这些担忧在投票领域有相似之处。在美国和许多其他国家,个人出售选票是违法的。可以说,参与一个由其他人控制的池类似于在比特币共识协议中出售你的选票。

池的技术要求。回想一下,采矿池似乎是一个紧急现象。没有证据表明Satoshi在比特币的原始设计时正在考虑采矿池。几年来,在许多不认识或彼此信任的人之间,有效率的池是不可能出现的。

正如我们在第5章中看到的,采矿池通常通过指定一个带有已知公钥的池操作符来工作。每个参与采矿的矿工照常采矿,但向池经营者发送股份。这些股票是“接近失误”或“部分解决方案”,这将是较低难度水平的有效解决方案。这显示了池操作员矿工要执行多少工作。每当一个池参与者找到一个有效的区块时,池操作人员将根据他们提交的股票数量在池参与者中分配奖励。正如我们在第5章中讨论的,有很多公式来分配收入,但所有采矿池都遵循这一基本结构。

因此,池的存在依赖于比特币的至少两个技术属性。首先,矿工很容易通过提交股份来证明(概率)他们正在做多少工作。通过选择足够低份额的股票阈值,矿工可以轻松地证明他们正在以任意精度执行的工作量,无论找到有效区块的实际难度如何。考虑到我们需要一个可以随意创造的谜题,挖掘谜题的这个方面看起来很难改变。

第二,池成员可以很容易地向池运营商证明他们正在遵循规则,并努力寻找有效的区块,这将奖励整个池。这是因为该池的公钥致力于包含该区块Merkle交易树中的coinbase交易。一旦矿工发现一个块或甚至一个份额,他们就不能改变哪个公钥是新铸造的硬币的接收者。

区块丢弃攻击。在实施采矿池的这个方案中有一个缺点:没有什么可以强制参与的矿工在找到它们时向池管理器提交有效的区块。假设有一个池成员对大型采矿池感到不安。他们可以通过采矿和提交股票来参与池,就像正常的那样,但如果他们真的找到一个能奖励池的有效的区块,那么他们就干脆放弃它,而不要告诉池运营商。

这种攻击降低了池的整体采矿能力,因为攻击者的工作对找到有效的区块没有帮助。然而,攻击者仍然会因为似乎正在提交有效的股份而获得回报,并且只是运气不好找不到任何有效的区块。如果采矿池被设计为收入中立(即所有采矿奖励都重新分配给参与者),那么这次攻击可能导致池在亏损中运行。

这种攻击有时被称为蓄意或怠工攻击,被认为是一种破坏行为的形式,因为攻击似乎对攻击者和池的代价都是昂贵的。攻击者失去了钱,因为他们丢弃的每个区块都会导致一些比例的区块奖励被归还给他们。当然,攻击者仍能得到被发现的其他谜题解决方案的奖励。

似乎任何理性的攻击者都不会采用这种策略,因为他们会失去金钱,而不会获得任何有形的东西。事实证明,令人惊讶的是,在有些情况下,这个策略是有利可图的,如下面的框所述。但无论如何,我们想要设计一个全新的采矿谜题配方,以确保这种策略总是有利可图的。


边栏:阻止池之间的丢弃攻击。人们多年来一直认为,参与者放弃代表池发现的有效区块不能有利可图。 事实证明,如果一个采矿池使用它来攻击另一个矿池,这个策略可以是有利可图的。这被提出了非常多次,首先在2015年Ittay Eyal的一篇论文中进行了深入分析。

我们来看一个简单的例子:假设两个采矿池A和B各占总采矿能力的50%。现在假设B使用其一半的采矿能力(占总容量的25%)作为A池的成员开采,但丢弃发现的所有区块,我们可以在一个简化的模型中显示,B现在将获得总奖励的5/9,大于通常采矿的50%。在这种简单的情况下,将其一半的采矿能力用于攻击可以显示为采矿池B的最佳策略。

多个池的情况会越来越复杂。在撰写本文时,大量的实践中没有观察到区块丢弃。但从长远来看,仍然有可能有这样的攻击将使得大型采矿池的可行性收到质疑。


奖励破坏。我们的设计目标是使矿工们在一个交易池中被激励进行挖掘,但不向管理员提交有效的区块。目前,只有交易池管理者可以收集采矿奖励,因为管理者要求所有参与者在其正在采矿的coinbase交易区块中包含一个特定的公钥。适当的包含可以很容易地检查提交的部分解决方案。交易池管理员是唯一知道私钥的团体,因此可以确定新生成硬币的位置。

但是,如果我们要求所有参与者也知道私钥怎么办(因此可以在开采区块后重定向资金)?为了做到这一点,我们需要一个谜题,每个解决方案的尝试都需要coinbase交易中的私钥知识。我们可以从“找到一个哈希低于某个目标的区块”到“找到签名的哈希低于某个目标的区块”来改变这个谜题。这个签名必须使用coinbase交易中的相同公钥来计算。

这样一个谜题可以让交易池管理员有两个难以置信的选择。他们可能会将私钥分配给所有交易池参与者,在这种情况下,他们都可以窃取所有资金。或者,他们可以代表交易池参与者执行签名。计算签名比计算哈希值贵一个数量级,但是在这种情况下,交易池管理器将会做大部分的繁重工作。交易池管理者只要做一个独家矿工就好了。

不可外包采矿的利弊。由于这个谜题不能有效地被外包给一个不可信的参与者,所以如果不是完全不可能,要形成一个具有不可信参与者的采矿池,这是一个更具挑战性的问题。它有效地防止了所有池,甚至P2Pool的努力,使一个分散的交易池没有交易池管理者。

有一个观点认为,部署这样一个谜题可能会导致更多的集中化,而不是更少,因为它会阻止小矿工参与,他们会面临很大的差异。这只会留下大量的采矿作业。目前,虽然交易池可能名义上控制了大量的采矿能力,但不清楚的是,他们可以使用它来发起攻击,而不会看到他们许多成员的缺陷。这仍然是一个悬而未决的问题,风险会更大——大型采矿池,或将采矿限制在大到足以生存的高度差异的运营商。

圣杯将设计一个共识协议,这是“自然”的低方差,通过奖励矿工少量的低难度的谜题。这意味着矿工不需要搭建交易池,而小矿工仍然可以参与。简单地减少区块之间的平均时间将不起作用——由于所得到的方差相当于今天的大型采矿池,因此需要减少1,000或更多的因子。但是,区块之间的延迟将不到一秒钟,并且过时区块的数量将是高度混乱的。如果有一个备选版本共识协议,这将确保更容易的采矿难题,而不需要立即广播所有解决方案,这仍然是一个悬而未决的问题。

8.5利害关系证明和虚拟采矿

为了整理这一章,我们来看看用虚拟采矿代替计算谜题的想法。这个术语指的是一组不同的方法,但它们都有共同点,他们只需要参与矿工的一小部分计算资源。

关闭采矿循环。作为一个思想实验,假设比特币或另一种加密货币成为全球支付的主要形式。矿工们将开始一些初始化的隐式货币,用它来购买采矿设备和电力,消耗这些资源,并且在此过程中,以采矿奖励的形式获得新的加密货币。这个过程不断燃烧能源和原材料。

8.4不可外包的谜题

图8.5:比特币采矿的循环

一旦采矿硬件成为商品,电力是一种商品(通常已经是这样),与其他矿工相比,没有一个矿工将他们的初始加密货币持有量转换成采矿回报有重大的优势。

激励虚拟挖矿的基本问题是:如果我们消除了在电力和设备上花钱的步骤,会发生什么?毕竟,这个过程主要用于证明谁在矿业上投资最多。为什么不简单地按所有货币持有者实际持有货币数量的比例分配采矿权力?

回想一下,比特币开采的最初目标是确保在区块链的状态下进行投票,而拥有更多计算能力的矿工获得更多的投票。我们可以更改我们的“投票”制度,以便投票权取决于我们目前持有的货币数量。

虚拟挖矿的优势。这种方法的主要优势是显而易见的:它消除了图8.5中采矿周期的浪费,剩下的是一个“封闭的”系统,如图8.6所示。

8.4不可外包的谜题

图8.6:虚拟采矿周期

除了简单,这种方法将显著减少比特币的环境足迹。它不会将能源消耗降低到零,因为矿工们总是必须花费一些计算资源来与网络进行通信并进行验证。一些虚拟采矿方案也需要少量的挖矿计算。但无论如何,在比特币进行的绝大多数采矿工作都可能被淘汰。

虚拟采矿业可能减少集权化趋势。因为没有涉及采矿硬件,所以不关心ASIC优势,所有矿工都能像所有其他矿工一样“高效”地开采。任何虚拟挖矿谜题都能实现ASIC抗扰谜题的所有目标。

也许最重要的是,虚拟挖矿可能会解决我们在ASIC抗性谜题的背景下讨论的问题,即矿工可能不会投资于货币的长期健康发展。任何拥有任何比特币的人,实际上是货币的利益相关者,而强大的虚拟矿工(如拥有所有货币的51%以上的矿工)是一个非常大的利益相关者。他们有动机去做使整个系统受益的事情,因为它增加了他们所持有硬币的价值。这一论点甚至比持有大量矿业设备的矿业者的价值更为强大,其价值取决于货币的未来不会表现出恶意。

这就是股权证明术语来源的地方。除了消除采矿和节约能源外,也许虚拟采矿的最根本的动力是确保采矿是由货币利益相关者来完成的,而这些利益相关者最有动力作为系统的良好管理者。

实施虚拟采矿:Peercoin。虚拟挖掘有许多变化,我们将介绍一些最常见的想法。我们应该强调,这些想法还没有以科学严谨的方式进行研究,也没有经历比特币受欢迎的工作证明的实际测试水平。

首先,我们将考虑Peercoin2012年采取的方法, 这是第一个推出股权证明的代币(altcoin)。Peercoin是一种混合的工作证明/股权证明算法,其中“股份”由“硬币年龄”指定。

一个特定未消费的交易输出的硬币年龄是该产出所持有的仍然未消费的金额和区块数量。现在,为了在Peercoin开采一个矿区,矿工必须像比特币一样解决一个基于SHA-256的计算难题。然而,这个谜题的难度根据他们愿意消费多少硬币年龄(coin-age)进行调整。为了做到这一点,该区块包括一个特殊的“组合”交易,其中一些交易仅用于将其硬币年龄重置为零。在投币交易中消耗的硬币年龄的总和决定了工作证明谜题使给定区块有效是多么地困难。

矿工有可能挖掘很少的股权和大量的计算能力,但选择困难的公式,以便在消耗一些硬币年龄时更容易找到一个区块。计算谜题的效果主要是为了确保两个矿工试图消耗类似数量的硬币年龄时,该过程是随机的。

许多虚拟采矿代币采用了略有不同的设计,包括Nxt,BitShares,BlackCoin和Reddcoin。在每个这些中,一些数量的股权被用来使计算谜题变得更加容易,据称计算谜题不再是采矿的主要挑战。

替代形式的股权。这几个混合模式的替代品值得讨论:

·权益证明。最纯粹的证据形式只是为了让那些控制大量货币的人更容易采矿。这与Peercoin的硬币证明类似,只有年龄未考虑在内。这种方法的缺点是,与成功采矿后重置的硬币年龄不同,最富有的参与者总是被给予最简单的挖掘谜题。

·存续证明。在这种提法中,当矿工使用硬币来制造区块时,它们会冻结一定数量的区块。这可以被认为是硬币年龄的一个镜像:这个系统奖励在未来相当长的一段时间内愿意让硬币长时间不动的矿工,而不是奖励过去长期持有未用硬币的矿工。在这两种方法中,矿工权益的有效性都来自于无法使用硬币执行其他行动的机会成本。

无利害关系的问题。虚拟开采是当前研究的一个活跃领域,存在着大量的开放性问题。虽然使用虚拟挖矿启动并存活了一些加密货币,但是他们已经面临与比特币相同的压力,以抵挡积极的攻击者。

虚拟开采方案的通用漏洞是经常被称为无利害关系的问题和利益冲突攻击。假设a <50%的攻击者正在尝试创建一个k区块的分支。正如我们之前讨论过的,这种攻击将以极大的概率在k中指数级增长而失败。在传统采矿中,一次失败的攻击具有重大的机会成本,因为矿工在采矿过程中可能已经获得了采矿奖励,而不是在其失败的攻击中浪费了采矿资源。

使用虚拟挖掘,这个机会成本是不存在的。矿工可以利用自己的股份挖掘当前最长的链条,同时尝试创建一个叉子。 如果他们的分支成功,它将消耗大量的股份。如果失败,其失败记录将不会反映在最后的最长链。

因此,理性的矿工们可能会不断尝试分拆链条。已经作出各种尝试来解决这个问题。大多数虚拟采矿方案在使用检查点防止长叉时更具攻击性,但正如前面所讨论的,这是一个分散共识协议的终结点。

对于Ethereum(在2015年中期推出的altcoin,我们将在第10章中讨论),一项名为Slasher的提案允许对试图分叉链条的矿工进行惩罚。在Slasher中,使用矿权挖矿需要使用与构成矿工股权的交易相对应的私钥签署当前区块。如果矿工曾经使用相同的利益来签署两个不一致的链(两者都不是另一个的前缀),Slasher允许矿工在块链中稍后输入这两个签名,作为不当行为的证明,收集这一股份的一部分作为赏金。虽然这似乎是一个有效的解决方案,但协议的细节相当复杂,尚未成功部署。

可能存在的最终对策是,正如我们已经看到的传统采矿方案,矿工可能根本没有强大的动机来攻击,因为这样会损害系统并破坏他们的利益,即使攻击是成功的。

虚拟挖矿的其他缺点。另外还有两个缺点值得一提。第一个是,即使在没有利益冲突的情况下,某些形式的虚拟挖掘也可能使一些类型的攻击变得更加容易,因为这样可以“抢救”一些采矿权。例如,可以汇集大量的硬币,以便能够大量涌入采矿,或许引入叉子。即使像Slasher这样的系统也被涌来阻止两个链上的采矿同时进行,这是可能的。为了阻止这种攻击,Peercoin将年龄参数限制在计算硬币年龄的90天。

第二个问题是,如果一个矿工在一个虚拟采矿系统中获得了51%的可用股份,那么他们就可以通过只在自己的区块上开采而保持它的永久性,本质上是控制区块链。即使从采矿奖励和交易费用中产生新的股份,51%矿工将获得这一新的股份,他们在总股本中的份额将慢慢接近100%。在传统采矿业中,即使有51%矿工存在,也总是有可能出现一些新矿工将拥有更多的采矿设备和能源,并减少大多数矿工。虚拟采矿更难避免这个问题。

虚拟挖掘实际可行吗?虚拟采矿在主流的比特币社区仍然有些争议。有一个观点认为,安全性基本上需要燃烧真实资源,需要真正的计算硬件和消耗真实的电力才能找到谜题解决方案。如果这个论据被相信,那么工作证明的明显浪费可以解释为你得到安全的成本。但是,这一观点尚未得到证实,正如虚拟采矿的安全性尚未得到证实一样。

总之,有很多事情可能会改变比特币的挖掘谜题,这是一个火热的研究和创新领域。然而,到目前为止,没有一种替代品似乎既表现出理论上的正确性,也被认为是实际可应用的。例如,尽管scrypt已经成为代币(altcoins)的热门选择,但实际上并没有实现ASIC抵抗,其用途还不清楚。完全可能的是,替代采矿谜题将在未来取得更大的成功。毕竟,比特币本身就是经过几十年的失败尝试,创造了一个加密的货币,并设法在原则设计和实际的权衡之间达到了最佳的水平。

原文始发于微信公众号( 可可旅行人生 ):8.4不可外包的谜题