Blockchain consensus mechanisms
There seems to be a misunderstanding, or perhaps an acceptance for the sake of simplicity, of what consensus mechanisms blockchains use.
Everywhere you read on the internet, they say a form of the following “Proof of Stake (POS) is a consensus algorithm for XYZ chain” or “Proof of Work (POW) is a consensus algorithm for XYZ chain”.
But Proof of Stake (POS) and Proof of Work (POW) aren’t exactly consensus mechanisms (atleast not on their own).
POW & POS are mechanisms to prevent Sybil attacks. A sybil attack is described as a malicious attack that involves forging multiple identities to gain an undue advantage within a network
Here is an example overview of the various POW & POS blockchains, the sybil resistance mechanisms and consensus mechanisms they use.
Blockchain | Sybil mechanism | Consensus mechanism | |||
---|---|---|---|---|---|
Bitcoin | POW | Nakamoto Consensus/Longest chain rule | |||
Ethereum | POW | Longest chain rule variation | |||
Cosmos | POS | tendermint | |||
Solana | POS | Tower BFT | |||
Avalanche | POS | Snow |
Furthermore, it seems most people think POW originated with Bitcoin……and that POS originated with the dozen or so POS chains that currently, and formerly, existed.
Long before the first crypto POS coin i.e. PeerCoin, computer scientist Wei Dai released b-money, which could arguably be the first instance or origin of proof of stake :
“In the second protocol, the accounts of who has how much money are kept by a subset of the participants (called servers from now on) instead of everyone.
These servers are linked by a Usenet-style broadcast channel. The format of transaction messages broadcasted on this channel remain the same as in the first protocol, but the affected participants of each transaction should verify that the message has been received and successfully processed by a randomly selected subset of the servers. Since the servers must be trusted to a degree, some mechanism is needed to keep them honest.
Each server is required to deposit a certain amount of money in a special account to be used as potential fines or rewards for proof of misconduct. Also, each server must periodically publish and commit to its current money creation and money ownership databases. Each participant should verify that his own account balances are correct and that the sum of the account balances is not greater than the total amount of money created. This prevents the servers, even in total collusion, from permanently and costlessly expanding the money supply. New servers can also use the published databases to synchronize with existing servers.“ (emphasis mine)
And long before Bitcoin came about with POW, bit gold created by Nick Szabo, created the first blueprint of a currency that relied on proof of work, which was a concept invented by Noar and Dwork in 1993 as a mechanism to thwart denial of service attacks and spam :
”Here are the main steps of the bit gold system that I envision:
(1) A public string of bits, the "challenge string," is created (see step 5).
(2) Alice on her computer generates the proof of work string from the challenge bits using a benchmark function.
(3) The proof of work is securely timestamped. This should work in a distributed fashion, with several different timestamp services so that no particular timestamp service need be substantially relied on.
(4) Alice adds the challenge string and the timestamped proof of work string to a distributed property title registry for bit gold. Here, too, no single server is substantially relied on to properly operate the registry.
(5) The last-created string of bit gold provides the challenge bits for the next-created string.
(6) To verify that Alice is the owner of a particular string of bit gold, Bob checks the unforgeable chain of title in the bit gold title registry.
(7) To assay the value of a string of bit gold, Bob checks and verifies the challenge bits, the proof of work string, and the timestamp.” (emphasis mine)
Perhaps, as stated earlier int his post , it’s common nomenclature to call POW/POS “consensus protocols” for simplicity, but the point i wanted to bring across is:
Proof of Work/Stake alone does not consensus make