2. ¿Qué es el estándar ERC-20?

El ERC-20 es el estándar que tienen que seguir los tokens dentro de la red de Ethereum. ERC son las siglas para el término en inglés Ethereum Request for Comments (traducido al español como “solicitud de Ethereum para comentarios”).

El objetivo de los ERC-20 es establecer convenciones dentro de la red que hagan más fácil para los smart contracts y las aplicaciones desarrolladas dentro de ella interactuar entre sí.

La red Ethereum también cuenta con otros estándares, como ERC-721; ERC-1155; ERC-223 y ERC-621, que ofrecen otro tipo de funcionalidades.

¿Cómo funciona?

El ERC-20 usa un formato sencillo para los tokens que estén alojados en Ethereum para que todos los proyectos cuenten con una base compartida para construir rápidamente.

Una vez creados nuevos tokens bajo este estándar, automáticamente pueden interactuar con los servicios y el software que utilizan el ERC-20, como monederos, exchanges y otros desarrollos.

Los tokens ERC-20 no están en poder de cuentas individuales, sino que permanecen dentro de un smart contract que especifica sus reglas, tales como nombre, símbolo y unidad de divisibilidad.

Ese contrato inteligente también mantiene una lista para evaluar los balances de los usuarios con sus direcciones dentro de la red Ethereum.

Así, para transferir tokens, los usuarios tienen que enviar una transacción al contrato mismo para pedir que parte de su balance se mueva hacia otro lugar.

Los tokens ERC-20 no se pueden minar; sino que son acuñados cuando se crean nuevos dentro del desarrollo de un smart contract. Allí se define la distribución del suministro de acuerdo a los objetivos del proyecto.

¿Cómo son creados los tokens ERC-20?

Los smart contracts para crear tokens con estándar ERC-20 deben incluir seis funciones obligatorias y también pueden incluir funciones opcionales. Todo debe estar programado en el lenguaje de programación que utiliza la red de Ethereum, Solidity.

Las funciones opcionales son name, symbol y decimal y sirven para añadir un nombre al token, darle un símbolo (al estilo ETH, BTC, BNB), y especificar la divisibilidad disponible de los tokens. En cambio, las funciones obligatorias son:

  • totalSupply: Delimita la oferta total de tokens que el contrato contiene.
  • balanceOf: Esta función retorna el balance de tokens que posee una determinada dirección dentro de la red.
  • transfer: Realiza la transferencia de tokens entre usuarios proporcionando la dirección de llegada y la cantidad enviada. Esta función activa un evento para que la blockchain incluya una referencia dentro suyo de manera pública.
  • transferFrom: Esta función también se usa para transferir tokens, aunque no necesariamente pertenecen a la persona que realiza la acción, sino que se utiliza para que otra persona (u otro contrato) pueda transferir fondos en nombre de quien activa esta acción. Al igual que transfer, publica un evento en la blockchain.
  • approve: Sirve para limitar el número de tokens que un smart contract puede retirar de un balance. Ayuda a evitar malos funcionamientos de un contrato que realicen acciones no deseadas. Esta función activa el evento de aprobación, que se publica dentro de la cadena.
  • allowance: Sirve para comprobar los tokens disponibles para retirar dentro de una dirección. Es muy utilizada junto con la función approve.

Sin embargo, los tokens ERC-20 suelen ser muy flexibles y estas convenciones no son restricciones para el desarrollo de nuevos proyectos, ya que pueden implementar funciones adicionales y establecer parámetros específicos.