Colored Coins
--
Por @g_carulla
A esta altura resulta algo normal que todos hablemos de los token no fungibles o NFT’s, ya que tras algunos años después desde sus primeras implementaciones han tenido un largo recorrido.
Sin embargo, algunos años antes de que los CryptoKitties o los Cryptopunks ocuparan las miradas de todo el mundo, se diseñó un protocolo que permite obtener las características propias de un token no fungible dentro de la red de Bitcoin.
El origen del desarrollo de esta idea surge, cerca del año 2012, de la intención de transferir archivos y crear nuevos tokens dentro de la red de Bitcoin para así poder representar activos como acciones, materias primas, monedas fiat, entre otras.
Poco tiempo después la idea de las colored coin fue tomando forma mediante diferentes fotos, para finalmente llegar a la presentación de su whitepaper en el año 2014.
La idea de creación de las Colored Coin fue la de poder abrir nuevas puertas para el desarrollo de Bitcoin, puesto que la capacidad de tokenizar activos de la vida real y que estos se encuentren debidamente respaldados por la tecnología que ofrece la red blockchain de Bitcoin, otorgando inclusive la posibilidad de integrar aplicaciones con esta red.
Al mismo tiempo la idea de poder integrar nuevas funcionalidades a la plataforma de Bitcoin fue el impulso para el posterior desarrollo de tecnologías más avanzadas , como lo son los casos de protocolos de segunda capa como por ejemplo RSK.
Entre otras cosas esta nueva funcionalidad permitió explorar la posibilidad de que una Colored Coin pudiera ser equivalente a un dólar o un euro, algo muy novedoso en ese momento, además abrió la posibilidad a nuevas inventivas ya que solo fue un punto de arranque.
Para su funcionamiento las Colored Coin tienen diversos mecanismos de funcionamiento que dependerá, en definitiva, del protocolo en el cual estén implementadas, esto se debía a que, por su estructura, la red de Bitcoin no dispone de un medio para la creación de tokens. Es por esto que los desarrolladores de las Colored Coin debieron de recurrir a medios alternativos para lograr su cometido, aunque en varios casos con potenciales riesgos.
En una de las primeras versiones de Colored Coin, la entrada inicial de una transacción se marcaba con un “script” de índice de colores que permitirá identificar a la operación. Este mismo índice, era posteriormente utilizado para revisar las salidas superiores (la primera se reputaba como “no gastable”) y por medio de ese “script” se realizaban las operaciones de las Colored Coins.
Previo a esto solía usarse otro esquema en el que las entradas y las salidas en las transacciones se elaboraban de una forma en particular. Esta forma de configurarlas creaba un equivalente a un “color” permitiendo en forma sencilla la posibilidad de identificar y diferenciar una transacción regular de Bitcoin.
Sin embargo, si por ejemplo, una persona utilizaba una versión no actualizada o no reconocida, los nodos antiguos invalidará la transacción, esto conlleva a que el protocolo fuera susceptible de vulnerabilidades que podrían afectar su funcionamiento. Esto, si bien, no afectaba a la red de Bitcoin, por sus nodos validadores consideraban válidas las transacciones, no permitía la escalabilidad del protocolo de las Colored Coin.
Afortunadamente para este protocolo las cosas comenzaron a cambiar con la llegada de un nuevo script, con la que fue posible almacenar información en la blockchain de Bitcoin de forma estandarizada, inicialmente solo fue posible agregar poco espacio aunque este fue más que suficiente para la finalidad del protocolo de Colored Coin, dejando atrás limitaciones que poseía.
Así se permitió crear sistemas mejor elaborados y con mayor estabilidad, mejorando la capacidad de programación de las Colored Coin. El punto básico que permitió esto fue la transacción génesis, está sirvió para emitir la totalidad de las monedas que sería asignadas a una Colored Coin en particular. La misma tiene una serie de mecanismos y reglas puntuales que se deben cumplir en las entradas y salidas.
Para esto deben ser tenido en cuenta dos puntos:
- Sin reembolso: Cuando las Colored Coin no pueden ser reembolsadas las entradas de la misma no son relevantes, dado que el emisor no tendrá poder una vez emitida la transacción, por tanto lo importante allí es la transacción en sí misma (puntualmente sus salidas).
- Reembolsables: En estos casos el emisor debe de elegir una dirección de emisión y establecer en ella la entrada “0” de la transacción para que provenga de esa dirección. Luego el emisor puede emitir otras unidades Colored Coin creando una nueva transacción de génesis con el mismo “0” como dirección de entrada.
En tanto que las salidas de una transacción génesis consisten en un conjunto de salidas que envían las Colored Coin a sus propietarios originales, seguidas de una salida de datos.
Por su parte los algoritmos de coloración, son los mecanismos que permiten el funcionamiento de una serie de reglas predefinidas. Así, estos algoritmos son el corazón de los protocolos que hacen funcionar al mismo entre diferentes monederos.
El primero que permitía transferir en la misma transacción monedas con distintos colores fue OBC “Order-Based Coloring”. Luego aparecieron otros algoritmos como el TBC “Tagging-based Coloring”, el POBC “Padded Order-based Coloring”, el EPOBC “Enhanced, Padded, Order-Based Coloring”. Cada uno de estos 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.
Es importante destacar que si bien crear una Colored Coin es gratis y cualquier persona podría crearlo, para hacerlo ha de crearse una transacción en Bitcoin, es decir deberemos de abonar los fees para enviar esa transacción, debiendo tener, en consecuencia, una “wallet” que soporte el protocolo de Colored Coin escogido.
Esto se debe a que si las Colored Coin funcionan sobre la red de Bitcoin, no implica que las direcciones sean las mismas, se requiere crear direcciones especiales y no todas las address podrán recibir una Colored Coin.
A esto debemos considerar que (a diferencia de otras block chains como Ethereum) no pueden realizarse transacciones donde no se envía ninguna cantidad de bitcoins, debiendo enviarse un mínimo de satoshis, teniendo por tanto su costo de minería que deberá enviarse.
Todos estos problemas de usabilidad desembocó en la búsqueda de nuevas alternativas lo que llevó a la estandarización de los smart contracts de Ethereum que resolvió mediante los ERC-20, que no requieren añadir un mínimo, son más fácilmente programables y permiten programar escenarios más elaborados.
Probablemente esas razones hayan sido las que impulsaron el desarrollo de NFTs dentro del protocolo Ethereum y que en la actualidad se encuentra en el foco de esta tecnología.