The development team led by Thaddeus Dryja has published the first version of the Utreexo Bitcoin client to launch a “lightweight” full node.
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.
“Utreexo is a new Bitcoin scaling technology that can make full nodes smaller and faster without sacrificing privacy and security,” Dryja wrote on his blog.
Full Bitcoin nodes contain information about every transaction ever committed, and today the size of one node is 200 GB. A truncated full node can reduce the size of the transaction history to 500 MB. But that doesn’t solve the problem of storing unspent outputs (UTXOs), which are just under 4GB in size.
The UTXO database is growing rapidly and will likely continue to grow, making it harder for full nodes to work. But Utreexo can solve this problem. With new, unusual cryptography, it is possible to replace most of the UTXO state with one tiny cryptographic proof that takes up much less space.
Developers have long tried to reduce the size of a full node. Lightweight Payment Verification (SPV) is one of the most popular versions of lightweight node used by Electrum and other wallets.
Utreexo is similar to SPV in that it requires much less computer space than a classic full node. However, SPV nodes do not preserve user privacy and are more susceptible to attacks than Utreexo nodes.
Because Utreexo has a security edge, Dryya hopes he can weaken the dominance of SPV nodes if Utreexo’s development goes as planned.
“I think it would be great if Utreexo replaced SPV to some extent, giving the user an Electrum-like interface but with the security of Bitcoin Core,” he said.
However, he does not think that Utreexo will completely replace SPV, as SPV is still easier to start.
“Utreexo nodes are heavier than SPVs, but lighter than current full nodes, so some SPV users might switch to Utreexo. In addition, some full node users will also favor the new solution, ”he said.
He believes that because Utreexo nodes are much easier to start up, they will be much more common than regular full nodes.
“In the long run, I can definitely see almost all full nodes use a design like Utreexo. The nodes that store all of the state and history will look more like the current websites of blockchain browsers, or Electrum servers. Classic full nodes will also be preserved, but ordinary users will not run them, ”said Draya.
The developers of Utreexo have put forward a proof of concept showing that this idea can be turned into a real work product. But they still have a lot of work to do, including bug fixes, to make the mini-node usable with real bitcoins.
“The client is currently working on the Bitcoin test network and is not recommended for use with real BTC. Errors have already been found in the code, but we are quickly fixing them, ”writes Draya.
The developers strive to make the Utreexo node compatible with nodes already running on the Bitcoin network. This will require modifying Bitcoin Core, which can be dangerous. Utreexo is “a significant rethinking of how Bitcoin works, a critical code change,” writes Draya.
“It will probably be difficult to embed the Utreexo code in Bitcoin Core, and there is a good reason for that. We want to make sure we don’t create problems in the system that manages the money of many people, ”said Draya.
Therefore, the developers decided to see if they could add Utreexo capabilities to Btcd – an alternative wallet for Bitcoin, because it has far fewer users. The next step will be the application of developments in Bitcoin Core.