In this episode of OK Let’s Chat, host Alex Feinberg talks to Bitcoin Core developer Fabian Jahr about the importance of his Bitcoin UTXO set project, Coinstats
A recipient of OKCoin’s Independent Developer Grant, Fabian Jahr is a Bitcoin Developer focused on supporting and securing the disinflationary design of the Bitcoin network. His Coinstats project focuses on examining the supply of Bitcoin and auditing for errors within the supply, like coins that may be unaccounted for.
Current methods for evaluating UTXO statistics can be very slow, so Fabian is developing the Coinstats index, leveraging existing industry efforts, to provide a more efficient method. Coinstats allows for the total supply of bitcoins to be audited to ensure there’s no inflation in the system. Specifically, the Coinstats index looks at the UTXOs of each block to review the number of unspent bitcoins. This helps secure the supply of bitcoins by ensuring that no coins have been spent that shouldn’t have, according to network consensus.
Top takeaways from the podcast:
What is a hash? — 3:38
A hash is a fixed string of numbers that represents a specific data set by mapping to the data value. A hash can be used to map any kind or size of data, meaning it makes a large amount of data easily shareable or comparable for data evaluation. In this way, hashes are very helpful in reviewing and comparing large data sets.
The UTXO set — 6:26
The UTXO set, or the unspent transaction outputs set, is important because it looks at the current state of the Bitcoin network. The UTXO set provides a way for the community to collectively review which Bitcoins remain unspent. Not only does this verify the state of the Bitcoin supply, but it also provides a method for the network to determine if someone is trying to attack the network by altering the supply.
What is the RPC call, gettxoutsetinfo? — 8:13
The gettxoutsetinfo call is a command on the Bitcoin Core code base where you can get the statistics on the UTXO set. This call can take several minutes, or up to ten minutes, depending on your hardware. This can be frustrating and potentially makes it impossible to audit that the UTXO set is correct with every new block.
The Coinstats Index improvement — 10:48
Part of the gettxoutsetinfo call involves calculating the hash of the UTXO set, which is presently about 4 GB, and this is what takes time. Coinstats speeds this up by using a different kind of hash that can be updated, rather than calculated from the start each time.
Instead of calculating the entirety of the hash value of the UTXO set each time a new block comes in, the Coinstats index provides a new method that allows nodes to calculate the hash value of the current UTXO set, then just update that hash with the changes of each new block. This new method allows you to update the UTXO set very quickly, possibly within just a second.
How will Coinstats Index improve Bitcoin development? — 13:00
When a new node joins the Bitcoin network, an initial block download takes place, and all blocks must be validated. This process can take a significant amount of time, depending on the user’s hardware. This process of syncing a node depends on and finally results in the latest UXTO set, which can be validated by its hash. Coinstats makes it more efficient to calculate this hash, making it easier to compare against other nodes to ensure accuracy and security of the UTXO set and blockchain download.
Can Coinstats democratize Bitcoin participation? — 16:47
Coinstats supports efforts to bring more people to Bitcoin by making it easier for people to run security checks for the UTXO set on their existing hardware. This provides an additional line of defense that is much faster than previous methods, making it simpler for participants to ensure they are validating new blocks securely and at a competitive rate.
The Bitcoin codebase can be run on cost-effective hardware, allowing more people to be self-sovereign. By lowering the hardware requirements for participation, more people can engage with and develop on Bitcoin. This allows Bitcoin to be a better form of money, which in turn promotes financial autonomy.
Ultimately, Coinstats can help the Bitcoin network scale in number of nodes, meaning that the network becomes stronger. Being able to quickly and easily audit the Bitcoin supply also makes Bitcoin stronger as sound money; the finite and disinflationary supply is supported by the transparency that Coinstats provides.