What are economy-based consensus algorithms?

An economy-based consensus algorithm simulates an economy, where economic rationality drives the underlying consensus.

After reading this, you'll understand:

  • A brief overview of economy-based consensus
  • How economy-based consensus works
  • Examples of economy-based consensus
  • Possible attack vectors for economy-based consensus

After reading this, you'll understand:

  • A brief overview of economy-based consensus
  • How economy-based consensus works
  • Examples of economy-based consensus
  • Possible attack vectors for economy-based consensus

Economy-based consensus explained

One kind of consensus algorithm for blockchain or other distributed ledger technologies (DLT) is economy-based. An economy-based consensus algorithm is set up in a way that's like a simulation of the economy — where economic rationality drives the underlying consensus.

Economy-based consensus is often misconstrued with “ledgers that use graphs” or “ledgers that use proof-of-stake” — but that's not a good way of describing the underlying consensus mechanism because you could, for example, use proof-of-stake with a leader-based consensus mechanism, and you could use graphs for all sorts of things.

What we're really talking about is where the economy-based consensus algorithm itself is trying to simulate the way an economy works, but ideally not having the chaos that comes with a real-world economy. An algorithm which simulates the way an economy works is incredibly difficult to achieve, because there are no math proofs to prove we won’t have chaos.

Could you ever mathematically prove that the US stock market will never crash again? No — it'll probably crash again. Could you prove there will never be another bubble? No — there'll probably be more bubbles. Any complex system that's chaotic can have instabilities, and there's really no way to ensure they won't happen, or to ensure that malicious actors will not be able to trigger them.

How economy-based consensus works

Let’s say that as a community, we’re going to add blocks onto a blockchain — and the way we’ll do it is that everybody votes on which block they want to add next. But in an economy-based system with two candidates, you get fined if you vote for both. And if you vote for one and a majority of other people voted for that same one, you get paid. Alternatively, if you vote for one and it's in the minority (most people voted for the other one), then you have to pay a fine. So you're gambling on which one you think is going to be right.

This is great, because everybody has a financial incentive to add on to the longest block. And if everybody's trying to do what everybody else is trying to do, then we get group think very fast, and we all converge and achieve consensus quickly. This results in all of us always doing the same thing.

In this example, “Adam Smith's invisible hand” is causing us to reach consensus — we are all reaching the consensus on which block goes next, and if there's a fork, which of the forks are extended and which to chop off.

An example of economy-based consensus

How do we know whether an economy-based consensus mechanism is the right setup? Let’s imagine that a small fraction of the nodes are compromised (or if we're weighting votes using proof-of-stake, that a small number of the coins are owned by bad nodes which are compromised). These nodes are malicious and they're very fast. And so when a decision needs to be made on which of the two branches should be extended, the malicious nodes break themselves into two groups and they can collude with each other. Half of them would go with half of the honest people in the system and say, "Oh, you should vote for X. I'm voting for X." — and the other half go very rapidly to the other half of the system and say, "I'm voting for Y."

Now what do the honest nodes say? Well, half of the honest nodes say, “A few people have already voted for X, and no one's voted for Y (as far as I can see). I think I'm going to extend X." Whereas, on the other side, they're saying "I've only heard of a few votes for Y and none for X. I guess I'm going to extend Y." And so the honest nodes are split into two equal groups — eventually one of them wins out and half of them lose money.

This could be a problem: In normal operations, a tiny fraction of the community loses money on each round. But in this scenario, we're having half the people losing money on each round. If they are rational economic players (or if people program their computers to become rational) they're going to say, "You know what? Instead of being an early adopter and voting early and losing my money half of the time, I'll wait until more people have voted before I vote." Or if it's the voting is weighted by coins (such as in a proof-of-stake system), "I'll wait until more coins have voted before I vote." But if all the honest people say, "I'm not going first", then they will never vote and the system begins to slow down.

Attack vectors for economy-based consensus

The example described above is a trivially simple system, and we just went through how you might go about attacking it. There's a million ways you could extend the system that stops this example attack. The real question is, "Can there be really subtle attacks that interact with your really subtle, complicated economy based system and cause it to do bad things?" And in hundreds of years of the free market economy, we've never figured out a way to stop bubbles or crashes. It is chaotic behavior and is inherently a mathematically complex system — we don't really know how to build a market that is secure.

If an economy-based distributed ledger technology could be built with a mathematical proof, where none of the attacks could work, no matter how subtle, no matter how tricky, we could overcome the problems associated with economy-based consensus. However, nobody has yet to develop a mathematical proof and, without that, malicious actors will be left wondering how they can take advantage of this type of system.

HELLO FUTURE

Start building applications and ecosystems for the next generation of the web