六筆OFAC製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?



本文討論了六筆比特幣交易,這些交易的花費來自受 OFAC 製裁的地址,被礦池觀察工具檢測為缺失於區塊中。

作者|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製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图1

區塊808660以及模板的費用分佈

在miningpool.observer 上檢查808660 區塊的費率分佈,發現ViaBTC 佔用了大約4 MWU 中的1 MWU 的區塊空間,其中包括優先處理的交易。這些交易可能來自ViaBTC 比特幣交易加速器。優先處理一些交易意味著較低費率的交易,例如從受製裁地址支出的交易,在該區塊中無法包含。對於這個ViaBTC 區塊,我的miningpool-observer 實例列出了24 個未包含在該區塊中的大型合併交易。

六筆OFAC製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图3

區塊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製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图5

 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製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图7

比較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製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图9

在區塊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製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图11

在區塊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製裁交易失蹤:第一個遵循美國製裁的比特幣礦池出現?插图13

在區塊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 製裁過濾交易。它還允許將算力指向這些礦池的礦工在他們不同意礦池(未宣布的)過濾政策時,做出明智的切換決策。

聯系郵箱:0xniumao@gmail.com