ERC-20 là gì? Cách hoạt động và kiểm tra contract

ERC-20 là gì?

ERC-20 là tiêu chuẩn kỹ thuật phổ biến dành cho token có thể thay thế lẫn nhau trên Ethereum. Tiêu chuẩn này quy định một tập hợp chức năng và sự kiện mà hợp đồng thông minh của token nên triển khai, nhờ đó ví, sàn giao dịch và ứng dụng phi tập trung có thể tương tác với nhiều token theo cách tương đối thống nhất.

“Có thể thay thế lẫn nhau” nghĩa là các đơn vị cùng loại có giá trị và đặc tính tương đương nhau. Ví dụ, một đơn vị của cùng một token ERC-20 có thể được thay bằng một đơn vị khác của chính token đó. Đặc điểm này khác với NFT, nơi mỗi token có thể mang mã định danh và thuộc tính riêng.

ERC là viết tắt của Ethereum Request for Comments, còn số 20 là số hiệu của đề xuất tiêu chuẩn. Để hiểu môi trường vận hành của ERC-20, người mới nên tìm hiểu Ethereum và vai trò của ETH trước khi đi sâu vào token.

ERC-20 không phải tên của một đồng tiền cụ thể. Đây là khuôn mẫu chung để nhà phát triển tạo token phục vụ nhiều mục đích như quản trị, tiện ích trong ứng dụng, đại diện tài sản hoặc stablecoin. Việc một tài sản tuân theo ERC-20 không tự động chứng minh rằng dự án đó uy tín, có giá trị hay an toàn.

Tiêu chuẩn token ERC-20 gồm những chức năng nào?

Ảnh minh hoạ: ERC-20 là gì? Cách hoạt động và kiểm tra contract

Một hợp đồng ERC-20 thường cung cấp các chức năng cốt lõi sau:

Chức năng Vai trò
totalSupply Trả về tổng lượng token do hợp đồng ghi nhận
balanceOf Kiểm tra số dư token của một địa chỉ
transfer Chuyển token từ địa chỉ gọi giao dịch sang địa chỉ nhận
approve Cấp quyền cho một địa chỉ hoặc hợp đồng khác sử dụng token trong giới hạn nhất định
allowance Kiểm tra hạn mức token còn được phép sử dụng
transferFrom Chuyển token thay cho chủ sở hữu dựa trên quyền đã được cấp

Tiêu chuẩn còn định nghĩa hai sự kiện quan trọng:

  • Transfer: ghi nhận hoạt động chuyển token, bao gồm một số trường hợp phát hành hoặc đốt token tùy cách hợp đồng triển khai.
  • Approval: ghi nhận việc chủ sở hữu thiết lập hạn mức sử dụng token cho địa chỉ khác.

Các thông tin như tên token, ký hiệu và số chữ số thập phân thường được ví hoặc ứng dụng dùng để hiển thị. Tuy nhiên, tên và ký hiệu có thể bị trùng hoặc cố tình sao chép. Số chữ số thập phân chỉ ảnh hưởng đến cách biểu diễn số lượng, không làm token có giá trị hơn.

Có thể bạn chưa biết:  ATH và ATL là gì? Cách kiểm tra mốc giá crypto

ERC-20 tạo ra giao diện chung, nhưng không bắt buộc mọi token phải có cùng cơ chế kinh tế. Hợp đồng có thể bổ sung khả năng phát hành thêm, đốt, tạm dừng chuyển, hạn chế địa chỉ hoặc thu phí. Vì vậy, hai token cùng tuân theo ERC-20 vẫn có thể vận hành rất khác nhau.

Token ERC-20 hoạt động thế nào?

Token ERC-20 tồn tại dưới dạng dữ liệu do hợp đồng thông minh quản lý. Hợp đồng ghi nhận số dư gắn với từng địa chỉ và cập nhật dữ liệu khi có giao dịch hợp lệ.

Quy trình chuyển token thường diễn ra như sau:

  1. Người dùng chọn token, nhập địa chỉ nhận và số lượng trong ví.
  2. Ví tạo yêu cầu gọi chức năng của hợp đồng token.
  3. Người dùng ký giao dịch bằng khóa riêng thông qua ứng dụng ví.
  4. Giao dịch được gửi lên mạng Ethereum để xử lý.
  5. Nếu giao dịch hợp lệ, hợp đồng cập nhật số dư của địa chỉ gửi và địa chỉ nhận.
  6. Ví và trình khám phá blockchain đọc dữ liệu mới để hiển thị kết quả.

Ví không thực sự chứa token như một chiếc túi chứa vật thể. Số dư nằm trong trạng thái blockchain, còn ví giúp người dùng quản lý khóa và gửi yêu cầu giao dịch. Phần giải thích về cách ví blockchain quản lý tài sản sẽ giúp người mới hiểu rõ hơn mối quan hệ giữa địa chỉ, khóa riêng và số dư.

Chuyển token trực tiếp

Khi dùng transfer, chủ sở hữu tự gửi token từ địa chỉ của mình sang địa chỉ khác. Giao dịch chỉ được thực hiện nếu địa chỉ gửi có đủ số dư và đáp ứng các điều kiện trong hợp đồng.

Cấp quyền cho ứng dụng sử dụng token

Nhiều ứng dụng phi tập trung cần người dùng cấp quyền bằng approve trước khi hợp đồng của ứng dụng có thể gọi transferFrom. Ví dụ, một ứng dụng giao dịch có thể cần quyền sử dụng lượng token mà người dùng muốn hoán đổi.

Cấp quyền không đồng nghĩa token được chuyển ngay lập tức, nhưng bên được cấp quyền có thể sử dụng token trong phạm vi hạn mức. Người dùng cần đọc kỹ địa chỉ hợp đồng, tài sản và số lượng trước khi xác nhận. Việc cấp hạn mức không giới hạn có thể làm tăng thiệt hại nếu hợp đồng hoặc giao diện bị xâm nhập.

Phí giao dịch được thanh toán bằng gì?

Trên Ethereum, giao dịch token ERC-20 thường cần ETH để trả phí mạng. Token được chuyển không mặc nhiên thay thế ETH trong vai trò này. Phí phụ thuộc vào trạng thái mạng, mức tài nguyên mà giao dịch sử dụng và thông số người dùng thiết lập.

Nếu muốn hiểu vì sao thao tác với token cần phí, bạn có thể đọc về gas và hợp đồng thông minh trên Ethereum.

Phân biệt token ERC-20 với đồng tiền gốc của mạng

Ảnh minh hoạ: ERC-20 là gì? Cách hoạt động và kiểm tra contract

Trong ngữ cảnh blockchain, coin thường chỉ đồng tiền gốc được giao thức của một mạng hỗ trợ trực tiếp. Token được phát hành và quản lý thông qua hợp đồng thông minh chạy trên mạng đó. Bạn có thể tham khảo thêm cách phân biệt token, coin, NFT và stablecoin để tránh nhầm thuật ngữ.

Tiêu chí Token ERC-20 ETH trên Ethereum
Cách tồn tại Được quản lý bởi hợp đồng token Là tài sản gốc của giao thức Ethereum
Địa chỉ hợp đồng token Có địa chỉ hợp đồng riêng Không có địa chỉ hợp đồng ERC-20
Phí mạng Thường cần ETH để thực hiện giao dịch Được dùng để thanh toán phí mạng
Quy tắc cung và chuyển Do mã hợp đồng và cơ chế dự án quy định Do giao thức Ethereum quy định
Khả năng tạo mới Có thể triển khai qua hợp đồng thông minh Không thể tạo như một token ERC-20 thông thường
Có thể bạn chưa biết:  Blockchain là gì? Cách hoạt động và ứng dụng

ETH và WETH cũng không nên bị coi là cùng một loại tài sản về mặt kỹ thuật. ETH là đồng tiền gốc, trong khi WETH là token được thiết kế để đại diện cho ETH theo giao diện ERC-20 trong các ứng dụng. WETH có địa chỉ hợp đồng; ETH gốc thì không.

Một số mạng tương thích với Máy ảo Ethereum cũng sử dụng giao diện giống ERC-20. Tuy nhiên, tài sản trên mỗi mạng vẫn thuộc về mạng cụ thể. Cùng tên hoặc cùng ký hiệu không có nghĩa token trên hai mạng là một tài sản có thể chuyển trực tiếp cho nhau.

Cách kiểm tra contract token ERC-20

Địa chỉ hợp đồng, thường gọi là contract address, là dữ liệu quan trọng để xác định token trên một mạng. Không nên xác thực token chỉ bằng tên, ký hiệu hoặc logo vì bất kỳ ai cũng có thể tạo token mới với thông tin hiển thị giống một dự án đã tồn tại.

Bước 1: Xác định đúng mạng blockchain

Trước tiên, hãy kiểm tra token đang được nhắc đến trên Ethereum Mainnet hay một mạng khác. Một địa chỉ chỉ có ý nghĩa khi đi kèm đúng mạng. Việc chọn sai mạng có thể khiến ví không hiển thị tài sản hoặc làm giao dịch nạp, rút không đến đúng hệ thống nhận.

Khi chuyển tài sản giữa ví và sàn, cần đối chiếu cả token, mạng gửi và mạng nhận. Hướng dẫn chọn mạng nạp rút crypto an toàn giải thích chi tiết hơn về bước này.

Bước 2: Lấy địa chỉ từ kênh chính thức của dự án

Ưu tiên tìm contract address trong website hoặc tài liệu chính thức của dự án. Cần kiểm tra kỹ tên miền vì trang giả có thể sao chép toàn bộ giao diện của trang thật.

Không nên chỉ dựa vào:

  • Kết quả quảng cáo hoặc trang xuất hiện đầu tiên khi tìm kiếm.
  • Tin nhắn riêng tự nhận là bộ phận hỗ trợ.
  • Bài đăng từ tài khoản không xác minh được mối liên hệ với dự án.
  • Tên, ký hiệu hoặc logo hiển thị trong ví.
  • Địa chỉ được người lạ gửi trong nhóm trò chuyện.

Nếu có thể, hãy đối chiếu địa chỉ trên nhiều kênh chính thức có mối liên hệ rõ ràng với cùng dự án, chẳng hạn website, tài liệu và thông báo chính thức. Nếu các nguồn không trùng khớp, không nên giao dịch cho đến khi xác minh được nguyên nhân.

Bước 3: Đối chiếu trên trình khám phá blockchain

Chọn trình khám phá đúng với mạng, sau đó dán toàn bộ địa chỉ hợp đồng. Kiểm tra các thông tin sau:

  • Địa chỉ có trùng từng ký tự với nguồn chính thức hay không.
  • Trang đang hiển thị hợp đồng token hay một địa chỉ ví thông thường.
  • Tên và ký hiệu có phù hợp không, nhưng chỉ dùng như thông tin bổ trợ.
  • Lịch sử giao dịch và các sự kiện token có tồn tại hay không.
  • Mã nguồn hợp đồng có được công khai, xác minh trên trình khám phá hay không.
Có thể bạn chưa biết:  Thổ Nhĩ Kỳ bắt tay vào điều tra cựu CEO FTX Sam Bankman-Fried

Mã nguồn được xác minh giúp người dùng đối chiếu mã với hợp đồng đã triển khai, nhưng không phải chứng nhận rằng dự án an toàn. Một hợp đồng có mã nguồn công khai vẫn có thể chứa cơ chế bất lợi, lỗ hổng hoặc quyền quản trị tập trung.

Bước 4: Kiểm tra thông tin từ bên nhận

Nếu nạp token lên sàn hoặc dịch vụ lưu ký, hãy dùng chính trang nạp của tài khoản để kiểm tra tên tài sản, mạng được hỗ trợ và địa chỉ nhận. Việc một token tồn tại trên blockchain không có nghĩa bên nhận hỗ trợ token hoặc mạng đó.

Không suy đoán rằng hai token cùng ký hiệu là cùng tài sản. Một sàn có thể chỉ hỗ trợ một phiên bản token trên một số mạng nhất định.

Bước 5: Thử với lượng nhỏ khi cần thiết

Sau khi đã đối chiếu contract, mạng và địa chỉ nhận, giao dịch thử với lượng nhỏ có thể giúp phát hiện lỗi thao tác trước khi chuyển phần còn lại. Tuy nhiên, giao dịch thử không thay thế bước xác minh địa chỉ hợp đồng và cũng không chứng minh dự án uy tín.

Rủi ro cần biết khi sử dụng token ERC-20

Ảnh minh hoạ: ERC-20 là gì? Cách hoạt động và kiểm tra contract

Token giả mạo cùng tên và ký hiệu

Tên token không có tính duy nhất. Kẻ xấu có thể tạo một token mới với tên, biểu tượng và số chữ số thập phân giống tài sản thật. Contract address trên đúng mạng mới là dữ liệu nhận dạng cần đối chiếu.

Token lạ tự xuất hiện trong ví

Một địa chỉ có thể nhận token ngoài ý muốn. Không nên truy cập đường dẫn được gắn trong tên token, kết nối ví với website lạ hoặc ký giao dịch chỉ để bán một tài sản không rõ nguồn gốc. Việc token xuất hiện trong ví không có nghĩa tài khoản đã được nhận phần thưởng hợp pháp.

Quyền chi tiêu vẫn còn hiệu lực

Quyền đã cấp qua approve có thể tiếp tục tồn tại cho đến khi bị sử dụng hết hoặc được thay đổi. Người dùng nên định kỳ kiểm tra quyền của các ứng dụng từng kết nối và thu hồi những quyền không còn cần thiết bằng công cụ phù hợp với đúng mạng. Thao tác thay đổi quyền cũng có thể cần phí mạng.

Chuyển nhầm mạng hoặc sai địa chỉ

Giao dịch blockchain thường không có cơ chế hoàn tác mặc định. Trước khi ký, cần kiểm tra địa chỉ nhận, mạng, contract token, số lượng và phí. Không chia sẻ khóa riêng hoặc cụm từ khôi phục cho bất kỳ người nào tự nhận có thể lấy lại giao dịch.

Hợp đồng có quyền kiểm soát đặc biệt

Tùy cách triển khai, quản trị viên hợp đồng có thể có quyền phát hành thêm, tạm dừng giao dịch, chặn địa chỉ hoặc nâng cấp logic. Người dùng phổ thông có thể khó tự đánh giá mã nguồn; khi thiếu thông tin đáng tin cậy, cần coi đó là giới hạn thay vì suy đoán rằng token hoàn toàn phi tập trung.

Tóm tắt dành cho người mới

ERC-20 là tiêu chuẩn giúp các token có thể thay thế lẫn nhau tương tác nhất quán hơn với ví, sàn và ứng dụng trên Ethereum. Các chức năng quan trọng gồm kiểm tra số dư, chuyển token, cấp quyền và chuyển token theo quyền đã cấp.

Token ERC-20 khác ETH ở chỗ token được quản lý bởi hợp đồng riêng, còn ETH là đồng tiền gốc của mạng Ethereum và được dùng để trả phí. Khi xác minh một token, cần kiểm tra đồng thời đúng mạng và đúng contract address.

Tên, ký hiệu, logo hoặc việc token tự xuất hiện trong ví không phải bằng chứng xác thực. Quy trình an toàn là lấy địa chỉ từ nguồn chính thức, đối chiếu toàn bộ địa chỉ trên trình khám phá đúng mạng, kiểm tra thông tin của bên nhận và cân nhắc giao dịch thử. Nếu nguồn cung cấp contract mâu thuẫn hoặc không thể xác minh, lựa chọn thận trọng là chưa tương tác với token.