Nội dung
Giới thiệu
Tiêu chuẩn ERC-20 là gì?
Lời nhắc 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?
Token ERC-20 có thể làm gì?
Stablecoin
Nhà tài trợ token
Mã thông báo tiện ích
Bạn có thể khai thác token 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
ERC-20, ERC-1155, ERC-223, ERC-721, sự khác biệt là gì?
Để kết luận
Giới thiệu
Ethereum được thành lập bởi Vitalik Buterin vào năm 2014, định vị mình 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 tạo ra một blockchain mới của Buterin dựa trên sự thiếu linh hoạt của Bitcoin.
Kể từ khi ra mắt, chuỗi khối Ethereum đã thu hút các nhà phát triển, doanh nghiệp và doanh nhân, tạo ra một ngành công nghiệp ngày càng phát triển gồm những người dùng tung ra các 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, một khuôn khổ quan trọng để tạo mã thông báo. Mặc dù dành riêng cho mạng Ethereum, nhưng khuôn khổ này cũng đã truyền cảm hứng cho các tiêu chuẩn blockchain khác, chẳng hạn như BEP-2 của Binance Chain.
Tiêu chuẩn ERC-20 là gì?
Trên Ethereum, ERC là một Yêu cầu Nhận xét của Ethereum. Đây là những tài liệu kỹ thuật xác định 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. Đúng hơn, ERC nhằm mục đích thiết lập các quy ướ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 xác định bởi Vitalik Buterin và Fabian Vogelsteller vào năm 2015, ERC-20 cung cấp một định dạng tương đối đơn giản cho các token dựa trên Ethereum. Bằng cách làm theo kế hoạch chi tiết của anh ấy, các nhà phát triển không cần phải phát minh lại cái bánh xe. Thay vào đó, họ có thể xây dựng trên nền móng đã được sử dụng trong khu vực.
Sau khi mã thông báo ERC-20 mới được tạo, chúng sẽ tự động tương thích 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, sàn giao dịch, v.v.).
Cần lưu ý rằng tiêu chuẩn ERC-20 được phát triển bởi EIP (cụ thể là EIP-20). Điều này xảy ra vài năm sau đề xuất ban đầu do nó được sử dụng rộng rãi. Tuy nhiên, thậm chí nhiều năm sau, cái tên “ERC-20” vẫn được giữ nguyên.
Lời nhắc 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 giữ bởi tài khoản. Mã thông báo chỉ tồn tại 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 mã thông báo (tên, ký hiệu, khả năng phân chia) và duy trì một danh sách liên kết 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 đến hợp đồng yêu cầu họ phân bổ một phần số dư của mình ở nơi khác. Ví dụ: nếu Alice muốn gửi 5.000 BinanceAcademyTokens cho Bob, cô ấy sẽ gọi một hàm trong hợp đồng thông minh BinanceAcademyToken để yêu cầu anh ấy làm như vậy.

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

Để tuân thủ ERC-20, hợp đồng của bạn phải bao gồm sáu tính 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ể chỉ định các hàm tùy chọn, chẳng hạn như tên, ký hiệu và số thập phân. Tên của các chức năng này có thể giúp bạn hiểu rõ chức năng của chúng. Nếu không, đừng lo lắng, chúng tôi sẽ giải thích bên dưới.
Dưới đây là các chức năng xuất hiện trong ngôn ngữ Solidity được thiết kế dành riêng cho Ethereum.
Tổng cung
hàm TotalSupply() trả về chế độ xem công khai (uint256)Khi được người dùng gọi, hàm trên trả về tổng nguồn cung cấp mã thông báo mà hợp đồng nắm giữ.
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 nhận một tham số (một địa chỉ). Khi được gọi, nó sẽ trả về số dư mã thông báo do địa chỉ đó nắm giữ. Hãy nhớ rằng các tài khoản trên mạng 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ọ.
chuyển khoản
chuyển hàm (địa chỉ _to, uint256 _value) trả về công khai (bool thành công)chuyển chuyển mã thông báo từ người dùng này sang người dùng khác. Tại đây bạn cho biết địa chỉ bạn muốn gửi tiền đến và số tiền cần chuyển.
Khi được gọi, quá trình chuyển sẽ kích hoạt một thứ gọi là sự kiện (sự kiện chuyển, trong trường hợp này), về cơ bản sẽ yêu cầu chuỗi khối bao gồm một tham chiếu đến nó.
chuyển từ
hàm transferFrom(địa chỉ _from, địa chỉ _to, uint256 _value) trả về công khai (bool thành công)Chức năng transferFrom là một giải pháp thay thế thuận tiện cho việc chuyển giao, cho phép khả năng lập trình cao hơn một chút 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 mã thông báo không nhất thiết phải thuộc về người gọi hợp đồng.
Nói cách khác, bạn có thể ủy quyền cho một người hoặc một hợp đồng khác chuyển tiền thay mặt bạn. Một trường hợp sử dụng có thể xảy ra liên quan đến việc thanh toán cho các dịch vụ dựa trên đăng ký, trong đó 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. Thay vào đó, bạn để một chương trình làm điều đó cho bạn.
Chức năng này kích hoạt sự kiện tương tự 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)phê duyệt là một chức năng hữu ích khác theo quan điểm lập trình. Nhờ chức năng này, 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ó, hợp đồng có thể gặp trục trặc (hoặc trở nên độc hại) và điều này có thể dẫn đến việc mất tất cả số tiền của bạn.
Hãy quay lại ví dụ về mô hình đăng ký của chúng tôi. Giả sử bạn có một lượng lớn BinanceAcademyTokens và muốn thiết lập thanh toán định kỳ hàng tuần cho DApp phát trực tuyến. Bạn đang bận đọc nội dung của Binance Academy cả ngày lẫn đêm. Vì vậy, bạn không muốn mất thời gian mỗi tuần để tạo giao dịch theo cách thủ công.
Bạn có số dư BinanceAcademyTokens khổng lồ, vượt xa số tiền cần thiết để trả cho gói đăng ký. Để ngăn DApp tiêu thụ hết tất cả, bạn có thể đặt giới hạn bằng phê duyệt. Giả sử phí đăng ký của bạn là một BinanceAcademyToken mỗi tuần. Nếu bạn giới hạn giá trị được phê duyệt ở mức 20 mã thông báo thì bạn có thể tự động thanh toán đăng ký của mình trong 5 tháng.
Tệ nhất, nếu DApp cố gắng rút tất cả tiền của bạn hoặc phát hiện ra lỗi, bạn chỉ có thể mất 20 token. Nó có thể không phải là giải pháp lý tưởng, nhưng nó chắc chắn hấp dẫn hơn việc bạn mất hết tiền.
Khi được gọi, phê duyệt sẽ kích hoạt sự kiện phê duyệt. Giống như sự kiện chuyển giao, nó 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. Khi bạn đã cấp ủy quyền hợp đồng để quản lý mã thông báo của mình, bạn có thể sử dụng nó để kiểm tra xem có thể rút thêm bao nhiêu. Ví dụ: nếu đăng ký của bạn đã tiêu thụ 12 trong số 20 mã thông báo được phê duyệt thì việc gọi hàm trợ cấp sẽ trả về tổng cộng là 8.
Chức năng tùy chọn
Các chức năng được trình bày trước đây là bắt buộc. Tuy không cần phải thêm các hàm, tên, ký hiệu và số thập phân nhưng chúng có thể làm cho hợp đồng ERC-20 của bạn đẹp hơn một chút. Tương ứng, chúng cho phép bạn thêm tên mà con người có thể đọc được, xác định ký hiệu (ví dụ: ETH, BTC, BNB) và chỉ định số vị trí thập phân mà mã thông báo có thể chia hết. Ví dụ: mã thông báo được sử dụng làm tiền tệ có thể được chia nhỏ hơn mã thông báo đại diện cho quyền sở hữu tài sản.
Hãy xem ví dụ này trên GitHub để xem các thành phần này trong một hợp đồng thực tế.
Token ERC-20 có thể làm gì?

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



