“Consortium blockchains” (e.g. DPoS & Tendermint) can’t Internet scale

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@anonymint·
0.000 HBD
“Consortium blockchains” (e.g. DPoS & Tendermint) can’t Internet scale
A [recent comparison](https://blog.cosmos.network/consensus-compare-tendermint-bft-vs-eos-dpos-46c5bca7204b)<sup>1</sup> of Tendermint versus EOS/Steem’s [delegated proof-of-stake (DPoS)](https://steemit.com/dpos/@dantheman/dpos-consensus-algorithm-this-missing-white-paper)<sup>2</sup> doesn’t elucidate the most critical flaw that is shared by all these [“consortium blockchains”](https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/) (including Tendermint, IOHK’s Ouroboros<sup>3</sup>, [Red Belly Blockchain](http://poseidon.it.usyd.edu.au/~concurrentsystems/doc/ConsensusRedBellyBlockchain.pdf#page=3), and Byteball), which delegate consensus to a bounded, permissioned set of validating block (or stability point<sup>4</sup>) producers (aka delegates or witnesses).

Consortium blockchains are any attempted (and the impossibility of a perfect) solution to the [Byzantine Generals Problem](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance#Byzantine_Generals.27_Problem) (aka Byzantine agreement) which has bounded synchronous finality of irreversibility<sup>5</sup>; and thus mathematically must  have a bounded+permissioned delegate set subject to a ¹/₃ liveness threshold with ²/₃ safety margin. Whereas, Satoshi’s proof-of-work has only probabilistic (never absolutely final) irreversibility but allows unbounded asynchrony, unbounded+permissionless set of block producers, has no liveness threshold<sup>6</sup>, and yet with only ¹/₂ (aka “50% attack”) safety margin.

------

<sup>1</sup> <sub>The [linked blog](https://blog.cosmos.network/consensus-compare-tendermint-bft-vs-eos-dpos-46c5bca7204b) is the perspective of the Tendermint project, and presumably originates from [a Github issues discussion which I participated in](https://github.com/cosmos/cosmos/issues/43#issuecomment-264962737) and which Dan [blogged about](https://steemit.com/steem/@dantheman/response-to-cosmos-white-paper-s-claims-on-dpos-security). **And note [my refutation](https://medium.com/@shelby_78386/most-of-what-you-have-written-has-been-holistically-refuted-in-my-newest-blog-which-i-plan-to-also-747fcb9f3e6b) of one of the DPoS-shill comments there, which contains [significant additional points](https://medium.com/@shelby_78386/most-of-what-you-have-written-has-been-holistically-refuted-in-my-newest-blog-which-i-plan-to-also-747fcb9f3e6b) to supplement this blog.**</sub>

<sup>2</sup> <sub>DPoS was originally [invented by Daniel Larimer](http://web.archive.org/web/20140408144653/http://107.170.30.182/security/delegated-proof-of-stake.php) in April 2014 for the [Graphene blockchain of Bitshares](http://docs.bitshares.org/bitshares/index.html). I [participated](https://bitcointalk.org/index.php?topic=558316.msg6501774#msg6501774) in the community [discussions](https://bitsharestalk.org/index.php/topic,4009.0.html) of the design at its inception. DPoS is the blockchain consensus technology adopted by many altcoins, including Bitshares, Steem, EOS, Lisk, Ark, etc..</sub>

<sup>3</sup> <sub>Although Ouroboros’ proof-of-stake has delegation as an optional configuration of their technology, the claimed “provably secure” aspect requires a majority of the stake to be online always; and thus must realistically be delegated. Additionally, consistently high transaction throughput volume and low confirmation latency requires delegation to validating block producers with high performance servers and network connectivity.</sub>

<sup>4</sup> <sub>Byteball’s permissioned set of validators form consensus about “stability points” in the DAG.</sub>

<sup>5</sup> <sub>Irreversibility means for example inability to be double-spend or more generally the inability of a block to be orphaned by a subsequent fork.</sub>

<sup>6</sup> <sub>A 50+% attack can orphan minority hashrate blocks and censor any or all transactions; thus simulating some effects of a liveness threshold attack. Except that the majority has to sustain the expenditure on its hashrate in order to sustain the attack, so in theory the liveness could be recover in the future, unlike for consortium blockchains which require a community hardfork process for voting out non-responsive delegates to recover from a liveness threshold attack. The _Math of safety & liveness_ section explains why it’s unsafe to replace non-responsive delegates without a (potentially contentious) community hardfork process. Also there’s the possibility of egregiously reduced rate of block production due to PoW [difficulty adjustment attacks](http://trilema.com/2014/the-woes-of-altcoin-or-why-there-is-no-such-thing-as-cryptocurrencies/).</sub>

## Permissioned liveness = overlords

Consortium blockchains have a liveness threshold which is at most ¹/₃ of the delegates— a minimum safety requirement which apparently Daniel Larimer  [still doesn’t understand](http://archive.is/XCnZy#selection-4755.0-4755.80)<sup>7</sup> even after [I explained it to him](http://archive.is/kVGcc#selection-7221.81-7221.223). Thus (<sup><sub>being worse than ephemeral liveness attacks such as a DDoS attack on 33% of the delegates</sub></sup>), by electing non-responsive delegates which exceed the liveness threshold, a colluding malevolent 33% of the stake can _permanently_ and _irreparably_ shutdown the blockchain<sup>7</sup> (<sup><sub>pending a potentially contentious community hardfork process to replace non-responding delegates</sub></sup>) unless there exists is a _coordinated_ 50+% majority of the stake opposing in every stake election. Some colluding whales with 33% of the stake could enter short positions betting the exchange price of the ledger’s token will decline, shutdown the blockchain for a period of time sufficient to close their short positions with profits, spend the profits to buy more tokens extremely cheaply on exchanges, then stop the attack and profit on the rebound in the price of the tokens. Thus over time the colluding whales will own eventually the majority of the tokens and they will be forever unopposed in stake elections, i.e. constituting oligarchy control.

As overlording whales they can extract higher and higher rents such as by voting for higher and higher compensation for themselves as the delegates, extracting the maximum that the market will bear. Or if that’s a bit too blatantly obvious, they can extract rents in obfuscated ways, such as front-running their yo-yo manipulation of the token’s exchange price by [pretending they’ve been DDoS attacked](https://bitcointalk.org/index.php?topic=1904415.msg23390480#msg23390480). Or they can devise a scheme such as [Steem’s voting paradigm](http://archive.is/kVGcc#selection-8357.1-8357.41), for minting money supply that appears to be for a noble cause but mathematically can only end up [aggregated in the wallets of the sockpuppets](https://bitcointalk.org/index.php?topic=1558366.msg23215650#msg23215650) of the whales. Or a highly obfuscated [Rube Goldberg scheme](http://archive.is/kVGcc#selection-7037.0-7037.53) for [further concentrating](https://bitcointalk.org/index.php?topic=1558366.msg16957919#msg16957919) the [premeditated](http://archive.is/rvSdc#selection-485.197-489.1) sneakyfastmine to the whales.

Wait. This consortium blockchain scam is even worse when one digs down the rabbit hole.

<center><img src='https://i.imgur.com/OdM9l2f.png'/></center>

Actually the real-world case is the blatant liveness attack isn’t likely ever necessary because the overlords _must_ take control in any sufficiently obfuscated way.

Even if there is an honest majority of the stake, it is a well known flaw of voting<sup>8</sup> that it is impossible to _coordinate_ an intelligent vote result from the [tyranny of the masses](https://bitcointalk.org/index.php?topic=2268216.msg23461336#msg23461336), unless the majority of the stake is held by a small number of highly informed whales. But if a small number of whales are in control, then as sure as flies-to-honey, they have an incentive to maximize their extraction of the aforementioned parasitic (overlording-aggregates-all) rents.<sup>8</sup> And even at the inception as has been recently exposed for EOS<sup>9</sup> when they’re also [pocketing profits from](https://youtu.be/m_EKremz6ek?t=2404) selling [FOMO](https://www.urbandictionary.com/define.php?term=fomo) (<sup><sub>fear-of-missing-out, [left holding the](https://english.stackexchange.com/questions/377789/whats-the-origin-of-the-idiom-to-be-left-holding-the-bag)</sub></sup>) bags to greater fools.

Even if we assume the majority of the stake is honest and not colluding, unless they’re colluding such that they control the delegates they elect, the honest voters have no way to objectively determine which of the stake is voting for delegates which are attacking the liveness, because the attacking whales can offer sockpuppet delegate candidates into every election. Thus for consortium blockchains to not be evil overlords, not only would we have to presume that the inviolable facts about political-economics<sup>8</sup> are not inviolable, but the honest majority of the stake would also all have to agree and coordinate on the reputations of delegates which each voter _subjectively_ presumes aren’t sockpuppets of the attacking whales. Nope. This subjective relativity of reputation is what [makes voting not free](http://www.truthcoin.info/blog/pow-cheapest/#money-and-politics) and a winner-take-all for the whales which can extract the most rents (as predicted by the theory<sup>8</sup>), which is what [I explained](https://bitcointalk.org/index.php?topic=558316.msg6501774#msg6501774) to Daniel Larimer in April 2014 at the inception of his invention of DPoS. Winner-takes-all political economics means that those whales who try to not extract the maximum possible rents will lose to those who do.

Thus, these “marvelous” consortium blockchains re-accomplish the evil of the governments we already have, coupled with Visa-like servers run by the obfuscated overlording whales.

And what if the governments [rubber hose the overlords](http://archive.is/XCnZy#selection-901.0-654.67). Bigger fish eat smaller fish (<sup><sub>even Satoshi [politely slapped Dan](https://bitcointalk.org/index.php?topic=1904415.msg23260220#msg23260220) back down in his deserved subservient role</sub></sup>) in this centralized control outcome of political-economic game theory<sup>8</sup> of elections and governance. Governance **=** top-down centralization **=** more Visa/Windoze, inept monopolistic, rent extracting failure **=** inability to scale decentralized.

Well Satoshi’s proof-of-work has an [analogous design weakness](https://medium.com/@shelby_78386/study-the-design-of-bitcoin-24f8265a4d34) in that as significant revenue for miners comes from transactions fees as the protocol block reward declines and transaction volume increases, the incentive for the consensus to converge is lost and requires a colluding oligarchy, which of course will also extract maximum rents in either blatant ways such as constrained block size causing higher and higher fees, or [obfuscated trickery for extracting rents](https://bitcointalk.org/index.php?topic=2268216.msg23892499#msg23892499).

------

<sup>7</sup> <sub>DPoS is designed to side-step the liveness threshold, but the _Math of safety & liveness_ section explains why it’s unsafe to replace non-responsive delegates without a (potentially contentious) community hardfork process.</sub>

<sup>8</sup> <sub>See the [_Pitfalls of Proof-of-Stake_](https://blog.cosmos.network/consensus-compare-tendermint-bft-vs-eos-dpos-46c5bca7204b) section, Paul Sztorc’s [explanation](http://www.truthcoin.info/blog/pow-cheapest/#in-theory) of voting political economics, and Mancur Olsen’s [_The Logic Of Collective Action_](http://esr.ibiblio.org/?p=984).</sub>

<sup>9</sup> <sub>Such as the apparently [intentionally designed gaming of the EOS token sale](https://bitcointalk.org/index.php?topic=1904415.msg23570508#msg23570508) and the [premeditated](http://archive.is/rvSdc#selection-485.197-489.1) sneakyfastmine of Steem both of which presumably put or will put 50+% of the Steem and EOS tokens in the wallets of a few whales.</sub>

## Overlording doesn’t Internet scale

The Internet grew so fast because no party could extract the maximum rents that the market could bear. This was in large part of benefit of the Internet’s decentralized protocols, such as BGP routing and TCP/IP. Open source prospered because it enabled companies to invest in mutual code development without fear of closed source extortion of maximum rents and failures/negligence of the centralized parties in control.

The third party ecosystems [will be justifiably wary about](https://bitcointalk.org/index.php?topic=1558366.msg23215650#msg23215650) investing in consortium blockchains; because they _must_ become overlorded. Viral adoption will be underwhelming as is [evident by Steem versus early stage Facebook](https://bitcointalk.org/index.php?topic=1558366.msg15931670#msg15931670) growth, given much of the vaunted recent growth in traffic [may be misleading](https://bitcointalk.org/index.php?topic=1558366.msg21773902#msg21773902).

## Math of safety & liveness

Daniel Larimer [asserts that](http://archive.is/fMYsj#selection-431.77-431.162) DPoS creates irreversible blocks when ²/₃ (<sup><sub>actually plus one or rounded to a whole number</sub></sup>) of the delegates have acknowledged the block in the lineage chain of blocks. In DPoS, delegates take turns producing blocks in round-robin order. Yet he also asserts that — instead of the network halting requiring a (potentially contentious) community hardfork to  _safely_ recover, as must be the case for all consortium blockchains which desire to have safety  — [DPoS can side-step](http://archive.is/fMYsj#selection-447.0-447.402) the ¹/₃ liveness threshold, elect new delegates, and recover without the blockchain shutting down.

Notwithstanding [the discussion](http://archive.is/fMYsj#selection-435.0-435.182) between Dan and the Cosmos/Tendermint Github community that _all_<sup>10</sup> consortium blockchains are subject to loss of finality (i.e. ambiguity about forks) when the network is partitioned such that the bounded synchrony requirement<sup>11</sup> is subverted, then as _correctly_ [pointed out](http://archive.is/eqThy#selection-579.0-579.217) in the aforementioned comparison blog, **_by not enforcing the liveness threshold then DPoS enables Byzantine unsafety such that quorums for conflicting blocks are possible enabling an ambiguous forkathon in the case where the blockchain should have been halted due to a liveness threshold violation_**.

The naive reader (and the neophyte Dan Larimer!) will be confused as to why the non-responding delegates can’t be replaced by a stake election. There are three reasons why such a naive assumption is mathematically impossible:

* If the liveness threshold has been exceeded, then any blocks which confirm the result of a stake election aren’t objectively final due to the math of Byzantine fault tolerant agreement (consensus) as detailed below, i.e. an unbounded number of conflicting forks can be created.

   If instead record the results of the election offchain, then we’re executing a (potentially contentious) hardfork, thus not avoiding what Dan alleged that DPoS avoids! I sort of expect readers to work this out in their head, but I guess I realize I need to be more explicit in addressing all the various incorrect logic that naive minds can wander to.

* Who is voting over and over for non-responding delegates  (unbounded into the future) may not be objectively knowable nor defeatable as explained in the _Permissioned liveness = overlords_ section of this blog.

* If more than ²/₃ of the delegates are colluding, it’s mathematically impossible to determine which delegates are non-responding, because they can produce an unbounded number of forks wherein in each fork a different set of them are non-responding, yet all of the forks exceed the liveness threshold. Thus it is ambiguous which are non-responding, because they all are! Yet in any given fork, only some are; thus, it’s not objectively provable which are non-responding. The naive non-mathematical mind can’t grok that.

What we realize above is an underlying generative essence which is that Byzantine fault tolerance is a relativity problem and when the mathematical thresholds are exceeded, then all objectivity is lost. Stake voting can’t overcome that mathematical generative essence.

I explained the math quoted as follows from the yet unpublished rough draft for the white paper of the decentralized ledger technology I designed for an altcoin project I’m currently developing:

> First considering the scenario which doesn’t require Byzantine fault tolerance such that validators of blocks never vote for a conflicting transaction such as a double-spend nor does any other type of Byzantine fault occur, then given two attempted elections for a pair of consecutive blocks of transactions, the minimum number of voters which mathematically _must_ commit to both elections is `fₛ = 2T - N - 1`, where `T` is the minimum quorum size for each election and `N` is the size of the set of validators. Two instances of quorums of size `T` (one for each block election) minus `N - 1` available voting validators (from the perspective of any validator thus `- 1` for excluding self given a validator can trust himself), yielding the number `fₛ` which must be duplicated in both instances. Thus the minimum quorum size `T ≥ (N + 1)/2` where `2T - N - 1 ≥ 0`.
>
> Whereas, in the Byzantine fault tolerant case wherein malevolent and/or asynchronous (i.e. caused by random, ambiguous propagation ordering) validators can vote for blocks that contain conflicting transactions, the minimum number of voters which _commit_ to both elections `fₛ = 2T - N - 1` must be greater than the number of excess voters not needed to form a quorum `fₗ = N - T`, so that a quorum for a conflicting pair of blocks can’t exist because there aren’t enough _uncommitted_ voters to vote for it, i.e. `T ≥ N - fₛ`. Refer also to [_§Byzantine Consensus Algorithm: Proof of Safety_](https://github.com/tendermint/tendermint/wiki/Byzantine-Consensus-Algorithm#proof-of-safety) of the Tendermint Github project.  Thus `T ≥ (2N + 1)/3` where `2T - N - 1 ≥ N - T`, `fₛ` is the safety margin, and `fₗ` is liveness. This notation is taken from _§5.4.3. Comparison to centralized voting_ on [page 15 of the Stellar white paper](https://www.stellar.org/papers/stellar-consensus-protocol.pdf#page=15). This result is mathematically equivalent to `N = 3f + 1` where `f = fₛ = fₗ`, is analogous to the `N = 3m + 1` generals for `m` traitors result for the [Byzantine Generals Problem](http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf).
>
> Liveness `fₗ` in this context is the maximum number of unresponsive nodes allowed for the system to not stall all quorums. Safety margin `fₛ` is the minimum number of validators which must commit to (i.e. vote for) a pair of blocks to prevent ambiguous ordering of blocks. Even if only a single election would ever be held for a set of signing keys which represent the set of voting validators, the Byzantine fault tolerance applies when there isn’t trust of a pre-designated centralized tally entity, because voters can irrefutably claim that an epoch (i.e. synchronous bound) for a quorum instance expired and thus they signed a new vote for a new epoch. It is even irrefutable that a trusted centralized tally did not receive a vote. C.f. [_§2.2 Proofs and verifiable evidence_](http://www.cis.upenn.edu/~ahae/papers/accountability-fudico07.pdf#page=2) and what I explained to Dan in 2013 about [unprovable accountability for network communication](https://bitcointalk.org/index.php?topic=354573.msg3816897#msg3816897).
>
> Some systems [may opt for](https://www.stellar.org/papers/stellar-consensus-protocol.pdf#page=15) more safety margin at the detriment of reduced liveness by choosing a larger minimum quorum size `T`.

Dan’s DPoS design thus accepts arbitrary behavior (if the system were not coordinated by overlording whales<sup>10</sup>) instead of halting the blockchain.

Note however that [research](http://www.scs.stanford.edu/~jinyuan/bft2f.pdf#page=2) published [in 2007](https://dl.acm.org/citation.cfm?id=1973440) reveals it’s possible to enable some limited forms of non-arbitrary behavior with a liveness threshold greater than  ¹/₃. Yet afaik consortium blockchains don’t avail of this research insight. It may not be immediately obvious how apply this research insight to the double-spend or other general capabilities enabled by a chronological order preserving ledger, but apparently in Q4 2016 before I became aware of the research, I independently invented a facet of that “fork* consistency” principle for my decentralized ledger design.

Btw, I had elaborated with an example to help visualize the aforementioned mathematical derivation (<sup><sub>employing the `+` and `-` prefix and postfix notation from the Tendermint Github white paper</sub></sup>):

> ###### Marbles in Jars Example
>
> The proof in the Byzantine agreement case is easy to visualize with 3 voters who can each vote with marbles of one color representing their signing key: red, white, and blue. Given 3 jars representing ballot boxes for 3 elections on the consensus ordering of any two of them (wherein the jars could represent blockchain blocks), two marbles can be placed in each jar without any color voting more than twice― i.e. no voter has cheated yet the consensus is ambiguous. Declaring any of the jars as the first, results in two choices (aka “forks”) for which jar is the next. One jar has red and white, another red and blue, and another white and blue. This is why the proof requires that the excess of the quorum be less than `¹/₃` (aka “`-¹/₃`”). So by adding a voter with green marbles so that smallest minority reduces from `¹/₃` to `¹/₄` which is thus `-¹/₃`, the ambiguity is resolved because the green marble can only be placed in 2 of the 3 jars― again presuming no voter cheated to vote more than twice. Thus `+²/₃` instead of `¹/₂+` is required for quorums in the presence of possible malevolence (and/or honest ambiguity due to random propagation delays) given an asynchronous network, otherwise the ordering of the quorums can’t be proven.
>
> Note if any 3 of the 4 marbles are colluding, i.e. `²/₃` or more (aka “`+²/₃`”) of the voters are malevolent, they can vote for as many conflicting quorums (forks) as they wish and it will be ambiguous which of the 4 marbles is cheating, because given 3 sets of 3 jars, a different one of the 3 cheaters can vote in each set. And the honest voter has to vote on the fork which the quorum is extending, because otherwise not voting is indistinguishable from unresponsive. It can’t be irrefutably proven that the 3 malevolent marbles were cheating and colluding because they can each claim that other one became unresponsive; thus voting for more than two quorums became necessary. And the honest marble voted more than twice also. 

-----

<sup>10</sup> <sub>And Dan’s afaics [utter nonsense about](http://archive.is/fMYsj#selection-435.183-435.561) the purpose of ²/₃ safety margin for bounded synchronous finality, because he’s obviously ignorant of the math of safety & liveness given he was [evidently only analyzing the risk of forks due to networking partitioning](http://archive.is/fMYsj#selection-467.0-467.649) (i.e. the mathematical point ostensibly [never even entered his consciousness](http://archive.is/4aaTu#selection-475.0-475.173)) and not in the case of the math of accepting ambiguous quorums for replacing non-responsive delegates in the case where the liveness threshold is exceeded. Hence his construction of a false/[irrelevant dichotomy strawman](http://archive.is/fMYsj#selection-483.0-483.188). And the idiot community that praises Dan apparently bought into the thus irrelevant [implication of some 99.999% relationship to the attributes of proof-of-work](http://archive.is/fMYsj#selection-399.0-399.418). As correctly [pointed out](http://archive.is/eqThy#selection-451.87-451.297) in the comparison blog, Dan doesn’t seem to understand that [1000s of _uncoordinated_ validators](http://archive.is/4aaTu#selection-547.0-547.378) can’t correct for the mathematical errors in design of what is supposed to a Byzantine fault tolerant coordination algorithm. Because. Duh. They’re uncoordinated. Dan’s faith in his design is bolstered by the fact that his DPoS systems are run by highly coordinated overlording whales and thus Byzantine fault tolerance issues are more or less limited to bounded network propagation hiccups, so thus we cycle back to the title of this blog as the actually realized flaw.</sub>

<sup>11</sup> <sub>And Dan [doesn’t even understand](https://medium.com/@conservativedickhead/response-from-dan-larimer-on-this-article-d1997b9ee065) that his DPoS system relies on bounded synchrony. How the heck does Dan think his round-robin rotation of block producers functions if there is not a time-out on how long to wait for the prior block producer to propagate a block before the next one produces a block. <sup><sup><sup><img src='https://i.imgur.com/D8thqE2.gif'/></sup></sup></sup></sub>

## DPoS’ Rube Goldberg transaction fees

The zero transaction fee gimmick of DPoS creates [centralization and overlording](https://bitcointalk.org/index.php?topic=1904415.msg23335184#msg23335184) around the [necessary decentralization of funding](http://archive.is/XCnZy#selection-3513.302-3517.0) which can for example lead to [a DDoS attack on the forward progress of ledger](https://bitcointalk.org/index.php?topic=1904415.msg23378784#msg23378784).
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,