NUEVO: Helius adquiere Light Protocol
compresión de NFT en Solana
Blog/Fundamentos

Explorando la compresión de NFT en Solana

Cofundador y CEOMert Mumtaz en XMert Mumtaz en LinkedIn
8 min de lectura

Uno de los avances recientes en el mundo de las criptomonedas ha sido la aparición de los activos digitales, conocidos comúnmente como tokens no fungibles o NFT. Los NFT permiten tener propiedad resistente a la censura sobre activos digitales, como obras de arte, objetos de videojuegos y entradas. También hacen posibles economías entre pares dinámicas que operan con estos activos. De hecho, se podría decir que los NFT son la segunda gran aplicación de las criptomonedas que ha logrado un ajuste producto-mercado (PMF), después del concepto de dinero digital.  

Sin embargo, los NFT también presentan desafíos.

Un desafío importante, específicamente en Solana, ha sido el costo de almacenar estos activos en cadena. Aunque Solana ofrece comisiones por transacción muy bajas, las tarifas de almacenamiento son otra historia. Para que los activos digitales sean realmente omnipresentes en el mundo digital, almacenarlos debe ser lo más asequible posible. Aquí es donde entra la compresión de NFT en Solana.

La compresión de NFT hace posible la próxima generación de aplicaciones basadas en criptomonedas, ya que permite a desarrolladores y creadores acuñar grandes cantidades de NFT a costos mucho menores. Imagina un MMORPG donde los objetos del juego sean NFT intercambiables y la economía del juego se integre perfectamente con el resto de la economía global. Naturalmente, estos juegos contendrían millones, incluso miles de millones, de objetos cuya acuñación costaría una fortuna en una blockchain como Ethereum. La compresión de NFT lo hace posible en Solana, ahora mismo.

Para ver su potencial, consideremos un ejemplo: Polygon, una solución de escalado para Ethereum, cobra actualmente unos 0.05 USD por acuñar un NFT. Esto significa que acuñar unos mil millones de NFT en Polygon costaría alrededor de 50 millones de dólares.

En Solana, con compresión, costará alrededor de 0.0000005 SOL por NFT. Al momento de escribir este artículo, mil millones de NFT costarían unos 11,000 USD. Eso supone un ahorro de ~50 millones de dólares, es decir, cerca de tres órdenes de magnitud menos. Este es el poder de la compresión.

Pero ¿cómo funciona la compresión? Veámoslo.

Contexto sobre los NFT de Solana (opcional)

Antes de profundizar en la compresión, repasemos primero cómo funcionan los NFT en Solana. Si ya tienes experiencia con los NFT de Solana, puedes pasar a la siguiente sección.

Los tokens en Solana utilizan dos tipos de cuentas: cuentas de acuñación y cuentas de token. La cuenta de acuñación contiene información global sobre un token, como su suministro. La cuenta de token vincula el token con otra cuenta de usuario.

Por ejemplo, si el usuario A recibe 1500 USDC, la cuenta de token USDC del usuario A, derivada de su cuenta de usuario principal, almacenará esos tokens. Este proceso se aplica a todos los tokens. Si quiero enviar 100 USDT al usuario A, el programa de transferencia primero derivará la cuenta de token USDT del usuario A si no existe; si ya existe, la buscará.

Es como tener varias bolsas dentro de tu billetera física principal, una para cada moneda. Guardas euros en una bolsa, dólares en otra y así sucesivamente. Pero la billetera principal te pertenece a ti, el usuario.

Los NFT en Solana son tokens con un suministro único, es decir, solo existe uno. Metaplex también introdujo el Token Metadata Program, que vincula una cuenta de metadatos con el NFT. La cuenta de metadatos incluye información como el nombre, el símbolo, la colección y, por supuesto, la propia imagen del NFT. Este tema es bastante complejo, así que no profundizaremos más en él.

Contexto sobre la compresión

El objetivo de la compresión es reducir la cantidad de datos almacenados en cadena. Esto se logra almacenando los datos, por ejemplo, los metadatos de la imagen, en árboles de Merkle dentro del registro de Solana y guardando las raíces en cadena.

Los indexadores mantienen el estado actual del árbol de Merkle procesando todas las transacciones relacionadas con él. Los usuarios pueden recuperar rápidamente sus datos desde el indexador. La raíz en cadena garantiza que las interacciones con el programa sean válidas y seguras. Además, los usuarios pueden comparar los datos del indexador con la raíz en cadena para comprobar que estén actualizados y sean válidos.

Bien, más despacio. ¿Qué es un árbol de Merkle?

Un árbol de Merkle es una estructura de datos que permite verificar de forma rápida y eficiente la integridad de grandes cantidades de datos. Para hacerlo, divide los datos en fragmentos más pequeños llamados «hojas» y luego combina esas hojas en «nodos» cada vez más grandes.

Cada nodo del árbol representa un hash de sus nodos secundarios. El nodo principal combina los hashes de sus nodos secundarios para crear su propio hash único. Este proceso se repite hasta que todas las hojas se combinan en un único hash situado en la parte superior del árbol, llamado «hash raíz». El hash raíz permite comprobar que todos los datos del árbol están completos y no han cambiado, sin necesidad de revisar cada hoja individual.

La compresión de Solana funciona mediante el programa de compresión de cuentas. El programa permite a los desarrolladores crear una cuenta de árbol de Merkle que almacenará el hash raíz. Después, pueden agregar hojas nuevas o reemplazar las existentes. Cualquier reemplazo de una hoja requiere una «ruta de prueba», que es el subconjunto más pequeño del árbol que contiene la hoja y todos los nodos necesarios para calcular el hash raíz. El programa de compresión compara la prueba con el hash raíz para verificar que los datos sean válidos. Esto es necesario porque el contenido real del árbol no se almacena en cadena.

En resumen, el programa de compresión permite a los desarrolladores crear árboles de Merkle y agregar o actualizar elementos dentro del árbol. El historial del árbol está disponible en el registro de Solana, ya que cada acción se realiza mediante transacciones de Solana. El árbol completo puede reconstruirse reproduciendo su historial si un indexador o proveedor de RPC deja de funcionar, o si el desarrollador quiere cambiar de proveedor.

Por último, la raíz del árbol se almacena en cadena para verificar y proteger los datos. En conjunto, el sistema elimina la necesidad de almacenar el estado en cadena, lo que reduce los costos y «comprime» los datos de manera efectiva.

Compresión de NFT

La compresión de NFT funciona mediante un programa llamado Bubblegum. Bubblegum utiliza el programa de compresión para almacenar cada NFT en un árbol de Merkle, lo que elimina la necesidad de cuentas de acuñación, token y metadatos. ¡Esto hace que los NFT comprimidos sean tan baratos!

Acuñar un NFT comprimido es tan sencillo como agregar un elemento nuevo al árbol de Merkle. Cada elemento agregado incluye información como el nombre, la colección y el propietario del NFT, entre otros datos. Además de la acuñación, Bubblegum proporciona los siguientes métodos:

  • Transfer
  • Burn
  • Delegate, CancelDelegate
  • Burn
  • Redeem, CancelRedeem
  • Decompress
  • VerifyCreator, SetAndVerifyCreator
  • VerifyCollection, SetAndVerifyCollection

También agregamos documentación para ayudarte a comenzar a usar estos métodos, disponible aquí.

Lectura de NFT comprimidos

La forma más sencilla de leer NFT comprimidos es mediante la API Digital Asset Standard (DAS), una especificación y un sistema de código abierto que ofrecen una interfaz unificada para consultar tokens. El sistema funciona con un indexador que procesa todas las transacciones de Bubblegum y almacena los árboles de Merkle. Además, la API permite buscar NFT por creador, colección y propietario. Sí, leíste bien. ¡La API DAS no solo se aplica a los NFT comprimidos, sino también a los NFT normales de Solana! Esto significa que puedes obtener listas de acuñación en cadena o consultar todos los NFT que posee un usuario o programa con una sola llamada a la API y a velocidades extraordinarias.

También escribimos documentación sobre esta API e incluimos código de ejemplo para ayudarte a comenzar, disponible aquí.

Casos de uso de la compresión

Al momento de escribir este artículo, la compresión solo lleva disponible unas semanas y ya se están desarrollando casos de uso increíbles. Estos son algunos ejemplos:

  • Dialect utiliza la compresión de NFT para sus paquetes de stickers dentro del chat
  • Helium utiliza la compresión de NFT para representar sus Helium Hotspots
  • Crossmint utiliza la compresión de NFT para hacer airdrops a cientos de miles de personas y ofrece una API de acuñación que puedes probar
  • Drip Haus utiliza la compresión de NFT para realizar airdrops masivos
  • Render está considerando migrar a Solana para aprovechar la compresión de NFT y tokenizar gráficos de escenas completos para renderizado por GPU

Comienza a construir el futuro de los activos digitales

¿Te entusiasma trabajar con NFT comprimidos? ¡Puedes comenzar a construir con Helius hoy mismo! Helius admite la compresión de NFT y ofrece la API DAS tanto en Devnet como en Mainnet. Puedes generar una clave de API gratis aquí, sin proporcionar información de correo electrónico ni de tarjeta de crédito. Solo conecta tu billetera de Solana. ¿Todavía no sabes cómo acuñar un NFT comprimido? Consulta nuestro repositorio de código abierto Ejemplos de compresión. ¡Estamos ansiosos por ver lo que construyes!

Suscríbete a Helius

Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos

Imagen ampliada