Las colored coins o monedas coloreadas son uno de los intentos de la comunidad de desarrolladores de criptomonedas para expandir la funcionalidad de Bitcoin, permitiendo crear tokens que sirvan para representar otras monedas o activos de interés sobre blockchain.
Las colored coins o monedas coloreadas son una de las primeras creaciones de la comunidad con el objeto de crear tokens sobre Bitcoin, con el fin de disfrutar de su enorme potencia, seguridad y alcance global.
Para lograr esto, las colored coins hacen uso de las capacidades de programación de Bitcoin, a través de Bitcoin Script. Básicamente, lo que hacen es crear una programación que identifica de forma única a los Bitcoin, al tiempo que asigna unas propiedades que representan a ese nuevo token o colored coin.
De esta forma cada transacción de una colored coin en el fondo es una transacción de Bitcoin, sólo que dentro de su script incluye instrucciones que únicamente los nodos y monederos adaptados a colored coins podrán entender. Al igual que ha ocurrido con los tokens ERC-20 de Ethereum, los cuales surgieron posteriormente, este tipo de operativa abrió las puertas para toda una nueva cantidad de funcionalidades.
Aunque hoy en día es un protocolo que apenas se utiliza, lo cierto es que inspiró la capacidad de crear otro tipo de activos sobre una red principal, algo que posteriormente Ethereum explotaría alcanzando a muchos más casos de uso.
Dicho esto, podemos definir a una colored coin de la siguiente manera:
Una colored coin es un token especial que funciona sobre la blockchain de Bitcoin. Un token en el que van definido una serie de instrucciones dentro de su Bitcoin Script que únicamente pueden ser comprendidos en su totalidad por nodos y monederos adaptados a ello. De esta forma, es posible crear un token completamente nuevo, con su propia contabilidad dentro de Bitcoin.
Origen de las Colored Coin
El origen de las colored coin parte de la necesidad de crear nuevos tokens y transferir activos en la cadena de bloques de Bitcoin. Con estos tokens es posible representar cualquier cosa en el mundo, desde acciones, materias primas, bienes raíces, monedas fiduciarias e incluso otras criptomonedas. Y como la necesidad es la madre de todas las creaciones, dicha necesidad llevó a que en marzo de 2012, Yoni Assia (el CEO de eToro), impulsada por la idea de MasterCoin, presentó la idea de “colored coin” en su blog personal.
La idea fue cuajando, y en foros como Bitcointalk la idea de las colored coin comenzó a tomar más forma e interés. Todo esto llevó a que el 4 de diciembre de 2012, Meni Rosenfeld creara un whitepaper explicando las colored coin. Era el primer trabajo formal de una colored coin, y aunque incompleto, capturó la atención de la comunidad.
Ya en 2013, nacía Colored Coin Protocol de Flavien Charlon, un protocolo que permitía crear colored coin usando para ello configuraciones específicas en las entradas y salidas de las transacciones. Este fue el primer protocolo de colored coin funcional sobre Bitcoin. Sin embargo, no fue sino hasta el 3 de julio de 2014 que se crea el protocolo EPOBC de la empresa ChromaWay. Este protocolo facilitaba enormemente el proceso de creación de colored coins a los desarrolladores interesados en dicha tecnología, y era uno de los primeros en usar la nueva función OP_RETURN de Bitcoin Script.
A este desarrollo le siguieron otros como el de Colored Coins que salió a la luz en 2015, entre otros que fueron tomando cada vez más relevancia en el mundo de Bitcoin. Y sobre todo, aquellos interesados en la potencial tokenización del mundo, y todo ello antes de que Ethereum tuviera su primera release pública.
¿Por qué se crearon las Colored Coin?
Ahora bien, con todo lo anterior seguramente te estarás preguntando ¿Por qué se crearon las colored coins? Pues bien, la principal razón por la que las colored coin fueron creadas es la de abrir las puertas al desarrollo de nuevas funcionalidades en Bitcoin. La capacidad de crear tokens que estén asociados a cosas del mundo real, y que estos estén respaldados por una red blockchain es una oportunidad única. La capacidad de crear una moneda, un bono tokenizado, o incluso integrar aplicaciones con Bitcoin para enviar microtransacciones u operaciones que queden registradas y resguardadas por blockchain es algo único.
Pero no solo eso, las colored coins y sus posibilidades fueron solo el punto de inicio de otras tecnologías más avanzadas, como el caso de los protocolos de segunda capa que vemos ahora, como el caso de RSK o Bisq. En pocas palabras, la inventiva de la comunidad llevó un paso adelante las posibilidades de Bitcoin y permitió explorar otras posibilidades.
Por ejemplo, era posible crear una colored coin sobre Bitcoin donde cada una de sus unidades fuera equivalente a un dólar o un euro. En efecto, esto es lo que conocemos como stablecoin, y en ese entonces (2014) era algo novedoso con muchas posibilidades y Bitcoin permitía explorar todo aquello. Por supuesto no era lo único posible, con las colored coin se podía representar cualquier cosa, en ese punto, la imaginación era el límite.
¿Cómo funcionan las Colored Coin?
Las colored coin tienen distintos mecanismos de funcionamiento dependiendo del protocolo o la forma en la que estén implementadas. Recuerda que un protocolo simplemente significa una forma de hacer las cosas.
La razón para esto es que en principio no existe en Bitcoin un método estándar para crear tokens directamente sobre su blockchain. Por esa razón, los desarrolladores de colored coin usaban algunos procesos más creativos para lograr su cometido, alguno de ellos bastante complejos, e incluso con potenciales riesgos.
Existen diferentes protocolos de crear Colored Coins, y la mayoría de ellos aprovechan actualmente el poder de la propiedad de Bitcoin Script llamada OP_RETURN. Pero OP_RETURN no ha existido siempre en Bitcoin.
Antes de la creación de OP_RETURN en 2014, las colored coins solían usar un esquema en el que las entradas y salidas de sus transacciones se elaboraban de una determinada forma. La forma en cómo se configuraban estas entradas y salidas creaban el equivalente a un “color”, una forma de identificar y diferenciar una transacción regular de Bitcoin, de su correspondiente colored coin.
Por ejemplo, en la primera versión de Colored Coin Protocol (CCP), la entrada 0 del índice de una transacción se marcaba con un “script de índice de colores” que identificaba a la operación. Este índice de colores, era luego usado para revisar las salidas superiores a 2 (la primera salida era considerada no gastable, y la segunda salida era la dirección de cambio) de esa transacción y por medio del script de la entrada 0, se realizaban las operaciones de colored coins correspondientes.
Como puedes ver es un sistema bastante complejo e incluso limitado. En primer lugar, CCP era incapaz de manejar de forma correcta secuencias de color no reconocidas en la red. Así por ejemplo, si una persona usaba una versión nueva del protocolo CCP, y realizaba una operación sobre una colored coin no reconocida en una versión anterior, los nodos antiguos invalidan la transacción por completo, incluso si varias de esas entradas fueron reconocidas de forma correcta. Esto llevaba a que el protocolo fuera especialmente susceptible a fork de red que afectan el funcionamiento de la colored coin.
Esta situación no afectaba directamente a Bitcoin porque para esta red y sus nodos, las operaciones que se realizaban eran válidas. Pero para la red de las colored coin que se ejecutaba sobre versiones modificadas de Bitcoin Core, las operaciones entre distintas versiones de su protocolo eran un verdadero caos.
La llegada de OP_RETURN
Con la llegada de OP_RETURN las cosas comienzan a cambiar con las colored coin. Con esta función era posible almacenar información en la blockchain de Bitcoin de forma estándar. Inicialmente solo era posible agregar 80 bytes de información en OP_RETURN, luego se redujo a 40 bytes, pero en la actualidad es posible almacenar un total de 83 bytes (desde Bitcoin Core 0.12) de información arbitraria en la transacción.
Podrá parecer poco espacio, pero 80 bytes es más que suficiente para crear nuevos protocolos de colored coins, dejando atrás muchas de las limitaciones que tenían hasta ese momento. En lugar de crear estructuras de colores en las entradas y salidas de las transacciones, era más sencillo incluir información de operaciones en la función OP_RETURN y que ésta fuera procesada por los nodos de la colored coin.
Básicamente lo que se hacía era inyectar instrucciones en la OP_RETURN para que los nodos de la colored coin tomarán las salidas de dicha transacción y las enviarán a sus destinatarios según las instrucciones otorgadas.
De esta forma, se mejoraba la capacidad de programación de las colored coin y al mismo tiempo, se permitía crear sistemas más estables y elaborados para su manejo.
La transacción génesis
Por supuesto lo anterior es simplemente los métodos para lograr que una colored coin funcione, pero en todo ello existe un punto básico que es compartido: la transacción génesis de la colored coin.
La transacción génesis sirve para emitir la totalidad de monedas que serán asignadas a dicha colored coin. Dicha transacción génesis tiene una serie de reglas específicas que deben seguir sus entradas y salidas.
En primer lugar, sus entradas deben considerar dos casos:
- Colored coin no reembolsables: en el caso de las colored coin no reembolsables, las entradas son irrelevantes; el emisor no tendrá ningún poder una vez que se emita la transacción, por lo que lo único que importa es la transacción en sí (específicamente, sus salidas).
- Colored coin reemisibles: en este caso, el emisor debe elegir una dirección segura como “dirección de emisión” y establecer la entrada 0 de la transacción para que provenga de esa dirección. Posteriormente, el emisor podrá emitir más unidades colored coin creando otra transacción de génesis con la misma dirección en la entrada 0.
Por su parte, de lado de las salidas de una transacción génesis estas consisten en un conjunto de salidas que envían las monedas de colores a sus propietarios originales, seguidas de una salida de datos OP_RETURN, junto a una o más salidas de «cambio» para enviar el exceso de bitcoins sin color al emisor.
En este punto, cada protocolo implementa su propio esquema de control y emisión de unidades de colored coins, pero en la práctica, estos dos puntos son universales para cada protocolo.
Los algoritmos de coloración
Los algoritmos de coloración o color kernel, son los mecanismos que permiten el funcionamiento de las colored coin de acuerdo a una serie de reglas predefinidas. De esta forma, los algoritmos de coloración son el corazón de los protocolos que hacen funcionar a las colored coin pues son estos los que hacen posible el funcionamiento de las colored coin entre diferentes monederos.
El primer color kernel que permitía transferir en la misma transacción monedas con distintos colores fue OBC (del inglés Order-Based Coloring). Luego aparecieron otros algoritmos como el TBC (del inglés Tagging-based Coloring), el POBC (del inglés Padded Order-based Coloring), el EPOBC (del inglés Enhanced, Padded, Order-Based Coloring). Además de otros más complejos como el SPOBC (del inglés Smart Property Order-Based Coloring) y el DHKEC (del inglés Diffie-Hellman Key Exchange Coloring).
Por supuesto cada uno de estos color kernel tiene sus ventajas, sus inconvenientes y sus propias posibles aplicaciones. Sin embargo, todos respetan algunas consideraciones básicas de funcionamiento que son:
- El balance de color de todas las entradas
- La posición de las salidas relativas a la entradas
- El tamaño relativo de las salidas
- Los detalles del script asociado a las salidas
- Información codificada en las cabeceras de la transacción. Por ejemplo usando el OP_CODE, OP_NSEQUENCE, o el OP_RETURN.
Pros y Contras de las Colored Coin
Ahora bien, como todo en el mundo de la tecnología, las colored coins tienen sus beneficios y riesgos.
Pros
- Posibilidad de ser usada para representar de forma tokenizada lo que se desee.
- Al estar ejecutándose sobre la blockchain de Bitcoin, gozan de la red blockchain más fuerte, segura, descentralizada del mundo, y con alcance global.
- Permiten crear sistemas de tokens intercambiables. Esta propiedad permite por ejemplo: crear exchanges descentralizados o realizar intercambios atómicos entre distintas colored coins.
Contras
- Altamente complejas de implementar y desarrollar. La aparición de los protocolos y otras herramientas para su desarrollo mejoró esta situación, pero aún así las colored coins son más complejas de crear que otras opciones como los tokens ERC-20 de Ethereum.
- Ejercen mayor presión sobre la blockchain. La creación de colored coins aumenta el tamaño de las transacciones y ello resiente la capacidad de la red para procesar transacciones. Todo esto lleva a una disminución en el número de transacciones que se pueden procesar, impulsa el costo de las comisiones de minería y aumenta dramáticamente el tamaño de la blockchain.
- Desincentiva a los mineros debido a las bajas comisiones de las colored coins. Esta es una situación que puede llevar a perder poder de cómputo a la red debido a las bajas ganancias de los mineros, que entonces preferirán minar para criptomonedas más rentables.
- El hecho de que algunas colored coins representen valores u otros tipos de activos relacionados con terceros representa un riesgo. El que un tercero represente los intereses por una colored coin lleva a que este pueda simplemente estafar a quienes participen en dicho sistema.
Casos de uso de las Colored Coins
Ahora bien conozcamos algunos casos que podemos darle a las colored coins:
- Sistemas de pagos e intercambio atómicos. Debido a que realmente las colored coins no son más que bitcoins que son tratados de forma específica de acuerdo al esquema de colores o script OP_RETURN indicado, es posible realizar operaciones atómicas o sistemas de pagos usando colored coins.
- Exchanges descentralizados (DEX). La capacidad de realizar intercambios atómicos con colored coins abre la posibilidad de representar con ellos otros tokens o monedas y realizar con ellos intercambios de forma rápida, segura y completamente descentralizada usando la blockchain de Bitcoin.
- Creación de coleccionables. Las colored coins son hasta cierto punto muy parecidas a los tokens no fungible, de hecho, cuando se realiza un pago con una colored coin, lo que realmente se hace es pasar la propiedad de ese token a la otra persona, tal como pasa con un token NFT (como el ERC-721 de Ethereum).
- Acceso y suscripción. Uso de colored coins para comerciar y gestionar servicios de acceso y suscripción. Por ejemplo, un museo, un metro o un servicio en línea como Netflix puede emitir pases como colored coins. Así, al lanzar una aplicación de teléfono inteligente, esta se puede usar para hacer que una firma criptográfica demuestre la propiedad de un pase en persona, permitiendo que estos pases sean simultáneamente transferibles, totalmente digitales y sin copia segura.
- Una empresa podría querer emitir acciones utilizando monedas de colores, aprovechando la infraestructura de Bitcoin para permitir que las personas mantengan la propiedad de las acciones y las acciones comerciales, e incluso le permitan votar y pagar dividendos sobre la cadena de bloques de Bitcoin.
- Una comunidad local por ejemplo podría desear crear una moneda comunitaria, utilizando la infraestructura de Bitcoin para almacenar fondos de forma segura.
Protocolos para crear Colored Coin
Ahora bien, toda la evolución del desarrollo sobre las colored coin llevó a la creación de distintos protocolos para su creación. Y es que el realizar este trabajo sobre protocolos establecidos no solo facilitaba su creación, sino también su mantenimiento y mejora. Fue así entonces cómo se crearon los siguientes protocolos:
CCP o Protocolo Open Assets
Conocido en 2013 como Colored Coins Protocols (CCP) y luego renombrado a Open Assets Protocol, este es un protocolo para crear colored coins. El proyecto fue uno de los más usados debido a la enorme cantidad de herramientas con las que disponía para esta tarea. De hecho, el protocolo tiene interfaces en lenguajes tan populares como Python, Objetive-C, Ruby o .NET de Microsoft, lo que facilita el desarrollo de herramientas usando dicho protocolo.
Adicionalmente, Open Assets Protocol soportaba mejoras como las de BIP-70 (un protocolo de pagos) y el BIP-21 (un esquema URI para facilitar pagos). En la actualidad el protocolo está abandonado, y su repositorio en GitHub no tiene ninguna actualización desde 2016.
Protocolo EPOBC de ChromaWay
Otro popular protocolo para crear colored coin es EPOBC de la empresa ChromaWay. El protocolo comenzó su desarrollo en 2014, cuando la empresa comenzó a comercializar colored coins. El proyecto fue iniciado por Alex Mizrahi, y desde entonces empezó a revolucionar la forma en cómo las colored coin podía crearse.
Protocolo Colored Coin de Colu
El protocolo Colored Coins de Colu, es otra de las formas bien conocidas para hacer tus propias colored coins. La implementación está escrita en JavaScript lo que facilita enormemente el proceso de creación de proyectos para manejar colored coins.
Colored Coins en la práctica
Crear un colored coin es gratis, cualquier persona puede hacerlo, y existen herramientas para hacerlo. Más abajo te mostramos las herramientas.
No obstante has de entender que, pese a que la acción de crearla es gratis, para realizarlas ha de crearse una transacción Bitcoin. Es decir, deberás pagar los fees de enviar una transacción Bitcoin.
Para realizar una transacción bastará con tener un monedero que soporte el mismo protocolo de colored coin utilizado.
Los colored coin funcionan sobre la red de Bitcoin, eso quiere decir que las direcciones son las mismas que Bitcoin. No has de crear direcciones especiales y cualquier dirección de Bitcoin puede recibir un colored coin.
Visualizar los colored coins que tiene una dirección dependerá de que tengas o no un monedero que lo soporte.
Posteriormente, cada vez que alguien quiera transferir unidades de ese colored coin a otra dirección Bitcoin, deberás realizar una transacción Bitcoin, pues el colored coin es la interpretación del valor OP_RETURN de una UTXO, la cual es transferida a la nueva dirección. Esto significa que deberás pagar el fee de transacción que la red Bitcoin pida.
¡Pero no solo eso! Dado que en Bitcoin, a diferencia de Ethereum, no puedes realizar una transacción donde no se envíe ninguna cantidad de Bitcoin, deberás enviar la cantidad mínima (cantidad dust), actualmente en 546 satoshis. Es decir, enviar un colored coin tiene un coste de minería y un “coste” de unos satoshis que deberás mandar al destino.
Como puedes comprobar, su mala usabilidad desencadenó la búsquedas de alternativas, haciendo que los smart contract de Ethereum resolvieran de forma más eficiente el caso de uso de tokens a través del estándar ERC-20: no requieren de añadir un mínimo, son más fácilmente programables y permiten programar escenarios más elaborados.
Ejemplos de Colored Coins
En la actualidad existen varias colored coins en desarrollo y uso activo, estos casos son Counterparty, OmniLayer, Bisq. Todos estos proyectos dependen del funcionamiento de Bitcoin para poder realizar sus operaciones, operaciones que son posibles por una carga de datos (coloración) en las transacciones de bitcoins.
Así por ejemplo, en Counterparty actualmente existen distintos proyectos que aprovechan la capacidad de coloración de Counterparty par emitir tokens sobre Bitcoin. Este es el caso de proyectos como Rare Pepe, un conjunto de memes que son bien conocidos en la comunidad Bitcoin. Gracias a esto, es posible crear, comprar y vender estos coleccionables sobre Bitcoin. De la misma forma podemos hablar de Spell of Genesis, otro proyecto que hace uso de Counterparty, e incluso, de la misma moneda de Counterparty, el token XCP.
OmniLayer, por su parte, es más conocido debido a que es el lugar de nacimiento de Tether, la stablecoin anclada al dólar que actualmente es pilar de las operaciones con este tipo de monedas. De hecho, en OmniLayer el Tether es conocido como el Asset 31, y todas las monedas que hagan uso de este tipo de Tether, en realidad realizan sus operaciones sobre Bitcoin haciendo uso de colored coins. De hecho, si revisas esta dirección 32TLn1WLcu8LtfvweLzYUYU6ubc2YV9eZs, verás que es una dirección de Bitcoin. Notarás que sin embargo, es una dirección que recibe bitcoins en cantidades muy pequeñas, algo curioso. Pero si usas el explorador de OmniLayer, la historia cambia dramáticamente pudiendo ver que son operaciones en Tether, con un valor bastante alto, algunas de hasta 220 millones de dólares.
Bisq por su parte, es un conocido exchange descentralizado que funciona en Bitcoin, y también es un proyecto que funciona gracias a las colored coins, de una forma muy parecida a OmniLayer.
Sin embargo, estos protocolos han cambiado mucho y no solo usan la capacidad de coloración para sus operaciones, también usan otros avances como los HTLC, DLC, CLTV o CSV para sus operaciones. Al final, esto los ha transformado en algo mucho más grande y ambicioso, que conocemos como protocolos de segunda capa.