作者|B10C

编译|GaryMa吴说区块链

原文:

https://b10c.me/observations/08-missing-sanctioned-transactions/

注:原文对于每个地址以及交易都附带对应的超链接,更易于读者进行链上验证。

我的项目,miningpool-observer,旨在检测比特币矿池是否审查交易。在过去几周,它检测到六笔从 OFAC 制裁地址支出的交易失踪。这篇文章探讨了这些交易是否被故意过滤,因为它们来自 OFAC 制裁的地址,或者是否有其他可能的解释导致这些交易未出现在区块中。我得出结论,其中有四笔交易可能被过滤。

在 2023 年 9 月和 10 月,我的 miningpool-observer 实例的 RSS 订阅报告了六个区块中缺少 OFAC 制裁交易。其中一个区块由 ViaBTC 矿池出块,另一个由 Foundry USA 矿池出块,还有四个由 F2Pool 出块。OFAC 制裁交易是指一笔从或支付给美国财政部外国资产控制办公室(OFAC)制裁的地址的交易。我维护一个工具,从 OFAC 发布的特别指定国民(SDN)名单中提取 OFAC 制裁地址的列表。

交易未出现在区块中可能有几种原因。一般来说,交易在网络中传播不均匀,没有全局内存池来选择交易。每个节点都有自己一组有效的交易。矿池也可能优先处理通过其他方式支付的交易。然而,它们也可能对某些交易进行降级或过滤。

这里的目标是确定矿池是否过滤了这六笔 OFAC 制裁交易,或者这些交易未出现在区块中是否有其他可能的解释。请注意,矿池可以自由选择包含哪些交易,排除哪些交易。然而,为了分析比特币的抗审查性质,了解有多少矿池以及它们如何过滤交易至关重要。

我得出结论,miningpool-observer 报告的 ViaBTC 和 Foundry 缺少的受制裁交易可能是误报,而不是过滤的结果。然而,F2Pool 区块中缺少的交易很可能已被过滤。

ViaBTC 出块的高度#808660 区块

ViaBTC 于 2023 年 9 月 21 日出块的 808660 区块未包含交易 262025e7..。这笔交易将 100 个输入合并为一个输出。其中一个输入支出了付款给地址1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K 的输出。该地址于 2021 年 9 月 21 日被添加到 OFAC 的 SDN 名单中。

该交易的大小为 14.7 kvB,支付费率为 25.18 sat/vByte。从受制裁地址支出的输出为 0.0002 BTC(20k sat),并且是在出块区块 808660 之前的大约 75 分钟内被创建的。当 ViaBTC 出块区块 808660 时,该交易已经在我的节点内存池中存在了约 75 分钟。它对内存池中的其他交易没有依赖关系。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

区块808660以及模板的费用分布

在 miningpool.observer 上检查 808660 区块的费率分布,发现 ViaBTC 占用了大约 4 MWU 中的 1 MWU 的块空间,其中包括优先处理的交易。这些交易可能来自 ViaBTC 比特币交易加速器。优先处理一些交易意味着较低费率的交易,例如从受制裁地址支出的交易,在该区块中无法包含。对于这个 ViaBTC 区块,我的 miningpool-observer 实例列出了 24 个未包含在该区块中的大型合并交易。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

区块 808660 中丢失的大型合并交易列表

由此推出结论,ViaBTC 没有过滤这笔交易。它被其他优先处理的交易替代。这得到了支持,因为三天后,ViaBTC 在区块 809181 中出块了一笔从相同受制裁地址支出的交易。

FoundryUSA 出块的 813231 区块

Foundry USA于2023年10月21日出块的 813231 区块未包含交易 c9b57191..。该交易将 150 个输入合并为一个输出。其中一个输入支出了付款给地址 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML7 的输出。该地址于 2023 年 4 月 14 日被添加到 OFAC 的 SDN 名单中。

由于这 150 个输入大多是 2/3 多重签名 P2SH 脚本,因此缺失的交易非常大,为 43842 vByte。它支付的费率为 5.09 sat/vByte,且不依赖于内存池中的交易。这个费率足以使其在我 Bitcoin Core 节点构建的模板中的 2215 个交易中排名第 161 位。然而,与之前的情况一样,当我了解到 Foundry USA 出块区块 812331 时,包括这笔交易在内的其他 18 笔交易仅在我的内存池中存在了大约 30 秒。这使得 Foundry 没有机会在他们的区块中包含这笔交易,因为他们还不知道这笔交易。

交易传播可能需要几秒钟的时间。此外,大多数矿池每 30 秒只向矿工推送新的区块模板,然后需要一段时间来切换到新的工作。此外, miningpool-observer 工具每隔几秒请求新的区块模板,并根据缺少和额外交易的最小差异进行最佳匹配(请参阅 FAQ 中的方法论)。这使得年轻交易的误报成为可能,可能高达 60 秒左右。

mempool.space 区块浏览器还跟踪矿工广播的区块模板与最终区块之间的差异。它们显示 c9b57191..在他们的模板中被包含,但在实际区块中缺失。交易被他们标记为“最近广播”。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

Foundry 认为区块 813231 中丢失的交易被 mempool.space 视为“最近广播”

此结论表明 Foundry USA 没有过滤此交易。该交易广播太晚,无法包含在发现区块 813231 的出块工作中。此外,Foundry USA 还在高度 813232 出块了下一个区块,并在其中包含了这笔受制裁交易。

区块810727、811791、811920和813357由F2Pool出块

F2Pool 在 2023 年 10月 5 日出块了区块 810727,标识为..ccda1498;在 10月 12 日出块了区块 811791,标识为..af4453d6 和区块 811920,标识为..00badf62;以及在 10月 22 日出块了区块 813357,标识为..63ac1669。每个区块都缺少一笔受制裁交易。这些交易中,每笔都将 150个 2/3 多重签名输入合并为一个输出。对于每个交易,其中一个输入花费了支付给地址 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML 的输出。这与前一部分讨论的合并模式和地址相同。所有缺失的交易都不依赖于内存池中的交易。

区块810727

在区块 810727 中,F2Pool 没有包含交易 c6a66836..9,该交易花费了一个受制裁的输出。由于有 150个 2/3 多重签名输入,该交易相当大,占据了 44017 vBytes。它支付了 446260 sat 的费用,在 F2Pool 出块区块 810727 时,在我的节点内存池中已经存在了将近 4 小时。与 c6a66836.. 相比,F2Pool 选择包含交易 907e1f45..10。这笔交易也是一个合并交易,有 150个输入和一个输出,但不花费受制裁的输出。它支付相同的费用,446260 sat,但实际上较大,增加了 3 vByte,达到 44020 vByte。这意味着缺失的交易 c6a66836.. 的费率略高于 907e1f45..。从费率严格排序的角度来看,应该包含缺失的交易。然而,在实践中,3 vByte 的额外块空间不太可能在整体费用上产生影响。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

对比 F2Pool 区块 810727 中缺失的受制裁交易与额外包含的交易。额外的交易较大,增加了 3 vBytes。区块811791

在 F2Pool 区块 811791 中,缺少了交易 aa001ce6..9。与之前的合并交易类似,该交易的大小为 42459 vBytes(169836 WU)。以 446260 sat 的费用,它支付了 10.5 sat/vByte 的费率。当区块 811791 到达矿池观察节点时,该交易在其内存池中已经存在了四分钟。

在这个区块中,值得注意的是缺少了五个包含 OP_RETURN 的块承诺的交易。然而,F2Pool 却插入了自己的块承诺。这种情况经常发生,并且之前已经报告过。此外,F2Pool 在其区块中包含了两笔较大的零费用交易。其中一笔合并了先前的 F2Pool coinbase 输出,另一笔是支付给矿工的交易。这是 F2Pool的常见出块行为。

尽管这些额外的交易占用了超过 400 kWU 的区块空间,但仍然足够包含交易 aa001ce6...。该区块包括低于 aa001ce6..费率(10.5 sat/vByte)的 2.86 MWU 交易。这笔约 170 kWU 的交易本应能够容纳在该区块中。在 mempool.space 上,此交易被标记为“已移除”,这对其区块健康度指标产生了负面影响。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

在区块 811791 中,包含了缺失交易的费率和权重的交易包的费率分布。区块811920

在区块 811920中,F2Pool 没有包含交易 1cb3d6bc..9,该交易花费了一个受制裁的输出。这笔交易同样是一笔较大的合并交易。它的大小为 43630 vBytes(169836 WU),并且以 44660 sat 的费用支付了 10.23 sat/vByte 的费率。当区块 811920到达矿池观察节点时,该交易在节点的内存池中已经存在了近 2 分钟。

在区块 811920中,有 1.44 MWU 的交易支付的费率低于 10.23 sat/vByte。交易 1cb3d6bc.. 的 170 kWU 应该能够容纳在该区块中。由于该交易在我的节点内存池中仅存在了将近两分钟,有可能在 F2Pool 构建其区块模板时还没有传播到 F2Pool。在 mempool.space 上,该交易也被标记为“最近广播”。通常,矿池努力确保与比特币网络的良好连接。如果该交易在 mempool.space 和 miningpool.observer 的内存池中,有很高的可能性该交易已经在 F2Pool 的内存池中。在 F2Pool 构建其区块模板时,该交易已经存在。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

在区块 811920中,包含了缺失交易的费率和权重的交易包的费率分布。区块813357

在 F2Pool 的区块 813357 中,缺少了交易 e49cdb60..9,该交易花费了一个受制裁的输出。这笔合并交易的大小为 43053 vBytes(172209 WU)。以 178504 sat 的费用,它支付了 4.15 sat/vByte 的费率。当区块 813357 到达矿池观察节点时,该交易在节点的内存池中已经存在了超过 25 分钟。

在区块 813357 中,有 684 kWU 的交易支付的费率低于 4.15 sat/vByte。交易 e49cdb60.. 的 172 kWU 应该能够容纳在该区块中。由于该交易在我的节点内存池中已经存在了超过 25 分钟,该交易很可能已经传播到 F2Pool 的一个节点。该交易也包含在 mempool-space 对于区块 813357 的模板中。

六笔OFAC制裁交易失踪:首个遵循美国制裁的比特币矿池出现?

在区块 813357 中,包含了缺失交易的费率和权重的交易包的费率分布。对F2Pool区块的总结

从区块 810727 中缺失的受制裁交易来看,它的费率略高,因为它比包含的交易小 3 vByte。然而,在这种情况下,这 3 vByte 的额外块空间不会在总费用上产生影响,比特币核心区块模板算法将选择具有更高费率的交易。在区块 811791 中额外包含的大型交易不会对缺失的区块 811791 中的受制裁交易产生影响。该交易很可能已经被从区块中过滤掉。在 mempool.space 上的区块审核与此相符。有可能 F2Pool 尚未了解到区块 811920中缺失的受制裁交易。然而,对于一个大型矿池来说,2 分钟足以接收一笔交易。特别是由于 mempool.space 和 miningpool.observer 已经了解了这笔交易。F2Pool 之所以没有包含该受制裁交易,很可能是因为它被过滤掉了。与区块 811791 中的缺失交易类似,区块 813357 中的缺失交易很可能被 F2Pool 过滤掉。

这四个缺失的受制裁交易可推出一个结论,即 F2Pool 目前正在过滤交易。由于我们只看到与单个 OFAC 受制裁地址 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML 相关的交易缺失,我们无法确定 F2Pool 是否仅仅过滤了这个单一地址,还是所有 OFAC 受制裁的地址。

总结

本文讨论了六笔比特币交易,这些交易的花费来自受 OFAC 制裁的地址,被矿池观察工具检测为缺失于区块中。缺失于 ViaBTC 和 Foundry USA 矿池区块的两笔交易是误报,未被过滤。F2Pool 区块中缺失的四笔 OFAC 受制裁交易很可能已被过滤。这引发了一个问题,为什么 F2Pool,一个起源于亚洲的矿池,是第一个基于美国 OFAC 制裁过滤交易的矿池。

然而,比特币网络仍然正常运作。一个矿池过滤交易不会影响比特币网络整体的审查抵抗性。对矿池交易选择的进一步监控可以帮助识别更多的矿池何时开始基于例如 OFAC 制裁过滤交易。它还允许将算力指向这些矿池的矿工在他们不同意矿池(未宣布的)过滤政策时,做出明智的切换决策。