Nội dung
Giới thiệu
Tiêu chuẩn ERC-20 là gì?
Tổng quan ngắn gọn về mã thông báo Ethereum
Mã thông báo ERC-20 được tạo như thế nào?
Chức năng của token ERC-20 là gì?
Stablecoin
Mã thông báo bảo mật
Mã thông báo tiện ích
Có thể khai thác token ERC-20 không?
Ưu điểm và nhược điểm của token ERC-20
Lợi ích của token ERC-20
Nhược điểm của token ERC-20
ERC-20, ERC-1155, ERC-223, ERC-721 - sự khác biệt là gì?
Bản tóm tắt
Giới thiệu
Ethereum được thành lập vào năm 2014 bởi Vitalik Buterin và được dự định trở thành một nền tảng nguồn mở để chạy các ứng dụng phi tập trung (DApps). Khi tạo chuỗi khối mới, Buterin đã tính đến vấn đề không đủ linh hoạt của giao thức Bitcoin.
Kể từ khi ra mắt, chuỗi khối Ethereum đã thu hút nhiều nhà phát triển, công ty và doanh nhân, đồng thời mở ra một ngành công nghiệp ngày càng tăng gồm những người dùng chạy hợp đồng thông minh và ứng dụng phân tán.
Trong bài viết này chúng ta sẽ xem xét tiêu chuẩn ERC-20 - cơ sở để tạo token. Tiêu chuẩn này được phát triển đặc biệt cho mạng Ethereum, nhưng đã được quản lý để truyền cảm hứng cho các tiêu chuẩn blockchain khác, chẳng hạn như Chuỗi Binance BEP-2.
Tiêu chuẩn ERC-20 là gì?
ERC trong Ethereum là yêu cầu đề xuất cải thiện mạng (tiếng Anh: Ethereum Yêu cầu nhận xét). ERC là tài liệu kỹ thuật phác thảo các tiêu chuẩn lập trình trên Ethereum. Không nên nhầm lẫn những điều này với Đề xuất cải tiến Ethereum (EIP), giống như BIP của Bitcoin, đề xuất các cải tiến cho chính giao thức. Mục đích của ERC là thiết lập các thỏa thuận giúp các ứng dụng và hợp đồng tương tác với nhau dễ dàng hơn.
ERC-20 được Vitalik Buterin và Fabian Vogelsteller tạo ra vào năm 2015 với mục tiêu cung cấp một định dạng tương đối đơn giản để tạo token trên Ethereum. Bằng cách dựa vào tiêu chuẩn hiện có, các nhà phát triển tiết kiệm được thời gian và công sức. Với ERC-20, họ có thể tạo token mới mà không cần lo lắng về tính tương thích và bảo mật.
Mã thông báo ERC-20 mới sẽ tương thích với tất cả các dịch vụ và phần mềm hỗ trợ tiêu chuẩn này (ví phần mềm, ví phần cứng, sàn giao dịch, v.v.).
Cần lưu ý rằng EIP (cụ thể là EIP-20) được phát triển dựa trên tiêu chuẩn ERC-20. Điều này xảy ra vài năm sau khi ra mắt do tiêu chuẩn này được sử dụng rộng rãi. Nhưng thậm chí nhiều năm sau, cái tên “ERC-20” vẫn còn phù hợp.
Tổng quan ngắn gọn 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 lưu trữ trong tài khoản. Chúng chỉ tồn tại trong hợp đồng, là một loại cơ sở dữ liệu tự trị. Hợp đồng xác định các điều khoản cho mã thông báo (ví dụ: tên, ký hiệu, khả năng phân chia). Nó cũng chứa một danh sách khớp số dư của người dùng với địa chỉ Ethereum của họ.
Để di chuyển mã thông báo, người dùng phải gửi giao dịch tới hợp đồng yêu cầu chuyển một phần số dư của họ đến một vị trí khác. Ví dụ: nếu Alice muốn gửi Bob 5.000 token BinanceAcademy, cô ấy sẽ chạy một chức năng bên trong hợp đồng thông minh yêu cầu anh ấy làm như vậy.

Yêu cầu của cô được đặt bên trong một giao dịch Ethereum có vẻ bình thường, tính phí 0 ETH cho hợp đồng thông minh. Yêu cầu được thêm vào trường bổ sung trong giao dịch, trường này chỉ rõ chính xác những gì Alice muốn thực hiện - trong trường hợp của chúng tôi là chuyển mã thông báo cho Bob.
Mặc dù cô ấy không gửi Ether nhưng cô ấy vẫn phải trả một khoản phí, có mệnh giá bằng Ether, để giao dịch của cô ấy được thêm vào khối. Nếu cô ấy không có ETH, cô ấy sẽ cần mua nó trước khi thực hiện giao dịch.
Đây là một ví dụ thực tế về quy trình như vậy trên Etherscan: ai đó đưa ra yêu cầu về hợp đồng bằng BUSD. Chúng tôi thấy rằng các mã thông báo đã được chuyển và phí đã được thanh toán, mặc dù thực tế số tiền của nó là 0 ETH.
Bây giờ chúng ta có thể đi sâu hơn vào cấu trúc của hợp đồng ERC-20.
Mã thông báo ERC-20 được tạo như thế nào?

Để tương thích với ERC-20, hợp đồng của bạn phải bao gồm sáu chức năng bắt buộc: tổng cung, số dư, chuyển khoản, chuyển từ, phê duyệt và trợ cấp. Ngoài ra, bạn có thể thêm các chức năng bổ sung như tên, ký hiệu và số thập phân. Từ tên của các chức năng, bạn có thể hiểu mục đích của chúng. Tiếp theo chúng ta sẽ xem xét từng chi tiết hơn.
Bên dưới các chức năng được trình bày khi chúng được viết bằng ngôn ngữ Solidity được tạo cho Ethereum.
Tổng số cung cấp
hàm totalSupply() public view trả về (uint256)Khi được người dùng nhắc, chức năng trên sẽ hiển thị tổng số mã thông báo trong hợp đồng.
cân bằng của
hàm balanceOf(address _owner) trả về chế độ xem công khai (uint256 balance)Không giống như TotalSupply, hàm BalanceOf sử dụng một tham số (địa chỉ). Nó hiển thị số dư của mã thông báo địa chỉ theo yêu cầu. Hãy nhớ rằng tài khoản Ethereum là công khai, vì vậy bạn có thể truy vấn số dư của bất kỳ người dùng nào miễn là bạn biết địa chỉ của họ.
dịch thuật
chức năng chuyển (địa chỉ _to, uint256 _value) trả về công khai (bool thành công)Chức năng chuyển giao chuyển mã thông báo từ người dùng này sang người dùng khác. Để sử dụng nó, bạn cần chỉ định địa chỉ người nhận và số tiền chuyển.
Hàm chuyển sẽ kích hoạt một sự kiện (trong trường hợp của chúng tôi là chuyển sự kiện), thông báo cho chuỗi khối bao gồm một tham chiếu đến nó.
chuyểnTừ
hàm transferFrom(address _from, address _to, uint256 _value) trả về public (bool thành công)Hàm transferFrom là một giải pháp thay thế thuận tiện hơn cho hàm truyền, mang lại khả năng lập trình cao hơn trong các ứng dụng phi tập trung. Giống như chuyển khoản, nó được sử dụng để di chuyển mã thông báo, nhưng chúng không nhất thiết thuộc về người truy cập 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. Một trường hợp sử dụng khác liên quan đến thanh toán tự động cho các dịch vụ dựa trên đăng ký trong trường hợp bạn không muốn gửi thanh toán theo cách thủ công hàng ngày/tuần/tháng. Chương trình sẽ làm điều này cho bạn.
Hàm này kích hoạt sự kiện tương tự như chuyển.
chấp thuận
chức năng phê duyệt (địa chỉ _spender, uint256 _value) trả về công khai (bool thành công)Phê duyệt là một chức năng hữu ích khác xét theo quan điểm khả năng lập trình. Với sự trợ giúp của nó, bạn có thể giới hạn số lượng token mà hợp đồng thông minh có thể rút từ số dư của bạn. Nếu không có nó, sẽ có nguy cơ hợp đồng bị lạm dụng: ai đó có thể khai thác nó cho mục đích riêng của họ hoặc ăn cắp tất cả tiền của bạn.
Hãy xem một ví dụ về mô hình đăng ký. Giả sử bạn có nhiều BinanceAcademyTokens và muốn thiết lập thanh toán hàng tuần cho dịch vụ phát trực tuyến DApp của mình. Bạn đã nghiên cứu nội dung của Binance Academy cả ngày lẫn đêm và bạn không muốn mất thời gian tạo giao dịch thủ công mỗi tuần.
Giả sử bạn có nguồn cung cấp BinanceAcademyToken lớn, vượt xa phí đăng ký của bạn. Để ngăn dịch vụ DApp tiêu hao nó, bạn có thể đặt giới hạn bằng chức năng phê duyệt. Ví dụ: gói đăng ký của bạn có giá một BinanceAcademyToken mỗi tuần. Nếu bạn giới hạn số tiền tối đa là 20 token thì đăng ký có thể được thanh toán tự động trong vòng 5 tháng.
Trong trường hợp xấu nhất, nếu DApp cố gắng rút toàn bộ số tiền của bạn hoặc xảy ra lỗi không mong muốn, bạn sẽ chỉ mất 20 token. Tùy chọn này không loại bỏ các vấn đề có thể xảy ra nhưng nó bảo vệ bạn khỏi mất tất cả tài sản của mình.
Khi chức năng phê duyệt được gọi, sự kiện phê duyệt sẽ được kích hoạt. Giống như sự kiện chuyển giao, nó ghi dữ liệu vào blockchain.
trợ cấp
hàm allowance(address _owner, address _spender) trả về chế độ xem công khai (uint256 còn lại)Chức năng phụ cấp có thể được sử dụng kết hợp với chức năng phê duyệt. Sau khi bạn đã cấp cho hợp đồng quyền quản lý mã thông báo, bạn có thể sử dụng tính năng này để kiểm tra xem hợp đồng vẫn có thể xóa bao nhiêu mã thông báo. Ví dụ: nếu đăng ký của bạn đã sử dụng 12 trong số 20 mã thông báo được phép thì khi bạn gọi hàm trợ cấp, số tám sẽ được hiển thị.
Các tính năng bổ sung
Các tính năng chúng tôi đã thảo luận ở trên là bắt buộc. Tên, ký hiệu và hàm thập phân là tùy chọn nhưng có thể cải thiện hợp đồng ERC-20 của bạn. Chúng cung cấp cho bạn khả năng thêm tên rõ ràng, đặt ký hiệu (ví dụ: ETH, BTC, BNB) và chỉ định số lượng 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ể được hưởng lợi nhiều hơn từ khả năng phân chia lớn hơn so với mã thông báo đại diện cho quyền sở hữu.
Bạn có thể thấy những yếu tố này trong hợp đồng thực trong ví dụ này trên GitHub.
Chức năng của token ERC-20 là gì?

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



