process to register "george" for themselves as well and impersonate them. The only
solution is a first-to-file paradigm, where the first registerer succeeds and the second
fails - a problem perfectly suited for the Bitcoin consensus protocol. Namecoin is the
oldest, and most successful, implementation of a name registration system using such
an idea.
Colored coins - the purpose of colored coins ↗ is to serve as a protocol to allow
people to create their own digital currencies - or, in the important trivial case of a
currency with one unit, digital tokens, on the Bitcoin blockchain. In the colored coins
protocol, one "issues" a new currency by publicly assigning a color to a specific Bitcoin
UTXO, and the protocol recursively defines the color of other UTXO to be the same as
the color of the inputs that the transaction creating them spent (some special rules
apply in the case of mixed-color inputs). This allows users to maintain wallets
containing only UTXO of a specific color and send them around much like regular
bitcoins, backtracking through the blockchain to determine the color of any UTXO that
they receive.
Metacoins - the idea behind a metacoin is to have a protocol that lives on top of
Bitcoin, using Bitcoin transactions to store metacoin transactions but having a different
state transition function, APPLY' . Because the metacoin protocol cannot prevent
invalid metacoin transactions from appearing in the Bitcoin blockchain, a rule is added
that if APPLY'(S,TX) returns an error, the protocol defaults to APPLY'(S,TX) = S .
This provides an easy mechanism for creating an arbitrary cryptocurrency protocol,
potentially with advanced features that cannot be implemented inside of Bitcoin itself,
but with a very low development cost since the complexities of mining and networking
are already handled by the Bitcoin protocol. Metacoins have been used to implement
some classes of financial contracts, name registration and decentralized exchange.
Thus, in general, there are two approaches toward building a consensus protocol: building
an independent network, and building a protocol on top of Bitcoin. The former approach,
while reasonably successful in the case of applications like Namecoin, is difficult to
implement; each individual implementation needs to bootstrap an independent blockchain,
as well as building and testing all of the necessary state transition and networking code.
Additionally, we predict that the set of applications for decentralized consensus
technology will follow a power law distribution where the vast majority of applications
would be too small to warrant their own blockchain, and we note that there exist large
classes of decentralized applications, particularly decentralized autonomous
organizations, that need to interact with each other.