Mục lục
Giới thiệu
Tiêu chuẩn ERC-20 là gì?
Thông tin nhanh về mã thông báo Ethereum
Mã thông báo ERC-20 được tạo ra như thế nào?
ERC-20 có chức năng gì?
Stablecoin
Mã thông báo bảo mật
mã thông báo tiện ích
Tôi có thể tham gia khai thác mã thông báo ERC-20 không?
Ưu điểm và nhược điểm của Token ERC-20
Ưu điểm của Token ERC-20
Nhược điểm của Token ERC-20
Sự khác biệt giữa ERC-20, ERC-1155, ERC-223 và ERC-721 là gì?
Tóm tắt
Giới thiệu
Ethereum được thành lập bởi Vitalik Buterin vào năm 2014 và được định vị là một nền tảng nguồn mở để khởi chạy các ứng dụng phi tập trung (DApps). Động lực của Buterin trong việc tạo ra blockchain mới này phần lớn xuất phát từ sự thiếu linh hoạt trong giao thức Bitcoin.
Kể từ khi ra đời, chuỗi khối Ethereum đã thu hút nhiều nhà phát triển, doanh nghiệp và doanh nhân, tạo ra một ngành công nghiệp mới nổi gồm các hợp đồng thông minh và ứng dụng phân tán do người dùng khởi chạy.
Trong bài viết này, chúng ta sẽ xem xét tiêu chuẩn ERC-20, đây là một khuôn khổ quan trọng để tạo mã thông báo. Mặc dù chỉ áp dụng cho mạng Ethereum nhưng nó là nguồn cảm hứng cho các tiêu chuẩn blockchain khác như BEP-2 của Binance Chain.
Tiêu chuẩn ERC-20 là gì?
Trong Ethereum, tên đầy đủ của ERC là Ethereum Yêu cầu bình luận, là yêu cầu bình luận Ethereum. Các tài liệu kỹ thuật này phác thảo các tiêu chuẩn lập trình của Ethereum. Đừng nhầm lẫn điều này với Đề xuất cải tiến Ethereum (EIP), tương tự như BIP của Bitcoin và là một đề xuất cải tiến cho chính giao thức. Mục tiêu của ERC là thiết lập một giao thức tạo điều kiện thuận lợi cho sự tương tác giữa các ứng dụng và hợp đồng.
Được phát triển và viết vào năm 2015 bởi Vitalik Buterin và Fabian Vogelsteller, ERC-20 đề xuất một định dạng tương đối đơn giản khác cho các token dựa trên Ethereum. Miễn là tuân theo phác thảo, các nhà phát triển không cần phải phát minh lại bánh xe và có thể xây dựng trực tiếp dựa trên những gì đang diễn ra trong toàn ngành.
Khi mã thông báo ERC-20 mới được tạo, chúng sẽ tự động tương tác với các dịch vụ và phần mềm hỗ trợ tiêu chuẩn ERC-20 (ví phần mềm, ví phần cứng, nền tảng giao dịch, v.v.).
Điều quan trọng cần lưu ý là tiêu chuẩn ERC-20 đã phát triển thành EIP (cụ thể là EIP-20). Vào thời điểm này, đã vài năm trôi qua kể từ khi đề xuất ban đầu được phổ biến rộng rãi, nhưng thậm chí sau vài năm trôi qua, cái tên "ERC-20" vẫn được giữ nguyên.
Thông tin nhanh về mã thông báo Ethereum
Không giống như ETH (tiền điện tử gốc của Ethereum), mã thông báo ERC-20 không được gửi vào tài khoản mà chỉ tồn tại bên trong hợp đồng, giống như một cơ sở dữ liệu độc lập. Nó chỉ định các quy tắc cho mã thông báo (tức là tên, ký hiệu, khả năng phân chia) và duy trì danh sách các địa chỉ Ethereum ánh xạ số dư của người dùng.
Để chuyển mã thông báo, người dùng phải gửi giao dịch đến hợp đồng thông minh, yêu cầu hợp đồng phân bổ một phần số dư ở nơi khác. Ví dụ: nếu Alice muốn gửi 5.000 Token Binance Academy cho Bob, cô ấy sẽ gọi một hàm trong hợp đồng thông minh tương ứng để thực hiện hướng dẫn.

Cuộc gọi của cô ấy bao gồm một giao dịch Ethereum có vẻ bình thường, trả 0 ETH cho hợp đồng mã thông báo. Cuộc gọi này được bao gồm trong số các trường giao dịch khác và chỉ rõ ý định của Alice - trong trường hợp này, cô ấy muốn chuyển mã thông báo cho Bob.
Ngay cả khi không gửi ether, cô ấy vẫn phải trả một khoản phí cụ thể để thêm giao dịch vào khối. Nếu bạn không có ETH, bạn nên gửi trước một số ETH trước khi chuyển mã thông báo của mình.
Sau đây là một ví dụ thực tế trong Etherscan: ai đó gọi một hợp đồng BUSD. Bạn sẽ thấy mã thông báo đã được chuyển và phí đã được thanh toán, mặc dù trường giá trị hiển thị rằng 0 ETH đã được gửi.
Tiếp theo, chúng ta tăng tốc độ và xem xét kỹ hơn cấu trúc hợp đồng ERC-20 điển hình.
Mã thông báo ERC-20 được tạo ra như thế nào?

Theo tiêu chuẩn ERC-20, hợp đồng của bạn phải đặt sáu chức năng bắt buộc: tổng cung, số dư, chuyển nhượng, chuyển từ, phê duyệt và trợ cấp. Ngoài ra, có thể chỉ định các chức năng tùy chọn như tên, ký hiệu và số thập phân. Nghe tên là có thể hiểu chức năng, không hiểu thì đừng lo, bên dưới chúng tôi sẽ phân tích từng cái một.
Sau đây là các chức năng được trình bày thông qua ngôn ngữ Solidity dành riêng cho Ethereum.
Tổng cung
hàm TotalSupply() trả về chế độ xem công khai (uint256)Sau khi người dùng gọi hàm trên, tổng nguồn cung cấp token theo hợp đồng sẽ được trả lại.
Cán cân
hàm BalanceOf(địa chỉ _owner) trả về chế độ xem công khai (số dư uint256)Không giống như TotalSupply, BalanceOf sử dụng địa chỉ làm tham số. Sau cuộc gọi, hệ thống sẽ trả về số dư giữ mã thông báo của địa chỉ. Hãy nhớ rằng, các tài khoản trong mạng Ethereum đều công khai và minh bạch. Bạn có thể kiểm tra số dư của bất kỳ người dùng nào miễn là bạn biết địa chỉ.
chuyển khoản
chuyển hàm (địa chỉ _to, uint256 _value) trả về công khai (bool thành công)Chức năng chuyển hỗ trợ người dùng chuyển token cho nhau. Bạn cần cung cấp địa chỉ nhận token và số tiền chuyển.
Khi được gọi, chuyển sẽ kích hoạt một sự kiện (sự kiện "chuyển" trong trường hợp này) có chức năng cơ bản là yêu cầu chuỗi khối chứa tham chiếu đến chức năng này.
chuyển từ
hàm transferFrom(địa chỉ _from, địa chỉ _to, uint256 _value) trả về công khai (bool thành công)Hàm transferFrom là một giải pháp thay thế thuận tiện cho hàm chuyển, cải thiện hiệu quả khả năng lập trình trong các ứng dụng phi tập trung. Tương tự như chức năng chuyển giao, nó được sử dụng để di chuyển các token, nhưng những token này không nhất thiết thuộc về người dùng gọi hợp đồng.
Nói cách khác, bạn có thể ủy quyền cho người khác hoặc hợp đồng khác chuyển tiền thay mặt bạn. Ví dụ: nếu bạn không muốn thanh toán thủ công cho dịch vụ đăng ký hàng ngày/hàng tuần/hàng tháng, bạn có thể để chương trình thực hiện công việc cho bạn.
Các sự kiện được kích hoạt bởi chức năng này cũng giống như quá trình chuyển giao.
chấp thuận
hàm phê duyệt (địa chỉ _spender, uint256 _value) trả về công khai (bool thành công)Từ góc độ lập trình, phê duyệt là một chức năng rất hữu ích khác giúp giới hạn số lượng token mà hợp đồng thông minh có thể rút khỏi số dư. Nếu không có nó, các hợp đồng đang chạy có thể trở nên vô hiệu (hoặc bị lợi dụng) và tất cả số tiền đều có nguy cơ bị đánh cắp.
Một lần nữa, hãy lấy mô hình đăng ký làm ví dụ. Giả sử bạn nắm giữ một lượng lớn token Binance Academy và muốn thiết lập các khoản thanh toán định kỳ hàng tuần cho DApp phát trực tuyến của mình. Tôi quá bận đọc các bài viết của Binance Academy nên không thể dành thời gian tạo giao dịch thủ công mỗi tuần.
Số dư lớn token của Học viện Binance được nắm giữ vượt xa mức phí cần thiết để trả cho việc đăng ký. Để ngăn DApp thanh toán tất cả tài sản, bạn có thể sử dụng phê duyệt để đặt giới hạn. Giả sử đăng ký của bạn tốn 1 token Binance Academy mỗi tuần, đăng ký của bạn sẽ được thanh toán tự động trong vòng 5 tháng nếu giới hạn phê duyệt là 20 token.
Nếu chương trình gặp sự cố và DApp cố gắng rút toàn bộ số tiền, bạn sẽ chỉ mất tối đa 20 token. Mặc dù việc mất token là điều đáng buồn nhưng kết quả vẫn tốt hơn nhiều so với việc mất tất cả tài sản của bạn.
Sau khi gọi hàm này, việc phê duyệt sẽ kích hoạt sự kiện phê duyệt, giống như chức năng chuyển giao, nó sẽ ghi dữ liệu vào blockchain.
trợ cấp
trợ cấp chức năng (địa chỉ _owner, địa chỉ _spender) trả về chế độ xem công khai (uint256 còn lại)trợ cấp có thể được sử dụng cùng với việc phê duyệt. Nếu quyền quản lý mã thông báo được cấp cho hợp đồng, bạn có thể kiểm tra số dư có thể rút của mã thông báo thông qua hợp đồng đó. Ví dụ: giả sử rằng dịch vụ đăng ký sử dụng 12 trong số 20 mã thông báo được phê duyệt, việc gọi hàm cho phép sẽ trả về tổng cộng 8 mã thông báo.
Các chức năng tùy chọn khác
Tất cả mọi thứ được thảo luận ở trên là một chức năng bắt buộc. Mặt khác, tên, ký hiệu và số thập phân là các hàm tùy chọn nhưng chúng có thể làm cho ERC-20 hoàn thiện hơn. Các chức năng này tương ứng hỗ trợ thêm tên mà con người có thể đọc được, đặt ký hiệu (tức là ETH, BTC, BNB) và chỉ định số vị trí thập phân mà mã thông báo có thể được chia thành. Ví dụ: mã thông báo được sử dụng làm tiền tệ có thể phân chia được nhiều hơn và do đó có lợi hơn mã thông báo được sử dụng để thể hiện quyền sở hữu tài sản.
Hãy xem ví dụ này trên GitHub để biết các thành phần này trông như thế nào trong một hợp đồng thực.
ERC-20 có chức năng gì?

Tổng hợp tất cả các chức năng trên, chúng ta có được một hợp đồng ERC-20. Chúng tôi có thể truy vấn tổng nguồn cung, xem số dư, chuyển tiền và ủy quyền cho các DApp khác thay mặt chúng tôi quản lý mã thông báo.
Tính linh hoạt của token ERC-20 là một lợi thế rất lớn. Thỏa thuận đã thiết lập không giới hạn sự phát triển và mỗi bên có thể khởi chạy các chức năng khác và đặt các thông số cụ thể theo nhu cầu riêng của mình.
Stablecoin
Stablecoin (mã thông báo được gắn với tiền tệ fiat) thường sử dụng tiêu chuẩn mã thông báo ERC-20. Giao dịch hợp đồng BUSD nêu trên là một ví dụ điển hình và hầu hết các stablecoin cũng sử dụng hình thức này.
Đối với các stablecoin được hỗ trợ bởi các loại tiền tệ fiat chính thống, các nhà phát hành có thể giữ dự trữ bằng euro, đô la Mỹ, v.v., sau đó phát hành mã thông báo cho từng đơn vị trong khoản dự trữ. Điều này có nghĩa là nếu 10.000 USD được gửi vào kho tiền, nhà phát hành có thể tạo ra 10.000 token, mỗi token trị giá 1 USD.
Từ góc độ kỹ thuật, nó rất dễ triển khai trong Ethereum. Nhà phát hành chỉ cần triển khai một hợp đồng với 10.000 token và sau đó phân phối token cho người dùng, hứa rằng họ có thể đổi token lấy một tỷ lệ tiền tệ pháp định nhất định trong tương lai.
Người dùng có thể sử dụng mã thông báo của mình để thực hiện nhiều hành động khác nhau, bao gồm mua hàng hóa và dịch vụ cũng như đăng ký DApps. Ngoài ra, nhà phát hành có thể được yêu cầu đổi các mã thông báo này ngay lập tức. Trong trường hợp này, nhà phát hành cũng có thể hủy các mã thông báo được trả lại (để chúng hết hạn) và rút một lượng tiền pháp định tương đương từ kho dự trữ.
Như đã đề cập trước đó, các hợp đồng chi phối hệ thống này tương đối đơn giản. Tuy nhiên, việc tung ra một stablecoin đòi hỏi phải chú ý đến nhiều yếu tố bên ngoài khác (như hậu cần, tuân thủ, v.v.) và rất nhiều nỗ lực.
Mã thông báo bảo mật
Token bảo mật tương tự như stablecoin và thậm chí có thể hoàn toàn giống nhau ở cấp độ hợp đồng vì cả hai đều hoạt động theo cùng một cách. Sự khác biệt nằm ở nhà phát hành: Mã thông báo bảo mật đại diện cho các chứng khoán như cổ phiếu, trái phiếu hoặc tài sản thực. Họ thường, mặc dù không phải lúc nào cũng cấp, cấp cổ phần cho người nắm giữ trong một doanh nghiệp hoặc hàng hóa.
mã thông báo tiện ích
Token tiện ích có lẽ là loại token phổ biến nhất hiện nay. Không giống như hai mã thông báo trước, mã thông báo tiện ích không được hỗ trợ bởi bất kỳ tài sản thực nào. Nếu cổ phiếu của hãng hàng không đại diện cho mã thông báo được hỗ trợ bằng tài sản thì mã thông báo tiện ích giống như các chương trình dành cho khách hàng thường xuyên: chúng có một số chức năng nhưng không có giá trị bên ngoài. Mã thông báo tiện ích có thể phục vụ nhiều nhu cầu, chẳng hạn như được sử dụng làm tiền tệ trong trò chơi, nhiên liệu cho các ứng dụng phi tập trung và điểm khách hàng thân thiết.
➠ Bạn muốn bắt đầu hành trình tiền điện tử của mình? Chào mừng bạn đến với Binance để mua Ethereum!
Tôi có thể tham gia khai thác mã thông báo ERC-20 không?
Bạn có thể tham gia khai thác Ethereum (ETH), nhưng không thể khai thác mã thông báo – chúng tôi gọi việc tạo ra các mã thông báo mới là đúc tiền. Sau khi hợp đồng đi vào hoạt động, chủ đầu tư sẽ phân bổ nguồn cung theo kế hoạch và lộ trình,
Điều này thường được thực hiện thông qua Cung cấp tiền xu ban đầu (ICO), Cung cấp trao đổi ban đầu (IEO) hoặc Cung cấp mã thông báo bảo mật (STO). Bạn có thể gặp một số biến thể của những từ viết tắt này, nhưng các khái niệm rất giống nhau. Các nhà đầu tư gửi ether đến địa chỉ hợp đồng và nhận lại các token mới. Số tiền huy động được sẽ được sử dụng để tài trợ cho việc phát triển dự án trong tương lai. Người dùng mong đợi có thể sử dụng mã thông báo của họ (ngay lập tức hoặc sau này) hoặc bán lại chúng để kiếm lợi nhuận khi dự án phát triển.
Việc phát hành mã thông báo không nhất thiết phải được tự động hóa. Nhiều chiến dịch huy động vốn cộng đồng hỗ trợ người dùng hoàn tất thanh toán bằng nhiều loại tiền kỹ thuật số khác nhau (chẳng hạn như BNB, BTC, ETH và USDT), sau đó phân phối số dư tương ứng đến địa chỉ do người dùng cung cấp.
Ưu điểm và nhược điểm của Token ERC-20
Ưu điểm của Token ERC-20
Khả năng thay thế cho nhau
Mã thông báo ERC-20 có thể thay thế được và tất cả các đơn vị có thể được trao đổi cho nhau. Khi nói đến Token của Học viện Binance, nó đều giống nhau bất kể bạn nắm giữ loại tiền cụ thể nào. Bạn có thể giao dịch với người khác và các token có chức năng giống nhau, tương tự như tiền mặt hoặc vàng.
Điều này là lý tưởng nếu mã thông báo bạn nắm giữ hy vọng sẽ phát triển thành một loại tiền tệ nào đó. Các mã thông báo có đặc điểm riêng biệt sẽ mất khả năng thay thế và không đáp ứng yêu cầu của bạn. Điều này có thể khiến một số mã thông báo nhất định có giá trị thấp hơn hoặc cao hơn các mã thông báo tương tự, đi ngược lại mục đích ban đầu.
linh hoạt
Như đã thảo luận ở chương trước, mã thông báo ERC-20 có khả năng tùy biến cực kỳ cao và các giải pháp có thể được điều chỉnh cho các ứng dụng khác nhau. Các ví dụ bao gồm việc được sử dụng làm tiền tệ trong trò chơi, điểm khách hàng thân thiết cho các chương trình, bộ sưu tập kỹ thuật số hoặc thậm chí đại diện cho tác phẩm nghệ thuật và quyền sở hữu tài sản.
rất phổ biến
ERC-20 đang trở nên phổ biến trong lĩnh vực tiền điện tử và kế hoạch chi tiết dựa trên nó rất thuyết phục. Nhiều sàn giao dịch, ví và hợp đồng thông minh hiện tương thích với nhiều loại token mới ra mắt. Ngoài ra, hỗ trợ và tài liệu dành cho nhà phát triển khá toàn diện.
Nhược điểm của Token ERC-20
Khả năng mở rộng kém
Đây là một vấn đề phổ biến trong nhiều mạng tiền điện tử và Ethereum không tránh khỏi vấn đề này. Ở dạng hiện tại, nó không có quy mô tốt. Gửi giao dịch trong thời gian cao điểm phải chịu phí cao và độ trễ kéo dài. Nếu mã thông báo ERC-20 được sử dụng và gây tắc nghẽn mạng thì tính khả dụng của chúng cũng sẽ bị ảnh hưởng.
Đây không phải là vấn đề riêng của Ethereum mà là sự đánh đổi mà tất cả các hệ thống phân tán an toàn phải thực hiện. Cộng đồng có kế hoạch giải quyết những vấn đề này sau khi chuyển sang Ethereum 2.0 và triển khai các bản nâng cấp như Ethereum Plasma và Ethereum Casper.
Vui lòng đọc "Khả năng mở rộng Blockchain: Chuỗi bên và Kênh thanh toán" để tìm hiểu thêm về các vấn đề về khả năng mở rộng.
Gian lận
Mặc dù bản thân công nghệ không có gì sai, nhưng ở một khía cạnh nào đó, việc dễ dàng phát hành token có thể là một bất lợi. Mã thông báo ERC-20 đơn giản rất dễ tạo, nghĩa là bất kỳ ai cũng có thể làm được, nhưng với nhiều mục đích khác nhau.
Vì vậy, bạn phải đầu tư cẩn thận. Có rất nhiều mô hình kim tự tháp và mô hình Ponzi được ngụy trang dưới dạng dự án blockchain, bạn phải tự nghiên cứu trước khi đầu tư để xác nhận xem cơ hội đầu tư có hợp pháp hay không.
Sự khác biệt giữa ERC-20, ERC-1155, ERC-223 và ERC-721 là gì?
ERC-20 là tiêu chuẩn token Ethereum đầu tiên (và cho đến nay là phổ biến nhất), nhưng nó không phải là tiêu chuẩn duy nhất. Qua nhiều năm, nhiều tiêu chuẩn khác đã được phát triển. Hầu hết chúng đều là những tiêu chuẩn cải tiến của ERC-20, một số khác cố gắng đạt được những mục tiêu hoàn toàn khác.
Một số tiêu chuẩn không phổ biến áp dụng cho các token không thể thay thế (NFT). Trong một số trường hợp, mã thông báo duy nhất có thuộc tính khác nhau có thể khiến bạn trở thành người thụ hưởng. Nếu bạn muốn mã hóa tác phẩm nghệ thuật độc đáo, tài sản trong trò chơi, v.v., một trong những loại hợp đồng này có thể hấp dẫn hơn.
Ví dụ: tiêu chuẩn ERC-721 được sử dụng trong CryptoKitties DApp rất phổ biến. Hợp đồng này cung cấp API để người dùng tạo ra các mã thông báo không thể thay thế của riêng họ và mã hóa siêu dữ liệu (hình ảnh, mô tả, v.v.).
Tiêu chuẩn ERC-1155 có thể được coi là sự cải tiến trên ERC-721 và ERC-20. Nó hỗ trợ cả tiêu chuẩn mã thông báo có thể thay thế và không thể thay thế trong một hợp đồng.
Các tùy chọn khác, chẳng hạn như ERC-223 hoặc ERC-621, được thiết kế để cải thiện khả năng sử dụng. Trước đây thực hiện các biện pháp bảo vệ để ngăn chặn việc vô tình chuyển mã thông báo. Cái sau cung cấp chức năng bổ sung để tăng hoặc giảm nguồn cung cấp mã thông báo.
Để tìm hiểu thêm về NFT, vui lòng đọc Hướng dẫn về Bộ sưu tập tiền điện tử và Mã thông báo không thể thay thế (NFT).
Tóm tắt
Tiêu chuẩn ERC-20 đã chiếm ưu thế trong không gian tài sản tiền điện tử trong nhiều năm. Lý do rất rõ ràng: tiêu chuẩn tương đối đơn giản và bất kỳ ai cũng có thể triển khai các hợp đồng đơn giản để phù hợp với nhiều nhu cầu khác nhau (token tiện ích, stablecoin, v.v.). Tuy nhiên, ERC-20 thiếu một số tính năng của các tiêu chuẩn khác, nhưng vẫn còn phải xem liệu các loại hợp đồng khác có thể thay thế nó hay không.

