Traducción de Every EUTXO dApp Will Use NFTs, And Here’s Why publicado por dcSpark, compañía basada en el desarrollo de blockchains y enfocada en Cardano.
El año 2021 nos ha demostrado a todos que innumerables personas, desde desarrolladores hasta artistas aleatorios que nunca han utilizado criptografía antes, creen que los NFT tienen un gran potencial para cambiar el juego. Aunque los NFT no son nada nuevo, han alcanzado su punto álgido este año, ya que la idea de tokenizar de forma única cualquier cosa se ha convertido en algo popular. La propia palabra NFT se ha utilizado tanto, que se convirtió en una pequeña parte del lenguaje moderno y se infiltró incluso en los círculos no criptográficos.
De tal forma, llegamos a la pregunta obvia sobre el tema de este artículo. ¿Por qué todas las dApps de cualquier ecosistema, y más aún las Blockchains con EUTXO (Cardano y Ergo), utilizan NFTs? ¿Estoy sugiriendo que todos los desarrolladores de dApps se suban al tren de lo que está en tendencia, y empiecen a tokenizar todo lo que se ve, sin ton ni son, simplemente para incorporar a unos cuantos usuarios más, que no conocen nada mejor que eso?
Por supuesto que no, pero primero vamos a entrar en algunos detalles técnicos sobre el modelo EUTXO, para tener una base sólida antes de volver a responder a esta pregunta.
¿Qué es el modelo EUTXO?
El modelo EUTXO es un avance novedoso que ha surgido en los últimos años y que se basa en el modelo UTXO original, del cual Bitcoin fue pionero. Al ampliar el diseño de Bitcoin se descubrió que eran posibles dApps de complejidad arbitraria, porque los sistemas EUTXO son turing-completos en todas las transacciones. Esto no se pensó originalmente, por lo cual las Blockchains con contratos inteligentes, han decidido ir por la ruta basada en el modelo contable desde el lanzamiento de Ethereum.
Gracias a este descubrimiento, se abrieron las puertas para que Blockchains como Cardano y Ergo saltaran a la escena y comenzaran una nueva era para los blockchains basadas en (E)UTXO.
Lo que el modelo EUTXO mejora del original, incluye:
- Implementar un lenguaje de contratos inteligentes más potente que Bitcoin Script.
- Proporcionar a los desarrolladores de contratos inteligentes un área dentro de los UTXOs para almacenar el estado de sus protocolos de contratos inteligentes.
- Permitir que se almacenen activos nativos de primera clase dentro de los UTXO, además del activo base de la red.
Por ello, en el modelo EUTXO se pueden imaginar los UTXO en un nivel alto, tal y como se visualiza a continuación:
Para realizar acciones con los contratos inteligentes en el modelo EUTXO debes gastar (destruir) el UTXO que quieres utilizar (para datos o activos) y luego volver a crear un nuevo UTXO que represente los resultados de la transición de estado de la ejecución de dicha acción. El contrato inteligente adjunto al UTXO comprueba si la acción que has intentado cometer es válida, permitiendo así su ejecución o rechazándola. Por lo tanto, puedes pensar que los contratos inteligentes EUTXO son efectivamente guardias que aseguran que se realicen las acciones adecuadas, en lugar de cuentas autónomas que realizan acciones por sí mismas.
Cada dApp puede estar compuesta por uno o más UTXOs que contienen todos los datos de estado de la dApp y los activos de la misma. Dependiendo del diseño del protocolo de contrato inteligente, las transacciones pueden requerir el gasto de un solo UTXO a la vez al realizar una acción en el contrato inteligente (por ejemplo, acuñar una stablecoin), o pueden requerir el gasto de múltiples UTXOs (por ejemplo, recoger fondos de una venta colectiva).
Así, al igual que en Bitcoin, todas las transacciones de EUTXO dependen simplemente de gastar UTXOs de entrada y crear nuevos UTXOs de salida, sean o no transacciones de contratos inteligentes. Lo novedoso es el hecho de que cada uno de estos UTXOs contiene potencialmente activos nativos y datos de la dApp en su interior, además de que las propias transacciones se validan con un potente lenguaje de contratos inteligentes.
Para obtener más información detallada, recomiendo consultar un artículo que publiqué el pasado mes de septiembre llamado “Desbloqueando el Potencial del Modelo UTXO", que en las dos primeras secciones explica cómo funcionan los contratos inteligentes EUTXO con mayor detalle.
¿Por qué son necesarios los NFT en EUTXO ?
Ahora que tienes un poco más de contexto sobre cómo funciona el modelo EUTXO, podemos finalmente abordar la cuestión de por qué los NFT son vitales.
Como se mencionó en la sección anterior, los UTXOs tienen contratos inteligentes unidos a ellos y no al revés. Coloquialmente decimos que el UTXO está en la dirección X del contrato inteligente, sin embargo esta redacción tiende a que las personas piensen que el contrato inteligente vive como una entidad única en la Blockchain y que los UTXOs se depositan en el contrato inteligente. Pero este no es el caso en absoluto, lo cual a menudo lleva a los nuevos desarrolladores de contratos inteligentes por mal camino, ya que su modelo mental entra en conflicto con la realidad. En su lugar, la forma más sencilla de pensar en ello es que cuando se crea un UTXO tiene la opción de tener un contrato inteligente unido a él. De este modo, los UTXOs existen más o menos independientemente unos de otros y pueden o no tener contenidos similares en su interior.
Los más astutos de ustedes que están leyendo a lo largo del contenido, pueden haber captado lo que esto infiere también. Esto significa que se pueden crear múltiples UTXOs que utilicen exactamente el mismo contrato inteligente, por lo que están en la misma dirección de contrato inteligente. En otras palabras, puedo crear una simple dApp que dependa de un único contrato inteligente unido a un único UTXO y desplegarlo on-chain, pero no hay nada que impida que alguien copie y pegue, y cree su propio UTXO que está también en la misma dirección del contrato inteligente.
Por lo tanto, tenemos un escenario en el que la dApp se despliega dos veces, pero para cualquier observador medio que esté mirando estrictamente la Blockchain no hay ninguna indicación sobre cuál dApp es la real. Esto significa que un usuario (y el software off-chain que utiliza para interactuar con la dApp) puede confundirse sobre cuál UTXO es el legítimo que se ha desplegado realmente, y potencialmente terminar usando uno creado por un actor maligno que está tratando de causar problemas.
Te debes estar preguntando: si un actor maligno despliega un UTXO usando exactamente el mismo contrato inteligente, ¿entonces no debería funcionar exactamente igual? Efectivamente, el contrato en sí será exactamente el mismo, sin embargo, el actor maligno tendrá libertad de acción sobre los datos iniciales de la dApp y los activos mantenidos dentro del UTXO. Esto significa que, dependiendo de cómo esté diseñada la dApp, el actor malicioso podría establecer el estado inicial de tal manera que podría robar tus activos, bloquearlos para siempre, quemarlos, o cualquier otra cosa intermedia.
Por lo tanto, podemos resumir este problema como que los UTXO de las dApps no tienen una propiedad de singularidad incorporada que los haga identificables de forma clara y fiable de los demás. Esto puede ser potencialmente aprovechado por los malos actores, o simplemente puede causar problemas debido al mal diseño del protocolo de los nuevos desarrolladores que apenas están orientándose.
Está claro que se trata de un problema importante que hay que abordar, pero por suerte contamos con una gran innovación que aborda precisamente este problema, los NFT.
¿Cómo los NFTs satisfacen la propiedad de unicidad ?
Como recordará, NFT son las siglas en inglés de (Non Fungible Tokens = Token No Fungible). Como su nombre indica, cada NFT es 100% único y no puede ser falsificado ni copiado. Esta propiedad de unicidad, es exactamente lo que buscamos para combatir los problemas mencionados anteriormente.
Dado que cada NFT sólo puede crearse una vez y que los UTXO tienen la capacidad de albergar tokens, esto significa que si ponemos un NFT dentro del UTXO de la dApp que estamos desplegando, podemos garantizar que nadie más puede hacer lo mismo. El NFT actúa como un identificador único e imperdible que hace que sea trivial para cualquiera y para todos ver qué UTXO es el verdadero desplegado en el protocolo. Cada interfaz inicial de la dApp debe simplemente guardar el ID del token NFT para poder utilizarlo y verificar que cualquier UTXO que se encuentre en la dirección del contrato inteligente tiene el NFT correcto en su interior. Si el UTXO no lo tiene, se trata como inválido y se ignora. No importa si el UTXO inválido fue creado por error o por un mal actor a propósito, no es el UTXO correcto que estamos buscando y por lo tanto se filtra.
Para garantizar que la propiedad de unicidad se mantenga para siempre, el contrato inteligente vinculado al UTXO debe especificar que el NFT nunca puede salir de la dApp. En otras palabras, cada vez que alguien gasta el UTXO de la dApp, el NFT debe mantenerse en una salida que también está bloqueada por el mismo contrato inteligente de la dApp (esto cambia técnicamente en el contexto de las actualizaciones de la dApp, pero podemos omitir eso por ahora). Esta comprobación de la conservación del NFT es el único código necesario para garantizar la propiedad de unicidad de la dApp. Si esta comprobación no está en su lugar, entonces puede ser posible que un mal actor robe el NFT y lo ponga en su despliegue, destruyendo así todas las garantías que teníamos originalmente.
Por lo tanto, al utilizar NFTs tenemos una solución técnica clara que garantiza la propiedad de unicidad que toda dApp EUTXO seria acabará utilizando. Independientemente de que el NFT específico utilizado represente una obra de arte, un objeto físico, o no tenga ningún otro propósito que no sea el de ser un token de unicidad técnica, el hecho de que el NFT se mantenga dentro del UTXO de la dApp garantiza que los usuarios finales estarán protegidos. Puede que incluso acabemos viendo algunos proyectos que afirmen que su dApp está asegurada por un NFT de arte, lo cual es un nuevo argumento de marketing que antes no era posible utilizar.
Volviendo al título de este post, aunque pueda sonar descabellado en un principio que la premisa inicial de que todas las dApps de EUTXO deben usar NFTs, ahora con la explicación técnica de cómo los NFTs proporcionan un beneficio técnico palpable, debería quedar claro por qué es necesario esto, de hecho, no sólo será común sino que será el estándar para las dApps de EUTXO. Una vez que se lance Plutus, se debería animar a los usuarios a comprobar que las dApps que van a utilizar, garantizan la propiedad de unicidad a través de los NFTs, empujando así a los desarrolladores a esforzarse de forma proactiva para seguir las mejores prácticas.
Si te ha gustado este artículo, recuerda seguir a dcSpark en Twitter para estar al día y enterarte de cada vez que creamos nuevos posts o vídeos en youtube.