Six missing OFAC-sanctioned transactions First Bitcoin mining pool compliant with US sanctions emerges?

Six OFAC-sanctioned Transactions Reported Missing, First US Sanction-Compliant Bitcoin Mining Pool Emerges

Author | B10C

Translation | GaryMa says blockchain

Original Text:

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

Note: The original text includes corresponding hyperlinks for each address and transaction, making it easier for readers to verify on the blockchain.

My project, miningpool-observer, aims to detect whether Bitcoin mining pools censor transactions. Over the past few weeks, it has detected six transactions missing from spendings of OFAC-sanctioned addresses. This article explores whether these transactions have been intentionally filtered due to being from OFAC-sanctioned addresses, or if there are other possible explanations for their absence in the blocks. I conclude that four of these transactions are likely filtered.

In September and October 2023, my miningpool-observer instance’s RSS feed reported six blocks missing OFAC-sanctioned transactions. One block was mined by ViaBTC, another by Foundry USA, and four by F2Pool. OFAC-sanctioned transactions are those that involve an address sanctioned by the U.S. Department of the Treasury’s Office of Foreign Assets Control (OFAC). I maintain a tool that extracts a list of OFAC-sanctioned addresses from OFAC’s specially designated nationals (SDN) list.

There can be several reasons why transactions may not appear in blocks. Generally, transactions propagate unevenly throughout the network, and there is no global mempool to select transactions from. Each node has its own set of valid transactions. Mining pools may also prioritize transactions paid in other ways. However, they may also downgrade or filter certain transactions.

The goal here is to determine whether the mining pools filtered these six OFAC-sanctioned transactions or if there are other possible explanations for their absence in the blocks. It is important to note that mining pools can freely choose which transactions to include and exclude. However, understanding how many mining pools do this and how they filter transactions is crucial to analyzing Bitcoin’s censorship-resistant nature.

I conclude that the missing OFAC-sanctioned transactions reported by miningpool-observer for ViaBTC and Foundry may be false positives rather than filtering results. However, the missing transactions in the F2Pool blocks are likely filtered.

ViaBTC Block Height #808660

Block 808660, mined by ViaBTC on September 21, 2023, did not include transaction 262025e7… This transaction merged 100 inputs into one output. One of the inputs spent funds to address 1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K, which was added to OFAC’s SDN list on September 21, 2021.

The transaction size was 14.7 kB, with a fee rate of 25.18 sat/vByte. The output spent from the sanctioned address was 0.0002 BTC (20k sat) and was created approximately 75 minutes before block 808660 was mined. When ViaBTC mined block 808660, the transaction had been in my node’s mempool for about 75 minutes. It did not have any dependencies on other transactions in the mempool.

Image

Cost distribution of Block 808660 and the template

Checking the fee distribution of Block 808660 on miningpool.observer, it was found that ViaBTC occupies about 1 MWU of the 4 MWU block space, including prioritized transactions. These transactions might be coming from ViaBTC’s Bitcoin transaction accelerator. Prioritizing some transactions means that lower fee transactions, such as those spending from sanctioned addresses, couldn’t be included in this block. For this ViaBTC block, my miningpool-observer instance listed 24 large merged transactions that were not included in this block.

Image

List of large merged transactions that were missing in Block 808660

From this, it can be deduced that ViaBTC didn’t filter this transaction. It got replaced by other prioritized transactions. This is supported by the fact that three days later, ViaBTC mined a transaction spending from the same sanctioned address in Block 809181.

Block 813231 mined by Foundry USA

Block 813231 mined by Foundry USA on October 21, 2023 did not include the transaction c9b57191.. where 150 inputs were merged into one output. One of the inputs spent the output to address 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML7. This address was added to OFAC’s SDN list on April 14, 2023.

Due to these 150 inputs mostly being 2/3 multisig P2SH scripts, the missing transaction was quite large at 43842 vBytes. It paid a fee rate of 5.09 sat/vByte and didn’t rely on transactions in the mempool. This fee rate was enough to rank it 161st out of the 2215 transactions in the template built by my Bitcoin Core node. However, as with the previous case, when I learned about Foundry USA mining Block 812331, including this transaction, along with 18 other transactions, they only existed in my mempool for about 30 seconds. This means that Foundry didn’t have a chance to include this transaction in their block because they didn’t know about it yet.

Transaction propagation can take a few seconds. Additionally, most mining pools only push new block templates to miners every 30 seconds, and then it takes some time to switch to the new work. Furthermore, the miningpool-observer tool requests new block templates every few seconds and matches them with minimal differences of missing and extra transactions (see methodology in the FAQ). This makes false positives for young transactions possible, up to about 60 seconds.

The mempool.sLianGuaice block explorer also tracks the difference between the block template broadcasted by miners and the final block. They show that c9b57191.. was included in their template but was missing in the actual block. They mark such transactions as “recently broadcasted”.

Image

Foundry believes that the missing transaction in block 813231 is considered “recently broadcasted” by mempool.sLianGuaice.

This conclusion suggests that Foundry USA did not filter this transaction. The transaction was broadcasted too late to be included in the mining work of discovering block 813231. In addition, Foundry USA also mined the next block at height 813232 and included this sanctioned transaction in it.

Blocks 810727, 811791, 811920, and 813357 were mined by F2Pool

F2Pool mined block 810727 on October 5, 2023, identified as..ccda1498; block 811791 on October 12, identified as..af4453d6, and block 811920, identified as..00badf62; and block 813357 on October 22, identified as..63ac1669. Each block is missing one sanctioned transaction. In these transactions, each combines 150 2/3 multi-signature inputs into one output. For each transaction, one input spends the output paid to address 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML. This is the same merge pattern and address discussed in the previous section. All missing transactions do not depend on transactions in the memory pool.

Block 810727

In block 810727, F2Pool did not include transaction c6a66836..9, which spends a sanctioned output. This transaction is relatively large due to the 150 2/3 multi-signature inputs, occupying 44017 vBytes. It paid a fee of 446260 sat, and had been present in my node’s memory pool for nearly 4 hours at the time F2Pool mined block 810727. Compared to c6a66836.., F2Pool chose to include transaction 907e1f45..10. This transaction is also a merged transaction with 150 inputs and one output, but it does not spend the sanctioned output. It pays the same fee, 446260 sat, but is actually larger, adding 3 vBytes, reaching 44020 vBytes. This means that the missing transaction c6a66836.. has a slightly higher fee rate than 907e1f45… From the perspective of strict fee ordering, the missing transaction should be included. However, in practice, the additional 3 vBytes of block space are unlikely to have an impact on the overall fee.

Image

Comparison of the missing sanctioned transactions and the additionally included transactions in F2Pool block 810727. The additional transactions are larger, adding 3 vBytes.

Block 811791

In F2Pool block 811791, the transaction aa001ce6..9 is missing. Similar to the previous merged transactions, this transaction is sized at 42459 vBytes (169836 WU). With a fee of 446260 sat, it paid a fee rate of 10.5 sat/vByte. When block 811791 reached the mining pool observation node, this transaction had already been in its memory pool for four minutes.

In this block, it is worth noting the absence of five blocks containing OP_RETURN transactions. However, F2Pool has inserted its own block commitment. This situation often occurs and has been reported before. In addition, F2Pool includes two large fee-free transactions in its block. One of them merges previous F2Pool coinbase outputs, and the other is a transaction paid to the miner. This is a common behavior of F2Pool when mining blocks.

Although these additional transactions take up more than 400 kWU of block space, it is still enough to include transaction aa001ce6…. The block includes transactions with a fee rate (<10.5 sat/vByte) of 2.86 MWU. This transaction, approximately 170 kWU, should have been able to fit in the block. On mempool.sLianGuaice, this transaction is marked as “removed,” which has a negative impact on the block’s health indicator.

Image

In block 811791, the fee distribution of the transaction package that includes the missing transaction rates and weights is included.

Block 811920

In block 811920, F2Pool did not include transaction 1cb3d6bc…9, which spent a sanctioned output. This transaction is also a large merged transaction. It has a size of 43630 vBytes (169836 WU) and paid a fee of 44660 sat at a rate of 10.23 sat/vByte. When block 811920 reached the mining pool observation node, this transaction had already been in the node’s mempool for nearly 2 minutes.

In block 811920, there are transactions with a fee lower than 10.23 sat/vByte, totaling 1.44 MWU. The transaction 1cb3d6bc… with a size of 170 kWU should have been able to fit in the block. Since the transaction only existed in my node’s mempool for nearly two minutes, it is possible that it had not yet propagated to F2Pool when F2Pool built its block template. On mempool.sLianGuaice, this transaction is also marked as “recently broadcast.” Typically, mining pools strive to have a good connection to the Bitcoin network. If this transaction is in mempool.sLianGuaice and miningpool.observer’s mempool, there is a high possibility that it is already in F2Pool’s mempool. The transaction existed when F2Pool built its block template.

Image

In block 813357, which belongs to F2Pool, the transaction e49cdb60…9 is missing, which spent a sanctioned output. This merged transaction has a size of 43053 vBytes (172209 WU). With a fee of 178504 sat, it was paid at a rate of 4.15 sat/vByte. When block 813357 reached the mining pool observation node, this transaction had already been in the node’s mempool for over 25 minutes.

In block 813357, there are 684 kWU worth of transaction payments with fees lower than 4.15 sat/vByte. The transaction e49cdb60.. with 172 kWU should be able to fit in this block. Since this transaction has been in my node’s mempool for over 25 minutes, it is likely that the transaction has already propagated to a node in F2Pool. This transaction is also included in the mempool-sLianGuaice template for block 813357.

Image

In block 813357, there is a distribution of fee rates for transaction packages that include missing transactions rates and weights.

Summary of F2Pool block

From the missing sanctioned transaction in block 810727, it has a slightly higher fee rate because it is 3 vByte smaller than the included transactions. However, in this case, the additional 3 vByte block space does not have an impact on the total cost, as the Bitcoin Core block template algorithm selects transactions with higher fees. The extra large transaction included in block 811791 does not affect the missing sanctioned transactions in block 811791. This transaction is likely to have been filtered out from the block. The block audit on mempool.sLianGuaice is consistent with this. It is possible that F2Pool is not yet aware of the missing sanctioned transaction in block 811920. However, for a large mining pool, 2 minutes is sufficient time to receive a transaction. Especially since mempool.sLianGuaice and miningpool.observer are already aware of this transaction. F2Pool’s exclusion of this sanctioned transaction is likely because it has been filtered out. Similar to the missing transactions in block 811791, the missing transactions in block 813357 are likely to have been filtered out by F2Pool.

These four missing sanctioned transactions lead to the conclusion that F2Pool is currently filtering transactions. Since we only see missing transactions related to a single OFAC-sanctioned address 3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML, we cannot determine if F2Pool is only filtering this single address or all OFAC-sanctioned addresses.

Summary

This article discusses six Bitcoin transactions that had spending from OFAC-sanctioned addresses and were detected as missing from mining pool observation tools. The two transactions missing from ViaBTC and Foundry USA mining pool blocks were false positives and were not filtered. The four missing OFAC-sanctioned transactions in F2Pool blocks are likely to have been filtered. This raises the question of why F2Pool, an Asian-based mining pool, is the first to filter transactions based on US OFAC sanctions.

However, the Bitcoin network still operates normally. Filtering transactions by a mining pool does not affect the overall censorship resistance of the Bitcoin network. Further monitoring of mining pool transaction selection can help identify when more pools start filtering transactions based on, for example, OFAC sanctions. It also allows miners redirecting their hash power to these pools to make informed switching decisions when they disagree with a pool’s (undisclosed) filtering policy.

We will continue to update Blocking; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

DeFi

Arweave Fork Frenzy Unofficial Plans Sparks Community Controversy!

According to the founder of Arweave, there are currently no official plans for a hard fork in the works.

Bitcoin

💰 Bullish Drive: Bitcoin Bulls Optimistic for 2024

Cryptocurrency traders are dedicated to achieving a strong finish to the year, driven by a positive on-chain metric a...

Blockchain

SheKnows | Thunderstorm, Attack, Vulnerability! What will protect you, my BTC?

In the past February, the exchange was thundered, attacked, and the private key was stolen. The DeFi project had loop...

Blockchain

Research Report | 2020 Notable Disruptive Innovations Including Bitcoin: Bitcoin's Market Cap Results Will Be in Trillion

Translation: Liu Bin Source: Didi Technology Information Editor's Note: The original title was "Disruptive ...

Blockchain

Bakkt will conduct bitcoin futures trading test in July, and Bitcoin's overall network computing power hit a record high

Summary This week, the currency market continued to fluctuate at a high level and hit a new high of $9,332. Bitcoin f...

Blockchain

Bitcoin for $0.32, they dreamed back to 2009 today

On August 23, 2019, the history of cryptocurrencies may remember this day. In the normal market price of Bitcoin was ...