Los NFT son una herramienta moderna que surge a partir de todo el movimiento y creación de la tecnología blockchain. Para que podamos entender todo el panorama bajo el cual se utilizan los NFT, primero tenemos que definir qué es un NFT.
¿Qué es un NFT?
Un NFT, como sus siglas en inglés lo indican, es un Non-Fungible Token. Esto significa que es un token o criptomoneda que representa el valor único de algo, donde ese algo puede ser cualquier cosa que actualmente conocemos en el mundo. Una de las abstracciones más utilizadas para explicar los NFT es el arte; un NFT se puede considerar una obra de arte que no puede ser replicada: solo existe una original, con valor único y características únicas. Llevando el concepto a la tecnología blockchain, un NFT es un valor único que no puede ser cambiado o reemplazado por algo más dentro de la cadena de bloques.
¿Cuáles son los usos actuales de un NFT?
Recordemos el uso de los centenarios, que son las monedas que se acuñan en diferentes metales de X o Y valor. Estos solían ser comprados para guardarlos como inversión, para posteriormente venderlos por más valor del que se habían comprado dependiendo de la demanda. Actualmente, los NFTs se generan justo para el mismo uso.
En la actualidad existen diversas redes o blockchain dedicados a ciertos mercados, ya sean redes de coleccionistas o Marketplace, que no son más que aplicaciones descentralizadas (dApps) que corren sobre internet.
Los NFTs, como se mencionó anteriormente, generan redes de intercambio, compra o venta de la misma clase de artículos. Por ejemplo, con la creación del arte digital, existen diferentes dApps que tienen la funcionalidad de vender y/o comprar y/o intercambiar contenido digital como imágenes. Éstas se aseguran ser originales y únicas, lo que permite que su valor vaya creciendo, por lo que muchas personas lo han tomado como una forma de inversión.
Otros usos actuales de los NFT incluyen: dar validez a los derechos de autor, representar a una persona como único dueño de bienes raíces virtuales y como llave de seguridad. Además, entre algunas aplicaciones famosas que utilizan NFT encontramos: CryptoKitties, Decentraland, Ether Legends, RareBits y OpenSea.
¿Hacia dónde va el uso de NFTs o qué se espera de ellos en un futuro?
En este momento, el futuro de los NFT no está muy claro y el uso que se les da es solo para elementos digitales. No obstante, muchos especialistas apuestan por un uso más extensivo de estos Non-Fungible Tokens. Existe la posibilidad de que sean utilizados en círculos mucho más amplios y que en este momento no podríamos quizás imaginar.
Un uso por el cual se está decantando a los NFT es su función como documentos de propiedad. No solo de bienes raíces digitales y/o físicos, si no de cualquier cosa, e incluso como identificación oficial que avale a una persona como ser humano existente (para evitar fraudes y robo de identidad).
Se ha mencionado también que pueden ser utilizados como ficha de acceso a universidades y certificar si se cumple con algún nivel escolarizado. En otro ámbito en donde también se ha pensado utilizar NFT es en el mercado de la venta de experiencias (agencias de viaje, vuelos etc.). Aquí la idea sería intercambiar los NFT Tickets con las personas sin necesidad de tercerizar el servicio con aerolíneas, agencias de viajes y demás.
En perspectivas más progresistas, los NFTs pueden llegar a ser parte de la economía en los mundos virtuales, realidades virtuales o inmersivas, apoyados por el nuevo concepto de la existencia de un metaverso.
Pero, ¿cómo crear NFTs?
Para generar NFTs, se requiere un conocimiento básico de programación orientada a objetos y manejo de lenguajes como Solidity, JavaScript (para la creación de las dApps), conocimiento de cómo funciona el blockchain y por supuesto el estándar ERC-271. Brevemente tocaremos cada uno de estos conceptos y definiciones a continuación.
- Solidity es el lenguaje especifico que se utiliza para codificar Smart Contracts. Éstos son programas simples que se almacenan en el blockchain y son ejecutados cuando se cumplen ciertas condiciones, normalmente definidas en éstos.
- JavaScript, junto con herramientas como HTML, CSS y otros Frameworks, nos ayuda a desarrollar la parte gráfica de nuestro sitio que se estará conectando al blockchain donde se encuentra nuestro Smart Contract. Estas aplicaciones web se llaman dApps.
- dApps es la abreviación para ‘Descentrilized Applications’, que como su nombre en inglés lo indica, son aplicaciones que pueden acceder a cualquier parte del blockchain sin necesidad de vivir en un servidor con un backend que los soporte; el backend para nuestras dApps será el Smart Contract.
- El standard ERC721 es una serie de interfaces desarrolladas en Solidity, utilizadas como plantillas con las que cualquier desarrollador que desee crear NFTs debe cumplir. Estas interfaces definen métodos de acción como los siguientes: minado, transferencia de token, consulta de tokens, consulta de los dueños de los tokens, validación y aprobación de token, etc.; siendo éstos las funcionalidades con las que va a trabajar nuestro Smart Contract.
Las siguientes son algunas herramientas necesarias para poder levantar un ambiente de pruebas local y empezar a desarrollar nuestros propios NFTs:
- Una wallet en MetaMask para poder conectarnos a diferentes redes blockchain, incluso la que levantemos localmente.
- Instalar Ganache de Truffle, que es una simulación de blockchain de Ethreum, que cuenta con una interfaz gráfica que nos permite consultar los bloques que vayamos generando, así como ver su meta data.
- Truffle es un cliente de línea de comandos que nos permite compilar, desplegar y ejecutar los métodos que creamos en nuestro Smart Contract. Se conecta directamente al blockchain a través de la configuración que le indiquemos.
- Podemos ocupar cualquier IDE que soporte Solidity como lenguaje de programación. Entre los más populares tenemos a IntelliJ IDEA y Visual Code Studio, con su instalación del plugin de Solidity correspondiente.
Con todas estas herramientas previamente instaladas y correctamente configuradas, podemos realizar un proyecto nuevo en el IDE deseado. Debemos cuidar que éste será utilizado para desarrollar la dApp y contendrá interfaces y código del Smart Contract. A continuación, encontramos un ejemplo de cómo se puede organizar un proyecto similar.
Dónde:
- El directorio migrations contiene los archivos *.js que nos permitirán unir nuestra dApp con el blockchain.
- El directorio node_modules contiene todas las librerías que utilizaremos de Node para nuestro proyecto. Aquí es clave mencionar que dentro de estas librerías hay una muy especial llamada Open Zeppelin Contracts (@openzepplin/contracts); ésta nos ayudará a desarrollar de manera segura nuestros Smart Contracts, ya que nos asegura que sigamos los estándares de desarrollo para los NFTs.
- El directorio public contendrá todos los elementos públicos de nuestra dApp, como el favicon.ico, el index.html, etc.
- El directorio src contiene todo el código fuente de nuestro proyecto. Dentro de este directorio se destaca:
- Subdirectorio llamado contracts - contendrá todo lo relacionado con el contrato que queramos desarrollar: nuestro contrato, las interfaces de las que depende, clases auxiliares, etc.
- Directorio abis - contiene todos los archivos de configuración que son creados a la hora de compilar el proyecto.
El siquiente es un fragmento de código de un Smart Contract, el cual utilizaremos para revisar varios puntos con los que debemos de cumplir.
Un Smart Contract no es un archivo de código interminable, como podemos observar.
Aquí podemos ver que el Smart Contract principal es KryptoBird y está heredando ERC721Connector, que a su vez es un contrato que contiene toda la herencia y uso de las interfaces del estándar ERC-721. El siguiente diagrama UML ilustra la forma correcta de manejar las herencias para cumplir con el estándar ERC-721 de una manera ordenada.
A modo de resumen, estos fragmentos de código de información implementan los kryptoBirdz, que no son más que tokens que representan tarjetas virtuales coleccionables. Entendiendo estas bases, así como conociendo conceptos y herramientas, tenemos la mesa puesta para emprender con alguna nueva idea de aplicación para los NFTs.
Conclusión
Aunque podríamos decir que los NFTs ya no son parte de los temas vanguardistas de la tecnología, tenemos que reconocer que han llegado a tener un espacio importante en el día a día, sobre todo para aquellas personas que buscan maneras más seguras de invertir. Hay que reconocer que los NFTs llegaron para quedarse como una consecuencia colateral a la invención del blockchain.
Para dar una mejor perspectiva de la invención del blockchain y la tecnología que la rodea, es clave recordar la creación del Internet: en un inicio se utilizó solo en el ámbito bélico, pero ahora ha tomado gran importancia en el desarrollo de la humanidad, hasta llegar a un punto en que en la actualidad no podemos imaginar tener un desarrollo profesional y personal sin el apoyo de esta tecnología. De este modo, se debe de esperar un crecimiento similar para la nueva tecnología de criptomonedas y todo lo que le rodea; de la misma manera que sucedió con el Internet, la humanidad tendrá que adaptarse a la existencia de estas tecnologías.
Acerca de Encora
Las compañías de rápido crecimiento colaboran con Encora para desarrollar sus productos e impulsar sus negocios. Clic aquí para conocer más acerca de nuestros servicios.