A blockchain is a chain of blocks. Each block is a list of transactions + the hash of the previous block.
It is important that a blockchain has these properties:
- Safety: All honest participants have the same data or that everybody agrees on the history of the blockchain. 2. Persistance/Immutability: Data once added can never be removed.
- Liveness - Participants can add new transactions
- Censorship: anyone can add data
How is the blockchain built?
- A proposer is elected to announce a new block.
- There are 2 mechnaisms for doing a proposer election:
- Everyone decides whether to accept this block or to ignore.
In proof of work 2 is achieved by using the longest chain algorithm.
In proof of stake we have two options for achieving the 2nd requirement:
- Longest Chain
- Byzantine Fault Tolerance (Byzantine fault tolerance became on option because in Proof of stake there are a fixed number of validators)
Desired consensus properties:
- Safety: Validators agree on history.
- Liveness: Every valid transaction eventually gets added.
- Resilience against 1/3 Byzantine validators.
- Partially-synchronous: There exists an unknown bound Δ on network delay with a shared global clock.