Cryptographer Ben Laurie, celebrated BitCoin skeptic, has written a short, provocative paper called An Efficient Distributed Currency, which proposes a distributed (but not decentralized) alternative. Kevin Marks is excited: "In effect you're doing an end run around Gresham's law, in the same way that the Brazilian Real did - and not how the US Govt is doing with dollar coins." (sidebar: holy cats, that Brazil story is awesome).
We need an efficient way to agree the total state of the system (that is, what
coins exist, who has possession of them and the transaction history1 ).
First, we view the state as a map of coins to purses. This can be represented as
a list of coins, each with the number of the purse it is in. I call this a snapshot.
A snapshot can be hashed by forming an ordered list of the coins and building
a Merkle tree from them. I call this a snapshot hash. Clients can now efficiently
query the current state and check that the results match an agreed snapshot
hash (I will come to how it is agreed later).
A transaction is a change in the state, which can be thought of as a transition
from one snapshot to another. Only two transitions are legal.
First, creation of a new coin. This manifests itself by a new coin record appearing, assigning the coin to some purse.
Second, movement of a coin from one purse to another. This is simply a change
to the appropriate coin record.
A transaction is recorded in the transaction log by appending the snapshot
hash of the new snapshot (and remembering the corresponding state, so it can
(via Epeus' epigone)