Skip to content

SiaFoundation/sunyata

Repository files navigation

banner

sunyata

GoDoc Go Report Card

sunyata is a blockchain skeleton. It implements a minimally-functional proof-of-work blockchain, including consensus algorithms, p2p networking, a transaction pool, a wallet, and a simple miner. "Minimally-functional" means that sunyata only supports one transaction type: sending X coins to address Y. There is no scripting system or multisig support; all addresses are pubkey hashes.

But sunyata does implement one feature that no other blockchain does: a UTXO accumulator, namely Tadge Dryja's Utreexo. This accumulator replaces the traditional UTXO database with a Merkle forest; instead of checking for a UTXO's existence within a database, nodes verify a proof of the UTXO's existence (provided in the transaction) against the accumulator. The accumulator itself is tiny -- about 1 KB -- and grows logarithmically with the number of unspent outputs, whereas a database grows linearly.

This design has a number of benefits for performance, scalability, and functionality, making it vastly easier to run a fully-validating node. A new user can start validating new blocks almost instantly: all they need is a copy of the latest accumulator state. Initial block download can be performed in parallel by using multiple accumulator states at checkpoints throughout the chain. And since no costly database operations are required to process incoming blocks, you can sync almost as fast as your disk's write speed.

sunyata is not a cryptocurrency; it's just the skeleton of one. The goal is provide a simple, performant, and robust foundation on which future cryptocurrencies can be built. Accordingly, its design is fairly "conservative" aside from the accumulator; in other words, it cribs heavily from Bitcoin. ;)

About

utreexo blockchain skeleton

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages