Ethereum: Estándar de Tokens ERC20

Dentro del mundo de los tokens que rodean a Blockchain, tal vez el más conocido son los Tokens ERC20 para la creación de activos digitales intercambiables.

Características de los tokens

El estándar para la creación de tokens es denominado ERC20, proveniente de la propuesta EIP20. La misma estandarizó una interfaz y características de cómo deben ser los tokens que viven en la Blockchain de Ethereum.

Los tokens ERC20 tienen propiedades en común:

  • Divisibilidad: Un solo token se puede dividir en pequeñas partes.
  • Fungibilidad: Significa que un activo vale exactamente lo mismo que otro. No existen propiedades que distingan a uno de otro y estos son intercambiables.

Estas características son excelentes para representar dinero digital. Por este motivo, se utilizan los tokens ERC20 para representar al dólar norteamericano, al euro o a otras divisas.

Otra característica importante para representar valor económico de los tokens es la emisión de los mismos y la escasez. Pero eso ya no depende tanto del estándar, sino de la lógica y el protocolo con el cual sea implementado.

Implementación de tokens ERC20

OpenZeppelin ofrece una implementación del estandar ERC20 auditada y segura que podemos utilizar para crear nuestros propios tokens.

Su utilización es muy simple, solo basta con importar y heredar el contrato y definir algunas propiedades de nuestro token.

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MiTokenFungible is ERC20("Mi Token Fungible", "MTF") {

  constructor() {
    // Emitimos los primeros 1000 tokens a la cuenta que desplegó el contrato
    _mint(msg.sender, 1000);
  }
}

El estándar ERC20 recibe tanto un nombre como un símbolo para identificar al token. A través de la función _mint(), que recibe la cantidad de tokens que queremos emitir, podemos comenzar a generar los mismos.

A partir de implementación del contrato, podemos construir la lógica de emisión de tokens de nuestro contrato dependiendo la regla de negocio. Definir la cantidad máxima de tokens que existirán, la cantidad de decimales en los cuales se podrán dividir o transferir los mismos.

Si bien podemos utilizar la implementación del estándar ERC20 de OpenZeppelin, también es muy aconsejable estudiar cómo se realizan dichas implementaciones de las propuestas de mejora de Ethereum y, por qué no, animarnos a realizar nosotros mismos nuestra propia implementación.


Post creado en colaboración con el Curso de OpenZeppelin de Platzi.