Difference between revisions of "Features"

From Snowblossom Wiki
Jump to: navigation, search
(Quantum Resistance)
(UTXO in Block Header)
Line 118: Line 118:
  
 
Since the nodes are designed to serve light clients, we've built the UTXO (Unspent Transaction Output) merkle root into the block header. This way, the nodes can provide cryptographic proof that the results they are giving to clients are the whole and complete truth. If a node made up or omitted or modified an output the hashes would no longer match and it would be obvious to a client checking the data.
 
Since the nodes are designed to serve light clients, we've built the UTXO (Unspent Transaction Output) merkle root into the block header. This way, the nodes can provide cryptographic proof that the results they are giving to clients are the whole and complete truth. If a node made up or omitted or modified an output the hashes would no longer match and it would be obvious to a client checking the data.
 +
 +
The UTXO is stored in a structure called a [[Hashed Trie]] which has some unique and cool properties.
  
 
== Other Typical Features ==
 
== Other Typical Features ==

Revision as of 03:52, 3 September 2019

Simple - Modern, Efficient, and Readable

Snowblossom is written in a hopefully straightforward fashion so that anyone could verify or maybe even contribute. Snowblossom is also built deterministic ally with bazel

ASIC Resistance via IO Based Proof of Work

ASICs or "Application Specific Integrated Circuits" are super powerful processors made for doing one thing, very very fast. In other cryptocurrencies, these specially created chips have created severe problems with miner centralization, and as a result, threatens their censorship resistance, scaling, and more.

With OTHER cryptocurrency mining

Hardware Hashes Per Second
CPU 50,000
GPU 100,000,000
ASIC 14,000,000,000,000!



Snowblossom is designed to cripple specialized hardware attempts by requiring an expanding, massive amount of readily available storage, and relies on the IOPS of that storage. In theory, even millions of dollars in equipment would not be capable of delivering much faster storage or ram.

Quantum Tough

Content moved to Quantum Tough

Multi-algorithm Multi-sig

Snowblossom supports multisignature addresses that can take any number and combination of signing algorithms. For example, a user could combine standard secp256k1 keys just like Bitcoin multisig. Or could combine algorithms to meet a specific need.

Space efficient signing

Signing is done at the transaction level, not the input level so if there are multiple inputs that need the same public key, a single signature signs for them all. This makes spending a bunch of small inputs much more efficient in transaction size and computation time.

Multiple signing algorithms supported

Snowblossom supports the following signing algorithms. The user can pick whichever ones they want to use.

Algorithm Public Key Size Signature Size Notes
EC secp256k1 (compressed) 33 71 Just like Bitcoin - standard
EC secp256k1 56 71
EC secp384r1 72 103
EC secp521r1 90 138
EC sect571k1 96 149
EC sect571r1 96 151
RSA key_size/8 + 30 key_size/8 Pick your own key size
DSA 3072 1227 70
DSTU4145 62 to 95 44 to 110 Size options go from DSTU 4145-163 to DSTU 4145-431

Sizes vary slightly. This is just a rough idea.

Chain based voting clearly implemented

To keep things simple, each block header has a spot in the protocol where miners can clearly signal agreement or disagreement to numbered proposals. This is both clear and space efficient.

Separate node and wallet

In my opinion, a cryptocurrency node is like a big public database, which as the public transaction ledger, it is. For security and isolation reasons it makes sense for that to be separate from the wallet software which holds the private keys. Ideally for privacy a user would only use a node that they directly control, however it is nice to be able to have that node physically or logically separated from the very important private keys.

Snowblossom is build where each node acts as a server to light weight clients (like electrum server in bitcoin) and the client can use any node (again, ideally one controlled by the wallet owner).

UTXO in Block Header

Since the nodes are designed to serve light clients, we've built the UTXO (Unspent Transaction Output) merkle root into the block header. This way, the nodes can provide cryptographic proof that the results they are giving to clients are the whole and complete truth. If a node made up or omitted or modified an output the hashes would no longer match and it would be obvious to a client checking the data.

The UTXO is stored in a structure called a Hashed Trie which has some unique and cool properties.

Other Typical Features

  • Block Time Average of 10 minutes
  • Child-pays-for-parent (CPFP)
  • Transaction immutability
  • Double-spend protection
  • Resilient peer-to-peer network
  • Decentralized design
  • Halfing-block reward over time
  • First Seen First Added FSFA