Trong thế giới của Ethereum, ERC (Ethereum Request for Comments) là một tiêu chuẩn quan trọng đối với việc phát triển các token và các giao thức tương tác trên blockchain Ethereum. ERC giúp định nghĩa các quy tắc, giao thức và tiêu chuẩn mà các Smart Contract cần tuân theo để tương thích với nhau, từ đó tạo ra một hệ sinh thái Ethereum mạnh mẽ và đa dạng. Bài viết này sẽ cung cấp một cái nhìn tổng quan về ERC, các tiêu chuẩn phổ biến và ảnh hưởng của chúng đến việc phát triển blockchain.
ERC-20: Tiêu Chuẩn Token
ERC-20 là tiêu chuẩn đầu tiên và phổ biến nhất trong các ERC, định nghĩa một bộ quy tắc cho các token fungible (có thể thay thế được). Các token ERC-20 có thể đại diện cho bất kỳ loại giá trị nào như tiền tệ, điểm thưởng, hoặc tài sản.
Các Hàm và Sự Kiện Cơ Bản của ERC-20
- totalSupply: Trả về tổng số lượng token hiện có.
- balanceOf: Trả về số lượng token mà một địa chỉ sở hữu.
- transfer: Chuyển token từ địa chỉ gọi hàm đến một địa chỉ khác.
- approve và transferFrom: Cho phép các giao dịch được thực hiện thay mặt bởi một địa chỉ khác.
- Sự kiện Transfer và Approval: Ghi lại các giao dịch và sự chấp thuận.
Ví dụ về ERC-20
solidity
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
kế thừa từ ERC20 của OpenZeppelin, một thư viện Solidity phổ biến, và tạo ra một token mới với số lượng cung cấp ban đầu.
ERC-721: Tiêu Chuẩn Token Không Thể Thay Thế
ERC-721 là tiêu chuẩn cho các token không thể thay thế (NFT - Non-Fungible Tokens), cho phép mỗi token có các thuộc tính và giá trị duy nhất. NFT thường được sử dụng để đại diện cho tài sản kỹ thuật số như nghệ thuật, bất động sản trong game, và nhiều hơn nữa.
Các Hàm và Sự Kiện Cơ Bản của ERC-721
- balanceOf: Trả về số lượng NFT mà một địa chỉ sở hữu.
- ownerOf: Trả về chủ sở hữu của một NFT cụ thể.
- safeTransferFrom: Chuyển một NFT từ một địa chỉ này sang địa chỉ khác.
- Sự kiện Transfer và Approval: Ghi lại các giao dịch và sự chấp thuận.
Ví dụ về ERC-721
solidity
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract MyNFT is ERC721 {
constructor() ERC721("MyNFT", "MNFT") {}
function mintNFT(address to, uint256 tokenId) public {
_mint(to, tokenId);
}
}
Trong ví dụ này, MyNFT
kế thừa từ ERC721 của OpenZeppelin và cung cấp một hàm mintNFT
để tạo NFT mới.
ERC-1155: Tiêu Chuẩn Token Đa Dạng
ERC-1155 là một tiêu chuẩn mới hơn, cho phép một contract duy nhất quản lý nhiều loại token, bao gồm cả fungible và non-fungible. Điều này giúp giảm chi phí gas và tăng tính linh hoạt trong việc quản lý token.
Các Đặc Điểm của ERC-1155
- Hỗ trợ cả fungible tokens (giống ERC-20) và non-fungible tokens (giống ERC-721).
- Tối ưu hóa giao dịch và lưu trữ.
- Hỗ trợ "batch" giao dịch, cho phép gửi nhiều loại token trong một giao dịch.
Kết luận
ERC đóng một vai trò quan trọng trong việc định hình và phát triển hệ sinh thái Ethereum, cung cấp một bộ tiêu chuẩn cho việc tạo và quản lý token. Từ ERC-20, ERC-721, đến ERC-1155, mỗi tiêu chuẩn đều mở ra những khả năng mới cho việc sử dụng blockchain và tạo điều kiện cho sự sáng tạo không giới hạn trong thế giới kỹ thuật số.