Mua Crypto
Thị trường
Spot
FuturesBTC
Tiết kiệm
Trung tâm sự kiện
Trung tâm thưởng
Xem thêm
Lễ hội 0 phí
ERC-20: ERC-20 là gì?ERC-20 là tiêu chuẩn token trên Ethereum quy định interface chung cho các tài sản crypto có thể thay thế được tạo thông qua hợp đồng thông minh.Có thể thay thế nghĩa là các đơn vị bằng nhERC-20: ERC-20 là gì?ERC-20 là tiêu chuẩn token trên Ethereum quy định interface chung cho các tài sản crypto có thể thay thế được tạo thông qua hợp đồng thông minh.Có thể thay thế nghĩa là các đơn vị bằng nh

ERC-20

2026/10/13 15:30
#Intermediate
Humanity
H$0.05873+2.87%
Gravity
G$0.003987+4.34%
TokenFi
TOKEN$0.001965+4.02%
o1.exchange
O$0.4344+1.75%
MemeCore
M$0.76999-1.73%

ERC-20 là gì?

ERC-20 là tiêu chuẩn token trên Ethereum quy định interface chung cho các tài sản crypto có thể thay thế được tạo thông qua hợp đồng thông minh.Có thể thay thế nghĩa là các đơn vị bằng nhau của cùng một token có thể hoán đổi cho nhau theo quy tắc hạch toán của hợp đồng token.Ví dụ, một đơn vị đầy đủ của token ERC-20 thông thường có cùng các thuộc tính được hợp đồng quy định như một đơn vị khác của token đó.

Đặc tả ERC-20 chính thức quy định các hàm kiểm tra nguồn cung và số dư token, chuyển token và ủy quyền cho bên thứ ba sử dụng token.

Tiêu chuẩn này cũng quy định các sự kiện dùng chung, cho phép ví và ứng dụng theo dõi giao dịch chuyển token và thay đổi phê duyệt.ERC-20 là tiêu chuẩn Ethereum Request for Comments ở trạng thái Final và vẫn là nền tảng kỹ thuật chính cho token có thể thay thế trong các hệ sinh thái tương thích Ethereum.Tiêu chuẩn này cải thiện khả năng tương tác vì ví, hợp đồng thông minh, trình khám phá blockchain, hệ thống lưu ký và các ứng dụng crypto khác có thể sử dụng cùng những phương thức cơ bản cho nhiều token khác nhau.ERC-20 không xác định giá token, chính sách nguồn cung, phân loại pháp lý, tiện ích, tài sản bảo chứng, quyền quản trị hoặc chất lượng đầu tư.

ERC có nghĩa là gì?

ERC là viết tắt của Ethereum Request for Comments.ERC mô tả tiêu chuẩn hoặc quy ước ở cấp ứng dụng mà nhà phát triển có thể triển khai trong hợp đồng thông minh Ethereum và phần mềm liên quan.Số 20 xác định đề xuất đã giới thiệu interface token có thể thay thế này.Số này không liên quan đến số lượng token, số chữ số thập phân, mạng được hỗ trợ hoặc hàm của hợp đồng.ERC-20 cũng thường được gọi là EIP-20 vì tài liệu này thuộc quy trình Ethereum Improvement Proposal.

Vì sao ERC-20 ra đời?

Trước khi có tiêu chuẩn token có thể thay thế dùng chung, mỗi hợp đồng thông minh có thể cung cấp tên hàm và quy tắc khác nhau để kiểm tra số dư, chuyển token và ủy quyền sử dụng.Ví cần mã tích hợp tùy chỉnh cho từng token.Ứng dụng phi tập trung không thể an toàn giả định rằng hai hợp đồng token hỗ trợ cùng các thao tác.ERC-20 tạo ra một interface chung tối thiểu để một ứng dụng có thể tương tác với nhiều token có thể thay thế.Khả năng tương tác này giúp số dư token được sử dụng trong thanh toán, quản trị, cho vay, hệ thống thanh khoản, vault, trò chơi, chương trình phần thưởng và các ứng dụng crypto khác.Tiêu chuẩn được thiết kế có phạm vi hạn chế để nhà phát triển có thể bổ sung hành vi chuyên biệt mà không thay đổi interface cơ bản.

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

Token ERC-20 được kiểm soát bởi hợp đồng thông minh triển khai trên Ethereum hoặc blockchain tương thích.Hợp đồng ghi lại số lượng đơn vị token mà mỗi địa chỉ sở hữu.Hợp đồng cũng ghi lại tổng nguồn cung token và các hạn mức chi tiêu mà chủ sở hữu cấp cho bên được ủy quyền.Khi giao dịch chuyển hợp lệ diễn ra, hợp đồng giảm số dư của người gửi và tăng số dư của người nhận.

Hợp đồng phát ra sự kiện

Transfer
để phần mềm bên ngoài có thể theo dõi việc chuyển token.

Khi chủ sở hữu phê duyệt bên chi tiêu, hợp đồng cập nhật hạn mức và phát ra sự kiện

Approval
.

Các node blockchain thực thi quy tắc của hợp đồng và xác minh mọi thay đổi trạng thái được chấp nhận đều hợp lệ.Hợp đồng token không duy trì một blockchain riêng vì nó hoạt động trong trạng thái và mô hình bảo mật của mạng chủ.

Các hàm cốt lõi của ERC-20

Interface ERC-20 bắt buộc bao gồm sáu hàm chính.

Các hàm này là

totalSupply
,
balanceOf
,
transfer
,
allowance
,
approve
và
transferFrom
.

Tiêu chuẩn cũng mô tả các hàm metadata tùy chọn

name
,
symbol
và
decimals
.

Mint, burn, tạm dừng, đánh thuế, bỏ phiếu, đóng băng và giới hạn nguồn cung không bắt buộc trong interface cốt lõi.Token có thể bổ sung các tính năng này thông qua logic tùy chỉnh hoặc tiện ích mở rộng tiêu chuẩn.

Hàm totalSupply

Hàm

totalSupply
trả về số lượng đơn vị token hiện được tính trong nguồn cung mà token báo cáo.

Giá trị được biểu thị bằng đơn vị nội bộ nhỏ nhất của token.Giá trị này không tự động cho biết nguồn cung tối đa có thể có.Hợp đồng có thể cho phép mint thêm token sau này, ngay cả khi tổng nguồn cung hiện tại thấp hơn nhiều so với mức tối đa được công bố.Token cũng có thể hỗ trợ burn, làm giảm tổng nguồn cung hiện tại.

Người dùng nên xem xét quyền mint và các biện pháp kiểm soát nguồn cung thay vì xem

totalSupply
là bằng chứng về sự khan hiếm vĩnh viễn.

Hàm balanceOf

Hàm

balanceOf
trả về số dư token được ghi nhận cho một địa chỉ cụ thể.

Kết quả được biểu thị bằng đơn vị nội bộ nhỏ nhất của token.Số dư hiển thị trong ví thường được tính bằng cách định dạng số nguyên này theo cài đặt decimals của token.Hàm chỉ báo cáo số dư trong một hợp đồng token.Hàm không bao gồm các token có tên tương tự được tạo tại địa chỉ hợp đồng khác hoặc trên mạng khác.Một số token bất thường có thể thay đổi số dư thông qua rebasing hoặc logic hạch toán khác mà không phát ra giao dịch chuyển thông thường cho từng holder.

Hàm transfer

Hàm

transfer
chuyển một lượng token cụ thể từ số dư của người gọi đến người nhận.

Người gọi phải có đủ token để hoàn tất thao tác.

Giao dịch chuyển thành công phải phát ra sự kiện

Transfer
.

Đặc tả ERC-20 yêu cầu giao dịch chuyển có giá trị 0 được xử lý như giao dịch chuyển thông thường và phát ra sự kiện.Theo tiêu chuẩn, hàm trả về giá trị Boolean thể hiện thành công.

Ứng dụng không được giả định rằng hàm không bao giờ có thể trả về

false
.

Nhiều bản triển khai hiện đại hoàn tác khi thất bại thay vì trả về

false
, nhưng hệ thống tích hợp phải tính đến hành vi của từng token cụ thể.

Hàm approve

Hàm

approve
cho phép chủ sở hữu token đặt số token mà một bên chi tiêu có thể chuyển từ số dư của chủ sở hữu.

Bên chi tiêu không nhận token ngay lập tức.

Thay vào đó, hợp đồng ghi lại hạn mức mà bên chi tiêu có thể dùng sau này thông qua

transferFrom
.

Phê duyệt áp dụng cho một chủ sở hữu, một bên chi tiêu và một hợp đồng token.Phê duyệt trên một mạng hoặc hợp đồng token không tự động cho phép sử dụng token ở nơi khác.Người dùng nên xem giao dịch phê duyệt là quyền tài chính, không phải thao tác kết nối ví vô hại.

Hàm allowance

Hàm

allowance
báo cáo số token mà bên chi tiêu hiện được phép chuyển từ chủ sở hữu.

Giá trị có thể giảm khi bên chi tiêu sử dụng

transferFrom
.

Chủ sở hữu có thể cập nhật số lượng thông qua một giao dịch phê duyệt khác.Một số bản triển khai xem số nguyên không dấu tối đa là phê duyệt không giới hạn và có thể không giảm giá trị đó sau mỗi lần chuyển.Phê duyệt không giới hạn vẫn nguy hiểm khi bên chi tiêu còn quyền truy cập và chủ sở hữu có số dư token.Người dùng nên kiểm tra và thu hồi các quyền không còn cần thiết.

Hàm transferFrom

Hàm

transferFrom
cho phép bên chi tiêu được phê duyệt chuyển token từ chủ sở hữu đến người nhận.

Bên chi tiêu cần có hạn mức đủ lớn và chủ sở hữu cần có số dư đủ lớn.Lệnh gọi thành công thường làm giảm hạn mức khả dụng, trừ khi cách triển khai xem đó là phê duyệt không giới hạn.

Hàm phải phát ra sự kiện

Transfer
cho giao dịch chuyển token.

Mô hình chuyển token được ủy quyền này cho phép hợp đồng thông minh thu tiền thanh toán, nhận khoản nạp, khóa tài sản thế chấp hoặc thực hiện các thao tác khác đã được phê duyệt.Mô hình này cũng tạo ra rủi ro vì bên chi tiêu độc hại hoặc bị xâm phạm có thể sử dụng hạn mức còn lại mà không cần chủ sở hữu phê duyệt từng giao dịch.

Sự kiện ERC-20

Tiêu chuẩn ERC-20 định nghĩa các sự kiện

Transfer
và
Approval
.

Sự kiện là nhật ký giao dịch mà ứng dụng off-chain có thể lập chỉ mục hiệu quả.Ví, công cụ phân tích, hệ thống kế toán và trình khám phá blockchain sử dụng các nhật ký này để theo dõi hoạt động token.Sự kiện luôn cần được diễn giải cùng địa chỉ hợp đồng đã phát ra sự kiện đó.Hợp đồng độc hại có thể sử dụng các tên sự kiện quen thuộc nhưng không đại diện cho token xác thực hoặc có giá trị.

Sự kiện Transfer

Sự kiện

Transfer
ghi lại người gửi, người nhận và số lượng token.

Giao dịch chuyển thông thường sử dụng địa chỉ người gửi và người nhận khác 0.Việc tạo token thường được biểu thị bằng giao dịch chuyển từ địa chỉ 0 đến người nhận.Việc hủy token thường được biểu thị bằng giao dịch chuyển từ holder đến địa chỉ 0.

Đặc tả ERC-20 yêu cầu token mới được tạo phát ra sự kiện

Transfer
từ địa chỉ 0 khi cách triển khai tạo nguồn cung.

Sự kiện mint được quan sát thấy không chứng minh rằng không thể mint thêm trong tương lai.

Sự kiện Approval

Sự kiện

Approval
ghi lại chủ sở hữu, bên chi tiêu và giá trị hạn mức.

Ứng dụng có thể sử dụng sự kiện này để theo dõi thay đổi trong quyền chi tiêu được ủy quyền.Bản thân phê duyệt không chuyển token hoặc thay đổi quyền sở hữu.

Phê duyệt cho phép bên chi tiêu dùng

transferFrom
trong phạm vi số lượng được cấp quyền.

Thu hồi hạn mức không đảo ngược các giao dịch chuyển token đã diễn ra trong thời gian quyền còn hiệu lực.

Tên và symbol ERC-20

Các hàm

name
và
symbol
cung cấp thông tin dễ đọc về token.

Tên có thể mô tả tài sản, còn symbol cung cấp nhãn hiển thị ngắn hơn.Cả hai hàm đều tùy chọn theo đặc tả ERC-20 ban đầu.Tên và symbol không có tính duy nhất.Bất kỳ ai cũng có thể triển khai token sao chép tên và symbol của một tài sản khác.Ví và người dùng nên xác minh địa chỉ hợp đồng đầy đủ và mạng blockchain thay vì chỉ dựa vào thương hiệu.

Decimals ERC-20 là gì?

Hàm

decimals
tùy chọn cho ứng dụng biết cách định dạng đơn vị nhỏ nhất của token để hiển thị dễ đọc.

Token có 18 decimals chia lượng số nguyên nội bộ cho 10 mũ 18 để hiển thị theo cách thông thường.Ví dụ, lượng nội bộ 1.000.000 đơn vị tương đương một token nếu token sử dụng sáu decimals.Decimals không khiến số dư blockchain trở thành số dấu phẩy động.Hợp đồng thông minh hạch toán token bằng số nguyên.Giá trị decimals ảnh hưởng đến cách hiển thị và đơn vị đo, chứ không thay đổi mô hình số học cơ bản.

18 decimals là giá trị phổ biến và là mặc định trong bản triển khai ERC-20 của OpenZeppelin hiện hành, nhưng token ERC-20 có thể dùng giá trị khác.

Mô hình nguồn cung ERC-20

ERC-20 không quy định cách tạo nguồn cung token.Token có nguồn cung cố định có thể mint toàn bộ nguồn cung khi triển khai và không cung cấp hàm mint về sau.Token có giới hạn nguồn cung có thể cho phép mint đến khi đạt mức tối đa được quy định trong hợp đồng.Token không giới hạn nguồn cung có thể cho phép tài khoản được ủy quyền hoặc quy trình giao thức tạo thêm đơn vị mà không có mức tối đa vĩnh viễn.Token thuật toán có thể điều chỉnh nguồn cung theo các điều kiện được lập trình.Token wrapped có thể phát hành đơn vị khi tài sản cơ sở được nạp và burn đơn vị khi tài sản đó được rút.

Hướng dẫn nguồn cung ERC-20 chính thức giải thích rằng cần bổ sung logic nguồn cung vào bản triển khai cơ sở thông qua cơ chế mint phù hợp.

Mint token ERC-20

Mint tạo đơn vị token mới và tăng tổng nguồn cung.Interface ERC-20 cốt lõi không định nghĩa hàm mint công khai hoặc quy định ai có thể gọi hàm đó.Token có thể giới hạn quyền mint cho quản trị viên, quy trình quản trị, bridge, hệ thống staking, vault hoặc một quyền hạn khác do hợp đồng quy định.Quyền mint không an toàn có thể làm pha loãng người nắm giữ hiện tại hoặc phá vỡ các giả định về tài sản thế chấp.Người dùng nên kiểm tra liệu có thể mint hay không, ai kiểm soát quyền này, có giới hạn nguồn cung hay không và cách triển khai có thể được nâng cấp hay không.Tuyên bố token có nguồn cung cố định cần được xác minh qua logic hợp đồng đã triển khai và các quyền đặc biệt.

Burn token ERC-20

Burn hủy đơn vị token và thường làm giảm tổng nguồn cung.Tiêu chuẩn cốt lõi không yêu cầu phải có hàm burn công khai dành cho holder.Cách triển khai có thể cho phép holder burn token của mình hoặc cho phép bên chi tiêu được phê duyệt burn token thông qua hạn mức.Các hệ thống khác chỉ burn token khi quy đổi, quyết toán hoặc thực hiện thao tác giao thức.Gửi token đến địa chỉ không thể truy cập không phải lúc nào cũng giống với burn token ở cấp hợp đồng vì tổng nguồn cung được báo cáo có thể không thay đổi.Người dùng nên kiểm tra logic burn thực tế của token trước khi diễn giải dữ liệu nguồn cung.

Phê duyệt ERC-20 và điều kiện chạy đua allowance

Thay đổi trực tiếp một hạn mức khác 0 sang một lượng khác 0 có thể tạo ra rủi ro về thứ tự giao dịch.Bên chi tiêu có thể sử dụng hạn mức cũ trước khi phê duyệt thay thế của chủ sở hữu được xác nhận, rồi nhận hạn mức mới sau đó.Đặc tả ERC-20 ban đầu lưu ý giao diện người dùng nên đặt hạn mức về 0 trước khi gán một giá trị khác 0.Bản thân hợp đồng token không nên bắt buộc quy trình này vì điều đó sẽ làm giảm khả năng tương thích với các ứng dụng cũ.Thay đổi tăng hoặc giảm hạn mức thông qua các hàm hỗ trợ được thiết kế cẩn thận có thể cải thiện trải nghiệm, nhưng mức độ hỗ trợ khác nhau giữa các cách triển khai.Người dùng nên tránh để hạn mức lớn hơn mức ứng dụng cần một cách hợp lý.

Phê duyệt token không giới hạn

Phê duyệt không giới hạn thường đặt hạn mức bằng giá trị tối đa của số nguyên không dấu 256 bit.Cách này giảm nhu cầu gửi giao dịch phê duyệt mới trước mỗi lần tương tác.Đồng thời, cách này trao cho bên chi tiêu quyền tiếp tục sử dụng số dư hiện tại và số dư tương lai của token đó.Nếu hợp đồng bên chi tiêu bị khai thác, bị nâng cấp độc hại hoặc do quản trị viên bị xâm phạm kiểm soát, hạn mức có thể bị sử dụng để lấy token của holder.Cần cân nhắc sự tiện lợi so với phạm vi và thời hạn của quyền được cấp.Hạn mức giới hạn có thể giảm mức thua lỗ tối đa từ một bên chi tiêu bị xâm phạm.

ERC-2612 Permit là gì?

ERC-2612 là tiện ích mở rộng cho phép chủ sở hữu ERC-20 tạo hạn mức bằng thông điệp đã ký.Tài khoản hoặc hợp đồng thông minh khác có thể gửi quyền đã ký đó lên on-chain.Cách này có thể gộp thao tác phê duyệt và thao tác ứng dụng trong một quy trình người dùng.

Đặc tả permit ERC-2612 chính thức bổ sung các hàm

permit
,
nonces
và
DOMAIN_SEPARATOR
vào ERC-20.

Mỗi permit thành công sử dụng một nonce để thông thường không thể dùng lại cùng chữ ký.Thời hạn giới hạn khoảng thời gian chữ ký còn hiệu lực.Hỗ trợ permit là tùy chọn và không thuộc interface ERC-20 cốt lõi ban đầu.

Rủi ro chữ ký permit

Chữ ký permit có thể cấp quyền sử dụng token dù việc ký không lập tức gửi giao dịch on-chain từ chủ sở hữu.Trang web phishing có thể giới thiệu permit như thao tác đăng nhập, xác minh hoặc thông điệp gasless vô hại.Bên chi tiêu có thể gửi permit đã ký hợp lệ sau đó và sử dụng hạn mức được tạo trước khi chữ ký hết hạn.Người dùng nên kiểm tra token, bên chi tiêu, số lượng, mạng, nonce và thời hạn trước khi ký.Không nên xem yêu cầu chữ ký là an toàn chỉ vì ví cho biết không cần thanh toán gas.Ví hợp đồng có thể cần hỗ trợ xác thực chữ ký bổ sung ngoài mô hình tài khoản do bên ngoài sở hữu cơ bản.

ERC-20 có tự động gọi callback của bên nhận không?

Các hàm chuyển ERC-20 cốt lõi không yêu cầu hợp đồng thông minh nhận xác nhận đã nhận token.Do đó, giao dịch chuyển vẫn có thể thành công ngay cả khi hợp đồng nhận không có hàm ghi nhận hoặc trả lại token.Điều này có thể khiến tài sản bị kẹt trong các hợp đồng không tương thích.ERC-20 cũng không tự động gọi mã của bên nhận sau giao dịch chuyển thông thường.

Tiện ích mở rộng ERC-1363 bổ sung các thao tác chuyển và gọi, phê duyệt và gọi dành cho ứng dụng cần hành vi callback.

Các tiện ích mở rộng hỗ trợ callback tạo thêm lệnh gọi bên ngoài và cần được kiểm tra về rủi ro reentrancy cũng như bảo mật của bên nhận.

SafeERC20 và token không theo chuẩn

Đặc tả ERC-20 quy định bên gọi phải xử lý giá trị trả về

false
.

Trên thực tế, một số hợp đồng token cũ hoặc bất thường không trả về giá trị Boolean ngay cả khi giao dịch chuyển thành công.

Một số cách triển khai khác hoàn tác khi thất bại thay vì trả về

false
.

Lệnh gọi trực tiếp đến interface nếu giả định chỉ có một kiểu hành vi có thể thất bại hoặc hiểu sai kết quả.

Tiện ích SafeERC20 hiện hành bao bọc các thao tác token và xử lý token trả về

false
cũng như một số token không trả về giá trị.

Wrapper giúp cải thiện khả năng tương thích nhưng không thể khiến token độc hại trở nên an toàn về mặt kinh tế.

Token thu phí khi chuyển

Token thu phí khi chuyển sẽ khấu trừ một khoản phí trong quá trình di chuyển token.Người nhận nhận được ít hơn lượng mà người gửi hoặc hợp đồng gọi yêu cầu.Giao thức ghi nhận số lượng được yêu cầu thay vì đo lượng thực nhận có thể rơi vào tình trạng thiếu tài sản bảo chứng.Ứng dụng hỗ trợ hành vi token này nên so sánh số dư token trước và sau khi chuyển.Quy tắc tính phí cũng có thể thay đổi nếu hợp đồng có thể nâng cấp hoặc do quản trị viên kiểm soát.Tên hàm ERC-20 tiêu chuẩn không đảm bảo kết quả chuyển token cố định.

Token ERC-20 rebasing

Token rebasing thay đổi số dư tài khoản theo quy trình điều chỉnh do hợp đồng quy định.

Số dư hiển thị qua

balanceOf
có thể tăng hoặc giảm mà không cần người nắm giữ khởi tạo một giao dịch chuyển thông thường.

Rebase dương làm tăng số dư hiển thị, còn rebase âm làm giảm số dư đó.Một số hệ thống sử dụng share nội bộ và tính số dư hiển thị thông qua tỷ giá chuyển đổi.Ứng dụng cho rằng số dư chỉ thay đổi thông qua giao dịch chuyển có thể hạch toán sai token rebasing.Người dùng nên tìm hiểu token đại diện cho số dư đơn vị cố định hay quyền đòi tài sản theo tỷ lệ có thể thay đổi.

Token ERC-20 wrapped

Token ERC-20 wrapped đại diện cho một tài sản khác thông qua hợp đồng thông minh hoặc thỏa thuận lưu ký.Người dùng có thể nạp tài sản cơ sở và nhận các đơn vị ERC-20 tương ứng.Thông thường, để quy đổi, token wrapped được burn hoặc trả lại và tài sản cơ sở được giải phóng.Giá trị của token wrapped phụ thuộc vào tính sẵn có và độ tin cậy của cơ chế bảo chứng.Lỗ hổng hợp đồng thông minh, sự cố lưu ký, lỗi bridge, tài sản thế chấp bị đóng băng hoặc hạch toán không chính xác có thể phá vỡ mối quan hệ dự kiến.Tuân thủ ERC-20 chỉ chứng minh khả năng tương thích interface, không chứng minh có đủ tài sản bảo chứng.

Token quản trị ERC-20

Token ERC-20 có thể được mở rộng để đại diện cho quyền biểu quyết trong hệ thống quản trị on-chain.Quyền bỏ phiếu có thể phụ thuộc vào số dư hiện tại, số dư được ủy quyền hoặc các mốc số dư trong quá khứ.

Thư viện triển khai ERC-20 hiện hành có tiện ích mở rộng bỏ phiếu ERC-20 cho việc ủy quyền và truy vấn quyền biểu quyết trong quá khứ.

Nắm giữ token quản trị không nhất thiết tự động kích hoạt quyền bỏ phiếu vì một số hệ thống yêu cầu ủy quyền.Hoạt động bỏ phiếu bằng token cũng có thể chịu ảnh hưởng của quyền sở hữu tập trung, tài sản đi vay, tỷ lệ tham gia thấp và quyền của quản trị viên.Tiêu chuẩn ERC-20 cốt lõi không quy định quy tắc quản trị.

Share vault ERC-20

Token ERC-20 có thể đại diện cho share trong vault token hóa.Mỗi share đại diện cho quyền đòi theo tỷ lệ đối với tài sản do vault quản lý, thay vì một đơn vị cố định của token cơ sở.

Tiêu chuẩn vault token hóa ERC-4626 mở rộng ERC-20 bằng các hàm chuẩn hóa để nạp, rút, mint, quy đổi và chuyển đổi.

Giá trị của share vault tính theo tài sản cơ sở có thể tăng hoặc giảm tùy theo hiệu suất chiến lược, phí, thua lỗ và quy tắc kế toán.Chỉ tương thích ERC-20 không cho biết điều gì bảo chứng cho token share hoặc cách quy đổi token đó.

Thông báo lỗi ERC-20

Tiêu chuẩn ERC-20 ban đầu ra đời trước các custom error của Solidity và không định nghĩa bộ thông báo lỗi tiêu chuẩn.

Các token khác nhau có thể trả về

false
, hoàn tác kèm thông báo văn bản, hoàn tác kèm custom error hoặc hoạt động không chính xác.

Tiêu chuẩn ERC-6093 ở trạng thái Final định nghĩa các custom error có cấu trúc cho những lỗi token thường gặp.

Ví dụ gồm lỗi số dư không đủ, người gửi không hợp lệ, người nhận không hợp lệ, hạn mức không đủ, bên phê duyệt không hợp lệ và bên chi tiêu không hợp lệ.Lỗi tiêu chuẩn hóa có thể giúp ví và ứng dụng giải thích lỗi nhất quán hơn.ERC-6093 không thay đổi interface ERC-20 cốt lõi hoặc yêu cầu mọi token hiện có phải sử dụng các lỗi này.

ERC-20 có sử dụng ERC-165 không?

Tiêu chuẩn ERC-20 ban đầu không yêu cầu nhận diện interface ERC-165.

Ứng dụng không thể giả định rằng gọi

supportsInterface
sẽ nhận diện được mọi token ERC-20.

Phần mềm thường xác định khả năng tương thích thông qua ABI hợp đồng, mã nguồn đã xác minh, danh sách token đã biết, dữ liệu registry và kiểm thử trực tiếp các hàm.Các selector hàm quen thuộc không chứng minh rằng hợp đồng tuân thủ đầy đủ tiêu chuẩn.Hợp đồng độc hại có thể mô phỏng một phần interface trong khi thực hiện hành vi có hại hoặc ngoài dự kiến.

ERC-20 và ETH gốc

ETH là tài sản crypto gốc của Ethereum và bản thân ETH không phải token ERC-20.Tài khoản Ethereum có thể gửi ETH gốc thông qua giao dịch chuyển giá trị ở cấp giao thức.Số dư ERC-20 tồn tại bên trong từng hợp đồng thông minh.Thanh toán phí giao dịch Ethereum cần ETH ngay cả khi tài sản được chuyển là token ERC-20, trừ khi có hệ thống riêng tài trợ hoặc trừu tượng hóa phí.Dạng ERC-20 đại diện cho ETH có thể được tạo cho các ứng dụng cần interface token, nhưng tài sản wrapped đó vẫn khác ETH gốc.

ERC-20 và ERC-721

ERC-20 biểu thị số dư có thể thay thế, còn ERC-721 biểu thị các token không thể thay thế được nhận diện riêng lẻ.Tài khoản ERC-20 sở hữu một lượng đơn vị có thể hoán đổi.Tài khoản ERC-721 sở hữu các token ID riêng biệt.ERC-20 thường sử dụng định dạng decimals, trong khi một token ERC-721 thường được chuyển dưới dạng một đơn vị độc nhất hoàn chỉnh.ERC-721 cũng có các bước kiểm tra receiver khi chuyển an toàn, còn tiêu chuẩn ERC-20 cốt lõi thì không.

ERC-20 và ERC-1155

ERC-20 quản lý một loại token có thể thay thế theo mỗi interface hợp đồng.ERC-1155 cho phép một hợp đồng quản lý nhiều token ID với số dư riêng.Các token ID ERC-1155 đó có thể đại diện cho tài sản có thể thay thế, bán thay thế hoặc độc nhất.ERC-1155 cũng định nghĩa thao tác chuyển hàng loạt và callback của bên nhận.Tiêu chuẩn phù hợp tùy thuộc vào việc dự án cần một tài sản có thể thay thế hay nhiều loại tài sản do một hợp đồng quản lý.

Các trường hợp sử dụng phổ biến của ERC-20

Token duy trì giá trị có thể sử dụng ERC-20 để đại diện cho các đơn vị có thể chuyển, gắn với quỹ dự trữ, hệ thống tài sản thế chấp hoặc cơ chế thuật toán.Hệ thống quản trị có thể sử dụng số dư ERC-20 hoặc đơn vị được ủy quyền làm quyền biểu quyết.Trò chơi blockchain có thể sử dụng token ERC-20 làm tiền tệ, phần thưởng hoặc tài nguyên có thể thay thế.Vault và hệ thống staking có thể phát hành token biên nhận ERC-20 đại diện cho vị thế đã nạp.Tài sản wrapped có thể sử dụng ERC-20 để đại diện cho quyền đòi tài sản được nắm giữ ở nơi khác.Dự án cũng có thể dùng tiêu chuẩn này cho điểm khách hàng thân thiết, tín dụng truy cập, đơn vị thanh toán hoặc quyền đòi tài chính được token hóa.Interface không quyết định một trường hợp sử dụng cụ thể có hợp pháp, được bảo chứng đầy đủ, phi tập trung hoặc bền vững về kinh tế hay không.

Rủi ro hợp đồng thông minh ERC-20

Cách triển khai ERC-20 có thể có lỗi trong logic chuyển token, hạn mức, mint, burn, thuế hoặc kiểm soát quyền truy cập.Quản trị viên có quyền đặc biệt có thể tạm dừng giao dịch, đóng băng số dư, chặn địa chỉ, mint nguồn cung, thay đổi phí hoặc nâng cấp hợp đồng.Nâng cấp proxy có thể thay đổi hành vi token sau khi holder đã sở hữu token.Lệnh gọi bên ngoài trong logic token tùy chỉnh có thể tạo rủi ro reentrancy hoặc từ chối dịch vụ.Tích hợp không chính xác có thể làm mất tiền ngay cả khi token hoạt động đúng theo mã.Tuân thủ tiêu chuẩn cải thiện khả năng tương tác nhưng không thay thế kiểm toán, kiểm thử, rà soát mã nguồn và phân tích quyền hạn.

Phishing phê duyệt token

Phishing phê duyệt tìm cách thuyết phục người dùng ủy quyền cho bên chi tiêu độc hại.Giao diện có thể mô tả thao tác này là xác minh, kết nối, đủ điều kiện nhận thưởng hoặc khôi phục tài khoản.

Sau khi phê duyệt được xác nhận, bên chi tiêu có thể dùng

transferFrom
để lấy token trong phạm vi hạn mức.

Chữ ký permit có thể tạo quyền tương tự mà không cần nạn nhân gửi ngay giao dịch phê duyệt on-chain.Người dùng nên xác minh hợp đồng token, địa chỉ bên chi tiêu, lượng hạn mức, mạng và mục đích của mọi giao dịch phê duyệt hoặc permit.Không bao giờ nhập cụm từ khôi phục hoặc khóa riêng tư vào ứng dụng để hủy hạn mức ERC-20.

Lừa đảo chuyển token

Kẻ lừa đảo có thể gửi token ERC-20 không xác định đến ví mà không cần chủ sở hữu cho phép.Tên, symbol hoặc metadata của token có thể chứa trang web hoặc tuyên bố gây hiểu nhầm.Tương tác với trang được quảng bá có thể dẫn đến phê duyệt hoặc chữ ký độc hại.Kẻ tấn công cũng có thể tạo địa chỉ trông giống địa chỉ trong lịch sử giao dịch của người dùng.Người dùng nên sao chép địa chỉ đã xác minh từ nguồn đáng tin cậy thay vì chọn địa chỉ nhận chỉ dựa trên một vài ký tự đầu và cuối giống nhau.Việc nhận token không xác định không yêu cầu chủ ví phải tương tác với token đó.

Nhà phát triển nên triển khai ERC-20 như thế nào?

Nhìn chung, nhà phát triển nên bắt đầu bằng một bản triển khai đã được rà soát và duy trì tích cực.

Hướng dẫn phát triển ERC-20 hiện hành cung cấp các hợp đồng cốt lõi và tiện ích mở rộng cho permit, giới hạn nguồn cung, burn, tạm dừng, bỏ phiếu, wrapped, vault và các chức năng khác.

Việc tạo nguồn cung cần được quy định rõ và bảo vệ bằng kiểm soát quyền truy cập phù hợp.Các tùy chỉnh giao dịch chuyển cần duy trì các bất biến về số dư, nguồn cung, sự kiện và hạn mức.Nhà phát triển nên kiểm thử giao dịch chuyển giá trị 0, giá trị tối đa, số dư không đủ, hạn mức không đủ, mint, burn, phê duyệt và giao dịch chuyển liên quan đến địa chỉ bất thường.

Cũng cần kiểm thử tích hợp với token trả về

false
, không trả về giá trị, thu phí khi chuyển, rebasing, bị tạm dừng và hỗ trợ callback nếu các tài sản đó được hỗ trợ.

Cách người dùng đánh giá token ERC-20

Bước đầu tiên là xác minh mạng blockchain và địa chỉ hợp đồng token đầy đủ.Bước thứ hai là kiểm tra nguồn cung hiện tại, các tuyên bố về nguồn cung tối đa và quyền mint.Bước thứ ba là xem xét quyền quản trị viên, tạm dừng, đóng băng, danh sách chặn, phí và nâng cấp.Bước thứ tư là xác định token có được bảo chứng bằng tài sản khác hay không và cơ chế quy đổi hoạt động như thế nào.Bước thứ năm là tìm hiểu phí chuyển, hành vi rebasing, các hạn chế và tác động bất thường đến ví.Bước thứ sáu là xem xét kiểm toán, mã nguồn đã xác minh và lịch sử sự cố, nhưng không xem bất kỳ cuộc kiểm toán nào là sự đảm bảo.Bước thứ bảy là kiểm tra mức độ tập trung holder, thanh khoản hiện có và điều kiện khiến thanh khoản có thể biến mất.Bước thứ tám là tìm hiểu nguồn nhu cầu hoặc lợi suất thực tế thay vì dựa vào thương hiệu token.Bước thứ chín là kiểm tra các phê duyệt trước và sau khi sử dụng hợp đồng thông minh không quen thuộc.Bước thứ mười là thử nghiệm token hoặc hợp đồng mới với lượng nhỏ trước khi đưa vào số vốn đáng kể.

Ví dụ về giao dịch chuyển ERC-20

Giả sử Alice sở hữu 500 đơn vị token ERC-20 và muốn gửi 75 đơn vị cho Bob.Ví của Alice xác nhận blockchain, hợp đồng token, địa chỉ người nhận, số lượng và phí giao dịch chính xác.

Ví gửi giao dịch gọi hàm

transfer
của token.

Hợp đồng token xác minh Alice có ít nhất 75 đơn vị.Hợp đồng giảm số dư của Alice xuống còn 425 đơn vị và tăng số dư của Bob thêm 75 đơn vị.

Hợp đồng phát ra sự kiện

Transfer
chứa địa chỉ Alice, địa chỉ Bob và số lượng được chuyển.

Các validator Ethereum đưa giao dịch vào một khối và các node độc lập xác minh thay đổi trạng thái phát sinh.Sau khi giao dịch được xác nhận, ví và ứng dụng có thể đọc số dư đã cập nhật từ hợp đồng token.

Ví dụ về phê duyệt ERC-20

Giả sử Alice muốn một hợp đồng vault thay mặt cô ấy nạp 100 đơn vị token ERC-20.Trước tiên, Alice xác minh địa chỉ hợp đồng vault và token mà hợp đồng sẽ sử dụng.

Cô ấy gọi

approve
và cấp cho vault hạn mức 100 đơn vị.

Hợp đồng token ghi lại hạn mức và phát ra sự kiện

Approval
.

Sau đó, Alice gọi hàm nạp của vault.

Vault dùng

transferFrom
để chuyển 100 đơn vị từ Alice vào vault.

Hợp đồng token kiểm tra số dư của Alice và hạn mức của vault trước khi hoàn tất giao dịch chuyển.Sau khi chuyển, hạn mức đã sử dụng thường được giảm theo cách triển khai của token.

Các lỗi thường gặp với ERC-20

Một lỗi thường gặp là chỉ nhận diện token dựa vào tên hoặc symbol.Lỗi khác là cho rằng mọi token ERC-20 đều có 18 decimals.Lỗi thứ ba là cấp phê duyệt không giới hạn cho hợp đồng không đáng tin cậy.Lỗi thứ tư là tin rằng ngắt kết nối ví sẽ thu hồi hạn mức token.Lỗi thứ năm là bỏ qua giá trị Boolean trả về hoặc hành vi không theo chuẩn của giao dịch chuyển token.Lỗi thứ sáu là ghi nhận khoản nạp token thu phí theo số lượng được yêu cầu thay vì số lượng thực nhận.

Lỗi thứ bảy là xem

totalSupply
như bằng chứng về giới hạn nguồn cung vĩnh viễn.

Lỗi thứ tám là cho rằng tuân thủ ERC-20 chứng minh tài sản được bảo chứng hoặc có giá trị quy đổi.Lỗi thứ chín là ký permit mà không kiểm tra bên chi tiêu, số lượng và thời hạn.Lỗi thứ mười là xem kiểm toán hoặc mã nguồn đã xác minh như sự đảm bảo token không thể gặp sự cố.

FAQ

ERC-20 có nghĩa là gì?

ERC-20 là tiêu chuẩn Ethereum quy định các hàm và sự kiện dùng chung cho token hợp đồng thông minh có thể thay thế.

ERC-20 có phải là tiền mã hóa không?

ERC-20 là tiêu chuẩn kỹ thuật, còn một hợp đồng cụ thể triển khai tiêu chuẩn này có thể tạo ra token tiền mã hóa.

ERC-20 có giống Ethereum không?

Không, Ethereum là mạng blockchain, còn ERC-20 là interface hợp đồng thông minh dành cho token hoạt động trên mạng đó.

ETH có phải token ERC-20 không?

Không, ETH là tài sản gốc của Ethereum và bản thân ETH không sử dụng interface hợp đồng ERC-20.

Token ERC-20 có thể thay thế được không?

Có, các đơn vị bằng nhau của một token ERC-20 thông thường có thể hoán đổi theo quy tắc hạch toán của hợp đồng.

Sáu hàm ERC-20 cốt lõi là gì?

Đó là

totalSupply
,
balanceOf
,
transfer
,
allowance
,
approve
và
transferFrom
.

ERC-20 định nghĩa những sự kiện nào?

Tiêu chuẩn định nghĩa các sự kiện

Transfer
và
Approval
.

name, symbol và decimals có bắt buộc không?

Không, cả ba hàm metadata đều tùy chọn theo đặc tả ERC-20 ban đầu.

Mọi token ERC-20 đều có 18 decimals không?

Không, 18 là giá trị phổ biến nhưng mỗi token có thể sử dụng giá trị decimals khác.

Phê duyệt ERC-20 có tác dụng gì?

Phê duyệt cấp cho bên chi tiêu quyền chuyển token từ chủ sở hữu trong phạm vi hạn mức được chỉ định.

transferFrom được dùng để làm gì?

Hàm này cho phép bên chi tiêu được ủy quyền chuyển token từ chủ sở hữu đến người nhận.

Phê duyệt ERC-20 không giới hạn là gì?

Đây là hạn mức được đặt ở giá trị tối đa rất lớn để bên chi tiêu có thể tiếp tục chuyển token mà không cần phê duyệt lặp lại.

Ngắt kết nối ví có thu hồi phê duyệt không?

Không, hạn mức on-chain vẫn còn hiệu lực cho đến khi được thay đổi thông qua hợp đồng token hoặc mất hiệu lực theo cách khác.

ERC-20 permit là gì?

Permit là thông điệp đã ký tùy chọn theo ERC-2612, tạo hoặc thay đổi hạn mức mà không cần chủ sở hữu trực tiếp gửi giao dịch phê duyệt.

Có thể mint token ERC-20 không?

Có, nếu cách triển khai có cơ chế mint và bên hoặc điều kiện giao thức được ủy quyền có thể sử dụng cơ chế đó.

Có thể burn token ERC-20 không?

Có, nếu cách triển khai có logic hợp đồng để hủy đơn vị token.

ERC-20 có yêu cầu nguồn cung cố định không?

Không, chính sách nguồn cung do cách triển khai từng token quyết định.

Giao dịch chuyển ERC-20 có thể thu phí không?

Có, token tùy chỉnh có thể khấu trừ phí chuyển dù hành vi này không bắt buộc theo tiêu chuẩn cốt lõi.

Số dư ERC-20 có thể thay đổi mà không có giao dịch chuyển không?

Có, mô hình rebasing và các mô hình hạch toán tùy chỉnh khác có thể làm thay đổi số dư được báo cáo mà không cần giao dịch chuyển thông thường do holder thực hiện.

Token ERC-20 có thể bị kẹt trong hợp đồng không?

Có, hàm chuyển cốt lõi không yêu cầu hợp đồng nhận xác nhận rằng hợp đồng có thể xử lý hoặc trả lại token.

ERC-20 có hỗ trợ nhận diện interface ERC-165 không?

Không, đặc tả ERC-20 ban đầu không yêu cầu ERC-165.

ERC-20 có đảm bảo token được bảo chứng không?

Không, tiêu chuẩn này không xác minh dự trữ, tài sản thế chấp, quyền quy đổi hoặc khả năng thanh toán.

Tuân thủ ERC-20 có khiến token an toàn không?

Không, token tương thích vẫn có thể có quyền hạn nguy hiểm, mã lỗi, tài sản bảo chứng yếu, thanh khoản thấp hoặc operator độc hại.

Người dùng có thể xác định đúng token ERC-20 như thế nào?

Người dùng nên xác minh mạng blockchain và địa chỉ hợp đồng đầy đủ thông qua nguồn chính thức.

Lợi ích chính của ERC-20 là gì?

Lợi ích chính là khả năng tương tác nhờ interface dùng chung mà nhiều ví crypto và hợp đồng thông minh hiểu được.

Kết luận

ERC-20 là tiêu chuẩn nền tảng của Ethereum dành cho token hợp đồng thông minh có thể thay thế.Tiêu chuẩn này quy định các phương thức dùng chung để kiểm tra nguồn cung và số dư, chuyển token và cấp quyền chi tiêu được ủy quyền.

Các sự kiện

Transfer
và
Approval
cho phép ứng dụng crypto theo dõi việc chuyển token và các quyền hạn.

Các hàm metadata tùy chọn cung cấp tên, symbol và cài đặt decimals của token, nhưng những giá trị này không chứng minh tính xác thực.Tiêu chuẩn không quyết định cách tạo nguồn cung, token có được bảo chứng hay không, ai kiểm soát quyền quản trị hoặc tài sản có giá trị tài chính hay không.Các tiện ích mở rộng có thể bổ sung permit đã ký, bỏ phiếu, tạm dừng, giới hạn nguồn cung, callback, chức năng vault, lỗi tiêu chuẩn hóa và các tính năng khác.

Phê duyệt vẫn là một trong những rủi ro lớn nhất với người dùng vì bên chi tiêu độc hại có thể sử dụng hạn mức đang có hiệu lực thông qua

transferFrom
.

Nhà phát triển cần tính đến giá trị trả về false, token không trả về giá trị, phí chuyển, rebasing, callback, decimals bất thường và các hạn chế tùy chỉnh.Người dùng nên xác minh địa chỉ hợp đồng, kiểm tra quyền, tìm hiểu quyền mint và nâng cấp, đồng thời điều tra tài sản bảo chứng và thiết kế kinh tế của token.Khả năng tương thích ERC-20 tạo ra ngôn ngữ kỹ thuật dùng chung, nhưng không thay thế bảo mật hợp đồng thông minh, việc kiểm tra giao dịch cẩn thận hoặc nghiên cứu tài chính độc lập.
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?