5 Nonstandard Transactions
Using the R session opened for the previous chapter, Chapter 4, run the code below.
Transactions that were probably created with nonstandard software are identified. The “Rucknium” identification criteria is based on nonstandard fees and nonzero output unlock time. Information about nonstandard fees is here. Code for the “isthmus” criteria is here.
The transactions identified as nonstandard will be not be included in the ring member age analysis. The exclusion criteria removes low-hanging fruit. The Bonhomme-Jochmans-Robin estimator is intended to remove everything else.
5.1 Code
<- 2689608 # 2022-08-14
v16.fork.height
<- unique(output.index[block_height >= v16.fork.height,
fees
.(tx_hash, block_height, tx_fee, tx_weight_bytes, number_of_outputs)])
:= floor((tx_fee/tx_weight_bytes)/1000)]
fees[, fee_per_byte_nanoneros
<- fees[ !(
tx.hash.nonstandard.fees %between% c(18, 22) |
fee_per_byte_nanoneros %between% c(78, 82) |
fee_per_byte_nanoneros %between% c(315, 325) |
fee_per_byte_nanoneros %between% c(3900, 4100)
fee_per_byte_nanoneros
), tx_hash]# Standard fees
rm(fees)
<- unique(output.index[output_unlock_time > 0 & tx_num != 1, tx_hash])
tx.hash.nonstandard.unlock.time
<- fread("anomalous_hashes.txt", stringsAsFactors = FALSE)$tx_hash isthmus.anomalous.hashes