The Original Bitcoin

While there are earlier projects which feature some of the same technologies, we feel that the appropriate place to start this story is with Bitcoin.

Bitcoin was developed in 2008 as a distributed public ledger. Bitcoin’s main innovation was the “proof-of-work” function to generate new nodes in a Merkle tree, which allowed for a distributed consensus on what the “new” block would be – via random lotteries for the new block.

The mechanism behind Bitcoin is to trace each transaction back to an original lottery of coins “mined” as a reward for performing the proof-of-work to public a given block. Blocks pass from user to user when the current owner posts a script which later has its solution posted by the new owner. More correctly, the path from an original lottery is extended when the solution to the current script is posted and a new script uploaded.

This may surprised most people, who expect Bitcoin to resemble a traditional bank ledger – which rather than origin of dollars, tracks balances of accounts.

Bitcoin replicates this account-to-account functionality with the usage of cryptography to generate transaction scripts, based around public key cryptography: a “wallet” is defined by a private key (used to spend the money) and a public key hash (used to post challenge scripts for that secret). However, because each transaction is defined by a script, Bitcoin can replicate functionality beyond just a payment ledger. The most common example is escrow transactions.

Originally, Bitcoin supported scritping closer to Ethereum “smart contracts”, but these features were removed early in Bitcoin’s history. Ostensibly for security.

In the time since the original rise of Bitcoin, a number of follow-on projects have been released – based on the same concepts, but varying features: proof-of-stake rather than proof-of-work; different scripting languages; smart contract support; better anonymity; etc. Many of these have grown into popular coins in their own right, such as Ethereum which has support for “smart contracts”.

Coin vs Token vs Deed

To understand the modern crypto-currency environment, we need to understand three concepts: coins, tokens, and deeds.

As we read above, Bitcoin (and other cryptocurrencies) are actually a series of scripts that are run – that is, every cryptocurrency is a smart contract system, even if the only contracts that it processes are related to some form of coin. And that’s what defines a “coin”: the default token used by a cryptocurrency to reward its miners for maintaining the ledger and processing the scripts.

A “token” in the generic sense is when a contract uploaded to a cryptocurrency ledger creates a secondary token tracked on that ledger, in addition to the underlying coin. These are processed within smart contracts the same as coins – a number of tokens may be accessed by providing a solution to a script, typically the solution to a cryptographic problem (such as proving your private key). This is frequently called the “signature” on a transaction.

A “deed” or a “non-fungible token” is when a token corresponds to a particular deeded right. These can be uploaded to cryptocurrencies which support smart contracts (eg, Ethereum), and are substantially the same as tokens – except that each is unique, and corresponds to a particular deed.

Survey of Standards

There are a number of cryptocurrencies and associated standards for coins, tokens, and deeds. Here wer list major standards, by cryptocurrency.

Ethereum

Ethereum is a popular cryptocurrency, second to Bitcoin.

EIP 20 - Token Standard

This EIP defines the original standard for tokens on the Ethereum blockchain, though these have largely been surplanted by EIP-1155. This was one of the first attempts to standardized the interface for smart contracts implementing tokens, allowing for wallet software that could interact with many kinds of tokens through a standard API.

The simple summary states:

A standard interface for tokens.

Read the EIP here.

EIP 721

This EIP defines the original standard for deeds on the Ethereum blockchain, though these have largely been surplanted by EIP-1155. This was one of the first attempts to extend the idea of tokens into unique deeds, allowing for wallets to interact with many kinds of deeds through a standard API.

The simple summary states:

A standard interface for non-fungible tokens, also known as deeds.

Read the EIP here.

EIP 1155

The simple summary states:

A standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens or other configurations (e.g. semi-fungible tokens).

Read the EIP here.