There was a release of the first demonstration of Utreexo recently. Utreexo is a new scalability technology for Bitcoin, which can make Bitcoin nodes smaller and faster while keeping the same security and privacy as full nodes.
Lightning Network co-author Thaddeus Dryja has been working on a lightweight full Bitcoin node project since early last year. In the summer of 2019, he posted the code for the Utreexo scaling solution, and last week the development team released the first version of the Utreexo software as part of the MIT Digital Currency Initiative (DCI).
Full nodes verify that new transactions on the Bitcoin blockchain meet protocol requirements and distribute them across the network. However, running a full node requires hundreds of gigabytes of storage. The truncated version of the full node, available in Bitcoin Core, can reduce the minimum volume of stored history and transaction outputs (UTXO) to several gigabytes, but even such an installation requires a complete "pumping" of the blockchain. Therefore, developers have long sought to simplify deployment and make full site capabilities available to more users.
Utreexo determines the size of the "state" of a full node, which shows actual information about who owns how much BTC. Utreexo cuts the minimum size of this state from about four gigabytes to less than a kilobyte.
The current Utreexo code is able to connect to a server, download the blockchain, and verify all the transactions and signatures, and do so using hardly any disk space. Instead of a multi-gigabyte database, utreexo stores a single file of a few hundred bytes which represents the state of the blockchain. The client still needs to download the full sized blockchain (in fact, even more downloading is required) but not store it.
There is also a server component which builds the data to send the client. This takes up considerable storage space. In the current software, each client connects directly to a server to download data, but our plan is to change this into a peer-to-peer model where large numbers of nodes, some with data to serve and some without, automatically connect to each other.
The current software is a demonstration of the technology and a proof-of-concept that a wallet can work (it allows users to specify an address to import, and it gives a watch-only wallet balance) but so far does not have a true wallet and cannot make transactions to send or receive money. The software also operates on testnet, the Bitcoin testing network, and is not recommended for use with real money. There are still plenty of known bugs and inefficiencies in the code, but we’re improving it at a rapid pace.
Further developmentGoing forward, our plan is to modify btcd, bitcoin node software written in go, to use Utreexo instead of its current database. In doing this we can keep most of the software already written, and see how to fit it into a full node that is connected to a mix of clients, some which are using Utreexo and some which aren’t. Getting Utreexo to work with btcd may take a while, but would be exciting as it would fully show the technology operating a real peer to peer full node.
After btcd, we hope to write a specification and to try to get Utreexo capabilities into Bitcoin Core node software. While Utreexo is not a consensus change and doesn’t require a soft fork, it is a significant re-thinking of how Bitcoin works, changing consensus-critical code. It is thus likely to be difficult to get Utreexo code into Bitcoin Core, and with good reason — we want to be very sure to not introduce problems into a system handling so many people’s money. For this reason we’ve decided to try to get Utreexo capability into btcd’s code first, and in the process learn more about how it affects full node operation.
This is a first release, and there will be more coming soon. One interesting capability I hope to have working soon is the ability to verify the blockchain “backwards”, starting from the most recent and progressing back to the genesis block. While this would be extremely difficult to do with normal database-centered Bitcoin software, it’s not such a big change when using Utreexo. I look forward to writing about that new verification setup shortly. In addition, there are many performance improvements in the works.
A big reason for this release is to get people excited about this new technology — especially other open source developers.
Links:-
Utreexo: A dynamic hash-based accumulator
optimized for the Bitcoin UTXO set-
ELI5: Utreexo — A scaling solution-
btcsuite/btcd-
mit-dci/utreexo
Sources:-
https://bits.media/soavtor-lightning-network-opublikoval-pervuyu-versiyu-tekhnologii-utreexo-dlya-zameny-legkikh-klient/-
https://medium.com/mit-media-lab-digital-currency-initiative/utreexo-demonstration-release-a0d87506fd70