Indice
Introducción
¿Qué es el estándar ERC-20?
Un breve recordatorio sobre los tokens Ethereum
¿Cómo se crean los tokens ERC-20?
¿Qué pueden hacer los tokens ERC-20?
Monedas estables
Financiadores de tokens
Fichas de utilidad
¿Puedes extraer tokens ERC-20?
Ventajas y desventajas de los tokens ERC-20
Ventajas de los tokens ERC-20
Desventajas de los tokens ERC-20
ERC-20, ERC-1155, ERC-223, ERC-721, ¿cuáles son las diferencias?
Para concluir
Introducción
Ethereum fue fundada por Vitalik Buterin en 2014, posicionándose como una plataforma de código abierto para el lanzamiento de aplicaciones descentralizadas (DApps). La motivación de Buterin para crear una nueva cadena de bloques se basa en la falta de flexibilidad de Bitcoin.
Desde su lanzamiento, la cadena de bloques Ethereum ha atraído a desarrolladores, empresas y emprendedores, dando lugar a una creciente industria de usuarios que lanzan contratos inteligentes y aplicaciones distribuidas.
En este artículo, veremos el estándar ERC-20, un marco importante para la creación de tokens. Aunque es específico de la red Ethereum, el marco también ha inspirado otros estándares de blockchain, como el BEP-2 de Binance Chain.
¿Qué es el estándar ERC-20?
En Ethereum, un ERC es una solicitud de comentarios de Ethereum. Se trata de documentos técnicos que definen los estándares de programación en Ethereum. Estas no deben confundirse con las propuestas de mejora de Ethereum (EIP), que, al igual que las BIP de Bitcoin, sugieren mejoras en el protocolo en sí. Más bien, los ERC tienen como objetivo establecer convenciones que faciliten la interacción entre solicitudes y contratos.
Definido por Vitalik Buterin y Fabian Vogelsteller en 2015, ERC-20 ofrece un formato relativamente simple para tokens basados en Ethereum. Siguiendo su plan, los desarrolladores no necesitan reinventar la rueda. En cambio, pueden construir sobre cimientos que ya estén en uso en el área.
Una vez que se crean nuevos tokens ERC-20, son interoperables automáticamente con servicios y software que admiten el estándar ERC-20 (billeteras de software, billeteras de hardware, intercambios, etc.).
Cabe señalar que el estándar ERC-20 fue desarrollado por una EIP (específicamente, EIP-20). Esto ocurrió unos años después de la propuesta inicial, debido a su uso generalizado. Sin embargo, incluso años después, el nombre “ERC-20” se mantuvo.
Un breve recordatorio sobre los tokens Ethereum
A diferencia de ETH (la criptomoneda nativa de Ethereum), los tokens ERC-20 no se mantienen en cuentas. Los tokens sólo existen en un contrato, que es como una base de datos independiente. Especifica reglas de tokens (nombre, símbolo, divisibilidad) y mantiene una lista que asocia los saldos de los usuarios con sus direcciones de Ethereum.
Para mover tokens, los usuarios deben enviar una transacción al contrato pidiéndoles que asignen parte de su saldo a otra parte. Por ejemplo, si Alice quiere enviar 5000 BinanceAcademyTokens a Bob, llama a una función en el contrato inteligente de BinanceAcademyToken para pedirle que lo haga.

Su llamada está contenida en lo que parece ser una transacción regular de Ethereum que paga 0 ETH al contrato del token. La llamada se incluye en un campo adicional de la transacción, que especifica lo que Alice quiere hacer. En nuestro caso, transfiera tokens a Bob.
Incluso si no envía ether, todavía tiene que pagar una tarifa para que su transacción se incluya en un bloque. Si no tiene ETH, debe obtenerlo antes de transferir los tokens.
Aquí hay un ejemplo real de lo anterior en Etherscan: alguien realiza una llamada al contrato BUSD. Puede ver que se transfirieron tokens y se pagaron las tarifas, aunque el campo de valor indica que se envió 0 ETH.
Ahora que entendemos los conceptos básicos, veamos debajo del capó para comprender mejor la estructura de un contrato ERC-20 típico.
¿Cómo se crean los tokens ERC-20?

Para cumplir con ERC-20, su contrato debe incluir seis características obligatorias: suministro total, saldo de, transferencia, transferencia desde, aprobación y asignación. Además, puede especificar funciones opcionales, como nombre, símbolo y decimal. Los nombres de estas funciones pueden aclararle lo que hacen. Si no, no te preocupes, te lo explicamos a continuación.
Estas son las funciones tal como aparecen en el lenguaje Solidity diseñado específicamente para Ethereum.
oferta total
función totalSupply() devuelve la vista pública (uint256)Cuando la llama un usuario, la función anterior devuelve el suministro total de tokens que contiene el contrato.
equilibrio de
función balanceOf(dirección _propietario) devuelve la vista pública (saldo uint256)A diferencia de totalSupply, balanceOf toma un parámetro (una dirección). Cuando se llama, devuelve el saldo de tokens que tiene esa dirección. Recuerda que las cuentas en la red Ethereum son públicas, por lo que podrás consultar el saldo de cualquier usuario siempre que conozcas su dirección.
transferir
transferencia de función (dirección _a, uint256 _valor) devoluciones públicas (éxito bool)transfer transfiere tokens de un usuario a otro. Aquí indicas la dirección a la que quieres enviar el dinero y el importe a transferir.
Cuando se llama, la transferencia desencadena algo llamado evento (el evento de transferencia, en este caso), que esencialmente le dice a la cadena de bloques que incluya una referencia a él.
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 transferencia que permite un poco más de programabilidad en aplicaciones descentralizadas. Al igual que la transferencia, se utiliza para mover tokens, pero los tokens no necesariamente tienen que pertenecer a la persona que llama al contrato.
En otras palabras, puede autorizar a una persona, o a otro contrato, a transferir fondos en su nombre. Un posible caso de uso implica pagar por servicios basados en suscripción, donde no desea enviar un pago manualmente todos los días/semanas/mes. En lugar de eso, dejas que un programa lo haga por ti.
Esta función desencadena el mismo evento que la transferencia.
aprobar
función aprobar (dirección _spender, uint256 _value) devoluciones públicas (éxito bool)aprobar es otra función útil desde el punto de vista de la programabilidad. Gracias a esta función, puedes limitar la cantidad de tokens que un contrato inteligente puede retirar de tu saldo. Sin él, el contrato puede funcionar mal (o volverse malicioso) y esto puede resultar en la pérdida de todos sus fondos.
Volvamos a nuestro ejemplo de modelo de suscripción. Supongamos que tiene una gran cantidad de BinanceAcademyTokens y desea configurar pagos recurrentes semanales para una DApp de transmisión. Estás ocupado leyendo el contenido de Binance Academy día y noche. Por lo tanto, no querrás tomarte el tiempo cada semana para crear una transacción manualmente.
Tienes un saldo enorme de BinanceAcademyTokens, mucho más allá de lo necesario para pagar la suscripción. Para evitar que la DApp los agote todos, puede establecer un límite con aprobación. Supongamos que su suscripción cuesta un BinanceAcademyToken por semana. Si limita el valor aprobado a veinte tokens, su suscripción podría pagarse automáticamente durante cinco meses.
En el peor de los casos, si la DApp intenta retirar todos sus fondos o se descubre un error, sólo podrá perder veinte tokens. Puede que no sea la solución ideal, pero ciertamente es más atractiva que perder todos sus fondos.
Cuando se llama, aprobar desencadena el evento de aprobación. Al igual que el evento de transferencia, escribe 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. Cuando hayas concedido la autorización del contrato para gestionar tus tokens, podrás utilizarla para comprobar cuánto más puedes retirar. Por ejemplo, si su suscripción ha consumido doce de sus veinte tokens aprobados, llamar a la función de asignación debería devolver un total de ocho.
Funciones opcionales
Las funciones presentadas anteriormente son obligatorias. Pero no es necesario incluir las funciones, nombre, símbolo y decimal, pero pueden hacer que su contrato ERC-20 sea un poco más bonito. Respectivamente, le permiten agregar un nombre legible por humanos, definir un símbolo (por ejemplo, ETH, BTC, BNB) y especificar el número de decimales por los que los tokens son divisibles. Por ejemplo, los tokens utilizados como monedas pueden ser más divisibles que un token que representa la propiedad de un activo.
Consulte este ejemplo en GitHub para ver estos elementos en un contrato real.
¿Qué pueden hacer los tokens ERC-20?

Al juntar todas las funciones anteriores, obtenemos un contrato ERC-20. Podemos consultar el suministro total, consultar saldos, transferir fondos y dar permisos a otras DApps para administrar los tokens.
Gran parte del atractivo de los tokens ERC-20 es su flexibilidad. Las convenciones definidas no limitan el desarrollo, por lo que las partes pueden implementar funcionalidades adicionales y establecer parámetros específicos para satisfacer sus necesidades.
Monedas estables
Las monedas estables (tokens vinculados a monedas fiduciarias) suelen utilizar el estándar de token ERC-20. La transacción de contrato BUSD que mencionamos anteriormente es un ejemplo, y la mayoría de las monedas estables más importantes también están disponibles en este formato.
Para una moneda estable clásica respaldada por dinero fiduciario, un emisor mantiene reservas de euros, dólares, etc. Luego, por cada unidad en reserva, emiten una ficha. Esto significa que si 10.000 dólares estuvieran atrapados en una bóveda, el emisor podría crear 10.000 tokens, cada uno canjeable por 1 dólar.
Es bastante fácil de implementar en Ethereum, técnicamente hablando. Un emisor simplemente lanza un contrato con 10.000 tokens. Luego, los distribuye a los usuarios con la promesa de que luego podrán cambiar los tokens por una cantidad proporcional de moneda fiduciaria.
Los usuarios pueden hacer varias cosas con sus tokens: pueden comprar bienes y servicios o usarlos en DApps. También pueden solicitar al emisor que los canjee inmediatamente. En este caso, el emisor quema los tokens devueltos (haciéndolos inutilizables) y retira la cantidad correspondiente de fiat de sus reservas.
El contrato que rige este sistema, como se mencionó anteriormente, es relativamente sencillo. Sin embargo, lanzar una moneda estable requiere mucho trabajo en factores externos como la logística, el cumplimiento normativo, etc.
Financiadores de tokens
Los tokens financieros son similares a las monedas estables. En cuanto al contrato, los dos podrían incluso ser iguales porque funcionan de la misma manera. La distinción se produce a nivel del transmisor. Los tokens financieros representan valores, como acciones, bonos o activos físicos. A menudo (aunque no siempre) representan el interés del titular en un negocio o propiedad.
Fichas de utilidad
Los tokens de utilidad son quizás el tipo de token más común en la actualidad. A diferencia de los dos tipos anteriores, no están respaldados por otro activo. Si los tokens respaldados por activos son como acciones de una aerolínea, los tokens de utilidad son como programas de lealtad: cumplen una función, pero no tienen valor externo. Los tokens de utilidad pueden servir para una infinidad de casos de uso, como moneda del juego, combustible para aplicaciones descentralizadas, puntos de fidelidad y mucho más.
➟ ¿Quieres iniciarte en las criptomonedas? ¡Compre bitcoins en Binance!
¿Puedes extraer tokens ERC-20?
Puedes extraer Ether (ETH), pero los tokens no se pueden extraer; decimos que se emiten cuando se crean nuevos tokens. Cuando se lanza un contrato, los desarrolladores distribuyen la oferta según sus planes y hoja 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 Financiero (STO). Puede encontrar variaciones de estas siglas, pero estos conceptos son bastante similares. Los inversores envían ether a la dirección del contrato y, a cambio, reciben nuevos tokens. El dinero recaudado se utiliza para financiar el desarrollo posterior del proyecto. Los usuarios esperan poder utilizar sus tokens (inmediatamente o en una fecha posterior) o revenderlos para obtener ganancias a medida que el proyecto crezca.
No es necesario automatizar la distribución de tokens. Muchos eventos de financiación colectiva permiten a los usuarios pagar en diferentes monedas digitales (como BNB, BTC, ETH y USDT). Luego se asignan los saldos respectivos a las direcciones proporcionadas por los usuarios.
Ventajas y desventajas de los tokens ERC-20
Ventajas de los tokens ERC-20
fungible
Los tokens ERC-20 son fungibles, cada unidad es intercambiable por otra. Si posee un BinanceAcademyToken, no importa qué token específico posea. Podrías cambiarlo por el de otra persona y seguirían siendo los mismos, como dinero en efectivo u oro.
Esto es ideal si su token pretende convertirse en una especie de moneda. No querrías unidades individuales con rasgos distintivos, que las harían no fungibles. Por tanto, algunas fichas podrían ser más o menos valiosas que otras, lo que socavaría su utilidad.
Flexibilidad
Como vimos en la sección anterior, los tokens ERC-20 son altamente personalizables y pueden adaptarse a muchas aplicaciones diferentes. Por ejemplo, se pueden utilizar como moneda del juego, en programas de fidelización, como objetos de colección digitales o incluso para representar derechos de propiedad y obras de arte.
Popular
La popularidad de ERC-20 en la industria de las criptomonedas es una razón muy convincente para utilizarlo como modelo. Hay una gran cantidad de intercambios, billeteras y contratos inteligentes que ya son compatibles con los tokens lanzados recientemente. Además, hay mucha documentación y soporte para desarrolladores.
Desventajas de los tokens ERC-20
Escalabilidad
Como ocurre con muchas redes de criptomonedas, Ethereum no es inmune a los problemas de crecimiento. En su forma actual, no es muy escalable: intentar enviar una transacción en horas punta genera altas tarifas y retrasos. Si lanza un token ERC-20 y la red está congestionada, su uso puede verse afectado.
Este no es un problema exclusivo de Ethereum. Más bien, es un compromiso necesario para todos los sistemas seguros y distribuidos. La comunidad planea resolver estos problemas al migrar a Ethereum 2.0, que implementará actualizaciones como Ethereum Plasma y Ethereum Casper.
Para obtener más información sobre problemas de escalabilidad, consulte Escalabilidad de Blockchain: cadenas laterales y pasarelas de pago.
Estafas
Si bien no es un problema con la tecnología en sí, la facilidad con la que se puede lanzar un token puede verse como una desventaja en algunos aspectos. Se necesita muy poco esfuerzo para crear un token ERC-20 simple, lo que significa que cualquiera puede hacerlo, ya sea para bien o para mal.
Por eso hay que tener cuidado con lo que se invierte. Hay una serie de esquemas piramidales y Ponzi disfrazados de proyectos blockchain. Haga su propia investigación antes de invertir para formarse sus propias ideas sobre la legitimidad de una oportunidad.
ERC-20, ERC-1155, ERC-223, ERC-721, ¿cuáles son las diferencias?
ERC-20 fue el primer estándar de token Ethereum (y, hasta la fecha, el más popular), pero está lejos de ser el único. A lo largo de los años, han surgido muchos otros, ya sea proponiendo mejoras en el ERC-20 o intentando lograr objetivos diferentes.
Algunos de los estándares menos comunes son los que se utilizan en los tokens no fungibles (NFT). A veces es beneficioso para su caso de uso tener tokens únicos con diferentes atributos. Si desea tokenizar una obra de arte única, un activo en un juego, etc., uno de estos tipos de contrato podría resultar más interesante.
El estándar ERC-721, por ejemplo, se utilizó para la inmensamente popular DApp CryptoKitties. Dicho contrato proporciona una API que permite a los usuarios emitir sus propios tokens no fungibles y codificar metadatos (imágenes, descripciones, etc.).
El estándar ERC-1155 puede considerarse una mejora de los estándares ERC-721 y ERC-20. Presenta un estándar que admite tokens fungibles y no fungibles en el mismo contrato.
Otras opciones como ERC-223 o ERC-621 tienen como objetivo mejorar la usabilidad. El primero implementa medidas de protección para evitar transferencias accidentales de tokens. El segundo agrega funciones adicionales para aumentar y disminuir el suministro de tokens.
Para obtener más información sobre las NFT, visite Una guía de criptocoleccionables y tokens no fungibles (NFT).
Para concluir
Durante años, el estándar ERC-20 ha dominado el espacio de los criptoactivos y no es difícil ver por qué. Con relativa facilidad, cualquiera puede implementar un contrato simple que se adapte a una amplia gama de casos de uso (tokens de utilidad, monedas estables, etc.). Dicho esto, ERC-20 carece de algunas de las características implementadas por otros estándares. Queda por ver si se implementarán tipos de contratos posteriores.



