Marathon Digital Holdings gives in and adopts Taproot

Marathon Digital Holdings gives in and adopts Taproot

From the 6th of May 2021 MARA Pool mined censored blocks in the Bitcoin Blockchain. They were declared as OFAC Compliant. It was noted that some transaction, despite the filters, were coming from transaction traceable to Hydra.

The real funny thing is that in order to fight this, transactions from Iran and other countries were sent to the addresses of MARA Pool, so that in the end MARA Pool bitcoins should have been filtered and censored by MARA Pool itself. This showed in the clearest way that MARA Pool attempt to censorship Bitcoin was a failure by all the line.

The 31th of May 2021 Marathon Digital Holding sent out a press with this title: “Marathon’s Mining Pool, MaraPool, To Cease Filtering Transactions”. You can find it here: https://ir.marathondh.com/news-events/press-releases/detail/1244/marathon-signals-for-taproot

They say they have adopted Taproot and will not censorship anymore the blocks.

It’s clear that it was not a “decision”, but definitely they found that their approach has miserably failed. Completely.

Bitcoin Blockchain with the adoption of Taproot and Schnorr Signatures will be even more censorship resistant and there will be no way to state clearly where a transaction will come from. Hard times for who wants to mine the fungibility of Bitcoin.

We can archive this attempt to control Bitcoin. It didn’t even last long. 25 days.

Let’s see the block mined by MARA Pool, let’s compare fees and number of transactions included within the blocks “OFAC Compliant” and not.In [1]:

# First we import blocksci
import blocksci

# We import Counter from collections, which we will use to count items in the lists we'll create
from collections import Counter

# We instantiate the chain object
chain = blocksci.Blockchain("/BlockSci/config_file")

# We also import other libraries
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
sns.set()

%time 
CPU times: user 2 µs, sys: 2 µs, total: 4 µs
Wall time: 9.54 µs

In [2]:

# The block height of the chain used in this Notebook
print(len(chain))
685964

In [3]:

# List blocks mined as OFAC Compliant
ofac_blocks_list = []
sum_fees_ofac_blocks = 0
nr_trans_ofac_blocks = 0


for x in chain :
    if "OFAC" in str(x.coinbase_param) :
        print (" Height:", x.height, "TimeStamp:", x.time,"Fees:", x.fee/1e08)
        ofac_blocks_list.append(x)
        sum_fees_ofac_blocks += x.fee
        nr_trans_ofac_blocks += x.tx_count
         
print("Number of OFAC Compliant blocks found: ", len(ofac_blocks_list)) 
print("Median fee per OFAC block: ", (sum_fees_ofac_blocks/ len(ofac_blocks_list)/1e8), "bitcoin")
print("Median Number of transactions per block (OFAC) ", nr_trans_ofac_blocks / len(ofac_blocks_list))
 Height: 682170 TimeStamp: 2021-05-06 04:50:11 Fees: 0.05095356
 Height: 682472 TimeStamp: 2021-05-07 23:33:02 Fees: 0.46791246
 Height: 682537 TimeStamp: 2021-05-08 08:06:18 Fees: 0.92199734
 Height: 682593 TimeStamp: 2021-05-08 15:41:26 Fees: 0.14279267
 Height: 682816 TimeStamp: 2021-05-09 21:04:43 Fees: 0.96328865
 Height: 682843 TimeStamp: 2021-05-10 01:01:38 Fees: 0.48400948
 Height: 683315 TimeStamp: 2021-05-12 18:33:06 Fees: 0.27102372
 Height: 683394 TimeStamp: 2021-05-13 05:13:57 Fees: 0.04922775
 Height: 683412 TimeStamp: 2021-05-13 07:31:29 Fees: 0.17891398
 Height: 683526 TimeStamp: 2021-05-14 01:06:37 Fees: 0.31408185
 Height: 683596 TimeStamp: 2021-05-14 16:51:02 Fees: 1.03762463
 Height: 683628 TimeStamp: 2021-05-14 20:52:54 Fees: 0.70197438
 Height: 683811 TimeStamp: 2021-05-16 06:27:42 Fees: 0.3664704
 Height: 684152 TimeStamp: 2021-05-19 04:22:49 Fees: 0.74019458
 Height: 684217 TimeStamp: 2021-05-19 17:31:21 Fees: 1.11437835
 Height: 684308 TimeStamp: 2021-05-20 12:05:41 Fees: 1.14902694
 Height: 684329 TimeStamp: 2021-05-20 16:41:38 Fees: 1.16243244
 Height: 684509 TimeStamp: 2021-05-22 09:09:06 Fees: 0.79709421
 Height: 684550 TimeStamp: 2021-05-22 14:48:11 Fees: 0.90005206
 Height: 684621 TimeStamp: 2021-05-23 05:57:14 Fees: 0.32440476
 Height: 684842 TimeStamp: 2021-05-25 01:05:54 Fees: 0.10884603
 Height: 684852 TimeStamp: 2021-05-25 03:06:25 Fees: 0.13680179
 Height: 685031 TimeStamp: 2021-05-26 14:47:00 Fees: 0.24858622
 Height: 685221 TimeStamp: 2021-05-28 03:55:18 Fees: 0.17645753
 Height: 685437 TimeStamp: 2021-05-30 00:25:26 Fees: 0.16853315
 Height: 685487 TimeStamp: 2021-05-30 08:18:27 Fees: 0.18786433
 Height: 685550 TimeStamp: 2021-05-30 18:34:27 Fees: 0.08601165
 Height: 685659 TimeStamp: 2021-05-31 14:19:50 Fees: 0.64959816
 Height: 685818 TimeStamp: 2021-06-01 16:07:33 Fees: 0.65760579
 Height: 685884 TimeStamp: 2021-06-02 04:28:10 Fees: 0.30919456
 Height: 685951 TimeStamp: 2021-06-02 12:32:57 Fees: 0.49884389
Number of OFAC Compliant blocks found:  31
Median fee per OFAC block:  0.4956837841935484 bitcoin
Median Number of transactions per block (OFAC)  1635.0645161290322

In [8]:

non_ofac_blocks_list = []
sum_fees_no_ofac_blocks = 0
nr_trans_non_ofac_blocks = 0
median_fees_ofac_blocks = 0
median_fees_non_ofac_blocks = 0

for i in range(682170, 685543) :
    if not "OFAC" in str(x.coinbase_param) :
        sum_fees_no_ofac_blocks = sum_fees_no_ofac_blocks + chain[i].fee
        non_ofac_blocks_list.append(x)
        nr_trans_non_ofac_blocks += chain[i].tx_count
        
median_fees_ofac_blocks = (sum_fees_ofac_blocks/ len(ofac_blocks_list)/1e8)
median_fees_non_ofac_blocks = (sum_fees_no_ofac_blocks / len(non_ofac_blocks_list))/1e8

ofac_nr = len(ofac_blocks_list)
non_ofac_nr = len(non_ofac_blocks_list)

print("OFAC Compliant blocks:", ofac_nr)
print("Non-OFAC Compliant blocks", non_ofac_nr)
        
print("Number of non-OFAC Compliant blocks found: ", len(non_ofac_blocks_list)) 
print("Number of OFAC Compliant blocks found:", len(ofac_blocks_list))
print("Percent of OFAC Compliant blocks vs. non-OFAC:", ((ofac_nr / non_ofac_nr)*100), "%")  
print("Median fees per non OFAC block: ", sum_fees_no_ofac_blocks / len(non_ofac_blocks_list)/1e8 , "bitcoin")
print("Median fees per OFAC block: ", sum_fees_ofac_blocks / len(ofac_blocks_list)/1e8 , "bitcoin")
print("Median Number of transactions per block OFAC Block:", (nr_trans_non_ofac_blocks / len(non_ofac_blocks_list)) )
print("Median Number of transactions per block (non-OFAC) ", (nr_trans_ofac_blocks / len(ofac_blocks_list)) )
print("Non OFAC blocks have median ", (((nr_trans_non_ofac_blocks / len(non_ofac_blocks_list)) / (nr_trans_ofac_blocks / len(ofac_blocks_list))) * 100), " more transactions per block")
print("And median more", ((median_fees_non_ofac_blocks - median_fees_ofac_blocks)), " bitcoin fees per block.")
OFAC Compliant blocks: 31
Non-OFAC Compliant blocks 3373
Number of non-OFAC Compliant blocks found:  3373
Number of OFAC Compliant blocks found: 31
Percent of OFAC Compliant blocks vs. non-OFAC: 0.9190631485324637 %
Median fees per non OFAC block:  0.6100702352297658 bitcoin
Median fees per OFAC block:  0.4956837841935484 bitcoin
Median Number of transactions per block OFAC Block: 1796.6243699970353
Median Number of transactions per block (non-OFAC)  1635.0645161290322
Non OFAC blocks have median  109.88094673172233  more transactions per block
And median more 0.11438645103621736  bitcoin fees per block.

Do you want to have access to blockchain analysis? Register at PlutoHash here: www.plutohash.com/beta and join the fray! Don’t forget to smile!In [ ]:

 

Leave a Comment

Your email address will not be published. Required fields are marked *