Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: vit05 on July 30, 2018, 04:13:18 AM



Title: [List] Consensus Algorithms
Post by: vit05 on July 30, 2018, 04:13:18 AM
░  Consensus Algorithms  ░
━━━━━━━━━━━━━━━━━━━━━ 👉  👈 ━━━━━━━━━━━━━━━━━━━━━

Consensus: A generally accepted opinion or decision among a group of people.
Algorithm:  A set of rules for accomplishing a task in a certain number of steps.

Combining the two, you get: a set of rules and number of steps for accomplishing a generally accepted decision among a group of people.





Consensus Algorithms


|
Name
|
WhitePaper
|
Initials
|
Description
|
Project that uses
|
Academic research
|
Discussions
|
Articles
|
Reviews
|
|
Proof of Work (https://en.wikipedia.org/wiki/Proof-of-work_system)
|
Bitcoin WhitePaper (https://bitcoin.org/bitcoin.pdf),  "Proofs of Work" (http://www.emc.com/emc-plus/rsa-labs/staff-associates/proofs-of-work-protocols.htm),
. (https://bitcointalk.org)
|
PoW
|
Miners compete to solve a difficult mathematical problem based on a cryptographic hash algorithm. The solution found is called the Proof-Of-Work.
|
Bitcoin (https://bitcoin.org), Ethereum (https://bitcointalk.org/index.php?topic=428589.0), Monero (https://bitcointalk.org/index.php?topic=583449.0)
|
scholar (https://scholar.google.com.br/scholar?hl=en&as_sdt=0%2C5&as_vis=1&q=proof+of+work&btnG=)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
Is POW systematically doomed (https://bitcointalk.org/index.php?topic=4433000)
|
|
Proof of Stake (https://en.wikipedia.org/wiki/Proof-of-stake)
|
Cardano Ouroboros (https://iohk.io/research/papers/#9BKRHCSI),  (https://bitcointalk.org),
ETH Casper (https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs)
|
PoS
|
PoS is about validating. A person can validate block transactions according to how many coins he or she holds.
|
Cardano(ADA) (https://cardanoroadmap.com/), Nxt (https://bitcointalk.org/index.php?topic=303898.0), Ethereum (https://github.com/ethereum/casper)
|
Scholar Google (https://scholar.google.com.br/scholar?hl=en&as_sdt=0%2C5&q=proof+of+stake&btnG=&oq=proof+of+sta)
|
   
Proof of stake. 2011 (https://bitcointalk.org/index.php?topic=27787.0)
|
. (https://bitcointalk.org)
|
PoS is either extremely vulnerable or totally centralised (https://bitcointalk.org/index.php?topic=1382241)
|
|
Delegated Proof-of-Stake (https://en.bitcoinwiki.org/wiki/EOS#Delegated_proof_of_stake_.28DPOS.29)
|
EOS WhitePaper (https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md#consensus-algorithm-bft-dpos/),  (https://bitcointalk.org),
 (https://bitcointalk.org)
|
DPoS
|
Stake holders can elect leaders who will vote in their behalf. This makes it faster than the normal PoS. But more centralized too.
|
BitShares (https://bitcointalk.org/index.php?topic=1949828.0), Steemit (https://bitcointalk.org/index.php?topic=1410943.0), EOS (https://bitcointalk.org/index.php?topic=1904415.0), Lisk, Ark.
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
Federated Byzantine Agreement (https://en.wikipedia.org/wiki/Quantum_Byzantine_agreement)
|
(https://bitcointalk.org) (https://bitcointalk.org)Stellar WhitePaper (https://www.stellar.org/papers/stellar-consensus-protocol.pdf)
|
BFT
|
Byzantine general, responsible for their own chain, sorts messages as they come in to establish truth. In Ripple the generals (validators) are pre-selected by the Ripple foundation. In Stellar, anyone can be a validator so you choose which validators to trust.
|
Ripple (https://bitcointalk.org/index.php?topic=301635.0), Stellar (https://bitcointalk.org/index.php?topic=1428573.0)
|
Google Scholar (https://scholar.google.com.br/scholar?q=Federated+Byzantine+Agreement&hl=en&as_sdt=0&as_vis=1&oi=scholart)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
Delegated Byzantine Fault Tolerance (https://cryptowiki.com/Delegated_Byzantine_Fault_Tolerance)
|
NEO WhitePaper (http://docs.neo.org/en-us/basic/consensus/consensus.html)
|
dBFT
|
Holder of the token can, by voting, pick the bookkeeper it supports. The selected group of bookkeepers, through BFT algorithm, reach a consensus and generate new blocks. Voting in the network continues in real time, rather than in accordance with a fixed term.
|
NEO (https://bitcointalk.org/index.php?topic=2057932.0)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
*Directed Acyclic Graphs (https://en.wikipedia.org/wiki/Directed_acyclic_graph)
|
DagCoin (https://bitslog.files.wordpress.com/2015/09/dagcoin-v41.pdf), IOTA_Whitepaper (http://iotatoken.com/IOTA_Whitepaper.pdf),
 (https://bitcointalk.org)
|
DAG
|
The blocks / transactions of the DAGs are added in parallel, each block / transaction confirming a number of previous blocks. This makes DAGs inherently scalable
|
Iota (https://bitcointalk.org/index.php?topic=1216479.0), Byteball (https://bitcointalk.org/index.php?topic=1608859.0), Nano (https://bitcointalk.org/index.php?topic=1381323.0)
|
. (https://bitcointalk.org)
|
Sergio Lerner. DagCoin (https://bitcointalk.org/index.php?topic=1177633.0)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
Proof-of-Authority (https://en.wikipedia.org/wiki/Proof-of-authority)
|
VeChain WhitePaper (https://cdn.vechain.com/vechain_ico_ideas_of_development_en.pdf),  (https://bitcointalk.org),
 (https://bitcointalk.org)
|
PoA
|
In PoA, transactions and blocks are validated by approved accounts. Validators run software allowing them to put transactions in blocks. The process is automated and does not require validators to be constantly monitoring their computers.
|
VeChain (https://bitcointalk.org/index.php?topic=2233779)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
Proof of Importance (https://en.wikipedia.org/wiki/NEM_(cryptocurrency))
|
NEM WhitePaper (https://www.nem.io/wp-content/themes/nem/files/NEM_techRef.pdf#section.7), . (https://bitcointalk.org),
 (https://bitcointalk.org)
|
PoI
|
Nodes need to ‘vest’ an amount of currency to be eligible for creating blocks and are selected for creating a block roughly in proportion to some score
|
NEM (https://bitcointalk.org/index.php?topic=654845.0)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
Definition proof-of-importance (https://www.smithandcrown.com/definition/proof-of-importance/)
|
. (https://bitcointalk.org)
|
|
Proof of Space (https://en.wikipedia.org/wiki/Proof-of-space)
|
Stefan Dziembowski1 (https://eprint.iacr.org/2013/796.pdf), FileCoin (https://filecoin.io/filecoin.pdf),
 (https://bitcointalk.org)
|
[PoSpace
|
Miners allocate unused disk space to the network, with the probability of successfully mining a block being proportional to the amount of space allocated divided by the total capacity of the network
|
filecoin (https://filecoin.io/); Chia (https://chia.net/)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
Proof of Storage (https://crypto.stackexchange.com/questions/15178/proof-of-storage-scheme)
|
gmaxwell Proposal (https://bitcointalk.org/index.php?topic=310323.0), Storj WhitePaper (https://storj.io/storj.pdf),
 (https://bitcointalk.org)
|
(https://bitcointalk.org)
|
Instead of using a blockchain, the network uses a blocktree. Also, instead of seeing all the transactions listed, the user will only see the transactions relevant to it. Each node in the blocktree contains a blockchain.
|
Storj (https://bitcointalk.org/index.php?topic=555159)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
|
Proof Of Activity (https://en.wikipedia.org/wiki/Decred)
|
decred WhitePaper (https://docs.decred.org/research/overview/), PoA: Extending Bitcoin’s PoW via PoS (https://eprint.iacr.org/2014/452.pdf),
 (https://bitcointalk.org)
|
PoA
|
Miners use PoW to generate a block that works as a template. A group of validators takes this information and signs the block. The Fees are divided between the Miners and the Validators.
|
Decred (https://bitcointalk.org/index.php?topic=1290358)
|
. (https://bitcointalk.org)
|
Charlie Lee proposal (https://bitcointalk.org/index.php?topic=102355)
|
51% attacks (https://medium.com/decred/decreds-hybrid-protocol-a-superior-deterrent-to-majority-attacks-9421bf486292) ; . (http://)
|
. (https://bitcointalk.org)
|
|
Proof of Believability (https://cryptoslate.com/introduction-iostoken-blockchain-internet-services/)
|
IOST WhitePaper (https://github.com/iost-official/Documents), . (https://bitcointalk.org),
 (https://bitcointalk.org)
|
(https://bitcointalk.org)
|
The protocol divides all validators into two groups, a credible alloy and a normal alloy. Credible validators process transactions quickly in the first phase. Then the standard validators sample and verify the transactions in the second phase to provide the purpose and ensure verifiability.
|
IOST (https://bitcointalk.org/index.php?topic=2789376.0)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|
. (https://bitcointalk.org)
|





I decided to create this list to facilitate the search for texts on the different types of consensus algorithms. I first created a version in Portuguese and now this one in English.

It's a table under construction. I will gradually add more links and add the other algorithms. If you have any suggestion of a link or correction, do not hesitate to send it.



About the pic. (http://www.vulture.com/2017/10/seinfeld-the-contest-oral-history-larry-david.html)

Sources: hackernoon.com (https://hackernoon.com) ; Wikipedia (https://en.wikipedia.org/wiki/Proof-of-stake), BitcoinTalk, Reddit.com,  funmemes (https://steemit.com/bitcoin/@funmemes/variations-of-proof-of-stake) ; damcosset (https://dev.to/damcosset/blockchain-what-is-mining-2eod); Stack Exchange (https://bitcoin.stackexchange.com)
Layout: Mitchell Signatures (https://bitcointalk.org/index.php?topic=615953.0); Leteraviann (https://bitcointalk.org/index.php?topic=4596787.msg41489338#msg41489338)



* DAG is not a Consensus Algorithm. But I think it is easier to understand when comparing this way. And mostly of articles when comparing different projects put a disclameir about this.
https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3
https://kapitalized.com/blog/an-overview-of-the-different-blockchain-consensus-algorithms






Title: Re: [List] Consensus Algorithms
Post by: Coding Enthusiast on July 30, 2018, 04:17:47 AM
Most of your links need fixing, they go to first page of BitcoinTalk.org


Title: Re: [List] Consensus Algorithms
Post by: vit05 on July 30, 2018, 05:05:07 AM
Most of your links need fixing, they go to first page of BitcoinTalk.org

Tks
I'm still working on them. Keeping the correct table format is difficult. But I think now they are correct, except "." where I will add more links later.


Title: Re: [List] Consensus Algorithms
Post by: cryptoasr on July 30, 2018, 07:19:35 AM
Thanks for the informative post.  It is really helpful for the beginners to understand different types of consensus algorithm. 


Title: Re: [List] Consensus Algorithms
Post by: HeRetiK on July 30, 2018, 08:36:43 AM
Like blockchains, a DAG by itself is not a consensus algorithm, it's merely a data format. In other words, just like blockchains, DAGs require a consensus algorithm on top. For example, IOTA relies on a central coordinator while ByteBall uses a set of trusted witnesses, similar to Ripple / Stellar. Nice overview nonetheless, OP.


Title: Re: [List] Consensus Algorithms
Post by: vit05 on July 30, 2018, 10:35:08 PM
Like blockchains, a DAG by itself is not a consensus algorithm, it's merely a data format. In other words, just like blockchains, DAGs require a consensus algorithm on top. For example, IOTA relies on a central coordinator while ByteBall uses a set of trusted witnesses, similar to Ripple / Stellar. Nice overview nonetheless, OP.

You're right. Perhaps, in this case, it would be best to demonstrate how these projects reach a consensus on the validity of a transaction.

https://github.com/noneymous/iota-consensus-presentation



Title: Re: [List] Consensus Algorithms
Post by: bitmover on July 31, 2018, 01:08:19 AM
Like blockchains, a DAG by itself is not a consensus algorithm, it's merely a data format. In other words, just like blockchains, DAGs require a consensus algorithm on top. For example, IOTA relies on a central coordinator while ByteBall uses a set of trusted witnesses, similar to Ripple / Stellar. Nice overview nonetheless, OP.

Yeah, that´s right.

IOTA´s Tangle also uses as PoW as a consensus algorithm, with The Coordinator.


Maybe OP should remove this DAG row.


Title: Re: [List] Consensus Algorithms
Post by: freighttrain on July 31, 2018, 01:34:14 AM
I'd love to add these, though they are still in ICO/develomental phase. They have the potential to be adopted.
1. Proof of Online: The proof of online algorithm takes into account the number of time a user spends online on a webpage that has the Online.io solution integrated. Online.io is usng this algorithm in their project.
2. Proof of Exercise: Gymrewards encurages exercising at the GYM by introducing Proof of Exercise to the blockchain. This means the more you exercise at the GYM, the more GYM Coins you will earn.


Title: Re: [List] Consensus Algorithms
Post by: vit05 on July 31, 2018, 10:42:20 PM
I'd love to add these, though they are still in ICO/develomental phase. They have the potential to be adopted.
1. Proof of Online: The proof of online algorithm takes into account the number of time a user spends online on a webpage that has the Online.io solution integrated. Online.io is usng this algorithm in their project.
2. Proof of Exercise: Gymrewards encurages exercising at the GYM by introducing Proof of Exercise to the blockchain. This means the more you exercise at the GYM, the more GYM Coins you will earn.

Thanks but proof of online do not apparently exist. Is just an ERC-20 token. Do you have any academic paper describing how it works?


Title: Re: [List] Consensus Algorithms
Post by: Insufficient on August 01, 2018, 01:39:06 AM
I want to add this also , some variants of proof of stake:

1.Proof of Stake Velocity - introduced by Reddcoin (https://reddcoin.com) https://steemitimages.com/0x0/https://files.coinmarketcap.com/static/img/coins/32x32/reddcoin.png  , Reddcoin core team to replace Proof-of-Work (PoW) as the mechanism to verify transactions and create blocks. It encourages both ownership (Stake) and activity (Velocity). To increase your chance of finding a valid block and receive block rewards, instead of buying GPU or ASIC for more hash power, you just need to have a bigger holding of Reddcoins and keep your wallet running and connect to the internet.

2.Proof Of Anonymous - First introduced by Cloakcoin (http://www.cloakcoin.com/) https://steemitimages.com/0x0/https://files.coinmarketcap.com/static/img/coins/32x32/cloakcoin.png , transactions are cloaked by other users who receive a reward for aiding in the anonymization of the transaction. Other users provide inputs and outputs to the transaction and make it impossible to determine the source and destination of the transaction.

3.Proof Of Stake Time - First to use this is Vericoin (https://www.vericoin.info/) https://steemitimages.com/0x0/https://files.coinmarketcap.com/static/img/coins/32x32/vericoin.png .Proof of Stake Time uses coin age, but instead of using the amount of coins to calculate age, they use the period of time the coins have been held at the specific address. This method was implemented to avoid making the rich, richer, which many Proof of Stake methods do.


Title: Re: [List] Consensus Algorithms
Post by: cryptotrade007 on August 01, 2018, 05:16:48 AM
This is pretty interesting.  I think that you could format your text better, rather than having a long line down the middle? But thanks for sharing anyway.


Title: Re: [List] Consensus Algorithms
Post by: vit05 on August 03, 2018, 10:28:19 PM
I want to add this also , some variants of proof of stake:

1.Proof of Stake Velocity - introduced by Reddcoin (https://reddcoin.com) https://steemitimages.com/0x0/https://files.coinmarketcap.com/static/img/coins/32x32/reddcoin.png  , Reddcoin core team to replace Proof-of-Work (PoW) as the mechanism to verify transactions and create blocks. It encourages both ownership (Stake) and activity (Velocity). To increase your chance of finding a valid block and receive block rewards, instead of buying GPU or ASIC for more hash power, you just need to have a bigger holding of Reddcoins and keep your wallet running and connect to the internet.

2.Proof Of Anonymous - First introduced by Cloakcoin (http://www.cloakcoin.com/) https://steemitimages.com/0x0/https://files.coinmarketcap.com/static/img/coins/32x32/cloakcoin.png , transactions are cloaked by other users who receive a reward for aiding in the anonymization of the transaction. Other users provide inputs and outputs to the transaction and make it impossible to determine the source and destination of the transaction.

3.Proof Of Stake Time - First to use this is Vericoin (https://www.vericoin.info/) https://steemitimages.com/0x0/https://files.coinmarketcap.com/static/img/coins/32x32/vericoin.png .Proof of Stake Time uses coin age, but instead of using the amount of coins to calculate age, they use the period of time the coins have been held at the specific address. This method was implemented to avoid making the rich, richer, which many Proof of Stake methods do.

Thanks. They are on my list of projects that I will add later. The real problem that I am having is that some of Consensus Algorithms are just ideas without further research.

BTW, anyone could explain what is the relationship between Trusted timestamping and Consensus Algorithms?


Title: Re: [List] Consensus Algorithms
Post by: bitmover on August 03, 2018, 11:19:13 PM

BTW, anyone could explain what is the relationship between Trusted timestamping and Consensus Algorithms?

As far as I know...

Consensus algorithm is the way all different nodes(people) decide who owns what.
How everyone decide who owns what in pos? By Staking their coins in a group os valide transactions. When the process is over, the network achieve a consensus about who owns what.

The trusted timestamp is the transaction history that was build using some kind of consensus. It is trusted, because the network acheived a consensus about those transactions as valid

A blockchain is a trusted timestamp


Title: Re: [List] Consensus Algorithms
Post by: leetlezee on August 03, 2018, 11:45:53 PM
Nice list, OP! Great reference to compare and research consensus algorithms.

There is also PoC (Proof of Capacity) used by Burst coin, which has been around since August of 2014. Burst website (https://www.burst-coin.org/), Burst ANN Thread (https://bitcointalk.org/index.php?topic=1541310).


Title: Re: [List] Consensus Algorithms
Post by: Bitchef2112 on August 06, 2018, 10:22:15 AM
Emin Gun Sirer posted about a new branch of consensus algorhitms, read up on it too

https://ipfs.io/ipfs/QmUy4jh5mGNZvLkjies1RWM4YuvJh5o2FYopNPVYwrRVGV (https://ipfs.io/ipfs/QmUy4jh5mGNZvLkjies1RWM4YuvJh5o2FYopNPVYwrRVGV)


Title: Re: [List] Consensus Algorithms
Post by: bitmover on August 06, 2018, 12:07:43 PM
https://bitcoin.org/bitcoin.pdf

Take a look here vit05.
Satoshi explains timestamp and blockchain concepts.


Title: Re: [List] Consensus Algorithms
Post by: jaybny on August 09, 2018, 06:58:30 AM
Proof-of-Skill:

Medium post 2018: https://medium.com/@jaybny/on-proof-of-skill-6af149f45ce8
Whitepaper 2014: http://protoblock.com/docs/whitepaper-2014.pdf


Title: Re: [List] Consensus Algorithms
Post by: TimeTeller on August 11, 2018, 07:52:43 AM
This is a nice summary list of algorithms that you made here. Thanks for that.
And to be honest, I'm familiar only with the first 3 items on your list.
Others, I just encountered and read but not really had the time to have in-depth understanding those other algorithms.
And if it's possible, please update the table if there's any new algorithm coming up. Will bookmark this thread.Thanks.


Title: Re: [List] Consensus Algorithms
Post by: byteball on August 11, 2018, 03:19:19 PM
There is another example of blockchain that uses Proof-of-Activity (hybrid between PoW and PoS, but not exactly the same hybrid as DeCred): Metro based on Next codebase.
http://metrodex.org (http://metrodex.org)
Mainnet started already.


Title: Re: [List] Consensus Algorithms
Post by: CryptoLing on August 11, 2018, 04:39:46 PM
Nice info, but you missed some other consensus algorithm like LPOS(Waves), RDPOS (ACT), and any others.

Keep updating and keep up the good work !


Title: Re: [List] Consensus Algorithms
Post by: avivsun on August 27, 2018, 08:21:58 AM
Hi

Great work!

Here is an updated infographic of the different consensus algorithms

https://101blockchains.com/wp-content/uploads/2018/08/Different_Consensus_Algorithms.png

Credits to 101blockchains.com (https://101blockchains.com/consensus-algorithms-blockchain)


Title: Re: [List] Consensus Algorithms
Post by: d5000 on August 28, 2018, 07:06:40 PM
As a suggestion, I would categorize the algorithms. At least in these big groups:

- Proof of Work
- Chain-based Proof of Stake (includes LPoS, Proof of Importance)
- PBFT and BFT-based Proof of Stake (includes DPoS, Ouroboros, Byteball, and PBFT)
- Hybrid models: Proof of Activity and hybrid PoW/PoS
- Proof of Burn (shares some characteristics with chain-based Proof of Stake)
- Proof of Capacity/Space (shares some characteristics with PoW but also suffers from a [lighter] Nothing-at-stake problem)
- Trusted computing algorithms (e.g. PoET)

Known DAGs are mostly using a DPoS-like algorithm, with the exception of IOTA, which uses PoW as anti-spam but a highly doubtful security concept.




Title: Re: [List] Consensus Algorithms
Post by: inashed on September 03, 2018, 03:49:35 PM
You forgot proof of burn. The biggest one after pow, pos or proof of stake time.

Also:
Proof of storage/space can be split into two types.

Proof of storage and proof of storage with dual purpose (those are usually just called proof of storage).

At the first, the allocated space is only used to do the mining.
At the second one real files are shared, and those files are the stake.

One of the points proof of storage is a mix of free and not free mining, assuming you mine only when you are using your computer for others, you can mine for free since people will always have some unused HD space at their computer. Those guys will help secure the network for free.
BUT, with the dual purpose proof of storage, you have a problem that the mining require bandtwitch if someone tries to download something from your computer, it also require file duplication or that miners leave their computer online, crippling one of the points I said earlier about proof of storage.
I only posted this explanation to show those 2 types of proof of storage have real difference.


Title: Re: [List] Consensus Algorithms
Post by: d5000 on September 03, 2018, 07:29:37 PM
You forgot proof of burn. The biggest one after pow, pos or proof of stake time.
Well, Proof of Burn is currently used only by one small altcoin (https://bitcointalk.org/index.php?topic=1141676.0) (and another one that's probably dead) so I don't consider it a "big" algorithm ;) Nevertheless, I'm a strong supporter of PoB, because even if it cannot be used as a standalone algorithm it complements PoS and PoW well.

Quote
At the second one real files are shared, and those files are the stake.
That is one of the "holy grail" algorithms ("algorithms that would satisfy a real-world need"). But until now, I considered it to be impossible to use as a consensus algorithm - or at least a really big challenge. I know there are projects like Sia, but Sia uses PoW for consensus, the "proof-of-storage" rewards are bonuses paid by the storage users (I think they called them "renters").

Can you point me to projects that are using this kind of algorithm for consensus? Serious question. I know that Burstcoin is trying to develop such a thing, but last time I checked it was only a promise or long-term goal.