现在我们已经列举了两个最关键的结算相关的变量,让我们来进行一些计算并比较一下这些主流的 PoW 网络。
统计截至 2019/07/15,数据:Coinmetrics.io
毋庸置疑,比特币是迄今为止结算最快的区块链(仅考虑这两个变量而言,且不考虑其他不太主流的区块链)。在许多区块链上,即使是 100 万美元的收款交易,也可能非常缓慢。除了比特币,以太坊和莱特币之外,其他的分布式账本们都需要花费至少一天的时间(在这些例子中我不包括 Ripple 和 Stellar,因为它们并没有实际意义上的分布式验证)。较小的链们则根本没有足够的矿工奖励来让结算能够在合理的时间内被完成。Luke Childs 的 How Many Confs 提供了部分该表的动态的更新版本。
同样值得注意的是,BCH 和 BSV 的交易结算分别比比特币慢 33 和 69 倍。虽然它们在功能上与比特币在大多数方面相同,但由于它们为矿工提供的奖励较少,因此它们的速度要慢得多。这与他们作为「更快」的区块链的定位形成了鲜明的对比。
这也是一个关于比特币如何抵制被模仿的有趣案例研究。你可以创建一些看起来与比特币类似的东西,但是你无法复制基于记账成本产生的结算保证。矿工们遵从现实的经济情况,他们不会被哄骗去支持一个不能很好地为他们提供收入的协议。事实上,正如我们将要了解的那样,由于第三个变量的存在,BCH 和 BSV 的表现甚至比这个表展示的更加糟糕。
垄断其哈希函数
到目前为止,我还没有提到第三个关键变量,它将直接影响某个区块链的结算保证:即它是否对能够进行其哈希计算的硬件具有垄断性。正如我上面所提到的那样,BCH 和 BSV 相对于比特币来说处于一个巨大的劣势,因为它们只拥有所有 SHA-256 ASIC 的一小部分。这意味着,即使是一个中型或小型的比特币矿池,也有可能会暂时将其算力指向比特币的较小分叉之一,并且随心所欲的对它进行 51% 攻击。
矿工收入的相对份额,BTC (橙色)、BCH (绿色)、BSV (红色),来源:Coinmetrics.io
这些区块链尚未受到攻击的事实并不能成为其安全性的证据。可能的情况是,比特币上没有矿工愿意恶意骚扰今天的少数派,但是仅仅依赖于矿工的善意会导致其拥有一个极其脆弱的安全模型。由于这种风险始终存在,因此可以认为,无论确认数量多少,这些区块链都不会产生有效的交易结算。这是因为,例如,在比特币上就有着足够的矿池,可以轻松的对 BSV 进行一次深度为 100 多的区块重组。
这个变量为本文的分析带来了更多的复杂性。并不是说更多的算力就会意味着区块链更安全,它还必须占有该哈希函数对应的硬件的很大一部分才可以。
在这个例子中,即使区块链 B 拥有更多的记账成本,我仍然将假设区块链 A 的安全性低于 B,因为理论上找到足够的硬件来攻击 A 将会更加容易。
所以我考虑认定这个变量是一个布尔值:即该区块链是否是其哈希函数的算力的垄断者。如果它很不幸的与众多其他区块链共享挖矿硬件,并且只拥有很少一部分的矿机的支持,那它很可能从根本上来说就是不安全的。但很难确定它究竟有多不安全,攻击的风险将取决于攻击者聚集足够的电力和硬件的能力。
不太可量化的结算变量
上面所涉及的三个变量并非详尽无遗,它们只是最容易量化的变量而已。有了这些变量,你可能就已经可以建立一个比今天许多交易所使用的更好的模型。但仍有许多因素需要考虑。
逆转交易的收益:金手指攻击
金手指攻击的名字取自邦德电影,电影中的恶棍计划辐射诺克斯堡的所有金币来使他自己所拥有的金币更值钱。这个名词用来描述一些攻击者受到一些协议之外的激励的这类攻击。Joseph Bonneau 更科学地将其描述 为「攻击者有着破坏共识过程的外在动机」的攻击。
这种攻击的风险几乎无法量化,因为攻击者有各种不同的动机,并且往往不是先验的(在攻击之前透露)。在这里,我将进一步给出两个例子,它们会让逆转交易的收益率会急剧增加,并且使得结算保证变得不那么确定。
上层过重
这是指在一些基础层协议之上创建大量价值很高的资产作为 Token 的情况,例如比特币上的 ** Omni 资产或以太坊上的 ERC20 资产 **。由于这些 Token 的安全性来源于其 Layer 1 并且完全依赖于 Layer 1 来运转,因此它们在 Layer 1 上会很容易受到攻击。
随着底层协议的攻击成本和上层资产价值这两者之间的不对称性的日渐凸显,上层过重的问题也会开始显现出来。当这种不对称性变得足够大,攻击者可能会寻求机会做空在上层的某些资产并同时攻击底层协议,挖取空块并对相关 Token 进行 DOS 攻击,或者进行重组和混淆。
现实世界中是有着有关上层过重问题的后果的例子的。最近已经有攻击者尝试了一些方法可以用来 攻击 BitMEX 上的衍生品的参考价格。由于 BitMEX (上层)的抵押品和底层参考市场(底层)之间存在很大的不对称性,因此可以通过在 Bitstamp 上倾销现货,使 BitMEX 上的保证金头寸被清算,并以此获利。(译者注:即在 BitMEX 上开 100 倍的空单,然后在 Bitstamp 上砸现货,以此在 BitMEX 上获利)
我虽然不认为现如今的任何区块链会面临这个问题,但随着更多的资产被 Token 化并部署在区块链之上,攻击基础层的回报将会显着增加。
有流动性的衍生品市场
这个就比较直观了。衍生品,特别是期权,使金融市场参与者能够获得杠杆并放大他们的回报,即使底层证券仅有小幅波动也是如此。在上层过重的问题下,当实施攻击的成本与攻击的收益之间存在显着的不对称时,区块链金融的风险就会出现。
衍生品市场的建立让攻击这能够放大他们通过预测价格变动所获得的回报;如果他们可以通过发起攻击来诱导资产价格下跌,那么该区块链系统的结算保证可能会存在风险。随着攻击的收益增加,攻击者愿意为攻击而消耗的资源量也会增加。因此,可以用来做空的杠杆的存在可能会削弱一个区块链的结算保证水平。但是由于攻击者自身的不同,以及他们在完成攻击后进行套现的能力的不确定性,量化这种风险并为安全模型增加定量的折损是不现实的。
当然,这里的一个平衡因素是,如果交易所怀疑某交易的交易者在与攻击者协助共同干扰区块链,那么他们可能不愿意轻易的去冒险纵容这笔交易。
硬件相关的考虑
之前提到的关于挖矿专用硬件的讨论也已经充分的说明了 GPU 挖矿的币是不可能成为硬件上的垄断者的,这是因为世界上有着足够多的 GPU (得益于游戏和一些其他非加密货币的应用)。我在此不会特别强调这一点,因为 David Vorick 已经清楚地 阐明 了为什么 GPU 挖矿的区块链基本都会面临风险,以及为什么设置长期激励(以 ASIC 形式)是如此重要。
因此对于 GPU 挖矿的币和区块链应该总是进行额外的交易确认。虽然一单位的 GPU 挖矿成本和一单位的 ASIC 的挖矿成本之间的比例是很难被确切的计算出来的。但由 GPU 挖矿生成的安全性是必须要被打一个折扣的。毕竟获取 GPU 挖矿的硬件实在是太简单了。
案例研究:Kraken 的交易确认要求
令人惊讶的是,即使对于交易所来说,这类交易结算规则制定上的失误会让他们产生较大的损失。但从我与他们的谈话中来看,他们好像对于交易确认的相关机制并不怎么关心。我没有找到很多的关于交易所在交易被结算前需要等待多少个确认的相关信息。但还好 Kraken 将他们的标准公开了出来。
我决定将 Kraken 的交易确认的相关规则与 Lusardi 的 BitConf 的一个简单实现进行对比,即要求所有的链都提供与比特币的六次确认等价的交易保证:
数据机构 Coin Metrics 预测的交易所 Kraken 处理各币种存款的确认时间
结果把我吓坏了。取决于你具体怎么看,要么 Kraken 就是对比特币交易要求是极其严格的,要么它是对非比特币链的要求是极其宽松的。虽然 Kraken 对于比特币交易要求有 6 个区块确认才算结算完成,但对于莱特币只要求 12 个区块确认(与比特币同等安全性的情况下应该需要 174 个),对于以太坊只要求 30 个(与比特币同等安全性的情况下应该需要 173 个),对于门罗币只要求 15 个(而与比特币同等安全性的情况下应该需要 2000 个)。
我的猜想是也许六次确认对于比特币来说有些太多了,而 Kraken 对其他链的较少结算要求其实会更加合理。但不管怎么说,控制了记账成本这个变量了之后得到的这个结果还是有点搞笑的。比如如果 QTUM 与比特币采用同样的评价标准,则需要 67,000 个区块确认才行,这相当于 115 天的等待时间。(QTUM 可能会有一些其他我不太熟悉的结算模式,我这里的数字仅仅是根据它给区块验证人支付的钱数所计算出来的)。
当然这仅仅是该模型的一个非常简单的实现。一个更加复杂的版本应该包含对于「非垄断链」的高安全要求,GPU 挖矿的币以及接收金额较大的交易等等。我会建议像 Kraken 这样还没有开始系统性的考虑交易结算准则的交易所们做出一些改变。但无论选择怎样的标准,它们都应该会对比特币要求更少的交易确认数量,而对其余更小的链要求更多的交易数量。
一些关键点
这一切究竟有什么实际意义?尽管我们还需要一些工作,才能将这些变量组合成一个可以用于加密货币的日常应用的模型,我们现在已经可以总结出如下一些关键点:
1. 出块间隔是变动的,但变化很小
出块间隔减短唯一会影响的事情,就是交易获得其首次确认的时间。如果你并不那么有耐心,你可能会更喜欢 2.5 分钟的出块间隔,但这并不代表交易的结算更快。作为一个币的发行数量和单价的函数,记账成本始终还是按照那个速度在累积。
比特币的确是可以将它的区块大小减少 25%并换成 2.5 分钟的出块间隔,并且几乎没有人会注意到其差异。系统在功能性上是完全一致的,只不过六区块法则变成了二十四区块法则。Satoshi 选择了 10 分钟的出块间隔,是因为他当时并不知道系统能够收敛到何种的程度。网络延迟和大区块会干扰验证,并使节点之间的收敛更加困难。(译者注:当系统网络情况较差时,区块往往不能被很好的广播到全网所有节点,链上会出现较多的分叉和叔块;相反当网络情况较好时,区块广播更加完全,链上会出现较少的分叉和叔块,各节点认的主链也会更一致,整个网络更加收敛) 10 分钟这个健康的出块间隔为系统提供了充足的时间,并且还让我们了解了 Satoshi 当时想构建的是个怎样的系统(提示:并不适合面对面的小额支付)。
对于一些小额交易来说,第一次确认确实有点用,因为只有当你的交易被包含在了一个区块中被挖出后,才能被后续区块压在身下。而且较小的出块间隔可以减少每日增发量的浮动。但除此之外,出块间隔可以是完全任意的。对于结算来说,每单位时间的安全支出才是除了记账成本质量之外的关键问题。较小的出块间隔只是把安全性累积的过程的颗粒度分割的更小而已。它并不会让结算完成更快。
2. 要么是比特币提供的安全性过多了,要么是其他区块链正处于危险之中
这是能从本文的各种比较之中能看出的最明显的结论了。如果你只是按照每单位时间支付给交易选择者们(矿工或区块验证者)
的薪水来衡量区块链安全性的话,那么在大多数情况下,它们与比特币相比是非常脆弱的。这从这张图表就能看的出来。除了比特币,以太坊和莱特币,图表上几乎看不清其他任何链。这是因为他们的在安全性方面的支出实在是太少了。
各币种矿机每日美元收入(7 日移动平均线),来源:Coin Metrics
当然这不一定是致命的。也有可能是比特币在安全方面的支出有点过多了,工作量证明机制比我们想象的「还好」。这实际上是我目前的看法,考虑到目前的区块奖励和高币价,比特币也许在安全性方面的支出有些「过量」了。但这的确让它被包裹在了一个温暖的毯子里,让它在进入它的青年时期时有一个很好的保护。
所以对于较小的区块链来说,这些数据不一定代表了末日降临。毕竟,尽管 Satoshi 制定了六块法则,但对于大多数交易来说,1 个或 2 个块就已经足够了。这将减轻那些试图赶上比特币的安全支出的区块链的重负荷。
3. 结算始终是概率性的
我承让每当新的区块链吹嘘他们交易「绝对最终性」的时候我都会稍微怼那么一下。真正能够获得交易最终性的方法是让某个组织进行交易担保并有效的支持交易。但是当这种情况发生时,那些希望交易回滚的主权机构(比如当他们怀疑其中涉及犯罪活动时)通常都会要求该担保组织对交易进行回滚,在看起来已经达到的最终态上戳一个洞出来。
我们用EOS来举个例子。根据 EOS Canada 提供的信息,EOS 有一个名为Last Irreversible Block(LIB)的概念, 它指的是你可以用 100%的信心相信该交易是达到了 最终态 的,是被完全确认了和 不可改变 的。如果某个交易对应的区块高度低于了 Last Irreversible Block (LIB)的区块高度,这就说明这笔交易被认为是达到了最终态了的。
根据 EOS Network Monitor 显示,目前的 LIB 区块前面有 330 个区块 , 相当于大概 2 分 40 秒。这表示 EOS 所声称的结算时间非常短。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//zqkj/4703.html