Difference between revisions of "Features"
(→Quantum Resistance) |
(→ASIC Resistance via IO Based Proof of Work) |
||
(One intermediate revision by the same user not shown) | |||
Line 3: | Line 3: | ||
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 | 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 == | + | == StoatPOW - 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. | 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. | ||
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 == |
Latest revision as of 17:43, 20 October 2020
Contents
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
StoatPOW - 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