MIT Lightning Developer Showcases Bitcoin Scaling Tech
The technology for scaling Bitcoin network might become easier for anyone to spin up and run, as demonstrated by Lightning creator.
Lightning developer Tadge Dryja has been working on a new design for a lighter weight Bitcoin full node, about which he first wrote in a 2019 paper. Last week, he and a team of coders released a first version of the Utreexo software as a part of MIT Digital Currency Initiative (DCI), putting the idea of lighter nodes into working code.
Full Bitcoin nodes act like financial security systems, validating Bitcoin blockchain transactions and protecting users from being tricked into believing they received money that they in fact didn’t. But they need a lot of computing space and are quickly growing in size which is a problem for scaling Bitcoin network.
Since these nodes are the most “trustless” way of using Bitcoin, developers have long been attempting to make them easier to use. It’s one of Bitcoin’s nerdy “holy grails.”
Utreexo specifically deals with the size of the “state” of a full node, which shows up-to-date information about who owns how much Bitcoin. Utreexo slashes this state size from around four gigabytes to less than a kilobyte. This way, it could be a big breakthrough.
In the blog post announcing the release, Dryja wrote:
“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.”
But it hasn’t been implemented fully yet, which is why it is a big deal to see Dryja releasing a first version of it. The project still has a long way to go before users can start to use nodes to plant a flag of financial self-sovereignty. But it’s a vital first step.
A “super-pruned node”
Bitcoin full nodes store every transaction ever made, clocking in about 200 GB today.
“Pruned” full nodes can reduce the size of the transaction history to as low as a half a gigabyte, bout the size needed to store an episode of a TV show.
But this doesn’t address the problem of storing Bitcoin’s Unspent Transaction Outputs (UTXOs), which tallies up how much Bitcoin is linked to each Bitcoin address. This batch of data takes up a bit less than 4 GB of data.
This UTXO state has grown quickly over time and is likely to continue growing, making it more difficult to run full nodes.
That’s where Utreexo comes in. With the help of fancy, new cryptography, it’s possible to replace this bulk of state with one tiny cryptographic proof that takes up much less storage.
“Utreexo is a novel hash based dynamic accumulator, which allows the millions of unspent outputs to be represented in under a kilobyte – small enough to be written on a sheet of paper,” Dryja explains on the MIT DCI website.
Because it does what a pruned node does, plus more, one Bitcoiner described it as a “super-pruned node,” Dryja said.
Trying to shave down these hefty Bitcoin full nodes is not a new pursuit. Simplified Payment Verification (SPV) is maybe the most popular version of a lightweight node, used by Electrum and other wallets.
Utreexo is similar to SPV in that it doesn’t need nearly as much computer storage space as a full node. But SPV nodes don’t keep user privacy as well and are more susceptible to attacks than Utreexo nodes are.
Since Utreexo provides these security benefits, Dryja hopes it might chip away at SPV’s dominance in the industry (as long as writing the Utreexo software goes as well as planned). “I think it would be great if it replaced SPV to some extent, allowing an Electrum-like user experience but with Bitcoin Core security,” he said.
But ultimately, he doesn’t think it is going to replace SPV entirely, as SPV is still easier to run.
“I think it will be a bit in between. [Utreexo nodes are] heavier than SPV but lighter than current full nodes, so some SPV users may switch to Utreexo, and some current full node users will switch as well,” he noted.
He also expects that since Utreexo nodes are so much easier to run, they’ll become much more common than normal full nodes:
“Longer term, I can definitely see almost all full nodes using a Utreexo-like design, and nodes which store the entire state and history would be more like current blockchain explorer websites or Electrum servers – there will still be some, but no normal users will run their own.”
Careful next steps towards Bitcoin scaling
Utreexo developers now present a proof of concept, showing that the idea can be turned into a real working product. But they still have a lot of work to do, including ironing out bugs to make the mini node suitable for real 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,” Dryja notes.
They’ll eventually have to make the Utreexo node compatible with the nodes already running on the Bitcoin network. To achieve this, developers will need to modify Bitcoin Core, the most widely used Bitcoin node software.
But this could be dangerous. Utreexo is “a significant re-thinking of how Bitcoin works, changing consensus-critical code,” Dryja writes, adding:
“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.”
That’s why they’ve decided to see if they can try to add Utreexo’s magical powers to alternative Bitcoin node software Btcd first, because it’s not used by nearly as many people to secure their money, “and in the process learn more about how it affects full node operation,” Dryja stated. The next step will be eventually applying what they learned about scaling to Bitcoin Core.