Khóa học blockchain

Các Chuẩn Token ERC Phổ Biến Nhất

0 phút đọc

Trong hệ sinh thái Ethereum, ERC (Ethereum Request for Comments) là các đề xuất tiêu chuẩn cho các token và các tính năng khác trên blockchain. Các tiêu chuẩn ERC đóng vai trò quan trọng trong việc định hình cách thức tương tác giữa các token và các ứng dụng phi tập trung (dApps). Bài viết này sẽ khám phá ba chuẩn ERC phổ biến nhất: ERC-20, ERC-721, và ERC-1155, cung cấp cái nhìn tổng quan về mỗi chuẩn và ví dụ về cách chúng được sử dụng.

1. ERC-20: Tiêu Chuẩn Token Fungible

Giới thiệu về ERC-20

ERC-20 là tiêu chuẩn đầu tiên và được sử dụng rộng rãi nhất cho các token fungible trên Ethereum. Token fungible là loại token mà mỗi đơn vị đều giống hệt nhau và có thể thay thế lẫn nhau, giống như tiền tệ. ERC-20 đã trở thành nền tảng cho hầu hết các token trên Ethereum và là cơ sở cho nhiều dApps và dịch vụ tài chính phi tập trung.

Các Chức Năng Chính của ERC-20

  • totalSupply(): Trả về tổng số lượng token hiện có.
  • balanceOf(address account): Trả về số lượng token mà một địa chỉ sở hữu.
  • transfer(address to, uint256 amount): Cho phép chuyển token từ địa chỉ này sang địa chỉ khác.
  • approve(address spender, uint256 amount): Cho phép một địa chỉ khác rút một lượng token nhất định từ tài khoản của bạn.
  • transferFrom(address from, address to, uint256 amount): Thực hiện chuyển token giữa các địa chỉ, dựa trên sự chấp thuận trước đó.

Ví dụ về ERC-20

pragma solidity ^0.8.0;

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

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply);
    }
}

Trong ví dụ này, MyToken là một token ERC-20 được tạo ra với một lượng cung ban đầu. Nó sử dụng thư viện OpenZeppelin, một công cụ phổ biến để tạo token và các hợp đồng thông minh khác một cách an toàn.

2. ERC-721: Tiêu Chuẩn Token Non-Fungible (NFT)

Giới thiệu về ERC-721

ERC-721 là tiêu chuẩn cho các token không thể thay thế (NFT), mỗi token là duy nhất và không thể thay thế được. NFTs thường được sử dụng để đại diện cho các tài sản kỹ thuật số như nghệ thuật, thu thập, và các tài sản trong trò chơi.

Các Chức Năng Chính của ERC-721

  • balanceOf(address owner): Trả về số lượng NFT mà một địa chỉ sở hữu.
  • ownerOf(uint256 tokenId): Trả về chủ sở hữu của một NFT cụ thể.
  • safeTransferFrom(address from, address to, uint256 tokenId): Chuyển một NFT từ một địa chỉ này sang địa chỉ khác một cách an toàn.

Ví dụ về ERC-721

pragma solidity ^0.8.0;

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

contract MyNFT is ERC721 {
    constructor() ERC721("MyUniqueToken", "MUT") {}

    function mintNFT(address to, uint256 tokenId) public {
        _mint(to, tokenId);
    }
}

Trong ví dụ này, MyNFT là một contract cho phép tạo và phát hành NFT. Mỗi NFT được định danh bởi một tokenId duy nhất.

3. ERC-1155: Tiêu Chuẩn Multi-Token

Giới thiệu về ERC-1155

ERC-1155 là một tiêu chuẩn linh hoạt hơn, cho phép một hợp đồng quản lý nhiều loại token, bao gồm cả fungible (giống ERC-20) và non-fungible (giống ERC-721). Tiêu chuẩn này được thiết kế để tối ưu hóa các giao dịch và giảm chi phí gas khi tương tác với nhiều loại token trong một giao dịch.

Các Chức Năng Chính của ERC-1155

  • balanceOf(address account, uint256 id): Trả về số lượng token của một loại cụ thể mà một địa chỉ sở hữu.
  • safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data): Chuyển token từ một địa chỉ này sang địa chỉ khác.

Ví dụ về ERC-1155

pragma solidity ^0.8.0;

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

contract MyGameItems is ERC1155 {
    uint256 public constant GOLD = 0;
    uint256 public constant SWORD = 1;
    uint256 public constant SHIELD = 2;

    constructor() ERC1155("https://game.example/api/item/{id}.json") {
        _mint(msg.sender, GOLD, 10**18, "");
        _mint(msg.sender, SWORD, 1, "");
        _mint(msg.sender, SHIELD, 1, "");
    }
}

Trong ví dụ này, MyGameItems là một contract sử dụng ERC-1155 để quản lý ba loại item trong trò chơi: vàng (fungible), kiếm và khiên (cả hai là non-fungible). Mỗi loại item được đại diện bởi một id duy nhất.

Kết luận

Các tiêu chuẩn ERC như ERC-20, ERC-721, và ERC-1155 đóng một vai trò quan trọng trong việc phát triển các ứng dụng và dịch vụ trên Ethereum. Chúng không chỉ cung cấp các khung pháp lý cho việc tạo và quản lý token mà còn thúc đẩy sự đổi mới và tương tác trong hệ sinh thái blockchain. Hiểu biết về các tiêu chuẩn này là cần thiết cho bất kỳ ai đang phát triển hoặc tương tác với các dự án blockchain.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

entry

Những phương pháp khả dụng phổ biến nhất là gì?

entry

Biến cục bộbiến toàn cục trong Python là gì?

entry

Chúng ta có cần phải biên dịch các tệp TypeScript không và tại sao?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào

Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely