Identifying and Eliminating Not-Economically-Useful-Transactions
Disclaimer: Your capital is at risk. This is not investment advice.
A brief introduction to transaction value
ByteTree recently identified a transaction traffic pattern on the Bitcoin Network which relates to not-economically-useful-transactions (NEUF). The complex structure of tracking Bitcoin transactions requires applying a proprietary methodology to distinguish between genuine traffic and NEUF, in real-time.
As the network evolves, and new approaches to obfuscating traffic are developed, it is essential for us to continuously develop the algorithms we use for identifying economically useful traffic. Above all, our focus is on maintaining the highest level of integrity in our data.
The transaction pattern that we identified two weeks ago triggered significant outliers in our data, requiring a diligent and decisive response. This article will give some background on the transaction value metric and why it is challenging to identify and exclude NEUF in real-time. Subsequent posts will go into more detail on the different traffic types and how we go about identifying them.
A brief background on transaction value
The transaction value metric is one of the most useful data points available to a digital asset analyst. It tells us how much throughput the network is supporting at any given time, indicating the overall level of utility that its users can derive from it. It is the GDP of Bitcoin’s network economy. When GDP is rising, the network is strong, when GDP is falling, the network is relatively weak. On this basis, measuring the transaction value (or network GDP) gives us a fundamental understanding of when the underlying currency, BTC, is a buy or a sell.
What is transaction value?
Transaction value is simply the amount, either in USD or native currency, that is sent through a blockchain transaction. Transaction value indicates to us the value and type of economic exchange between two parties. Is the Bitcoin Network used by businesses looking to move money seamlessly across borders? Is it used by a wide-ranging retail market for everything from coffee, to paying for internet services? Is it used for micro-transactions in developing countries, where the cost to transaction is small enough for it to be economically viable?
Why transaction value is complex
Transaction value is a complex calculation because of the network architecture of the protocol. Bitcoin uses an accounting model called UTXO, or unspent transaction output. In short, this means that each bitcoin can be broken down into as small as 8 decimal points of a unit, ie. 0.00000001 BTC. Bitcoins are broken into smaller units, or UTXOs, whenever you send less than the whole amount of BTC that you hold in your wallet. It is impossible to break UTXOs into pieces within your wallet, so you have to send a bundle of UTXOs that sum to more than the value of the payment, before receiving the rest back in change.
The amount intended to be sent goes to the recipient and the balance, or change, returns back to you. Your bitcoin wallet then becomes a collection of UTXOs, sometimes hundreds of them held in a single wallet. Think of this like paying with a $10 note and receiving your change in cents. Fortunately, bitcoin is digital so the change doesn’t weigh you down as much. It seamlessly merges together in your bitcoin wallet so that you only see a single number as the end user.
A crash course in the UTXOs
With multiple UTXOs making up the balance of a wallet, you can now start to see how tracking economically useful transactions, which we aim to capture in the transaction value, can be complex. Imagine you have 1 BTC in your wallet, which has arrived there through 2 separate payments, 0.75 BTC and 0.25 BTC. Now, you want to send 0.8 BTC. The wallet balance will simply show 1 BTC, but under the hood it has summed the two separate balances. When you send a transaction, both 0.75 BTC and 0.25 BTC are used as inputs in the transaction, since the bitcoin protocol can only send whole UTXOs. The balance of 0.2 BTC which you didn’t send, is still included in the transaction, but it is sent back to you as change. One of the clever things our code does, it identifies which movements have been sent to the recipient and which should be recorded as change.
Now it doesn’t stop there. In fact, that is the simplest example of a type of transaction which we need to identify. There are multiple combinations, or patterns, that have been elegantly programmed into the Bitcoin protocol, which enables users (of all kinds) to seamlessly send, receive, merge, separate, identify and obfuscate their bitcoins.
And this is where it gets really interesting. Look out for the next post on the different types of UTXOs in the coming days. When it is live, we will also post a link to it here.
Read part II here.