Before there was a known # of servers and all were authorized. With open consensus there’s not a known # or authorization—anyone can add to the blockchain.
How does open consensus work?
Proof-of-work: first to solve problem creates next block (ex BTC, ETH)
Proof-of-stake: can mine based on amount of coins they hold, committing funds (ex ETH, celo)
Proof-of-space: can mine based on hard drive space (ex chia, Filecoin)
Blockchain Crypto Primitives
3 important primitives:
- Digital Signatures + aggregation
- Merkle Commitments
- Succinct Zero-Knowledge proof systems
The goal of a signature is to bind the transaction to the author
Signing a document is simple in the physical world, but in the digital world this gets tricky when anyone can copy it easily.
Solution: secret signing key + sign algo = signature which goes into verification algo
Signatures on the blockchain are used everywhere.
So this is important!
To understand a cryptographic commitment, imagine a sealed bid auction.
Every person commits to a bid, puts it in an envelope and gives it to the auctioneer. Once all the bids are in, he opens their commitments and decides who wins.
With cryptographic commitments it’s similar but with data in an envelope. Later you can recover that data you committed.
You can commit and open later but only open the commitment in one specific way.
If someone gives you the commitment string, you have no idea what data it is
Why this is important: you can put data on the blockchain (you are bound to this data and can’t change it) but because the commitment is hidden, other people don’t know what that data is.
Merkle commitments are when you take many values and make a short commitment to them.
Merkle commitments are useful for showing a short proof of payment (if you have many transactions).
There’s also useful if you want to keep an entire database off the blockchain.
Zero Knowledge Proof System
Simply put, it’s when you want to prove something to someone while leaking zero knowledge.
In proof system: 1. If the statement is true the prover can convince the verifier
2. The proof is short
3. Verification is fast
4. Generating proof takes linear time
5. Prover cannot convince verifier of false statement
6. Verifier learns nothing about witness(optional)
An important application is that you can have private data on a public blockchain.
How it’s done 1. Only post hiding commitments to blockchain 2. Update zero knowledge proof that says that this state transition is valid
Public verifiability w/o releasing data
Mind blowing 🤯
Would love to connect with those working in the crypto space! Also check out @hotcryptogirls for my meme takeaways 💅🏽
• • •
Missing some Tweet in this thread? You can try to
force a refresh