El potencial de los Tokens con la tecnología Blockchain

Ene 15 2020

Por Sergio González-Miranda

A la hora de diseñar soluciones que aprovechan el amplio potencial del Blockchain, es sumamente importante conocer las alternativas con las que contamos para modelar activos.  

Este artículo persigue el objetivo de aclarar los conceptos alrededor de los tokens en Blockchain, y para ello, presentaremos nociones de negocio y algunas referencias técnicas. Realizaremos un recorrido por los modelos de los cuales disponemos para representar bienes en Blockchain, y contextualizaremos el funcionamiento de los tokens dentro de esta tecnología discruptiva..  

  

¿Qué es un token? 

Cuando comenzamos a considerar utilizar la tecnología Blockchain, a menudo y de forma directa, asimilamos sus capacidades con la inmutabilidad de la información o copias distribuidas de la información entre múltiples ordenadores. Sin embargo, dejamos de lado el enorme potencial que nos ofrece la tokenización.  

Para entender cómo sacar provecho a esta interesante capacidad de Blockchain, es fundamental entender qué es un token.  

En términos generales, cuando hablamos de token - en cualquier entorno más allá de Blockchain-, estamos hablando de un concepto asociado a una “ficha” o “título de propiedad”, que se genera o se fabrica para atender un propósito concreto. “Fichas” o “representaciones” que no necesariamente tienen un valor intrínseco o significativo, es decir, su valor no está definido por lo que son ellas mismas sino por lo que representan (por ejemplo: diez viajes en el metro, una entrada a un concierto, un billete de avión, etc.). Esto provoca que, en la práctica, su gestión sea limitada y esté restringida a dominios determinados, tales como ubicaciones, compañías, o servicios concretos. Estas fichas o tokens que podemos denominar “tradicionales” no pueden intercambiarse ya que típicamente tienen una función concreta (por ejemplo, permitir el acceso al metro, acceder al recinto de un concierto, embarcar en un avión, etc.). Los tokens tradicionalmente basan su potencial en estas características, pero al mismo tiempo éstas representan limitaciones. 

 

¿Qué es la tokenización? 

Con la llegada de Blockchain tenemos en una sola tecnología una serie de capacidades que nos permiten, entre otros aspectos, tener garantías de que la información que guardamos en ella permanece inalterable. Todas aquellas interacciones que realicemos con la información nos permitirán eventualmente generar una cadena de trazabilidad. Además, la información se guarda en copias distribuidas alojadas en distintos repositorios y estas copias no las controla una sola entidad. Por otra parte, tenemos la capacidad de verificar la información guardada en la red, a través de aplicaciones descentralizadas y otros mecanismos para definir niveles de privacidad y control de acceso a los datos guardados. Gracias a las capacidades de la tokenización podemos modelar de forma digital cualquier activo o bien -sea físico o virtual. Con la capacidad de automatización apoyada por contratos inteligentes llamados Smart Contracts (que son pequeños programas que ejecutan condiciones del estilo “si pasa X, entonces realiza Y”) podemos representar y operar con los tokens dentro de Blockchain, programando su comportamiento.  

 

Blockchain nació como respuesta a la necesidad de crear dinero digital como el bitcoin. Posteriormente, han surgido nuevas plataformas como Ethereum las cuales, además de crear dinero digital, también nos permiten programar el comportamiento de ese dinero digital. 

Para acabar de entender este concepto, podemos realizar un ejemplo tomando lo que podría considerarse un token tradicional: un billete de cien euros. Este billete de cien euros puede tokenizarse en Blockchain y podemos programar su comportamiento. De esta forma, se podría definir un titular inicial y autorizar su utilización solamente en servicios determinados. Le podría dar este billete a una niña de cinco años y autorizaría a que solamente fuese utilizado para comprar juguetes infantiles, impidiendo por ejemplo su uso en la compra de bebidas u otros productos.  

El éxito de este dinero digital programable inspiró a representar otras cosas en Blockchain, desde mercancías hasta procesos de negocio. Imaginemos lo que podríamos hacer si tokenizamos las partidas de presupuesto de una compañía; podríamos garantizar que los presupuestos se cumplen en tiempo y forma con total trazabilidad, transparencia y auditabilidad.  

Como podemos ver, el concepto de token, gracias a su utilización en Blockchain, se vuelve más rico dado que se minimizan o eliminan las típicas restricciones inherentes a los tokens tradicionales.  Los tokens en Blockchain se utilizan para atender múltiples propósitos y pueden ser intercambiados unos por otros o por algún tipo de moneda.  

No obstante, si bien es cierto que prácticamente todo es susceptible de ser tokenizado y de ser representando en Blockchain, -como la energía, el dinero, el aire, derechos de acceso, etc.- no es recomendable recurrir a esta tendencia de tokenizar todo solo por tokenizar. Si representamos algo en Blockchain debemos hacerlo porque en algún momento ese token se tendrá que utilizar en algún proceso de lógica de negocio (comprar un helado, emitir un voto). Asimismo, es importante tokenizar, con el fin de reutilizar esos tokens, dado que de poco sirve tokenizar algo que al poco tiempo se va a destokenizar. De poco sirve que tokenizemos, por ejemplo, la identidad de una persona si después de utilizarla para un trámite, esa persona no podrá reutilizarla para hacer otros trámites con otras entidades. Por ello, es fundamental conocer las alternativas de las que disponemos para modelar cosas, ya que esto nos permitirá diseñar y desarrollar soluciones que aprovechen el potencial del Blockchain y aporten verdadero valor a las relaciones de negocio actuales.  

Llegados a este punto, podemos ver cómo se crean los tokens. A muy alto nivel, todo inicia a partir de un contrato inteligente o Smart Contract. Un contrato inteligente que es un trozo de código en un lenguaje de programación que define el token y su comportamiento ante distintos eventos. Este contrato se compila y se despliega en una red Blockchain. El despliegue se hace mediante una transacción Blockchain, es decir, una invocación a la red que tiene un coste. Ese coste, dependiendo del tipo de red Blockchain en cuestión será en Criptomoneda o Gas*, o un coste meramente simbólico. Esto permite que los tokens se generen y operen dentro de la red y como resultado podremos mantener una trazabilidad de sus distintos estados. 

  

¿De qué recursos disponemos para generar tokens? 

  

Podemos programar los Smart Contracts que generan tokens de forma “artesanal”, tomando como base alguna plantilla y caracterizándola a nuestra manera. Sin embargo, por consideraciones de seguridad y eficiencia, es recomendable hacer uso de recursos ofrecidos por plataformas tales como Truffle y Open Zepelin. A través de estas plataformas podemos implementar patrones de diseños seguros en nuestros contratos inteligentes, de manera que sean más eficientes y, sobre todo, auditables y seguros. Con estos patrones reduciremos grandemente las posibilidades de cometer errores o incorporar lógica maliciosa en los contratos. Además, es posible aprovechar estándares y propuestas que se focalizan en dar interoperabilidad, eficiencia y compatibilidad en la implementación de tokens. De esta forma, si implementamos un token siguiendo un determinado estándar, además de dotarlo de robustez, existen grandes posibilidades de que el token pueda operar en otros sistemas que han seguido el mismo estándar, fomentando así, un modelo de colaboración y compatibilidad que hace más ricas y potentes las soluciones que desarrollamos.  

Comunidad Ethereum y ERC20 

La comunidad Ethereum es una comunidad de expertos Blockchain abierta, muy activa y numerosa, y en ella se proponen mejoras y nuevas ideas para avanzar en lo que es la explotación de la tecnología en todo su potencial. De ahí proviene el token más popular y utilizado hasta la fecha: el token ERC20. 

El estándar del token ERC20 fue presentado como propuesta en noviembre de 2015. La gran mayoría de los tokens se basan en el estándar ERC20, sobre todo, para temas de financiación de ideas, a través de las denominadas ICO’S (mecanismo de financiación participativa tipo crowdfunding, pero sobre Blockchain). ERC20 surgió inicialmente como un Ethereum Request for Comments, de ahí viene E – R – C y el número 20 proviene del orden en el que fue presentado y, aunque luego se transformó en un EIP, Ethereum Improvement Proposal, se sigue conociendo como ERC20. Hay que tener en cuenta que estos estándares evolucionan continuamente en forma de propuestas de mejoras, realizadas a través de las contribuciones técnicas de la comunidad.  

Los tokens ERC20 sirven para representar y gestionar tokens del tipo fungible, es decir, tokens que se pueden intercambiar con otros tokens de su mismo tipo ya que comparten propiedades comunes y que pueden ser divisibles. Un token fungible es una moneda, en su versión física o versión digital. Si pagamos un servicio con un billete da igual si para ello usamos un billete de diez euros que tengamos en el bolsillo, o si usamos un billete que tengamos en el bolso, o incluso si utilizamos diez monedas de un euro para pagar por ese servicio; su valor en este contexto será el mismo. El estándar ERC20 define, además, una interfaz común para poder interactuar con los Smart Contracts que implementan estos tokens con una serie de funciones opcionales y obligatorias. Las funciones que obligatoriamente debe implementar un Smart Contract compatible con el token ERC20 abarcan las operaciones típicas que se realizan sobre este tipo de tokens y que permite interactuar con ellos de una forma normalizada, garantizando un comportamiento común en el ciclo de vida de sus transacciones.  

Para entenderlo mejor, citaremos un ejemplo práctico de un proyecto interno de gamificación desarrollado en atSistemas. Este proyecto está orientado a estimular y recompensar la productividad y la colaboración de nuestros compañeros. Para ello se ha creado un token basado en el estándar ERC20 para usarlo como moneda interna. Cada vez que uno de nuestros compañeros realiza una aportación significativa sobre alguna tarea, éste es recompensado con uno de esos tokens. Esta metodología se usa, por ejemplo, para premiar la participación en determinadas iniciativas internas en redes sociales o eventos deportivos. Posteriormente, la persona puede redimir esos tokens canjeándolos por premios.  

Estándares e iniciativas en el ecosistema Blockchain 

En el caso de los tokens ERC20, todos tienen una representación virtualmente idéntica. Estos tokens de gamificación valen igual entre todos y son divisibles. Si poseo diez tokens de gamificación puedo dividirlos para cambiarlos por un premio que vale dos tokens de gamificación, y me quedaré con los ocho restantes.  

  

  

  

No obstante, para atender casos en los que es preciso diferenciar cada token generado, existe el estándar ERC721 que se focaliza en tokens no fungibles. Los tokens no fungibles, como hemos mencionado anteriormente, son aquellos que representan algo único que no puede ser sustituido o intercambiado por otro, ni tampoco ser dividido. De esta forma un cuadro de Velázquez no puede ser sustituido por otro de Van Gogh, al menos de forma directa. Ambas son pinturas, pero en su contexto específico cada una tendrá un valor u otro, y no pueden ser divididas en partes.   

  

Un uso muy exitoso de este tipo de tokens es el de la representación de coleccionables. Ejemplos mundialmente conocidos de implementación de este tipo de tokens son cryptomonsters, cryptopants y cryptokit, entre otros. Este tipo de tokens tiene un presente y un futuro particularmente promisorio en lo que respecta a los videojuegos, dada la gran variedad de recursos o artefactos premium que pueden adquirirse y que son únicos (como pueden ser las hachas, espadas, etc.) Estos artefactos pueden comprarse y venderse a otros usuarios. 

  

Existen también iniciativas que se enfocan en hacer más eficiente el consumo de los recursos Blockchain para los estándares mencionados anteriormente. Por ejemplo, el estándar ERC721 contempla que, para crear cada token no fungible, es necesario crear un contrato distinto. Si nos focalizamos en un videojuego con miles de artefactos esto implicará desarrollar un número igual de Smart Contracts. Y si queremos comprar 20 artefactos tendremos que hacerlo por separado uno a uno, repercutiendo esto en igual número de transacciones a ejecutar sobre la red, con el consecuente coste de Gas por transacción. Al no ser una opción escalable en muchísimos aspectos, nos encontramos con la iniciativa ER1155 que promueve la ejecución de operaciones sobre tokens agrupados en bloque, lo cual repercute en optimización de costes de gas al reducir el número de transacciones necesarias. De igual forma, para paliar algunos aspectos no cubiertos en el estándar ERC20 (el de los tokens intercambiables, como el dinero digital), la iniciativa ER223 pretende evitar la pérdida accidental de tokens. Es decir, pretende brindar mecanismos de protección ante posibles envíos de tokens a una dirección o contrato equivocado. Si enviamos tokens particulares a un contrato que no está preparado para recibir este tipo de tokens, estos se quedarán “atrapados” en el contrato y no podremos recuperarlos. Para ello, esta iniciativa propone, entre otras cosas, la implementación de una función token fullback para dar la posibilidad de que el contrato receptor pueda rechazar esos tokens y ejecutar otras acciones antes de que éstos se queden bloqueados para siempre. La iniciativa ERC223 ha nacido con el propósito de dar respuesta a este gran problema que en el mercado de las criptomonedas ha producido la pérdida de miles y miles de euros en equivalencia. 

De forma similar, la iniciativa ERC827 permite incluir datos en las transacciones, los cuales tradicionalmente solo transfieren valor o tokens.  De esta forma, podremos de alguna manera encadenar ejecuciones en una sola transacción y, por ejemplo, tendremos la posibilidad de finalizar un proceso de compra validando – si tenemos suficiente dinero - el total de nuestra compra de acuerdo con el precio de cada uno de los artículos.  

Por último, otra de las iniciativas a destacar es la ERC621. Esta iniciativa permite dotar de flexibilidad a los creadores de tokens con respecto al número total de tokens disponibles y en circulación. Es decir, modifica lo que en el estándar ERC20 se conoce como el total supply. Y tiene funciones como increase supply y decrease supply.   

  

Identidad digital por medio de tokens 

Un tema de gran actualidad y que está generando grandes trabajos y contribuciones en la comunidad Blockchain, es la representación de identidades. Por medio de tokens podemos representar la identidad digital de personas, cosas u objetos digitales. Estas iniciativas se centran en la gestión de alegaciones y testimonios sobre la identidad de alguien o algo. En los proyectos que atSistemas desarrolla sobre identidad digital, se implementan los estándares ERC 725 y ERC 735 para establecer un triángulo de confianza basado en la aportación de atestados en distintos procesos de gestión de servicios, comenzando con el onbaording digital, hasta la baja del servicio, pasando por la actualización de documentación relacionada. Los estándares ERC 725 y ERC 735 son el binomio perfecto para gestionar identidades y sustentar su validez con ellos.  

  

Para entender su funcionamiento lo explicaremos a un nivel muy global; si un usuario se ha registrado en un servicio de una compañía (compañía A) y ha aportado la documentación requerida para comprobar su identidad, bien en modo presencial o digital, y el día de mañana éste desea contratar otros servicios con otras compañías (B y C), el usuario no tendrá que pasar por el mismo proceso de presentación de documentación X veces. Si las compañías B y C tienen considerado a la compañía A como entidad de confianza, entonces bastará con que el usuario solicite un testimonio a la compañía A sobre su identidad y presentarlo ante las compañías B y C para ser identificado. Estos estándares son muy robustos y además incluyen casos en los que los testimonios expiren o se revoquen. 

 

  

Conclusiones 

Los tokens en Blockchain nos permiten representar cualquier activo, bien, cosa o procedimiento. Uno de los usos más obvios es la representación de monedas digitales; podemos crear monedas digitales de la nada asignándoles nombres y dándoles la validez y usos correspondientes en una implementación Blockchain concreta. Podemos representar derechos de acceso y recursos compartidos, por ejemplo, espacio de almacenamiento, capacidad de procesamiento de un ordenador, etc. También podemos representar valores con valor intrínseco, como lo es el oro, un coche, energía, petróleo, etc. Este tipo de representaciones nos permitirá disponer de una trazabilidad completa del ciclo de vida de este tipo de bienes. También podemos representar acciones de una entidad legal, como puede ser una compañía o un gran corporativo, y hacer más eficientes y más transparentes los procesos de toma de decisiones en organizaciones, gestionando los votos y con ellos aplicar peso sobre los resultados realizando así votos ponderados para los accionistas.  

Un tema muy interesante y amplio a la vez, es que también podemos representar lo que se conoce como organizaciones descentralizadas y autónomas. Es decir, organizaciones donde se explota el potencial Blockchain y en las cuales las sedes se definen las reglas de operación y se codifican en Smart Contracts auditables. Estas organizaciones son controladas por sus accionistas sin la necesidad o influencia de ningún gobierno central.  

  

Existe una comunidad abierta y muy activa (Comunidad Ethereum Blockchain) que continuamente aporta ideas y mejoras en forma de estándares para garantizar que los tokens se compartan y operen de forma segura en Blockchain. En la actualidad, existen estándares para tokens intercambiables, no intercambiables, tokens de identidad, etc. Además, existen iniciativas interesantes para cubrir debilidades o vulnerabilidades de los estándares existentes. Cualquier persona con una buena y fundamentada idea puede contribuir en estos foros tecnológicos. 

Sergio González-Miranda


Comparte este artículo

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, dentro de nuestra Web de acuerdo a tus hábitos de navegación. Si continúas navegando, consideramos que aceptas expresamente su utilización. Puedes obtener más información de cómo gestionar y configurar las cookies en nuestra Política de Cookies.

×

Preferencias de Cookies


Cookies esenciales
Cookies funcionales
Cookies de análisis
Cookies de marketing