Consensus in Bitcoin: One system, many models
freedom-to-tinker.com
freedom-to-tinker.com
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.
[1] http://weis2013.econinfosec.org/papers/KrollDaveyFeltenWEIS2... (Section 5).
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...
And a proposed solution:
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.
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.
We in Consensus Research( 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!
I literally do not understand how anyone could read that and think "man, other people should totally read this!"