Introducción
Los tokens existen en dos formas en Stellar:
- Activos emitidos por cuentas de Stellar (
G...
direcciones) y su implementación del Stellar Asset Contract (SAC) incorporado, y - Tokens personalizados emitidos por un contrato WASM desplegado (
C...
direcciones).
Varios factores pueden ayudarte a determinar si emitir un activo en Stellar o crear un token personalizado con un contrato inteligente para tu proyecto.
Sin embargo:
TL;DR
Si es posible, recomendamos emitir un activo de Stellar y usar el SAC para interactuar con ese activo en contratos inteligentes o para enviarlo a direcciones de contratos. Más sobre por qué a continuación.
Emitiendo activos en Stellar
Stellar tiene soporte de primera para la tokenización de activos — emitir un activo se puede hacer utilizando una transacción incorporada sin el desarrollo de un contrato inteligente.
Las transacciones de Stellar son rápidas y rentables, lo que hace que la red sea excelente para remesas y micropagos. También tiene características integradas para cumplimiento, gestión de activos y auditoría. Si buscas realizar transferencias de valor, emitir activos en Stellar tiene todas las capacidades necesarias.
Activos de Stellar:
- Son compatibles con productos del ecosistema Stellar (como billeteras Stellar) y otros productos del ecosistema (como exchanges).
- Se benefician de anclajes, los puentes entre la red Stellar y los sistemas financieros tradicionales. Explora el directorio de anclajes de Stellar global para más detalles.
- Proporciona al emisor un control granular sobre la gestión de activos con características que permiten al emisor nombrar el activo, determinar el control de acceso, limitar el suministro del activo, publicar información del activo y asegurar el cumplimiento.
Ten en cuenta que, si bien estos elementos también son posibles con tokens de contratos inteligentes personalizados, es más trabajo construir el contrato del token que usar las características ya implementadas de los tokens de activos Stellar.
Los activos emitidos en la red Stellar son accesibles para contratos inteligentes mediante el uso del Stellar Asset Contract (SAC) de ese activo.
Stellar Asset Contract
El Stellar Asset Contract (SAC) está compilado en la capa del protocolo y permite que los contratos inteligentes interactúen con los activos emitidos en Stellar. Una instancia del SAC puede ser desplegada para cada activo de Stellar por cualquier persona que desee interactuar con el activo desde un contrato. El SAC tiene acceso a todos los saldos de cuenta (para XLM) y saldos de trustline (para todos los demás activos), así como los saldos de tokens de contratos inteligentes.
Lee más sobre el SAC aquí.
Aprende a desplegar un Stellar Asset Contract para un activo en esta guía paso a paso.
Beneficios del SAC:
- Compatibilidad: el SAC se beneficia de la interoperabilidad existente de los activos de Stellar.
- Eficiencia de costo y recursos: el SAC está integrado en el protocolo en lugar de ser un contrato que se ejecuta en una máquina virtual. Cada función dentro del SAC será más eficiente en recursos que su homólogo codificado de forma personalizada.
- Menos trabajo: no tienes que escribir un contrato completamente nuevo. El SAC de un activo Stellar ya existe en la red y solo necesita ser desplegado para ser utilizado.
- Personalización: las direcciones de administrador pueden ser contratos. Los emisores de activos pueden establecer un contrato inteligente diferente como administrador para el SAC de su activo. Hacer del administrador otro contrato inteligente permite la adición de lógica personalizada y descentralizada para las capacidades administrativas de los activos, como autorizar saldos y líneas de confianza, acuñar tokens, etc.
Desventajas del SAC:
- Además de la personalización mencionada anteriormente, no es posible modificar el comportamiento de los activos de Stellar o su SAC. Si estás buscando utilizar activos de una manera no admitida por los activos de Stellar, puedes crear tu propio token de contrato inteligente personalizado utilizando la interfaz de token y todas las aplicaciones que interactúan con tokens utilizando la interfaz de token podrán interactuar con el token personalizado.
Tokens personalizados
Si tienes un caso de uso único donde las capacidades de los Activos Stellar no son suficientes, puedes crear un token personalizado que implemente la interfaz de token. La interfaz de token especifica las funciones y eventos que un contrato debe implementar para ser compatible con aplicaciones que utilizan tokens.
El SAC también implementa la interfaz de token y las aplicaciones que interoperan con la interfaz de token pueden interactuar sin problemas con activos de Stellar y tokens personalizados.
Los contratos inteligentes no pueden utilizar activos de Stellar a menos que ese activo de Stellar tenga un SAC desplegado. Cualquiera puede desplegar el SAC para un activo de Stellar en su dirección reservada.
Estos escenarios de ejemplo no son posibles con el SAC y demuestran para qué podrías usar la interfaz de token:
- Como el creador de un nuevo token, decides implementar una característica dentro de tu contrato inteligente de token personalizado que te permite recibir una tarifa del 1% de cada transacción que involucra tu token. Cada vez que alguien transfiere tu token a otro usuario, se deduce automáticamente el 1% del monto transferido y se envía a una dirección de billetera designada que controlas.
- Quieres desarrollar un contrato de fábrica que automatice la creación de instancias de un token específico. Este contrato sirve como una forma centralizada y estandarizada de desplegar nuevos contratos de token a pedido sin intervención manual cada vez que se necesita una nueva instancia.