Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: jonnyhsy on November 27, 2017, 11:38:30 PM



Title: In search of open membership & byzantine fault tolerant consensus without mining
Post by: jonnyhsy on November 27, 2017, 11:38:30 PM
Hey folks, I've contemplated and searched in this topic quite a white, so beyond maintaining a chain and performing some kind of mining - either PoW or PoS family, is there a consensus algorithm (that could be used in distributed system) which is open membership (so node could join and leave on the fly) as well as byzantine fault tolerant (thus malicious node could stop functioning, and could even send different messages to different groups of honest nodes)?

So I've listed some existing algorithms below:
1. Paxos and Raft - close membership, and also not byzantine fault tolerant (only tolerant to fail-stop failure)
2. Practical byzantine fault tolerant algorithm (PBFT): close membership, and researchers point out that any group with >20 nodes may see huge performance drop.
3. Stellar consensus protocol (SCP) - it claims to be open membership and byzantine fault tolerant by bringing in the concept of "quorum" and "quorum slice", but it's hard for me to fully understand how it works though... (https://www.stellar.org/blog/stellar-consensus-protocol-proof-code/) Is there any expert can give some insight please?
4. Any more?...

Please correct me if I'm wrong and I'm earnest to know more about this topic :)



Title: Re: In search of open membership & byzantine fault tolerant consensus without mining
Post by: HeRetiK on November 28, 2017, 03:09:15 PM
There are DAGs (directed acyclic graphs) such as used by IOTA and ByteBall. The fault tolerance of such an approach still remains to be seen though, as -- to me -- it seems not fully clear on how they aim to defend against sybil attacks. So far both cryptocurrencies rely on a central entity to keep transactions on track. With ByteBall these  so called witnesses are an inherent part of the protocol, IOTA supposedly can live without this -- I think it's called the coordinator? -- once transaction throughput increases. I personally have doubts about the viability of both approaches, but admittedly didn't look much into them besides reading the respective whitepapers.

Oh, and there's MimbleWimble: https://github.com/mimblewimble/grin/blob/master/doc/intro.md


Title: Re: In search of open membership & byzantine fault tolerant consensus without mining
Post by: Tey on November 29, 2017, 10:25:18 AM
Check out Plenum Consensus Algorithm:

https://github.com/hyperledger/indy-plenum/wiki


Title: Re: In search of open membership & byzantine fault tolerant consensus without mining
Post by: katlogic on December 01, 2017, 12:20:50 AM
Intuitively, truly open membership (without some sort of bond in form of hash power or stake) isn't possible in trustless setting, because the collateral is there to replace trust. Best you can do is self-referential PoS, and even there you need some sort of bootstrap for the self-referentiality ... to refer to.

Easiest way to get open membership is through trust DAG or hiearchy, ByteBall, Ripple and even Tor does it. But those are quite obviously not trustless. To explore that area, you might ask under what circumstances is trustlessness necessary, and to which degree optimistic trust may work. For example bittorrent or IPFS is open membership with extremely rudimentary quorum (one-to-one optimistic tit-for-tat), yet sort of "consensus" is achieved (slow leech vs honest peer uploading back will be judged quite universally). This works because the stakes for sophisticated attack are not high, it's only to prevent casual abuse.