Introducción a los Tokens ERC-20. Lo Que Debes Saber

Ethereum fue fundada por Vitalik Buterin en 2014, posicionándose como una plataforma de código abierto para el lanzamiento de aplicaciones descentralizadas (DApps). Muchas de las motivaciones de Buterin para crear una nueva cadena de bloques se derivaron de la falta de flexibilidad del protocolo Bitcoin. Desde su lanzamiento, Ethereum blockchain ha atraído a desarrolladores, empresas y emprendedores, generando una creciente industria de usuarios que lanzan contratos inteligentes y aplicaciones distribuidas. En este artículo, veremos los Tokens ERC-20, un marco importante para crear tokens. Si bien es específico de la red Ethereum, el marco también inspiró otros estándares de blockchain, como el BEP-2 de Binance Chain.

¿Qué son los Tokens ERC-20?

En Ethereum, un ERC es una solicitud de comentarios de Ethereum. Estos son documentos técnicos que describen los estándares para la programación en Ethereum. No deben confundirse con las propuestas de mejora de Ethereum (EIP), que, al igual que los BIP de Bitcoin, sugieren mejoras en el protocolo en sí. En cambio, los ERC tienen como objetivo establecer convenciones que faciliten la interacción entre las aplicaciones y los contratos.

Escrito por Vitalik Buterin y Fabian Vogelsteller en 2015, ERC-20 propone un formato relativamente simple para tokens basados ​​en Ethereum. Siguiendo el esquema, los desarrolladores no necesitan reinventar la rueda. En cambio, pueden construir sobre una base que ya se utiliza en toda la industria.

Binance

Una vez que se crean los nuevos tokens ERC-20, son automáticamente interoperables con los servicios y el software que admiten el estándar ERC-20 (carteras de software, carteras de hardware, intercambios, etc.). Cabe señalar que los Tokens ERC-20 se desarrollaron en un EIP (específicamente, EIP-20). Esto sucedió un par de años después de la propuesta original debido a su uso generalizado. Sin embargo, incluso años después, el nombre «ERC-20» se ha quedado.

Un Resumen Rápido de los Tokens de Ethereum

A diferencia de ETH (la criptomoneda nativa de Ethereum), los tokens ERC-20 no se mantienen en cuentas. Los tokens solo existen dentro de un contrato, que es como una base de datos autónoma. Especifica las reglas para los tokens (es decir, nombre, símbolo, divisibilidad) y mantiene una lista que asigna los saldos de los usuarios a sus direcciones de Ethereum.

Para mover tokens, los usuarios deben enviar una transacción al contrato pidiéndole que asigne parte de su saldo a otra parte. Por ejemplo, si Alice quiere enviar 5,000 BinanceAcademyTokens a Bob, llama a una función dentro del contrato inteligente BinanceAcademyToken pidiéndole que lo haga.

Su llamada está contenida dentro de lo que parece ser una transacción regular de Ethereum que paga 0 ETH al contrato de token. La llamada se incluye en un campo adicional en la transacción, que especifica lo que Alice quiere hacer; en nuestro caso, transferir tokens a Bob. A pesar de que no está enviando ether, aún debe pagar una tarifa denominada en él para que su transacción se incluya en un bloque. Si no tiene ETH, necesita obtener algunos antes de transferir los tokens.

¿Cómo se Crean los Tokens ERC-20?

Para cumplir con ERC-20, su contrato debe incluir seis funciones obligatorias: totalSupply, balanceOftransfertransferFromaprobar y asignación. Además, puede especificar funciones opcionales, como nombresímbolo y decimal. Puede que le quede claro qué hacen esas funciones a partir de sus nombres. Si no es así, no se preocupe, los desglosaremos. A continuación se muestran las funciones tal como aparecen en el lenguaje de Solidity especialmente diseñado de Ethereum.

totalSupply

function totalSupply() public view returns (uint256)

Cuando es llamado por un usuario, la función anterior devuelve el suministro total de tokens que tiene el contrato.

balanceOf

function balanceOf(address _owner) public view returns (uint256 balance)

A diferencia de totalSupplybalanceOf toma un parámetro (una dirección). Cuando se llama, devuelve el saldo de las existencias de tokens de esa dirección. Recuerde que las cuentas de la red Ethereum son públicas, por lo que puede consultar el saldo de cualquier usuario siempre que conozca la dirección.

transfer

function transfer(address _to, uint256 _value) public returns (bool success)

transfer transfiere tokens de un usuario a otro. Aquí, proporciona la dirección a la que desea enviar y el monto a transferir. Cuando se llama, transfer desencadena algo llamado evento (transferencia de evento, en este caso), que básicamente le dice a la cadena de bloques que incluya una referencia a ella.

transferFrom

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)

La función transferFrom es una práctica alternativa a transfer que permite un poco más de programabilidad en aplicaciones descentralizadas. Al igual que transfer, se usa para mover tokens, pero esos tokens no necesariamente deben pertenecer a la persona que llama al contrato. 

En otras palabras, puede autorizar a alguien, u otro contrato, a transferir fondos en su nombre. Un posible caso de uso implica el pago de servicios basados ​​en suscripción, donde no desea enviar manualmente un pago todos los días / semana / mes. En cambio, deja que un programa lo haga por usted. Esta función activa el mismo evento que la transfer.

approve

function approve(address _spender, uint256 _value) public returns (bool success)

approve es otra función útil desde el punto de vista de la programabilidad. Con esta función, puede limitar la cantidad de tokens que un contrato inteligente puede retirar de su saldo. Sin él, corre el riesgo de que el contrato funcione mal (o sea explotado) y le robe todos sus fondos. 

Tomemos de nuevo nuestro ejemplo de modelo de suscripción. Suponga que tiene una gran cantidad de BinanceAcademyTokens y desea configurar pagos recurrentes semanales a una DApp de transmisión. Está ocupado leyendo el contenido de Binance Academy día y noche, por lo que no quiere tomarse el tiempo cada semana para crear una transacción manualmente.

Tiene un saldo masivo de BinanceAcademyTokens, que supera con creces lo que se necesita para pagar la suscripción. Para evitar que la DApp los agote a todos, puede establecer un límite con approve. Suponga que su suscripción cuesta un BinanceAcademyToken por semana. Si limita el valor aprobado a veinte tokens, entonces podría hacer que su suscripción se pague automáticamente durante cinco meses.

En el peor de los casos, si la DApp intenta retirar todos sus fondos o si se encuentra un error, solo puede perder veinte tokens. Puede que no sea lo ideal, pero ciertamente es más atractivo que perder todas sus posesiones. Cuando se llama, approve desencadena el evento de aprobación. Al igual que el evento de transferencia, escribe datos en la cadena de bloques.

allowance

function allowance(address _owner, address _spender) public view returns (uint256 remaining)

allowance se puede utilizar junto con approve. Cuando haya otorgado un permiso de contrato para administrar sus tokens, puede usar esto para verificar cuántos aún puede retirar. Por ejemplo, si su suscripción ha agotado doce de sus veinte tokens aprobados, llamar a la función de allowance debería devolver un total de ocho.

Las funciones opcionales

Las funciones comentadas anteriormente son obligatorias. Por otro lado, no es necesario incluir el nombre, el símbolo y el decimal, pero pueden hacer que su contrato ERC-20 sea un poco más bonito. Respectivamente, le permiten agregar un nombre legible por humanos, establecer un símbolo (es decir, ETH, BTC, BNB) y especificar cuántos lugares decimales son divisibles los tokens. Por ejemplo, los tokens que se utilizan como monedas pueden beneficiarse más de ser más divisibles que un token que representa la propiedad de una propiedad.

¿Qué Pueden Hacer los Tokens ERC-20?

Al reunir todas las funciones anteriores, tenemos un contrato ERC-20. Podemos consultar el suministro total, verificar saldos, transferir fondos y otorgar permisos a otras DApps para que administren tokens por nosotros.

Una gran parte del atractivo de los tokens ERC-20 es su flexibilidad. Las convenciones establecidas no restringen el desarrollo, por lo que las partes pueden implementar funciones adicionales y establecer parámetros específicos para satisfacer sus necesidades.

Stablecoins

Stablecoins (tokens vinculados a monedas fiduciarias ) a menudo usan el estándar de token ERC-20. La transacción del contrato BUSD que mencionamos anteriormente es un ejemplo, y la mayoría de las monedas estables principales también están disponibles en este formato.

Para una moneda estable con respaldo fiduciario típico, un emisor tiene reservas de euros, dólares, etc. Luego, por cada unidad en su reserva, emiten un token. Esto significa que si se guardaran $ 10,000 en una bóveda, el emisor podría crear 10,000 tokens, cada uno canjeable por $ 1.

Esto es bastante fácil de implementar en Ethereum, técnicamente hablando. Un emisor simplemente lanza un contrato con 10,000 tokens. Luego, los distribuirán a los usuarios con la promesa de que luego pueden canjear 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. Alternativamente, podrían solicitar que el emisor los cambie de inmediato. En ese caso, el emisor quema los tokens devueltos (haciéndolos inutilizables) y retira la cantidad correcta de dinero fiduciario de sus reservas.

El contrato que rige este sistema, como se mencionó anteriormente, es relativamente simplista. Sin embargo, el lanzamiento de una moneda estable requiere mucho trabajo en factores externos como la logística, el cumplimiento normativo, etc.

Tokens de seguridad

Los tokens de seguridad son similares a las monedas estables. A nivel de contrato, ambos podrían incluso ser idénticos, ya que funcionan de la misma manera. La distinción ocurre a nivel del emisor. Los tokens de seguridad representan valores, como acciones, bonos o activos físicos. A menudo (aunque no siempre es el caso), otorgan al titular algún tipo de participación en un negocio o bien.

Tokens de utilidad

Los tokens de utilidad son quizás los tipos de tokens más comunes que se encuentran en la actualidad. A diferencia de las dos ofertas anteriores, no están respaldadas por nada. Si los tokens respaldados por activos son como acciones en una compañía aérea, los tokens de servicios públicos son como programas de viajero frecuente: cumplen una función, pero no tienen valor externo. Los tokens de utilidad pueden adaptarse a una gran variedad de casos de uso, y sirven como moneda del juego, combustible para aplicaciones descentralizadas, puntos de fidelidad y mucho más.

¿Puedes Extraer Tokens ERC-20?

Puede extraer éter (ETH), pero los tokens no se pueden extraer; decimos que se acuñan cuando se crean nuevos. Cuando se lanza un contrato, los desarrolladores distribuyen el suministro de acuerdo con sus planes y hoja de ruta.

Binance

Por lo general, esto se realiza a través de una oferta inicial de monedas (ICO), una oferta de intercambio inicial (IEO) o una oferta de token de seguridad (STO). Puede encontrar variaciones de estos acrónimos, 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 un mayor desarrollo del proyecto. Los usuarios esperan poder usar sus tokens (ya sea inmediatamente o en una fecha posterior) o revenderlos para obtener ganancias a medida que se desarrolla el proyecto.

No es necesario automatizar la distribución de tokens. Muchos eventos de crowdfunding permiten a los usuarios pagar con una variedad de monedas digitales diferentes (como BNB, BTC, ETH y USDT). A continuación, los respectivos saldos se asignan a las direcciones proporcionadas por los usuarios.

Pros y Contras de los Tokens ERC-20

Ventajas de los tokens ERC-20

  • Fungible: Los tokens ERC-20 son intercambiables: cada unidad es intercambiable con otra. Si tuvieras un BinanceAcademyToken, no importaría qué token específico tuvieras. Podrías cambiarlo por el de otra persona y seguirían siendo funcionalmente idénticos, como el dinero en efectivo o el oro. Esto es ideal si su token pretende ser una moneda de algún tipo. No querría unidades individuales con rasgos distinguibles, lo que las haría no fungibles. Esto podría hacer que algunos tokens se vuelvan más o menos valiosos que otros, socavando su propósito.
  • Flexible: Como exploramos en la sección anterior, los tokens ERC-20 son altamente personalizables y se pueden adaptar a muchas aplicaciones diferentes. Por ejemplo, se pueden utilizar como moneda del juego, en programas de puntos de fidelidad, como objetos de colección digitales o incluso para representar obras de arte y derechos de propiedad.
  • Popular: La popularidad de ERC-20 en la industria de las criptomonedas es una razón muy convincente para usarlo como modelo. Hay una gran cantidad de intercambios, billeteras y contratos inteligentes que ya son compatibles con los tokens recién lanzados. Además, la documentación y el soporte para desarrolladores son abundantes. 

Contras de los tokens ERC-20

  • Escalabilidad: Como ocurre con muchas redes de criptomonedas, Ethereum no es inmune a los dolores de crecimiento. En su forma actual, no se escala bien: tratar de enviar una transacción en horas pico resulta en altas tarifas y retrasos. Si lanza un token ERC-20 y la red se congestiona, su usabilidad podría verse afectada. Este no es un problema exclusivo de Ethereum. Más bien, es una compensación necesaria en sistemas distribuidos y seguros. La comunidad planea abordar estos problemas en la migración a Ethereum 2.0, que implementará actualizaciones como Ethereum Plasma y Ethereum Casper.
  • Estafas: Si bien no es un problema con la tecnología en sí, la facilidad con la que se puede lanzar un token podría considerarse una desventaja en algunos aspectos. Se necesita un esfuerzo mínimo para crear un token ERC-20 simple, lo que significa que cualquiera puede hacerlo, para bien o para mal. Como tal, debe tener cuidado con lo que está invirtiendo. Hay una serie de esquemas piramidales y Ponzi disfrazados de proyectos blockchain. Haga su propia investigación antes de invertir para llegar a sus propias conclusiones sobre si una oportunidad es legítima.

Tokens ERC-20, ERC-1155, ERC-223, ERC-721: ¿Cuál es la Diferencia?

ERC-20 fue el primer estándar de token de Ethereum (y, hasta la fecha, el más popular), pero de ninguna manera es el único. A lo largo de los años, han surgido muchos otros, ya sea proponiendo mejoras en el ERC-20 o intentando alcanzar objetivos completamente diferentes.

Algunos de los estándares menos comunes son los que se usan en tokens no fungibles (NFT). A veces, su caso de uso realmente se beneficia de tener tokens únicos con diferentes atributos. Si quisieras tokenizar una obra de arte única en su tipo, un activo del juego, etc., uno de estos tipos de contrato podría ser más atractivo.

El estándar ERC-721, por ejemplo, se utilizó para la inmensamente popular DApp CryptoKitties. Dicho contrato proporciona una API para que los usuarios creen sus propios tokens no fungibles y codifiquen metadatos (imágenes, descripciones, etc.). El estándar ERC-1155 podría verse como una mejora tanto en ERC-721 como en ERC-20. Describe 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 salvaguardas para evitar transferencias accidentales de tokens. Este último agrega funciones adicionales para aumentar y disminuir el suministro de tokens.

Pensamientos Finales

El estándar ERC-20 ha dominado el espacio de los activos criptográficos durante años, y no es difícil ver por qué. Con relativa facilidad, cualquiera puede implementar un contrato simple para adaptarse 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 que cobran vida con otros estándares. Queda por ver si los tipos posteriores de contratos ocuparán su lugar.

Binance

Artículos Relacionados

6 comentarios en «Introducción a los Tokens ERC-20. Lo Que Debes Saber»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.