ERC-20 là gì? Giới Thiệu Về Token ERC-20

ERC-20 là gì? Giới Thiệu Về Token ERC-20

ERC-20 Là gì?

Ethereum được sáng lập bởi Vitalik Buterin vào năm 2014. Từ đó, Ethereum là một nền tảng mã nguồn mở để khởi chạy các ứng dụng phi tập trung (các DApp). Buterin để tạo ra blockchain Ethereum là để khắc phục những hạn chế và tính thiếu linh hoạt của giao thức Bitcoin.

Kể từ khi ra mắt, blockchain Ethereum đã thu hút các lập trình viê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, mà ở đó người dùng khởi chạy các hợp đồng thông minh và các ứng dụng phân tán.

 Trong Ethereum, ERC là một Yêu cầu nhận xét của Ethereum (Ethereum Request for Comments). Đây là những tài liệu kỹ thuật phác thảo các tiêu chuẩn để lập trình trên Ethereum. Thường nhầm lẫn chúng với Đề xuất cải tiến Ethereum ( EIP). Giống như BIP của Bitcoin, EIP là những đề xuất cải tiến cho chính giao thức. Thay vào đó, các ERC nhằm mục đích thiết lập các quy ước giúp các ứng dụng và hợp đồng tương tác với nhau dễ dàng hơn.

Được đề xuất bởi Vitalik Buterin và Fabian Vogelsteller vào năm 2015, ERC-20 đề xuất một định dạng tương đối đơn giản cho các token hoạt động trên Ethereum. Bằng cách làm theo phác thảo, các nhà phát triển không cần phải phát minh lại cấu trúc nào khác. Thay vào đó, họ có thể xây dựng trên một nền tảng đã được sử dụng trong toàn ngành.

Sau khi token 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 ( như các nónglạnhsàn giao dịch , v.v.).

 Tiêu chuẩn ERC-20 đã được phát triển thành EIP (cụ thể là EIP-20). Điều này diễn ra sau một vài năm khi bản đề xuất ban đầu đã được sử dụng rộng rãi. Tuy nhiên, dù nhiều năm đã trôi qua, cái tên “ERC-20” vẫn được giữ nguyên.

Các token Ethereum

Khác với ETH (tiền mã hoá gốc của Ethereum), các token ERC-20 không được giữ bởi tài khoản. Các token này chỉ tồn tại trong một 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 các token (như tên, ký hiệu, khả năng phân chia) và giữ một danh sách ánh xạ số dư của người dùng đến địa chỉ Ethereum của họ.

Để di chuyển các token, người dùng phải gửi một giao dịch đến hợp đồng yêu cầu nó phân bổ một số số dư của họ tới nơi khác. 

Người dùng tương tác với hợp đồng thông minh

 Cơ chế tạo Token ERC-20

Hình minh họa token ERC-20 đang được tạo

Để tuân thủ ERC-20, hợp đồng của bạn cần bao gồm sáu chức năng bắt  buộc: totalSupply , balanceOf , transfer , transferFrom , approve và allowance . Ngoài ra, bạn có thể chỉ định các chức năng tùy chọn, chẳng hạn như namesymbol và decimal. Bạn có thể hiểu khái quát các tính năng này từ tên của chúng. Nếu chưa, đừng lo lắng – chúng ta sẽ tìm hiểu từng tính năng ngay bây giờ. 

Dưới đây là các chức năng (funtion) khi chúng xuất hiện trong ngôn ngữ Solidity (ngôn ngữ lập trình trên Ethereum).

TotalSupply

Khi được người dùng gọi, hàm trên trả về tổng nguồn cung token mà hợp đồng nắm giữ.

Balance Of 

Không giống như totalSupplybalanceOf nhận một tham số (một địa chỉ). Khi hàm được gọi, nó trả về số dư token mà địa chỉ đó đang 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 mà bạn biết địa chỉ.

Chuyển

Tính năng transfer chuyển một cách khéo léo các token từ người dùng này sang người dùng khác. Tại đây, bạn cung cấp địa chỉ muốn gửi và số tiền cần chuyển.

Khi tính năng được gọi, transfer sẽ kích hoạt event (trong trường hợp này là event transfer). Về cơ bản, điều này yêu cầu blockchain bao gồm một tham chiếu đến nó.

TransferFrom

Chức năng transferFrom là một sự thay thế tiện dụng hơn so với chức năng transfer. Nó cho phép lập trình nhiều hơn một chút trong các ứng dụng phi tập trung. Giống như transfer, nó được sử dụng để di chuyển token, nhưng những token đó 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 ai đó– hoặc một hợp đồng khác – thay mặt bạn chuyển tiền. Lấy ví dụ như khi bạn cần thanh toán cho các dịch vụ trả phí theo thời gian, khi bạn không muốn tốn thời gian gửi thanh toán theo cách thủ công hàng ngày/tuần/tháng. Thay vào đó, bạn chỉ cần để một chương trình làm việc đó tự động cho bạn.

Hàm này kích hoạt cùng một sự kiện như transfer.

Approve

 Approve là một chức năng hữu ích và có nhiều hướng để lập trình. Với chức năng này, bạn có thể giới hạn số lượng token mà một hợp đồng thông minh có thể rút từ số dư của bạn. Nếu không có nó, bạn phải đối mặt với nguy cơ hợp đồng bị trục trặc (hoặc bị lợi dụng) và tất cả tiền của bạn có khả năng bị đánh cắp. 

 Lấy ví dụ về một mô hình đăng ký (subscription) một lần nữa, giả sử rằng bạn có một lượng lớn BinanceAcademyTokens và bạn muốn thiết lập các khoản thanh toán định kỳ hàng tuần cho một DApp trực tuyến. Vì bận rộn đọc các bài viết của Binance Academy cả ngày lẫn đêm, bạn không muốn mất thời gian tạo giao dịch theo cách thủ công mỗi tuần.

 Và bạn cũng có một số dư lớn BinanceAcademyTokens, vượt xa số tiền cần thanh toán. Để ngăn DApp rút hết tiền, bạn có thể đặt giới hạn bằng chức năng approve. Giả sử, việc đăng ký dịch vụ khiến bạn tốn một BinanceAcademyToken mỗi tuần. Nếu bạn giới hạn giá trị được phê duyệt ở mức 20 token, bạn có thể chọn thanh toán tự động cho đăng ký của mình trong năm tháng.

Tệ nhất, nếu DApp cố gắng rút tất cả tiền của bạn hoặc nếu phát hiện thấy lỗi, bạn chỉ có thể mất hai mươi token. Điều kiện này không phải là lý tưởng, nhưng ít nhất nó không khiến bạn mất tất cả tài sản mình đang nắm giữ.

Khi được gọi, approve sẽ kích hoạt sự kiện approval. Giống như sự kiện trong transfer, chức năng approve cũng ghi dữ liệu vào blockchain.

Allowance 

 Allowance có thể được sử dụng cùng với approve, khi bạn đã cho phép hợp đồng quản lý các token của mình, bạn có thể sử dụng quyền này để kiểm tra xem nó vẫn có thể rút được bao nhiêu tiền. Nếu gói đăng ký của bạn đã sử dụng hết mười hai trong số hai mươi token được chấp thuận của bạn, thì việc gọi hàm allowance sẽ trả về tổng số là tám.

Các chức năng tùy chọn

Các chức năng đã được đề cập ở trên là bắt buộc. Ngoài ra, bạn còn có thể sử dụng các funtion name , symbol và decimal(số thập phân). Tuy chúng không bắt buộc, 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. Một cách tương ứng, chúng cho phép bạn thêm các tên mà con người có thể đọc được, đặt ký hiệu (ví dụ: ETH, BTC, BNB) và chỉ định token có thể được chia nhỏ thành bao nhiêu số thập phân. Ví dụ: sẽ tiện lợi hơn nếu token được sử dụng làm tiền tệ có thể phân chia thành nhiều phần token nhỏ hơn, giúp đại diện cho quyền sở hữu tài sản.

Chức năng của Token ERC-20

Minh họa về các ứng dụng khác nhau của token ERC-20

Bằng cách kết hợp tất cả các chức năng ở trên, chúng ta đã có hợp đồng ERC-20. Chúng ta 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ý token của mình.

Một phần lớn tạo nê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 đặt ra không hạn chế sự phát triển, vì vậy các bên có thể triển khai các tính năng bổ sung và đặt các thông số cụ thể phù hợp với nhu cầu của họ.

Stablecoin

Stablecoin thường sử dụng tiêu chuẩn token ERC-20. Giao dịch với hợp đồng BUSD mà chúng ta đã đề cập trước đó là một ví dụ. Hầu hết các stablecoin chúng ta biết cũng dùng định dạng này.

Đối với một stablecoin được bảo đảm bởi tiền pháp định, nhà phát hành nắm giữ các khoản dự trữ bằng euro, đô-la, v.v. Sau đó, với mỗi đơn vị trong kho dự trữ, họ sẽ phát hành một token. Điều này có nghĩa là nếu 10.000 đô-la bị khóa trong kho lưu trữ, nhà phát hành có thể tạo ra 10.000 token, mỗi token có thể đổi được 1 đô-la.

Về mặt kỹ thuật, điều này có thể thực hiện khá dễ dàng trên Ethereum. Nhà phát hành chỉ cần khởi chạy một hợp đồng với 10.000 token. Sau đó, họ sẽ 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 các token để lấy một lượng tiền pháp định tương ứng. 

Người dùng có thể thực hiện một số việc với token của họ – có thể mua hàng hóa và dịch vụ hoặc sử dụng chúng trong các DApp. Ngoài ra, họ có thể yêu cầu nhà phát hành đổi chúng thành tiền thật ngay lập tức. Trong trường hợp đó, nhà phát hành đốt các token được trả lại (khiến chúng không thể sử dụng được) và rút số tiền pháp định chính xác từ các khoản dự trữ của họ.

Hợp đồng điều chỉnh hệ thống này, như đã nói ở trên, việc này được thực hiện tương đối đơn giản. Tuy nhiên, việc tung ra một stablecoin không chỉ có thế, mà còn đòi hỏi rất nhiều công việc được thực hiện khác nữa như logistic, tuân thủ quy định, v.v.

Các token chứng khoán

Token chứng khoán (security token) tương tự như stablecoin. Ở cấp độ hợp đồng, cả hai trông giống hệt nhau vì chúng hoạt động theo cùng một cách. Sự khác biệt diễn ra ở cấp độ người phát hành. Token chứng khoán đạ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 lúc nào cũng vậy), các token loại này cấp cho người nắm giữ một số loại cổ phần trong một doanh nghiệp hoặc hàng hóa.

Các token tiện ích

 Token tiện ích (utility token) là loại token phổ biến nhất hiện nay, chúng không được bảo đảm bởi bất cứ loại tài sản nào. Nếu các loại token kia được đảm bảo bởi các loại tài sản giống như cổ phiếu thì token tiện ích lại giống như các tờ rơi quảng cáo: chúng phục vụ một chức năng, nhưng không có giá trị ở bên ngoài. Các token tiện ích có thể dùng cho vô số trường hợp sử dụng, chúng có thể đóng vai trò 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à nhiều thứ khác.

Có thể đào token ERC-20 không?

Bạn có thể đào ether (ETH), nhưng các token không thể đào được – đúng hơn, chúng được tạo ra bằng cách đúc. Khi hợp đồng được đưa ra, các nhà phát triển sẽ phân phối nguồn cung theo kế hoạch và lộ trình của họ.

Thông thường, điều này được thực hiện thông qua một đợt Phát hành tiền mã hóa lần đầu (ICO), Phát hành tiền mã hoá trên sàn (IEO) hoặc Phát hành token chứng khoán (STO). Bạn có thể bắt gặp biến thể của những từ viết tắt này, nhưng về cơ bản, 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 các token mới. Số tiền thu được được sử dụng để tài trợ cho việc phát triển dự án. Người dùng mong đợi có thể sử dụng token của họ (ngay lập tức hoặc muộn hơn) hoặc bán lại chúng để kiếm lợi nhuận khi dự án phát triển.

Việc phân phối token không cần phải được tự động hóa. Nhiều sự kiện huy động vốn cộng đồng cho phép người dùng 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). Số dư tương ứng sau đó được phân bổ đến các địa chỉ do người dùng cung cấp.

Ưu và nhược điểm của token ERC-20

Ưu điểm 

Khả năng thay thế lẫn nhau

 Mỗi token ERC-20 có thể thay thế lẫn nhau – tức là mỗi đơn vị có thể khả năng sử dụng và giá trị tương đương. Bạn có thể giao dịch, trao đổi nó với token của người khác và chúng vẫn giống hệt nhau về mặt chức năng, giống như việc trao đổi tiền mặt hoặc vàng.

Điều này rất có lợi, nếu token của bạn có mục tiêu trở thành một loại tiền tệ nào đó. Bạn sẽ không muốn các đơn vị riêng lẻ có các đặc điểm khác biệt, bởi điều này khiến chúng không thể thay thế được. Điều này có thể khiến một số token trở nên có giá trị hơn– hoặc ít có giá trị hơn – những token khác, làm suy yếu mục đích của chúng.

Tính linh hoạt

Như chúng ta đã biết, các token ERC-20 có khả năng tùy chỉnh cao và có thể được điều chỉnh cho phù hợp 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 điểm khách hàng thân thiết, làm sản phẩm sưu tầm kỹ thuật số hoặc thậm chí để đại diện cho tác phẩm mỹ thuật và quyền tài sản.

Sự phổ biến

Sự phổ biến của ERC-20 trong ngành công nghiệp tiền mã hoá là một lý do rất thuyết phục để sử dụng nó làm một tiêu chuẩn chung. 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 này. Hơn nữa, sự hỗ trợ của các nhà phát triển và tài liệu cũng rất phong phú. 

Nhược điểm

Khả năng mở rộng

 Như nhiều mạng blockchain, khả năng mở rộng là thách thức với Ethereum. Với hình thức hiện tại, việc mở rộng quy mô của Ethereum diễn ra không tốt – việc cố gắng gửi một giao dịch vào thời gian cao điểm dễ dẫn đến phí cao và sự chậm trễ. Nếu bạn khởi chạy token ERC-20 và mạng bị tắc nghẽn, khả năng sử dụng của nó có thể bị ảnh hưởng.

Đây không là vấn đề các hệ thống phi tập trung để đảm bảo sự an toàn. Cộng đồng có kế hoạch giải quyết những vấn đề này trong quá trình di cư sang Ethereum 2.0 - nơi diễn ra các nâng cấp như Ethereum Plasma và Ethereum Casper .

Rủi ro lừa đảo

Mặc dù đây không phải là lỗi của công nghệ, nhưng việc dễ dàng ra mắt token mới có thể coi là một nhược điểm ở một số khía cạnh. Cần rất ít nỗ lực để tạo ra một token ERC-20 đơn giản, có nghĩa là bất kỳ ai cũng có thể làm điều đó – dù với mục đích tốt hay xấu.

Do đó, bạn nên cẩn thận với những gì mình đang đầu tư. Không thiếu những dự án lừa đảo sử dụng mô hình đa cấp như Pyramid và Ponzi được ngụy trang thành các dự án blockchain.  

So sánh ERC-20, ERC-1155, ERC-223, ERC-721 

  •  ERC-20 là tiêu chuẩn token Ethereum đầu tiên (và cho đến nay là tiêu chuẩn phổ biến nhất), nhưng không phải là tiêu chuẩn duy nhất. Trong những năm qua, nhiều nhà phát triển khác đã đề xuất các cải tiến trên ERC-20, hoặc theo đuổi các mục tiêu khác.

Một số tiêu chuẩn ít phổ biến hơn là các tiêu chuẩn sử dụng cho token không thể thay thế (các NFT). Để mã hoá các tác phẩm nghệ thuật, vật phẩm trong trò chơi, v.v., một trong những ứng dụng có sự hấp dẫn lớn.

  •  ERC-721 là tiêu chuẩn được sử dụng cho Dapp trò chơi từng rất nổi tiếng CryptoKitties. Một hợp đồng như vậy cung cấp một API để người dùng đúc các token không thể thay thế của riêng họ và mã hóa siêu dữ liệu (metadata như hình ảnh, mô tả, v.v.). 
  • ERC-1155 có thể được coi là một cải tiến trên cả ERC-721 và ERC-20. Nó tạo ra một tiêu chuẩn hỗ trợ cả token có thể thay thế lẫn nhau và không thể thay thế trong cùng một hợp đồng.
  •  ERC-223 hoặc ERC-621 giúp có thêm nhiều khả năng sử dụng. Tiêu chuẩn đầ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 ngẫu nhiên. Loại thứ hai bổ sung các chức năng để tăng và giảm nguồn cung cấp token.

Để biết thêm về chủ đề NFT, hãy đọc bài viết Hướng Dẫn Về Sản Phẩm Mã Hóa Sưu Tập Và Token Không Thể Thay Thế (NFT).

Tổng kết

 ERC-20 đã thống trị ngành tiền mã hoá trong nhiều năm, vì khá dễ sử 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 (như các token tiện ích, stablecoin, v.v.). Tuy nhiên, vẫn còn nhiều tính năng chưa được triển khai trong thực tế. Vậy nên chúng ta có thể tiếp tục đón chờ các loại hợp đồng khác được thực hiện trên tiêu chuẩn này. Hy vọng trong tương lai ERC-20 cho ra được nhiều tính năng mới và khắc phục được các nhược điểm còn tồn tại. Cảm ơn các bạn đã theo dõi bài viết, chúc các bạn nhiều may mắn!

Đang xem: ERC-20 là gì? Giới Thiệu Về Token ERC-20