
As transactions remain in the mempool, their inputs “age,” as the UTXO they spend get deeper into the block-chain with new blocks added on top. Any transaction left in the mempool, after the block is filled, will remain in the pool for inclusion in the next block. Today's miners choose which transactions to mine only based on fee-rate, thus prioritizing the transactions with highest fees per kilobyte of transaction size. The data that is stored in the mempool consists of unconfirmed transactions which still needs to be processed by the Bitcoin Network, by applying a priority metric to each transaction and by adding the highest priority transactions in the next block first than lower priority ones.

To assemble the candidate block, a Bitcoin miner selects transactions from the memory pool ( mempool for short): as its name suggests, it is a pool of memorized transactions collected by a miner. UTXO and Memory PoolĪ UTXO is an Unspent Transaction Output that can be spent as an input in a new transaction. In the following, we will refer to them as “locking script” and “unlocking script.” 2.2. To lock the coin, a script called scriptPubKey is used, while to prove the ownership of a coin, a script called scriptSig is used instead. For example, in order to send 3 bitcoins (BTC) to Bob, Alice needs to refer to other transactions she has previously received, whose amount is 3 BTC at least. Hence, the ownership of the coins is expressed and verified through links to previous transactions. The output of a transaction instead describes the destination of bitcoins by providing a challenge to users. A transaction input must store the proof it belongs to who wants to reuse the money received in a previous transaction. A private key is a random 256 bit number, and the corresponding pubkey is generated through an Elliptic Curve Digital Signature Algorithm ( ECDSA). A Bitcoin address is an identifier of 26–35 alphanumeric characters, and it strictly derives from the hash of a generated public key ( pubkey in the following Antonopoulos, 2017). TransactionsĪ Bitcoin wallet stores a collection of public/private key-pairs of a user, and not directly bitcoins. Finally, section 7 draws the final conclusions and proposes ideas about future work. (2018a), is organized as follows: section 2 describes how Bitcoin transactions work, the Bitcoin scripting language, and what the standard transactions are section 3 shows the non-standard transactions that we found in the block-chain, and related statistics section 4 shows the statistics of standard and non-classical Bitcoin transactions nested in P2SH transactions, focusing on non-standard ones reported in the literature section 5 classifies OP_RETURN transactions by their byte size, and it also presents related statistics section 6 shows related works. The paper, which extends Bistarelli et al. We also saw that only 2,615 bitcoins (out of more then 17 million in circulation) were definitely “burned” (i.e., made no longer spendable) due to non-standard transactions. For example, there is no particular miner pool that validates only some specific classes of non-standard transactions: all pools that deviate from the standard behavior accept these classes. In addition, this study addresses further general questions. The main result is that only the 0,02% of transactions is non-standard (2009–November 2018). Hence, we can evaluate the errors and misuses accepted by some of the miners in the network. In particular, the goal consists in understanding what and how partial adherence to the Bitcoin protocol or flaws have been exploited so far, accidentally or not.

The main motivation behind the paper is to provide an updated and comprehensive screen-shot of standard and non-standard transactions from Bitcoin origins until today. Our interest is mainly focused on non-standard ones, of which we provide a classification in nine different types, extending some previous analysis for bitcoin 2 ( Bistarelli et al., 2018a) and in a manner similar to what done for ethreum ( Bistarelli et al., 2019a).

Transactions are standard if they pass the controls implemented in the reference Bitcoin-node software, i.e., Bitcoin Core 1. In this paper we investigate standard and non-standard transactions in the block-chain of Bitcoin. Therefore, the Bitcoin network is completely decentralized, with all the transaction components performed by the users of the system. Money transactions do not require a third-party intermediary, with no traditional financial-institution involved in transactions.

The white-paper on Bitcoin appeared in November 2008 ( Nakamoto, 2008), written by a computer programmer(s) using the pseudonym “Satoshi Nakamoto.” His invention is an open-source, peer-to-peer digital currency.
