The term “Colored Coins” loosely describes a class of methods for signifying and managing real world assets on top of the Bitcoin Blockchain.
While originally designed to be a currency, Bitcoin’s scripting language permits to store puny amounts of metadata on the blockchain, which can be used to represent asset manipulation instructions. For example, we can encode in a Bitcoin transaction that one hundred units of a fresh asset were issued and are now credited to a given bitcoin address. A colored coins wallet can create a Bitcoin transaction that encodes sending fifty units of an asset from one address to a fresh address, and so on.
Real world Value is affixed to those units (or “digital tokens”) by the asset issuer’s promise to redeem them for some goods or services. For example, a one hundred seat movie theater can issue one hundred units of a “observe movie X at time Y” asset and promise to redeem each unit for a right to come in a certain screening of a movie.
The advantage of using Bitcoin’s blockchain as the backbone leverages Bitcoin’s strengths, such as immutability, non-counterfeitability, ease of transfer, robustness and transparency thus permitting asset manipulation with unprecedented security and ease.
In principle one can represent asset manipulation data on other blockchains (e.g. Litecoin). The term “Colored Coins” is usually associated with implementations that
Note that the term Colored Coins stuck from older implementations such as the EPOBC protocol where an asset was actually associated with satoshis (thus “coloring” them). Other implementations use other ways to encode assets on the blockchain, mostly using the OP_RETURN scripting code, so it is no longer the only case that individual satoshis are “colored”.
There are many interesting applications to colored coin.
A company can issue shares using colored coins, taking advantage of the Bitcoin infrastructure for activities such as
Suppose there is a car rental company. The company can release one colored coin to represent each car, and then configure the car to turn on only if it receives a message signed with the private key that presently wields the colored coin. It can then release a smartphone app that anyone can use to broadcast a message signed with their private key, and put up the colored coins on a trading platform. Anyone will be able to then purchase a colored coin, use the car for whatever period of time using the smartphone app as a “car key”, and sell the coin again at their leisure.
A company may wish to issue coupons, such as Air Miles prizes points
A community. e.g. a town, can issue it’s own Currency.
Decentralized management of digital assets. Just like art collectors buy and sell original copies of famous paintings for millions of dollars today, colored coins permit us to do the same with purely digital objects, such as songs, movies, e-books and software, as well, by storing the current ownership of the work as a colored coin on the blockchain.
Access and Subscription
Using colored coins to trade and manage access and subscription services. For example, a museum, a subway or an online service like Netflix may issue passes as colored coins and release a smartphone app that can be used to make a signature proving ownership of a pass in person, permitting these passes to be at the same time transferable, fully digital and securely uncopyable.
Using the power of Bitcoin Blockchain technology for fresh use-cases other than currency
- The next generation of bitcoin developments
- Utilizing the power of Bitcoin Blockchain for fresh use-cases other than currency and extending its plasticity
- Broader range of digital transactions
- A accomplish multi asset economy
Open Assets Block Explorer
Colu’s ColoredCoins.org Block Explorer
ColoredCoins.org offers a public search engine for digital assets, all open source based on the Colu Coloredcoins implementation
The EPOBC protocol
EPOBC is the very first Coloredcoins implementation which was created By ChromaWay. EPOBC doesn’t use op_return to store metadata on the blockchain
Types of transactions
EPOBC introduces two types of transactions: • genesis transactions create fresh colored coins (of a fresh color); they are used for issuance • transfer transactions transfers existing colored coins If colored coins are used as inputs in a transaction which isn’t a transfer transaction, their value is lost, it is not transferred to outputs of this or other transaction. Also the value of colored coins might be lost in a malformed transaction.
EPOBC-encoded colored coin transactions are marked in a special way to distinguish them from normal Bitcoin transactions. This is done by putting a certain tag value into a nSequence field of transaction’s very first input. nSequence is always present, but is otherwise unused, which means that this way of marking has zero overhead (unlike OP_RETURN-based which increases the size of the transaction). nSequence is a 32-bit integer, and six of its least-significant bits encode the tag. Transfer transactions and genesis transactions have different tags: • bit sequence one hundred ten thousand eleven is a tag of a transfer transaction. Its hexadecimal value is 0x33. • bit sequence one hundred thousand one hundred one is a tag of a genesis transaction. Its hexadecimal value is 0x25. Code which distinguishes transfer and genesis transaction:
tag = tag_nSequence & 0x3F if tag == 0x25:
Further treatment depends on transaction type. However, both transfer and genesis transactions have padding. EPOBC is the very first Coloredcoins protocol to have support for lean SPV clients.
Current projects/companies which are leveraging EPOBC
- ChromaWallet Desktop Coloredcoins wallet
- Cuber Mobile and Android wallets backed by LHV bank in Estonia
- LHV Issued one hundred 000 EUR worth of cryptographically protected claims against bank into bitcoin blockchain
- Funderbeaminnovators launch syndicated startup investment market
- a prototype open-source Coloredcoins webwallet
Open Assets is a Colored Coin implementation based on the OP_RETURN operator. Metadata is linked from the Blockchain and stored on the web.
Example of an Open Assets OP_RETURN marker output
This example illustrates how a marker output is decoded. Assuming the marker output is output 1:
Current projects leveraging Open Assets
- Coinprism colored coins web wallet
- Coinprism colored coins Android app
- Reference implementation on GitHub
- Colorcore: Open source wallet for Open Assets
- Coinprism.info colored coins blockchain explorer
- Coinprism Assets directory
- openassets Python library
- .NET Bitcoin library NBitcoin
Colu Colored Coins Implementation
A fresh Colored Coins implementation was developed by Colu and fully open sourced on June 2015. The fresh implementation is based on fastening data to transactions using the OP_RETURN field. Colu’s coloring scheme uses high data compression, can associate unlimited amounts of metadata with bitcoin transactions through the use of publicly available torrent files and supports wise contract functionalities.
Smarts Contracts capabilities
A Rule Engine for issuing digital assets with various capabilities: expiration dates, restricted access, extra fees (supporting affiliate marketing), limitations on further issuance, etc.
Using Torrents for Metadata storage
Metadata is stored in publicly available torrent files, only a reference is stored directly on the blockchain. This permits for
- Maximal Decentralization
- Unlimited Size – Since metadata is not stored directly on the blockchain it’s size is unlimited and can contain information like: track record, history, description, validity or any information the issuer finds relevant.
Supple metadata treating
Adding metadata on every transaction, supporting the addition of relevant metadata that was not yet available during issuance (e.g. mentioning a specific seat number on a movie theater token).
Coherent Issuance Policy
Enforcing a coherent issuance policy by supporting two types of assets, locked and unlocked.
- Locked Assets – A motionless amount is defined during issuance. No one can issue more units of the asset, not even the issuer.
- Unlocked Assets – The issuer can keep issuing more units.
Support for skinny (SPV) wallets
The fresh colu implementation supports SPV clients – knots that can ***verify colored transactions*** without running a total Bitcoin knot.
Efficiency and Low Cost
- Data compression – high level of data compression using a precision encoding scheme for encoding asset issuance and transfer amounts.
- Sending Numerous Assets in Single Transaction
- Minimal Blockchain Bloat
Support for Zero Confirmations
The fresh architecture supports asset issuance and transfer in zero confirmations (even within the same transaction) – the Asset ID references only the very first UTXO in the transaction and makes no reference to a block.