摘要:我们提供了一个关于比特币区块的图解说明,其中包括 Merkle 树,并解释为什么在隔离见证( Segregated Witness )升级时在区块中加入额外 Merkle 树是必要的。然后,继 2017 年 9 月我们发布关于 AsciaBoost 的文章,我们再仔细观察一下显性和隐性 AsicBoost 的某些潜在负面影响。在专利所有者最近发出了公告后,我们得出结论认为,新的区块链防御专利许可证( BDPL )计划如果稳健,显性 AsicBoost 对网络上系统所带来的风险是有限的。而另一方面,对效率较低的隐性 AsicBoost 可能仍然存在一些问题。
这是对比特币区块和 Merkle 树结构的简化描述。其他更详细的插图由杰里米·鲁宾( Jeremy Rubin )和蒂莫·汉克( Timo Hanke )制作。 (资料来源: BitMEX 研究)
组成部分的图示
区块头
比特币区块的头部(灰色)大约有 80 个字节,包括区块版本,前一个区块的哈希值, Merkle 根,时间戳,位元(难度)和随机数。
候选区块头
除了随机数以外,其包含了区块头的所有内容 。
子区块
上图显示 Merkle 根分为两部分,这是进行比特币 SHA256 工作验证功能所要求的。对此的解释可以在我们早期关于AsicBoost 的文章上找到。
第二个 Merkle 树
隔离见证升级引入了一个新的 Merkle 树,除了它包含了见证数据并排除了 coinbase 的交易外,它与主 Merkle 树基本上具有相同的结构。每笔交易的相对位置必须与主 Merkle 树的位置保持一致。
为什么要有第二个 Merkle 树
第二个 Merkle 树增加了区块复杂性,有些人认为它对整体系统来说是不利的。隔离见证是比特币网络的升级,该升级修复了某些缺陷,比如关于 sighash 操作的二次方扩充和交易延展性。见证数据不能被添加到主 Merkle 树中,否则旧节点会认为这些交易无效,这将产生硬分叉。
然而,那些表示如果隔离见证是透过硬分叉升级而不是软分叉升级便可以避免产生额外 Merkle 树的说法是不正确的。硬分叉会使 Merkle 主树中包含见证数据,进而导致现有的钱包将新的交易格式视为无效,并且无论这些钱包是否具有充分验证节点,它们都将与新的交易格式不兼容。这样做的结果是,有些用户将无法互相交流,可能会造成资金丢失。想在像比特币这种实时网络实现这种升级且又不造成任何网络中断是不大现实的 。因此,即使隔离见证是通过硬分叉升级,加入第二个复杂的 Merkle 树的也是必要的。
AsicBoost
正如我们在前一篇关于 AsicBoost 的文章中所解释的那样,隐式 AsicBoost 利用散列算法拆分两个区块之间的 Merkle 根,然后在 Merkle 根的最后 4 个字节中寻找冲突点 。 隐性 AsicBoost 会与交易混淆,这是显式 AsicBoost 能够避免的。除非区块变得更小,第二个 Merkle 树使隐式 AsicBoost 操作变得更加困难,而一般区块变小是可以被检测到的。
AsicBoost潜在的负面问题
隐性 AsicBoost | 显性 AsicBoost | |
专利保护 |
无论是隐性或显性 AsicBoost 的潜在负面影响是一样的。 AsicBoost 是一项专利技术,正如我们在前一篇关于专利的文章中所解释的那样,这些技术可能在区块链领域带来不利的后果。这似乎是 AsicBoost 的主要负面因素之一,因为它有可能给一家采矿公司带来其他竞争对手的不可逾越的优势,形成一个由法律保护而无法缩小的差距。这可能会破坏比特币的核心价值。如果专利所带来问题变得严重,比特币社区可能会实行软分叉来阻止 AsicBoost 的使用。
为了缓解这个问题,专利所有人可以开放专利 – 例如,加入防御性专利保证。看起来 AsicBoost 专利拥有者最近好像做出了这样的承诺。如果承诺足够强大,现阶段这个问题可以被解决,至少在专利适用的地区是如此。 |
|
小区块和低容量 |
隐性 AsicBoost 可能会激励小或甚至空白区块的生产,这会使得隐性 AsicBoost 更加高效。但这会降低网络容量并增加交易费用。
小区块或空白区块对容量有负面影响,因为它们会维持网络难度,但不会对任何交易累积做出重大贡献。 |
不适用 |
不愿意升级到隔离见证以及不诚实的原因 | 也许 AsicBoost 最具破坏性的负面影响在于它可能导致一些矿工不愿意升级隔离见证。这本身可能并没有太大的负面影响,但是因此传播关于隔离见证的不诚实信息会对生态系统产生巨大的负面影响。
然而,我们想指出,这只是一个不确定且毫无事实根据的指控,目前尚不清楚这是否是反对隔离见证的动机之一。 |
不适用 |
调整 Merkle 树或交易的激励 |
如上图所示,隐性 AsicBoost 依赖矿工调整 Merkle 树或交易的能力。这可能会比小区块对网络造成的不利影响更大。隐性 AsicBoost 似乎是一个更简单的解决方案,只需要更改区块头中的一块字段。 |
不适用 |
超越竞争对手的优势 |
与已知优势相比,隐性 AsicBoost 可能无法被竞争对手检测到,因此可能会为其带来一些秘密的竞争优势。
尽管一般来说,我们认为透明度是一件好事,但运营着隐性 AsicBoost 的网络是否会因此而对网络造成任何不利因素,除了本表提到之处以外,我们并不清楚。 |
不适用 |
降低在 Bitcoin Core 中通过发出版本信号和警告消息执行软分叉升级的能力 |
不适用 |
显性 AsicBoost 使用版本字段,如上图左上角所示。这具有信号功能,表示矿工已准备好通过软分叉进行升级。显性 AsicBoost 可能会在此字段中使用空格,这可能会阻止其作为升级信号的功能。
然而:
显性 AsicBoost 的另一个缺点是 Bitcoin Core 软件可能会看到一个不寻常的版本字段,并认为网络以未知的方式升级,从而向用户发出警告消息。 |
我们认为, AsicBoost 对整体网络来说,它不一定是个负面因素。虽然隐性 AsicBoost 激励小区块的开采的确是个问题,但大部分与显性 AsicBoost 相关的问题都是可以减轻或规避的。特别是,如果 BDPL 系统证明是有效的,那么使用显性 AsicBoost 可能不会产生显着的负面影响 – 至少在目前看来是如此。
欢迎转载,请注明文章来自
BitMEX (www.bitmex.com)