Tabla de contenido
Introducción
¿Qué es el estándar ERC-20?
Datos breves sobre el token Ethereum
¿Cómo se generan los tokens ERC-20?
¿Qué funciones tiene ERC-20?
Moneda estable
Fichas de seguridad
ficha de utilidad
¿Puedo participar en la minería de tokens ERC-20?
Ventajas y desventajas de los tokens ERC-20
Ventajas de los tokens ERC-20
Desventajas de los tokens ERC-20
¿Cuáles son las diferencias entre ERC-20, ERC-1155, ERC-223 y ERC-721?
Resumir
Introducción
Ethereum fue fundada por Vitalik Buterin en 2014 y se posiciona como una plataforma de código abierto para lanzar aplicaciones descentralizadas (DApps). La motivación de Buterin para crear esta nueva cadena de bloques surgió en gran medida de la falta de flexibilidad en el protocolo Bitcoin.
Desde sus inicios, la cadena de bloques Ethereum ha atraído a muchos desarrolladores, empresas y emprendedores, generando una industria emergente de contratos inteligentes y aplicaciones distribuidas lanzados por los usuarios.
En este artículo, veremos el estándar ERC-20, que es un marco importante para la creación de tokens. Aunque solo se aplica a la red Ethereum, es la inspiración para otros estándares blockchain como BEP-2 de Binance Chain.
¿Qué es el estándar ERC-20?
En Ethereum, el nombre completo de ERC es Solicitud de comentarios de Ethereum, que es una solicitud de comentarios de Ethereum. Estos documentos técnicos describen los estándares de programación de Ethereum. Esto no debe confundirse con la Propuesta de mejora de Ethereum (EIP), que es similar al BIP de Bitcoin y es una propuesta de mejora del protocolo en sí. El objetivo de ERC es establecer un protocolo que facilite la interacción entre aplicaciones y contratos.
Desarrollado y escrito en 2015 por Vitalik Buterin y Fabian Vogelsteller, ERC-20 propone otro formato relativamente simple para tokens basados en Ethereum. Siempre que se siga el esquema, los desarrolladores no necesitan reinventar la rueda y pueden aprovechar directamente lo que está sucediendo en toda la industria.
Cuando se crean nuevos tokens ERC-20, interoperan automáticamente con servicios y software que admiten el estándar ERC-20 (billeteras de software, billeteras de hardware, plataformas comerciales, etc.).
Es importante señalar que el estándar ERC-20 ha evolucionado hasta convertirse en EIP (específicamente EIP-20). En ese momento, habían pasado varios años desde la propuesta original de amplia circulación, pero incluso después de varios años, el nombre "ERC-20" permaneció.
Datos breves sobre el token Ethereum
A diferencia de ETH (la criptomoneda nativa de Ethereum), los tokens ERC-20 no se depositan en una cuenta, sino que sólo existen dentro del contrato, como una base de datos independiente. Especifica las reglas para el token (es decir, nombre, símbolo, divisibilidad) y mantiene una lista de direcciones de Ethereum que asignan los saldos de los usuarios.
Para transferir tokens, los usuarios deben enviar una transacción a un contrato inteligente, solicitando al contrato que asigne parte del saldo a otra parte. Por ejemplo, si Alice quiere enviar 5000 tokens de Binance Academy a Bob, llamará a una función en el contrato inteligente correspondiente para ejecutar la instrucción.
Su llamada incluyó una transacción de Ethereum aparentemente normal, que pagó 0 ETH por el contrato del token. Esta llamada se incluye entre otros campos de la transacción y especifica la intención de Alice; en este caso, quiere transferir los tokens a Bob.
Incluso sin enviar ether, debe pagar una tarifa específica para que la transacción se agregue al bloque. Si no tiene ETH, debe depositar previamente algo de ETH antes de transferir sus tokens.
El siguiente es un ejemplo real en Etherscan: alguien llama a un contrato BUSD. Verá que se transfirieron los tokens y se pagó la tarifa, aunque el campo de valor muestra que se envió 0 ETH.
A continuación, aceleramos el ritmo y analizamos más de cerca la estructura típica del contrato ERC-20.
¿Cómo se generan los tokens ERC-20?
Según el estándar ERC-20, su contrato debe establecer seis funciones obligatorias: suministro total, saldo de, transferencia, transferencia desde, aprobación y asignación. Además, se pueden especificar funciones opcionales como nombre, símbolo y decimal. Puede comprender la función función según el nombre. No se preocupe si no la comprende. Las analizaremos una por una a continuación.
Las siguientes son funciones presentadas a través del lenguaje Solidity específico de Ethereum.
oferta total
función totalSupply() devuelve la vista pública (uint256)
Después de que el usuario llame a la función anterior, se devolverá el suministro total de tokens en poder del contrato.
equilibrio de
función balanceOf(dirección _propietario) devuelve la vista pública (saldo uint256)
A diferencia de totalSupply, balanceOf usa direcciones como parámetros. Después de la llamada, el sistema devuelve el saldo del token de la dirección. Recuerda, las cuentas en la red Ethereum son públicas y transparentes. Podrás consultar el saldo de cualquier usuario siempre que conozcas la dirección.
transferir
transferencia de función (dirección _a, uint256 _valor) devoluciones públicas (éxito bool)
La función de transferencia permite a los usuarios transferir tokens entre sí. Debe proporcionar la dirección de recepción del token y el monto de la transferencia.
Cuando se llama, la transferencia activa un evento (el evento "transferencia" en este caso) cuya función básica es indicarle a la cadena de bloques que contenga una referencia a esta función.
Transferido de
función transferFrom(dirección _from, dirección _to, uint256 _value) devoluciones públicas (bool exitoso)
La función transferFrom es una alternativa conveniente a la función de transferencia, que mejora efectivamente la programabilidad en aplicaciones descentralizadas. Similar a la función de transferencia, se utiliza para mover tokens, pero estos tokens no necesariamente pertenecen al usuario que llama al contrato.
En otras palabras, puede autorizar a otra persona o a otro contrato a mover fondos en su nombre. Por ejemplo, si no desea pagar manualmente un servicio de suscripción de forma diaria, semanal o mensual, puede dejar que el programa haga el trabajo por usted.
Los eventos desencadenados por esta función son los mismos que los de la transferencia.
aprobar
función aprobar (dirección _spender, uint256 _value) devoluciones públicas (éxito bool)
Desde una perspectiva de programación, aprobar es otra función muy útil que limita la cantidad de tokens que un contrato inteligente puede retirar del saldo. Sin él, los contratos en ejecución pueden quedar inválidos (o explotados) y todos los fondos corren el riesgo de ser robados.
Nuevamente, tomemos el modelo de suscripción como ejemplo. Supongamos que tiene una gran cantidad de tokens de Binance Academy y desea configurar pagos semanales recurrentes para su DApp de transmisión. Estoy demasiado ocupado leyendo los artículos de Binance Academy como para dedicar tiempo a crear operaciones manualmente cada semana.
El gran saldo de tokens de Binance Academy que se posee supera con creces las tarifas requeridas para pagar la suscripción. Para evitar que la DApp pague todos los activos, puede utilizar aprobar para establecer un límite. Suponiendo que su suscripción cueste 1 token de Binance Academy por semana, su suscripción se pagará automáticamente durante 5 meses si el límite de aprobación es de 20 tokens.
Si el programa sale mal y la DApp intenta retirar todos los fondos, solo perderás hasta 20 tokens. Si bien perder sus tokens es perturbador, el resultado es mucho mejor que perder todos sus activos.
Después de llamar a esta función, aprobar activará el evento de aprobación. Al igual que la función de transferencia, escribirá los datos en la cadena de bloques.
prestación
asignación de función (dirección _propietario, dirección _spender) devuelve la vista pública (uint256 restante)
La asignación se puede utilizar junto con aprobar. Si se otorgan derechos de administración de tokens al contrato, puede verificar el saldo retirable del token a través de él. Por ejemplo, suponiendo que el servicio de suscripción utiliza 12 de los 20 tokens aprobados, llamar a la función permitir devolverá un total de 8 tokens.
Otras funciones opcionales
Todo lo comentado anteriormente es una función obligatoria. Por otro lado, nombre, símbolo y decimal son funciones opcionales, pero pueden hacer que ERC-20 sea más completo. Estas funciones admiten, respectivamente, agregar un nombre legible por humanos, configurar el símbolo (es decir, ETH, BTC, BNB) y especificar la cantidad de decimales en los que se puede dividir el token. Por ejemplo, los tokens utilizados como moneda son más divisibles y, por lo tanto, más beneficiosos que los tokens utilizados para representar la propiedad.
Consulte este ejemplo en GitHub para ver cómo se verían estos elementos en un contrato real.
¿Qué funciones tiene ERC-20?
Resumiendo todas las funciones anteriores, obtenemos un contrato ERC-20. Podemos consultar el suministro total, ver saldos, transferir fondos y autorizar a otras DApps a administrar tokens en nuestro nombre.
La flexibilidad de los tokens ERC-20 es una gran ventaja. El acuerdo establecido no limita el desarrollo, y cada parte puede lanzar otras funciones y fijar parámetros específicos según sus propias necesidades.
Moneda estable
Las monedas estables (tokens vinculados a monedas fiduciarias) suelen utilizar el estándar de token ERC-20. La transacción de contrato BUSD mencionada anteriormente es un ejemplo típico, y la mayoría de las monedas estables también utilizan esta forma.
Para las monedas estables respaldadas por monedas fiduciarias convencionales, los emisores pueden mantener reservas en euros, dólares estadounidenses, etc., y luego emitir tokens para cada unidad de las reservas. Esto significa que si se depositan 10.000 dólares en la bóveda, el emisor puede crear 10.000 tokens, cada uno con un valor de 1 dólar.
Desde una perspectiva técnica, es fácil de implementar en Ethereum. El emisor simplemente lanza un contrato con 10.000 tokens y luego distribuye los tokens a los usuarios, prometiendo que pueden cambiar los tokens por un cierto porcentaje de moneda fiduciaria en el futuro.
Los usuarios pueden usar sus tokens para realizar una variedad de acciones, incluida la compra de bienes y servicios y la solicitud de DApps. Alternativamente, se puede exigir al emisor que canjee estos tokens inmediatamente. En este caso, el emisor también puede destruir los tokens devueltos (dejar que caduquen) y retirar una cantidad equivalente de dinero fiduciario de la reserva.
Como se mencionó anteriormente, los contratos que rigen este sistema son relativamente simples. Sin embargo, lanzar una moneda estable requiere atención a muchos otros factores externos (como logística, cumplimiento, etc.) y mucho esfuerzo.
Fichas de seguridad
Los tokens de seguridad son similares a las monedas estables e incluso pueden ser completamente idénticos a nivel de contrato porque ambos operan de la misma manera. La diferencia radica en el emisor: los tokens de seguridad representan valores como acciones, bonos o activos reales. Por lo general, aunque no siempre, otorgan al titular acciones de una empresa o producto básico.
ficha de utilidad
Los tokens de utilidad son probablemente el tipo de token más común en la actualidad. A diferencia de los dos tokens anteriores, los tokens de utilidad no están respaldados por ningún activo real. Si las acciones de las aerolíneas representan tokens respaldados por activos, los tokens de utilidad son como programas de viajero frecuente: tienen alguna funcionalidad, pero ningún valor externo. Los tokens de utilidad pueden satisfacer numerosas necesidades, como ser utilizados como moneda en el juego, combustible para aplicaciones descentralizadas y puntos de fidelidad.
➠ ¿Quieres comenzar tu viaje con las criptomonedas? ¡Bienvenido a Binance para comprar Ethereum!
¿Puedo participar en la minería de tokens ERC-20?
Puedes participar en la minería de Ethereum (ETH), pero los tokens no se pueden minar; a la creación de nuevos tokens la llamamos acuñación. Una vez que el contrato entre en vigor, los desarrolladores asignarán el suministro de acuerdo con los planes y hojas de ruta,
Esto generalmente se hace a través de una Oferta Inicial de Monedas (ICO), una Oferta Inicial de Intercambio (IEO) o una Oferta de Token de Valor (STO). Es posible que encuentre varias variaciones de estas siglas, pero los conceptos son muy similares. Los inversores envían ether a la dirección del contrato y reciben a cambio nuevos tokens. Los fondos recaudados se utilizarán para financiar el desarrollo futuro del proyecto. Los usuarios esperan poder utilizar sus tokens (inmediatamente o más tarde) o revenderlos para obtener ganancias a medida que el proyecto crezca.
La emisión de tokens no está necesariamente automatizada. Muchas campañas de crowdfunding permiten a los usuarios completar pagos utilizando varias monedas digitales (como BNB, BTC, ETH y USDT) y luego distribuir el saldo correspondiente a la dirección proporcionada por el usuario.
Ventajas y desventajas de los tokens ERC-20
Ventajas de los tokens ERC-20
Intercambiabilidad
Los tokens ERC-20 son fungibles y todas las unidades se pueden intercambiar entre sí. Cuando se trata de tokens de Binance Academy, es lo mismo independientemente de qué moneda específica tengas. Puedes comerciar con otras personas y los tokens funcionan igual, similar al efectivo o al oro.
Esto es ideal si el token que tienes espera convertirse en una moneda de algún tipo. Los tokens con características distintas pierden su fungibilidad y no cumplen con sus requisitos. Esto puede hacer que ciertos tokens valgan menos o más que tokens similares, anulando el propósito original.
flexible
Como se analizó en el capítulo anterior, los tokens ERC-20 son extremadamente personalizables y las soluciones se pueden adaptar a diferentes aplicaciones. Los ejemplos incluyen el uso como moneda del juego, puntos de fidelidad para programas, objetos coleccionables digitales o incluso la representación de obras de arte y propiedad.
muy popular
ERC-20 está ganando popularidad en el campo de las criptomonedas y el modelo basado en él es muy convincente. Numerosos intercambios, billeteras y contratos inteligentes ahora son compatibles con varios tokens recientemente lanzados. Además, la documentación y el soporte para desarrolladores son bastante completos.
Desventajas de los tokens ERC-20
Pobre escalabilidad
Este es un problema común entre muchas redes de criptomonedas y Ethereum no es inmune a él. En su forma actual, no escala bien. El envío de transacciones durante los períodos pico genera tarifas elevadas y grandes retrasos. Si se utilizan tokens ERC-20 y causan congestión en la red, su disponibilidad también se verá afectada.
Este no es un problema exclusivo de Ethereum, sino una compensación que todos los sistemas distribuidos seguros deben hacer. La comunidad planea resolver estos problemas después de migrar a Ethereum 2.0 e implementar actualizaciones como Ethereum Plasma y Ethereum Casper.
Lea "Escalabilidad de Blockchain: cadenas laterales y canales de pago" para obtener más información sobre los problemas de escalabilidad.
Fraude
Si bien la tecnología en sí no tiene nada de malo, en cierto modo la facilidad para emitir tokens puede ser una desventaja. Los tokens ERC-20 simples son fáciles de crear, lo que significa que cualquiera puede hacerlo, pero con intenciones mixtas.
Por lo tanto, debes invertir con cuidado. Hay muchos esquemas piramidales y esquemas Ponzi disfrazados de proyectos blockchain. Debe realizar su propia investigación antes de invertir para confirmar si la oportunidad de inversión es legítima.
¿Cuáles son las diferencias entre ERC-20, ERC-1155, ERC-223 y ERC-721?
ERC-20 fue el primer estándar de token Ethereum (y, con diferencia, el más popular), pero no es el único. A lo largo de los años, se han desarrollado muchos otros estándares. La mayoría de ellos son estándares mejorados de ERC-20, otros intentan lograr objetivos completamente diferentes.
Se aplican varios estándares poco comunes a los tokens no fungibles (NFT). En algunos casos, los tokens únicos con diferentes propiedades pueden convertirlo a usted en beneficiario. Si desea tokenizar obras de arte únicas, activos del juego, etc., uno de estos tipos de contratos puede resultar más atractivo.
Por ejemplo, el estándar ERC-721 se utiliza en la muy popular DApp CryptoKitties. Este contrato proporciona una API para que los usuarios acuñen sus propios tokens no fungibles y codifiquen metadatos (imágenes, descripciones, etc.).
El estándar ERC-1155 puede verse como una mejora con respecto a ERC-721 y ERC-20. Admite estándares de tokens fungibles y no fungibles en un solo contrato.
Otras opciones, como ERC-223 o ERC-621, están diseñadas para mejorar la usabilidad. El primero implementa medidas de protección para evitar transferencias accidentales de tokens. Este último proporciona una funcionalidad adicional para aumentar o disminuir el suministro de tokens.
Para obtener más información sobre las NFT, lea la Guía de criptocoleccionables y tokens no fungibles (NFT).
Resumir
El estándar ERC-20 ha sido el actor dominante en el espacio de los criptoactivos durante muchos años. Las razones son obvias: el estándar es relativamente simple y cualquiera puede implementar contratos simples para satisfacer diversas necesidades (tokens de utilidad, monedas estables, etc.). No obstante, ERC-20 carece de algunas características de otros estándares, pero queda por ver si otros tipos de contratos pueden ocupar su lugar.