If you’ve been following coinmetrics closely, you might be convinced of the usefulness of our network value to transactions metric (NVT) in determining relative value. However there is an important caveat that must be mentioned.
Change skews transaction estimations
It’s awfully difficult to extract decent transaction volumes from blockchains directly, because Bitcoin (and most cryptoassets) does not maintain balances of users, but rather spent and unspent outputs. If Bob wants to send 9 BTC to Alice but has 10 BTC in his wallet, his entire 10 BTC (acquired in a prior transaction) is recorded as the input for the transaction and 1 BTC is returned to him as change. If both listed addresses are new, there is no way of knowing which is the change address and which the recipient. In this transaction, for instance, both addresses had not been used and there is only one input address, so the change address is unknowable. This is a problem, because in that case, our estimate would be that the entire sum of BTC was transacted rather than the intended sum.
If you compare our numbers for transaction value for bitcoin to those available at blockchain.info, you’ll see that our estimates are larger than theirs by a factor of 5. (Bitinfocharts corroborate our numbers.)
This is, of course, cause for nervousness. There is an explanation for this. Blockchain.info also runs a wallet service, so they have access to information about transactions that their users undertake, and they can extrapolate these tendencies to the blockchain at large. Whether their algorithm for estimating change outputs is any good is another matter altogether. They conduct an (obscure) estimation based probably on some heuristics to arrive at a number which they think is representative of the total value of bitcoin transactions on a given day. Returning to this transaction mentioned above, blockchain.info guesses that 0.7695 BTC was in fact sent, rather than 3.72 BTC. This is plausible but not knowable.
This estimation difficulty also explains why there is such poor data for other cryptoassets, since there aren’t many wallet services as sophisticated as blockchain.info which are so committed to releasing that sort of data. Estimating change outputs – when possible – is hard, and much of the time it is entirely impossible. Therefore we made the deliberate decision to aim for a different sort of precision – to eliminate the double-counting of change outputs when they were known, and to include them when it was impossible to tell. This means our transaction value number is guaranteed to be larger than the “true value,” whatever it might be.
To clarify: blockchain.info makes an educated guess about which outputs are change, based on probabilities and the extrapolated tendencies of their wallet users. This is a proprietary algorithm. Our estimation is certainly too large, but we can offer some guarantees, which is nice. We know – under a limited set of conditions – exactly which transactions are change, and can rule them out completely. We make no guesses about unknowable change transactions.
The tradeoff here is therefore: a) a plausible estimate based on guesswork and heuristics or b) a precise yet overly-broad estimate based on falsifiability (removing transactions we absolutely know are change) and nothing else. Undertaking the second strategy allows us to be confident in a few assertions.
- our NVT figure gives you an absolute lower bound for the ‘true’ ratio
- we can say with confidence that we exclude visible change transactions, and are deliberately agnostic on unknowable change transactions
- if change tendencies are similar across cryptoassets, NVT is a reliable means of comparison
Our code is public on our github, so our method can be examined and critiqued by anyone. If a better open-source method of ruling out change outputs from transactions emerges, we will embrace it.
And since the estimates that blockchain.info use only work for bitcoin, and we’re aiming to find comparable metrics between different cryptoassets, we dispensed with their estimation and scraped various blockchains to find our own numbers. The important thing here is that our transaction values may be elevated, but if they are systematically elevated across different cryptoassets, then our NVT numbers are still comparable, if artificially low.
Since we seek to arm our readers with reliable data, we’re going to issue this caveat as clearly as possible: our NVT indicator, which is dependent on an estimate of transaction volume, is strongly dependent on the assumption that different cryptoassets are roughly comparable in the prevalence of change outputs.
We currently can’t say confidently whether this is the case or not, but to the best of our knowledge, we are one of the only projects procuring this sort of data and making it freely available. We are aware of the shortcomings of the collection process, and are working to refine it and provide the best possible estimates for our readership.