原作者:B10C
オリジナル編集: GaryMa Wu Shuo Blockchain
注: 元のテキストには、各アドレスとトランザクションに対応するハイパーリンクが付いているため、読者はオンチェーンでの検証が容易になります。
私のプロジェクト miningpool-observer は、ビットコイン マイニング プールがトランザクションを検閲しているかどうかを検出することを目的としています。過去数週間にわたって、OFAC が認可したアドレスから支出された 6 件の取引が失われていることが検出されました。この投稿では、これらのトランザクションが OFAC 認可のアドレスからのものであるために意図的にフィルタリングされたのか、あるいはこれらのトランザクションがブロックに表示されなかった理由について他に考えられる説明があるのかどうかを検討します。私は、トランザクションのうち 4 つがフィルタリングされた可能性があると結論付けました。
2023 年 9 月と 10 月に、私の miningpool-observer インスタンスの RSS フィードは、6 つのブロックで OFAC 認可トランザクションが欠落していると報告しました。ブロックの 1 つは ViaBTC マイニング プールによって生成され、もう 1 つは Foundry USA マイニング プールによって生成され、4 つのブロックは F 2 プールによって生成されました。 OFAC 認可取引とは、米国財務省外国資産管理局 (OFAC) によって認可された住所からの、または宛先への取引です。私は、OFAC が発行する特別指定国民 (SDN) リストから OFAC が認可した住所のリストを抽出するツールを管理しています。
トランザクションがブロックに表示されない理由はいくつか考えられます。一般に、トランザクションはネットワーク全体に不均一に分散されており、トランザクションを選択するためのグローバル メモリプールはありません。各ノードには独自の有効なトランザクションのセットがあります。マイニングプールは、他の方法で支払われるトランザクションを優先する場合もあります。ただし、特定のトランザクションをダウングレードまたはフィルタリングする場合もあります。
ここでの目的は、マイニング プールがこれら 6 つの OFAC 認可トランザクションをフィルタリングしたかどうか、またはブロックに表示されないこれらのトランザクションについて他の考えられる説明があるかどうかを判断することです。マイニングプールは、どのトランザクションを含めるか、どのトランザクションを除外するかを自由に選択できることに注意してください。ただし、ビットコインの検閲耐性を分析するには、マイニング プールの数と、それらがトランザクションをどのようにフィルタリングするかを理解することが重要です。
私は、miningpool-observer によって報告された ViaBTC と Foundry の承認されていないトランザクションは誤検知であり、フィルタリングの結果ではない可能性があると結論付けました。ただし、F2Pool ブロックにないトランザクションはフィルタリングされている可能性があります。
ViaBTC ブロック高さ #808660 ブロック
2023 年 9 月 21 日に ViaBTC によって生成されたブロック 808660 には、トランザクション 262025 e 7... が含まれていません。このトランザクションは、100 個の入力を 1 つの出力に結合します。入力の 1 つは、アドレス 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K を支払う出力を消費します。このアドレスは、2021 年 9 月 21 日に OFAC の SDN リストに追加されました。
トランザクションのサイズは 14.7 kvB、支払いレートは 25.18 sat/vByte です。認可されたアドレスから消費された出力は 0.0002 BTC (20k sat) で、ブロック 808660 の約 75 分前に作成されました。 ViaBTC がブロック 808660 を生成したとき、トランザクションはノードのメモリ プールに約 75 分間存在していました。メモリプール内の他のトランザクションには依存しません。
ブロック 808660 とテンプレート料金の分配
miningpool.observer のブロック 808660 のレート分布を確認すると、優先トランザクションを含む 4 MWU のうち約 1 MWU のブロック スペースが ViaBTC によって占有されていることがわかります。これらのトランザクションは、ViaBTC ビットコイン取引アクセラレーターから取得される場合があります。一部のトランザクションを優先するということは、認可されたアドレスから使用されたトランザクションなど、レートが低いトランザクションをブロックに含めることができないことを意味します。この ViaBTC ブロックについて、私の miningpool-observer インスタンスには、ブロックに含まれていない 24 個の大規模なマージされたトランザクションがリストされています。
ブロック 808660 で失われた大規模なマージされたトランザクションのリスト
これは、ViaBTC がこのトランザクションをフィルタリングしなかったという結論につながります。他の優先トランザクションに置き換えられます。これは、3日後にViaBTCがブロック809181で同じ認可されたアドレスからのトランザクション支出をブロックしたという事実によって裏付けられています。
Foundry USA 製ブロック 813231
2023 年 10 月 21 日に Foundry USA によって作成されたブロック 813231 には、トランザクション c 9 b 57191... が含まれていません。このトランザクションは、150 の入力を 1 つの出力に結合します。入力の 1 つは、アドレス 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML7 の出力への支払いを費やしました。このアドレスは、2023 年 4 月 14 日に OFAC の SDN リストに追加されました。
これら 150 の入力のほとんどは 2/3 マルチ署名 P 2 SH スクリプトであるため、欠落しているトランザクションは 43842 vByte と非常に大きくなります。 5.09 sat/vByte のレートを支払い、mempool 内のトランザクションに依存しません。このレートは、私の Bitcoin Core ノードによって構築されたテンプレート内の 2215 トランザクション中 161 位にランクされるのに十分です。ただし、前のケースと同様に、Foundry USA のブロック 812331 について私が知ったとき、このトランザクションを含む他の 18 のトランザクションは約 30 秒間だけ私のメモリプールに存在していました。これにより、Foundry はトランザクションについてまだ知らないため、ブロックにトランザクションを含める機会がなくなりました。
トランザクションの伝播には数秒かかる場合があります。さらに、ほとんどのマイニング プールは、新しいブロック テンプレートを 30 秒ごとにマイナーにプッシュするだけで、その後、新しい作業に切り替えるまでに時間がかかります。さらに、miningpool-observer ツールは、数秒ごとに新しいブロック テンプレートを要求し、不足しているトランザクションと余分なトランザクションの間の最小の差に基づいて最適な一致を作成します (FAQ の方法論を参照)。これにより、60 秒程度の若いトランザクションで誤検知が発生する可能性があります。
mempool.space ブロック エクスプローラーは、マイナーによってブロードキャストされたブロック テンプレートと最終ブロック間の差異も追跡します。 c 9 b 57191.. がテンプレートには含まれていますが、実際のブロックには含まれていないことが示されています。トランザクションは「最近ブロードキャスト」としてマークされます。
Foundry は、ブロック 813231 の欠落しているトランザクションが mempool.space によって「最近ブロードキャストされた」と見なされるとみなします。
この結論は、Foundry USA がこのトランザクションをフィルタリングしなかったことを示しています。トランザクションのブロードキャストが遅すぎて、ブロック 813231 を発見したブロック生成作業に含めることができませんでした。さらに、Foundry USA は、認可されたトランザクションを含む高さ 813232 の次のブロックも生成しました。
ブロック 810727、811791、811920、および 813357 は F 2 プールによって生成されました
F 2 プールは、2023 年 10 月 5 日にブロック 810727 を生成し、..ccda 1498 として識別され、ブロック 811791 は 10 月 12 日に生成され、..af 445 3d 6 として識別され、ブロック 811920 は ..00 badf 62 として識別され、ブロック813357 は 10 月 22 日に製造され、..6 3ac 1669 として特定されました。各ブロックには認可されたトランザクションがありません。これらの各トランザクションは、150 2/3 マルチシグネチャ入力を単一の出力に結合します。各トランザクションでは、入力の 1 つがアドレス 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML を支払う出力を消費します。これは、前のセクションで説明したのと同じマージ モードとアドレスです。欠落しているすべてのトランザクションは、メモリプール内のトランザクションに依存しません。
ブロック 810727
ブロック 810727 では、F 2 プールには、認可された出力を使用するトランザクション c 6 a 66836..9 が含まれていません。 150 の 2/3 マルチシグ入力を使用すると、トランザクションは非常に大きくなり、44017 vBytes を消費します。これは 446260 sats の料金を支払い、F 2 プールがブロック 810727 を生成したとき、ノードのメモリ プールに 4 時間近く存在していました。 F 2 プールの選択には、c 6 a 66836... と比較してトランザクション 907 e 1 f 45..10 が含まれています。このトランザクションはマージ トランザクションでもあり、150 の入力と 1 つの出力を持ちますが、認可された出力は消費しません。料金は同じ 446260 sat ですが、実際にはさらに 3 vByte 増えて 44020 vByte になります。これは、欠落しているトランザクション c 6 a 66836.. のレートが 907 e 1 f 45.. よりわずかに高いことを意味します。レートの厳密な順序付けの観点からは、欠落したトランザクションも含める必要があります。ただし、実際には、3 vByte の追加ブロックスペースが全体のコストに違いをもたらす可能性はほとんどありません。
F 2 プール ブロック 810727 で不足している認可済みトランザクションを、追加の含まれているトランザクションと比較します。追加のトランザクションはさらに大きくなり、3 vBytes が追加されます。
ブロック 811791
F 2 プール ブロック 811791 では、トランザクション aa 001 ce 6..9 が欠落しています。前のマージ トランザクションと同様に、このトランザクションのサイズは 42459 vBytes (169836 WU) です。 446,260 sat のコストで、10.5 sat/vByte のレートが支払われました。ブロック 811791 がマイニング プール観察ノードに到達すると、トランザクションはそのメモリ プール内に 4 分間存在します。
このブロックでは、OP_RETURN ブロック コミットメントを含む 5 つのトランザクションが欠落していることに注意してください。ただし、F 2 プールは独自のブロック コミットメントを挿入します。これは頻繁に発生しており、以前にも報告されています。さらに、F 2 プールには、ブロック内に 2 つのより大きな手数料ゼロのトランザクションが含まれていました。そのうちの 1 つは前の F 2 プールのコインベース出力をマージし、もう 1 つはマイナーへの支払いトランザクションです。これは、F 2 プールの一般的なブロック生成動作です。
これらの追加トランザクションは 400 kWU を超えるブロック領域を占有しますが、トランザクション aa 001 ce 6… を含めるにはまだ十分です。このブロックには、aa 001 ce 6.. (10.5 sat/vByte) よりも低いレートで 2.86 MWU トランザクションが含まれています。約 170 kU のこのトランザクションは、このブロックに収まるはずです。 mempool.space では、このトランザクションは「削除」としてマークされ、ブロックの健全性インジケーターに悪影響を及ぼしました。
ブロック811791には、不足しているトランザクションの手数料および重量を含むトランザクションパッケージの手数料分配が含まれる。
ブロック 811920
ブロック 811920 では、F 2 プールには、認可された出力を使用するトランザクション 1 cb 3d 6 bc..9 が含まれていません。この取引はさらに大規模な合併でもある。サイズは 43630 vBytes (169836 WU) で、44660 sat に対して 10.23 sat/vByte の料金を支払います。ブロック 811920 がマイニング プール観察ノードに到達すると、トランザクションはノードのメモリ プールに 2 分間近く存在します。
ブロック 811920 では、10.23 sat/vByte 未満のレートを支払う 1.44 MWU トランザクションがありました。トランザクション 1 cb 3d 6 bc.. 170 kWU がこのブロックに収まるはずです。このトランザクションはノードのメモリ プールに約 2 分間しか存在しなかったため、F 2 プールがブロック テンプレートを構築するまでにトランザクションが F 2 プールに伝播していなかった可能性があります。 mempool.space では、トランザクションは「最近ブロードキャスト」としてもマークされます。通常、マイニング プールはビットコイン ネットワークへの良好な接続を確保するために懸命に働きます。トランザクションが mempool.space および miningpool.observer のメモリ プールにある場合、トランザクションはすでに F 2 プールのメモリ プールにある可能性が高くなります。このトランザクションは、F 2 プールがブロック テンプレートを構築したときにすでに存在していました。
ブロック811920では、不足している取引の手数料および重量を含む取引パッケージの手数料配分が含まれる。
ブロック 813357
F 2 プールのブロック 813357 では、認可された出力を使用するトランザクション e 49 cdb 60..9 が欠落しています。このマージされたトランザクションのサイズは 43053 vBytes (172209 WU) です。 178504 sat のコストで、4.15 sat/vByte のレートが支払われました。ブロック 813357 がマイニング プール観察ノードに到達すると、トランザクションはノードのメモリ プールに 25 分以上存在します。
ブロック 813357 では、4.15 sat/vByte 未満の支払いを行う 684 kU のトランザクションがありました。トランザクション e 49 cdb 60.. 172 kU がこのブロックに収まるはずです。トランザクションはノードのメモリ プールに 25 分以上存在していたので、トランザクションが F 2 プール内のノードに伝播した可能性があります。このトランザクションは、ブロック 813357 の mempool-space テンプレートにも含まれています。
ブロック 813357 には、不足しているトランザクションのレートと重みを含むトランザクション パッケージのレート分布が含まれています。
F 2 プールブロックの概要
ブロック 810727 に存在しない認可済みトランザクションから判断すると、含まれているトランザクションよりも 3 vByte 小さいため、そのレートはわずかに高くなります。ただし、この場合、追加のブロック スペースの 3 vBytes は合計手数料には影響せず、Bitcoin Core ブロック テンプレート アルゴリズムによって、より高い手数料のトランザクションが選択されます。ブロック 811791 に含まれる追加の大規模トランザクションは、欠落しているブロック 811791 内の認可されたトランザクションには影響しません。トランザクションはブロックから除外された可能性が高くなります。 mempool.space のブロック監査はこれに一致します。 F 2 プールが、ブロック 811920 で承認されていないトランザクションについてまだ学習していない可能性があります。ただし、大規模なマイニング プールの場合、トランザクションを受信するには 2 分で十分です。特に、mempool.space と miningpool.observer はこのトランザクションについてすでに知っているためです。認可されたトランザクションが F 2 プールに含まれなかったのは、フィルタリングによって除外されたことが考えられます。ブロック 811791 の欠落トランザクションと同様に、ブロック 813357 の欠落トランザクションは F 2 プールによって除外される可能性があります。
これら 4 つの承認済みトランザクションが欠落しているため、F 2 プールが現在トランザクションをフィルタリングしているという結論につながります。単一の OFAC 認可アドレス 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML に関連する欠落トランザクションのみが表示されるため、F 2 プールがこの単一アドレスのみをフィルタリングしているのか、それともすべての OFAC 認可アドレスをフィルタリングしているのかを判断できません。
要約する
この記事では、マイニング プール監視ツールによってブロックから欠落していることが検出された、OFAC 認可アドレスからの支出による 6 つのビットコイン トランザクションについて説明します。 ViaBTC および Foundry USA マイニング プール ブロックから欠落している 2 つのトランザクションは誤検知であり、フィルターされませんでした。 F 2 プール ブロックから欠落している 4 つの OFAC 認可トランザクションは、フィルタリングされた可能性があります。これは、アジア発のマイニングプールである F2 プールがなぜ米国の OFAC 制裁に基づいて取引を最初にフィルタリングしたのかという疑問を引き起こします。
ただし、ビットコインネットワークは依然として正常に機能しています。 1 つのマイニング プールによるトランザクションのフィルタリングは、ビットコイン ネットワーク全体の検閲耐性には影響しません。プールのトランザクション選択をさらに監視すると、たとえば、OFAC 制裁に基づいて、より多くのプールがトランザクションのフィルタリングを開始する時期を特定するのに役立ちます。また、これらのプールにコンピューティング能力を振り向けるマイナーが、プールの (予告なく) フィルタリング ポリシーに同意しない場合に、情報に基づいて切り替えの決定を下せるようになります。


