Utreexo in Sia: A Summary

Luke Champine
The Sia Blog
Published in
2 min readJun 22, 2021

--

I recently published a post on my personal blog, describing what Utreexo means for Sia and the progress we’ve made towards integrating it. The post is a bit technical (and long-winded), so I’ll attempt to summarize the most important takeaways here.

Utreexo changes the way we design and implement blockchains

The “state accumulator” at the heart of Utreexo is tiny and portable, unlike the massive database that it replaces. This makes it possible to store a distinct accumulator for every block in the chain and to download those accumulators from your peers. Consequently, we can sync the chain in parallel, or even sync a pruned node instantly by downloading a recent accumulator.

Utreexo can make full nodes ubiquitous

In a healthy cryptocurrency ecosystem, the majority of users run their own fully-validating node. Unfortunately, this isn’t the case for most projects today, because running a full node is far more inconvenient than outsourcing everything via third parties. But Utreexo eliminates the bulk of that inconvenience, making it feasible to run a full node within a smartphone app — or even in the browser! — without harming UX.

Utreexo has implications for blockchain hardware as well

If we can transfer accumulators between peers, it follows that we can transfer them to a dedicated hardware module, much like the hardware wallets available today. These devices would be capable of validating the chain at incredible speed, and would run that validation code in an isolated environment, safe from any malware on the host computer. (To be clear, the Foundation isn’t actively pursuing this — but it’s nice to have the option.)

Utreexo presents unique challenges and opportunities for Sia

Integrating Utreexo with Sia, especially with regard to file contracts and storage proofs, is non-trivial, but doable. We’ll need to rewrite large swathes of our existing consensus code, which is something that we always take very seriously. However, it’s worth considering that we wrote that code many years ago, and we’ve grown a lot as blockchain developers since then. Now we have the chance to fix some long-standing warts and emerge with a better design: cleaner, faster, more robust, and more maintainable.

Want to learn more? Check out the full post here.

--

--

I would like to understand things better, but I don’t want to understand them perfectly —Hofstadter