主页 > imtoken钱包不能安装 > 比特币双花疑案揭发只是RBF交易

比特币双花疑案揭发只是RBF交易

imtoken钱包不能安装 2023-08-03 05:12:46

昨天,BitMEX Research 在推特上表示,他们的 ForkMonitor 在比特币区块链上的花费翻了一番。可以理解,“双花”这个词让人们在社交媒体上感到担忧,所以我很快想解释一下发生了什么以及这对比特币意味着什么。

陈旧的块

在中本聪共识中,所有节点都会自动切换到最重的有效链。这允许他们将他们的本地分类帐状态(谁拥有什么)与其他人的同步。

有时,两个矿池几乎同时发现一个新区块,并且这些区块具有相同的累积难度。然后,一些节点切换到一个区块,而其他节点切换到第二个区块。短时间内,比特币网络将分叉。但奇怪的是,一旦找到下一个区块,分叉就会被解决。

例如,假设一些矿工在区块 666833-1 开采,而其他矿工在区块 666833-2 开采。一旦其中一个人发现了 666834 区块,该区块链的累积难度将更高,所有仍在 666833-1 上的节点将自动放弃其区块链并切换到新的规范区块链。

这正是比特币网络中发生的事情,因为 SlushPool 和 F2Pool 同时发现了区块 666833。在币安的矿池发现 666834 块和 F2Pool 的块已经过时后,这种关系破裂了。

现在,陈旧的区块出现的频率比较高,所以完全不用担心。但是可疑的“双花”呢?

什么是双花?

双重支出有两种流行的定义,一种是技术支出,另一种是公用事业支出。

从技术上讲,当一方收到付款时会发生双花(交易 T1) 首先包含在区块链中,然后在以后删除。仅当仅包含交易本身时才会发生这种情况已经过时了。

再者,新区块链不包含T1是不够的,否则可能仍会包含在下一个区块中。在两个 In 花费中,一个 T1 的输入必须被一个冲突的交易 T2 花费。​​由于输入已经在 T2 中花费,T1 变得无效并从网络中移除。

我们称之为双花,不是因为用户被双花,而是因为交易的输入已经被双花。但在实践中,如果 T1>T2 实际上将令牌的所有权从一个用户更改为另一个用户,这也很重要。

换句话说,T1 代币的接收者必须发送其他资金或产品作为交换。下面是一个实际发生的例子:

1. 交易所的攻击者购买了 100 万美元的 ETC。

2. 他们将 ETC 换成 100 万美元的比特币并兑现。

3. 然后,被攻击 攻击者通过创建竞争交易 T2 将交易费用翻倍,在该交易中,攻击者将最初用于交易的代币返还给自己。

4.@ > 攻击者现在拥有 100 万美元的 ETC 和 100 万美元的比特币。交易所的空头比特币为 100 万美元。

第三步相当于退票,这在比特币网络中难度极大。反转 T1 需要反转 T1 以上的所有块,这将需要攻击者控制大量的哈希率。所以这种攻击只能由矿工或那些在像 NiceHash Humans 这样的市场上租用哈希算力的人来做。

请注意,即使是最大的硬币也不能以这种方式受到攻击。如果有人从 Nicehash 租用他们所有的 SHA256 哈希算力 (~500 PH/s),那将是比特币当前哈希率 (123 EH/s) 的 0.4%。

基本上所有的双花事件,包括最近的事件,都是完全无害的。即使是大型矿工(而不是两个矿池之间的偶然竞争)也故意孤立包含 T1 的区块,只要接收者遵循共同确认的经验法则,他们就无法从攻击中获利。在这种情况下,我们只看冲突的 T1 和 T2 在不同时间被确认的时间。

正如我们现在所看到的,比特币用户有充分的理由广播这种相互冲突的交易。

替换您的交易

每次用户向网络广播交易时,他们都会参与第一次价格拍卖。通过在交易中附加费用,他们希望矿工将其包含在一个区块中。理性的矿工倾向于支付最高的交易来填满他们的区块,因为这会给他们带来最大的利润。

但与常规拍卖不同,区块空间市场有一个怪癖:如果出价没有赢得它所竞标的区块空间,它不会被撤回,而是会自动进入下一次拍卖。如果出价太低而无法包含在内,交易(以及相应的代币)将长时间停滞,这将是一个大问题。

因此,用户需要一种方法来增加已过帐交易的费用。一个有用的副作用是用户可以降低交易费率,因为他们总是可以选择在以后增加费用。这使得区块空间拍卖更有效率。

最后,为了关闭支付渠道(例如在闪电网络中),可能需要增加费用。非合作关闭有严格的截止日期,因费用不足而错过此截止日期可能会导致用户资金损失。

用户可以通过三种方式进行交易:

首费是1 sat/b,太低了,不能入块。因此,大约 23 小时后,她决定用 RBF 替换交易,费用更高,为 9.4 sat/b。请注意,此时 Alice 已经等待了几乎一整天,在她广播替换交易之前,她的交易仍然处于待处理状态。但是新的汇率还是太低了,三个小时后她又换了更高的汇率。

这一分析后来得到了 BitMEX Research 的证实。

这是双花吗?

我们确定用户可以在交易确认之前将交易替换为 RBF。当用户试图取消先前卡住的交易并将其发回给自己时,更新的交易通常具有与第一笔交易不同的输出。这几乎肯定是 Alice 的替代交易 2 和 3 发生的情况。

因此,不同版本的交易可以同时在网络中浮动。当矿工包含两个冲突(但无害)的交易时,之前包含的交易可能会变得无效。这使它起初看起来像一朵双花。

虽然理论上比特币网络可以进行双花,但这通常不是一个严重的问题。当您感到恐慌时,以下是一些有用的启发式方法:

无效交易的价值在数千万到数亿美元之间。考虑到这样的双花会严重损害比特币的声誉和市值,以及矿工使用价值数百亿美元的硬件,这是矿工“反弹”利润的最低成本。相比之下,今天的交易价格约为 25 美元。

交易所或其他大型实体在未等待更合理数量的确认之前不会接受此类大宗交易作为最终交易。因此,攻击者不能通过替换单个块来退回支票比特币双花是指什么,他们可能必须替换超过 10 个块。这需要大多数现有矿工相互勾结,同时冒着破坏他们对采矿硬件的投资的风险。

像许多辩论一样,这归结为“双花”一词的定义。今天我提供其中两个原因,其中一个是技术性的,是指 INPUT 的双花,而不是其他用户。输入双花显然已经发生,但对其他用户没有影响。

实际上,双重支出就像在支付另一个用户后退回支票。我们可以非常肯定地说,这是有几个原因的。

由于媒体很快就会注意到“双花”之类的术语,我认为当没有任何启发式方法指向有害的双花时,我们应该谨慎行事。相反,我建议说“交易已过期”,它具有更广泛的含义,包括用户可能有意取消交易的多种方式。

爱丽丝想做什么?

因此,我们确定这肯定不是双花,矿工故意用难度更高的区块链替换区块链以返回非常大的支票。它没有涉及矿工,只是一个陈旧的区块。

但是,许多人仍然对 Alice 发布的不同交易的性质感到好奇。她为什么要取代原来的交易?这是商家试图“零配置”花双倍的钱吗?

我们可以立即排除后者,因为在初始交易和第一次替换交易之间已经过去了将近一整天。但是探索爱丽丝将她的代币花给谁仍然很有趣。虽然我们不知道是谁单独控制了输出,但我们可以使用一些启发式方法来解决这个难题。

1. 输入可以忽略,因为我们知道输入必须由用户控制。

2. 一个输出的交易几乎总是一个内部转账(意味着同一用户的多个钱包之间)。你很少把正确的钱放在你的钱包里去付钱给别人。

3. 有两个输出的交易通常支付给第三方,剩余的费用返还给用户(所谓的零钱输出)。

把拼图放在一起,我们可以看到交易 2 和交易 3 都只有一个输出,这意味着 Alice 可以控制这些输出。事务 1 与事务 3 共享一个输出,因此事务 3 也是如此。

这仅留下交易 1 的第二个输出,3JaLvP。要回答这个问题,我们需要绕道而行。为什么费用较低(1sat/b)的交易会赢? Slushpool 讨厌钱吗?

答案是否定的,Slushpool 的行为完全符合预期。原因是 Alice 或她的对手使用了我们之前讨论过的另一种技术 CPFP 来确认交易。

换句话说,她进行了以前未知的第四笔交易,其中包括交易 a13c2bd 的搁浅输出(地址 3JaLvP)……作为同一块中的唯一输入。

正如我们在此处看到的比特币双花是指什么,新交易支付更高的费用(46.3sat/byte),足以支付两笔交易的费用。因为包含事务 1290376... 的条件是包含事务 a13c2bd...,所以 Slushpool 必须同时包含两者。

通过使用来自 3JaLvP 的资金,我们非常确定资金确实到达了他们的预定目的地,并且实际上并没有被重复使用。我们知道这一点,因为只有控制 3JaLvP 私钥的人才能签署最终确认的 CPFP 交易。

Alice 尝试向第三方 Bob 汇款的可能性很小,他厌倦了等待钱到账。所以他用CPFP给了她未经证实的输出。但也可能是 Alice 从她自己的钱包里汇款或尝试不同的方式来增加交易费用。

因此我们可以得出结论,所有输出确实都由 Alice 控制。