

Consensus in Bitcoin: One system, many models - randomwalker
https://freedom-to-tinker.com/blog/randomwalker/consensus-in-bitcoin-one-system-many-models/

======
danbruc
_Can we effectively model the system with all its interacting components in
the language of strategies and payoff-maximization?_

For a certain set of scenarios probably but what if the goal of an attacker
is, for example, the destruction of Bitcoin? I don't think you can capture
motivation for such a scenario in a model that, as far as I understand it, is
based on value maximization within the Bitcoin system. The negative effect of
any action within the system can always be offset by some positive effect
outside the system. So I don't think it is a good idea to decide what metric
should be used to judge the behavior of actors if you want to analyze attacks.

~~~
randomwalker
That's a good question. One of the points I'll make in the follow-up post that
I promised is that it is indeed possible to capture the motivation of such an
attacker in game theory, and in fact, this has been done. [1] However, it
makes the model less elegant and introduces parameters. The more of these
complexities you wish to model, the less tractable the model becomes.

[1]
[http://weis2013.econinfosec.org/papers/KrollDaveyFeltenWEIS2...](http://weis2013.econinfosec.org/papers/KrollDaveyFeltenWEIS2013.pdf)
(Section 5).

~~~
jaekwon
I think that's the paper that Eyal & Sirer disprove with "selfish mining".

And here's a post that may provide a useful mental framework for thinking
about cryptocurrency consensus protocols and game-theory:

[http://tendermint.com/posts/security-of-cryptocurrency-
proto...](http://tendermint.com/posts/security-of-cryptocurrency-protocols/)

And a proposed solution:

[http://tendermint.com/docs/tendermint.pdf](http://tendermint.com/docs/tendermint.pdf)

Also, check out the email invite I sent you to the group! p.s. if anybody
wants access, just email me.

------
vbuterin
I strongly agree that byzantine fault tolerance theory by itself is a vastly
insufficient model for explaining the workings of a cryptoeconomic consensus
system. Cryptoeconomic consensus systems actually have to deal with five
separate problems:

1\. What mechanism is used to process a batch of state transitions during each
round? (blocks in bitcoin, a BFT algorithm in Pebble, etc)

2\. What mechanism incentivizes correct participation, as opposed to incorrect
participation or non-participation, during a round? (block rewards, slasher
penalties, etc)

3\. What mechanism disincentivizes nodes from replaying a given round or set
of rounds after the fact with different state transitions? (ie. the short-
range double-spend problem) - block rewards in BTC, slasher deposits in PoS,
being voted out in DPOS

4\. Assuming a replay does happen, what mechanism do nodes use to determine
which of the branches is correct? (PoW scoring in BTC, other scoring
algorithms in PoS)

5\. What mechanism invalidates long-range forks? (PoW for bitcoin, social
checkpointing for PoS systems)

BFT consensus algos are equipped to only solve (1), and even there only part
of (1) (specifically, given N participants, how does the next block get
produced; the neglected part is how to pick the N participants given a free-
entry economic system in the first place). It's an economics problem more than
anything else, really.

------
kushti
I hope following article will be more interesting, this one is kinda
introduction, I guess.

We in Consensus Research(
[https://github.com/ConsensusResearch](https://github.com/ConsensusResearch) )
are study some consensus properties of proof-of-stake cryptocurrencies with
executable models written in Haskell & Coq. Feedback from HN guys is highly
welcomed!

------
etchalon
This reads like a freshman in college read wikipedia and submitted a paper.

~~~
jaekwon
If you have anything more intelligent to say on the topic, I'd like to read
it.

~~~
etchalon
I don't have any particularly insightful opinions on consensus, nor on
Bitcoin. However, neither did this writer, and yet the post was voted to the
front page.

I literally do not understand how anyone could read that and think "man, other
people should totally read this!"

