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.