A breif journey
presented by:
[Hamid Salehian]
▸ Fail-stop = a node dies
▸ Fail-recover = a node dies and comes back later (Jesus/
Zombie)
▸ Byzantine = a node that misbehaves, or communicates incorrect, or false oral messages in the system
▸ Performance = where the communicated mes-
sage is not delivered at correct destination, or in a timely
manner to intended recipient
▸ Omission = where the server replies late to client requests.
▸ One of the first impossibility proof in computer communications
▸ Impossible to solve in a perfect manner
▸ Originated from the Two General’s Problem (1975)
▸ Explored in detail in Leslie Lamport, Robert Shostak, Marshall Pease paper: The Byzantine General Problem
(1982)
▸ Byzantine Fault
▸ Any fault that presents different symptoms to different observers (some general attack, some general retreat)
▸ Byzantine Failure
▸ The loss of a system service reliant on consensus due to Byzantine Fault
▸ Byzantine Fault Tolerance
▸ A system that is resilient/tolerant of a Byzantine Fault
Solving/"mining" is basically a guessing game
Checking guesses for correctness is fast/easy
speed/power measured as "hashrate"
"Miners" aren’t able to cheat because it takes real-world resources to check guesses
- is safe as long as more than 50% of the work being put in by miners is honest
- 51 attack
vulnerability:
used by:
- Bitcoin
- Ethereum
- Litcoin
- Dogecoin
pros:
cons:
- we know it works
- slow throughput
- killing the planet
pros:
cons:
- Energy efficient
- Increased security
- can add value to other blockchains by indirectly providing Bitcoin
- security without paying the cost of Bitcoin
- only blockchains using PoW or PoS can be a part of this consensus.
- it can lead to high differences between the hashrate of notary miners and the normal miners
- under “Notaries Active” mode the hashrate for different nodes have to be calibrated, otherwise, the difference between the hashrates can explode
vulnerability:
used by:
- Komodo
pros:
cons:
- attacks more expensive
- more decentralized
- energy efficient
- noting at stake
- nothing at stake
- You don't lose anything from behaving badly, you lose nothing by signing each and every fork
- long range attack
- draws from the right that users have to withdraw their security deposits
- it means an attacker can build up a fork from an arbitrarily long range without fear of being slashed
- In other words, when more than ⅔ of the validators have unbonded, they could maliciously create a second chain which included the past validator set, which could result in arbitrary alternative transactions.
vulnerability:
used by:
- Decred
- Ethereum (soon)
- Peercoin
used by:
- Cardano
pros:
cons:
- cheap transactions
- scalable
- energy efficient
- partially centralized
- nothing
vulnerability:
used by:
- Steemit
- EOS
- BitShares
pros:
cons:
- attacks more expensive
- more decentralized
- energy efficient
- noting at stake
- nothing at stake
- You don't lose anything from behaving badly, you lose nothing by signing each and every fork
vulnerability:
used by:
- Reddcoin
pros:
cons:
- high throughput
- scalable
- centralized system
- you’re unlikely to see PoA running on a public chain due to its centralized nature
vulnerability:
used by:
- POA.Network
- Ethereum Kovan testnet
pros:
cons:
- Good for private, permissoned networks.
- Only used in private, permissioned blockchains.
- you’re unlikely to see PoA running on a public chain due to its centralized nature
vulnerability:
used by:
- POA.Network
- Ethereum Kovan testnet
pros:
cons:
- customizable
- scalable
- Incentivization can be a challenge
- Concrete example: Filecoin’s Proof-of-Spacetime is weighted on how much IPFS data you’re storing. Other systems could include weights for things like Proof-of-Reputation.
vulnerability:
used by:
- Algorand
- Filecoin
- Chia
pros:
cons:
- creates greater price stability
- ensuring coins are distributed in a fair, decentralized manner
- resource waste in as much as the resources used to generate the burnt coins is wasted.
- there is also a problem similar to that seen in proof-of-stake consensus, where those who have a lot of coins continue to amass an even greater number of coins. It’s the rich get richer problem.
- high risk protocol, as there is no guarantee that a user will ever recover the full value of the coin being burned
vulnerability:
used by:
- Counterparty (XCP)
- Slimcoin (SLM)
- Triggers (TRIG)
pros:
cons:
- 51% Byzantine fault tolerance
- protect from nothing at stake
- permissionless
- low barriers of entry, and it’sp ermissionless
- noting at stake
- The process of providing a proof is as follows. In the initialization phase, a series of hash data is generated according to the protocol and stored in the storage capacity. When a new block is being generated, data will be searched in the storage capacity based on the value of a randomly generated number. This data will then be used to generate a certificate and participate in the competition to generate the next block. The entire process includes five stages: initialization, block construction, block reception, main chain selection and penalty mechanism.
vulnerability:
used by:
- Burstcoin
- Chia
- SpaceMint
pros:
cons:
- Low cost of participation
- simple for all participants to verify that the leader was legitimately selected.
- The cost of controlling the leader election process is proportional to the value gained from it.
- Even though it’s cheap, you have to use specialized hardware. Thus cannot be mass-adopted.
- Not suited for public blockchains.
used by:
- HyperLedger Sawtooth
used by:
type:
- Collaborative Consensus
- nothing at stake
vulnerability:
used by:
- Solona
pros:
cons:
- attacks more expensive
- more decentralized
- energy efficient
- noting at stake
pros:
cons:
- Better than PoS in evaluating stake
- Resistant to arbitrary manipulation
- Sybil attacks and loop attacks are mitigated
- noting at stake
used by:
- Hyperledger Fabric
- Zilliqa – pBFT + PoW
- Tendermint – pBFT + DPoS
pros:
cons:
- exponentially increasing message count as nodes are added to the set
- centralized
- permissioned
- does not scale well
- high transaction throughput
- Sybil attacks
vulnerability:
used by:
- Stellar
- Ripple
pros:
cons:
- incredible throughput
- low transaction cost
- network scalability
- evеrуоnе is fіghtіng to be root chain
- there саn be ѕеvеrаl rооt chains
pros:
-decentralized control
- low latency
- flexible trust
- asymptotic security
used by:
- NEO
pros:
cons:
- fast
- scalable
- evеrуоnе is fіghtіng to be root chain
- there саn be ѕеvеrаl rооt chains
- Lamport’s consensus algorithm [The Part-Time Parliament - Leslie Lamport ACM Transactions on Computer Systems May 1998]
- generally used to implement strongly-consistent replication in distributed systems that run on asynchronous environments
- a protocol for state machine replication in an asynchronous environment that admits crash failures.
used by:
- Apache Cassandra
- Neo4j
- Apache ZooKeeper
- Ceph
pros:
cons:
- difficult to understand
- scaleble
- rubost
- Raft offers a generic way to distribute a state machine across a cluster of computing systems
- ensuring that each node in the cluster agrees upon the same series of state transitions.
Raft achieves consensus via an elected leader. A server in a raft cluster is either a leader or a follower, and can be a candidate in the precise case of an election (leader unavailable). The leader is responsible for log replication to the followers. It regularly informs the followers of its existence by sending a heartbeat message. Each follower has a timeout (typically between 150 and 300 ms) in which it expects the heartbeat from the leader. The timeout is reset on receiving the heartbeat. If no heartbeat is received the follower changes its status to candidate and starts a leader election.
used by:
- CouchroachDB
- etcd
- NATS
- IPFS
- Quorum
pros:
cons:
- used in private
- permissioned networks
- Simpler model than Paxos, but offers same safety.
- implementation available in many languages.
RAFT: ONLINE SIMULATOR