ERC 20 so với ERC 223 so với ERC 777: So sánh giữa các tiêu chuẩn mã thông báo Ethereum

Bạn có phải là nhà phát triển Ethereum đang làm việc trong một dự án tiền điện tử không? Bạn có thể đang phát triển mã thông báo mới bằng cách sử dụng tiêu chuẩn ERC20, tuy nhiên, bạn cần biết những nỗ lực cải tiến. Điều này sẽ giúp bạn đưa ra quyết định đúng đắn về việc sử dụng tiêu chuẩn mã thông báo ERC nào, do đó tôi sẽ giải thích so sánh ERC777 so với ERC223 và ERC20 trong bài viết này.

Tôi sẽ bắt đầu so sánh với phần giải thích về ERC 20, và sau đó tôi sẽ giải thích những hạn chế của nó. Sau đó, tôi sẽ giải thích những nỗ lực cải tiến mà cộng đồng Ethereum đã thực hiện, thông qua ERC 777 và ERC 223.

So sánh giữa ERC20 so với ERC223 và ERC777

ERC 20 là gì?

Trước khi so sánh ERC 20 so với ERC 223 và ERC 777, tôi cần giải thích ERC là gì và ERC20 đại diện cho điều gì. Các nhà phát triển Ethereum thường gửi ‘Đề xuất cải tiến Ethreum’ (EIP). Cộng đồng Ethereum xem xét các EIP, đưa ra nhận xét, điều này có thể kích hoạt một số công việc làm lại.

Sau khi cộng đồng Ethereum chấp nhận EIP, nó sẽ trở thành một tiêu chuẩn và sau đó chúng tôi gọi nó là ‘Ethereum Request for Comments’ (ERC). ERC 20 là một trong những tiêu chuẩn như vậy cho các mã thông báo Ethreum.

ERC 20 là tiêu chuẩn mã thông báo Ethereum nổi tiếng nhất và hầu như tất cả các ICO sử dụng nền tảng Ethereum đều đã sử dụng nó. Các nhà phát triển sử dụng nó theo mặc định để tạo mã thông báo mới, trong khi ví và sàn giao dịch chấp nhận mã thông báo ERC 20 một cách dễ dàng.

Trước ERC 20, các nhà phát triển Ethereum phải đặt ra các quy tắc cụ thể mà mã thông báo của họ sẽ tuân theo và cách tiếp cận này thiếu tiêu chuẩn hóa. Giờ đây với ERC20, các nhà phát triển Ethereum biết rằng họ sẽ chỉ phải sử dụng tiêu chuẩn ERC 20. Tiêu chuẩn hóa này đóng một vai trò quan trọng trong việc thúc đẩy cơn sốt ICO mà chúng ta đã thấy kể từ năm 2017.

Đọc thêm về tiêu chuẩn ERC 20 trong “Hướng dẫn cho người mới bắt đầu: ERC20 là gì?”.

Các chức năng tiêu chuẩn ERC 20 là gì?

Tiêu chuẩn ERC 20 quy định các chức năng sau khi phát triển mã thông báo Ethereum:

  1. Nhận tổng nguồn cung cấp mã thông báo: Bạn cần sử dụng chức năng “totalSupply”.
  2. Lấy số dư mã thông báo của tài khoản chủ sở hữu khác.
  3. Gửi mã thông báo đến tài khoản chủ sở hữu khác: Bạn cần sử dụng chức năng “chuyển”. Các tài khoản này là tài khoản EOA.
  4. Gửi mã thông báo từ địa chỉ mã thông báo này sang địa chỉ mã thông báo khác. Địa chỉ mã thông báo là địa chỉ hợp đồng và bạn cần sử dụng chức năng “transferFrom”.
  5. Cho phép một tài khoản khác rút tiền từ tài khoản của bạn nhiều lần, trong một giới hạn nhất định. Bạn nên sử dụng chức năng “phê duyệt” cho việc này.
  6. Người chi tiêu có thể trả lại các mã thông báo chưa sử dụng cho chủ sở hữu, bằng cách sử dụng chức năng “trợ cấp”.

Một lỗi ERC 20 đốt cháy mã thông báo

Mặc dù được ghi chép và triển khai rất tốt về tổng thể, nhưng tiêu chuẩn ERC 20 có một lỗi và điều này đã làm cháy các mã thông báo trị giá hàng triệu đô la Mỹ. Chức năng “chuyển” chỉ cho phép bạn gửi mã thông báo cho chủ sở hữu khác, tức là tài khoản EOA.


Nếu bạn muốn gửi tiền vào tài khoản hợp đồng thông minh, tức là dạng tài khoản Ethereum khác, bạn cần sử dụng kết hợp “chấp thuận” và “chuyển nhượng từ”. Nếu bạn gửi mã thông báo đến một hợp đồng thông minh bằng chức năng “chuyển”, bạn sẽ thấy một giao dịch thành công, nhưng hợp đồng sẽ không bao giờ nhận được mã thông báo.

Điều này sẽ ghi các mã thông báo đó mãi mãi và bạn không thể lấy chúng. Một số người dùng đã sử dụng sai chức năng để gửi mã thông báo đến các hợp đồng thông minh và bị mất mã thông báo của họ.!

Quỹ Ethereum biết về lỗi này nhưng vẫn tiếp tục quảng bá tiêu chuẩn ERC 20. Tôi không biết lý do của họ để làm như vậy. Họ có thể không đánh giá cao việc nhập vấn đề hoặc có sự phản đối để thay đổi.

Tiêu chuẩn mã thông báo ERC223: Giải pháp được đề xuất cho lỗi ERC 20

Một nhà phát triển Ethereum có tên người dùng Reddit “Dexaran” đã đề xuất EIP 223 với giải pháp cho lỗi ERC 20 này. Trước khi so sánh ERC 20 so với ERC 223 và ERC 777, tôi sẽ giải thích đề xuất của anh ấy trước.

Tiêu chuẩn mã thông báo ERC223 vẫn còn là một bản nháp và cộng đồng Ethereum vẫn chưa triển khai nó. Nó đề xuất giải pháp sau:

  1. Nó coi một giao dịch trên chuỗi khối Ethereum là một sự kiện và sử dụng khái niệm ‘xử lý sự kiện’.
  2. Nếu người dùng sử dụng chức năng “chuyển” để gửi mã thông báo đến một hợp đồng thông minh, nó sẽ gây ra lỗi và sau đó sẽ hủy giao dịch.
  3. Người dùng thanh toán Ethereum “Giá gas”, nhưng không mất bất kỳ mã thông báo nào.
  4. Đề xuất này thêm một tham số bổ sung vào chức năng “chuyển”, để kiểm tra xem địa chỉ nhận có phải là tài khoản hợp đồng hay không.
  5. Nếu nó phát hiện ra rằng địa chỉ người nhận là tài khoản hợp đồng chứ không phải tài khoản EOA, thì nó giả định rằng hợp đồng đã triển khai “tokenFallback”.
  6. Chức năng “tokenFallback” cho phép gọi lại mã thông báo, vì vậy giao dịch không ghi bất kỳ mã thông báo nào.

Mặc dù ERC223 giải quyết được lỗi ERC 20 ở một mức độ lớn, nhưng có một điểm yếu trong đề xuất này. Nếu hợp đồng thông minh của người nhận không có chức năng “tokanFallback”, thì chức năng “Dự phòng” sẽ chạy, dẫn đến mất mã thông báo.

Chỉ một số dự án sử dụng ERC 223, một ví dụ là Dự án AmigoCoin. Bạn có thể đọc thêm chi tiết về đề xuất ERC 223 trong Kho lưu trữ GitHub EIP 223. Tiêu chuẩn này còn được gọi là ERC 23.

Tiêu chuẩn ERC777: Đề xuất cải tiến để giải quyết lỗi ERC 20

Một đề xuất được cải tiến để ngăn chặn việc mất mã thông báo do lỗi ERC 20 là đề xuất ERC 777. Nó bao gồm những điều sau:

  1. Các chức năng mới: “gửi” thay vì “chuyển”, “AuthoseOperator” thay vì “phê duyệt” và “tokensReceive” thay vì “tokenFallback”.
  2. Từ lâu, nền tảng Ethereum đã có một nhược điểm vì các nhà phát triển không thể xác định các chức năng mà hợp đồng thông minh triển khai. ERC 820, tức là một tiêu chuẩn khác, đã triển khai hệ thống đăng ký hợp đồng tập trung trên mạng, do đó, giờ đây có thể biết các chức năng và giao diện mà một hợp đồng thông minh có. ERC777 sử dụng nó để xác định các giao diện mà hợp đồng thông minh sử dụng. Giờ đây, các nhà phát triển sẽ biết trước liệu một hợp đồng có các chức năng cần thiết để nhận mã thông báo được gửi qua một số chức năng nhất định hay không.
  3. ERC 777 cho phép ‘danh sách trắng’ các nhà khai thác, vì vậy người dùng mạng Ethereum giờ đây sẽ có khả năng từ chối thanh toán từ các địa chỉ nằm trong danh sách đen. Một địa chỉ có thể bị đưa vào danh sách đen do nhiều lý do, ví dụ: cố gắng hack mạng, lịch sử của các hoạt động bất hợp pháp.

Bạn có thể thấy trong phần so sánh ERC 777 so với ERC 20 và ERC 223 cách ERC777 cung cấp nhiều tùy chọn cho các nhà phát triển để họ có thể ngăn chặn việc mất mã thông báo. Tuy nhiên, tiêu chuẩn ERC777 cũng đi kèm với một số rủi ro, như sau:

  1. Một số nhà phát triển Ethereum tin rằng chức năng “AuthoseOperator” không được dùng nữa, do đó các nhà phát triển không nên sử dụng nó. Chức năng này cũng sẽ yêu cầu nhiều “Gas” hơn và nó sẽ gây thêm căng thẳng cho mạng.
  2. Việc sử dụng cơ quan đăng ký hợp đồng thông minh trung tâm để tìm kiếm các giao diện mà hợp đồng sử dụng là rất rủi ro. Cơ quan đăng ký trung tâm có thể có lỗi và bất cứ điều gì phụ thuộc vào nó sẽ có tác động bất lợi.

ERC777 vẫn là một bản nháp, tuy nhiên, ORCA mã thông báo sử dụng nó. Đọc đề xuất trong Kho lưu trữ GitHub EIP 777.

ERC 777 so với ERC 20 so với ERC 223: Bảo vệ quỹ là quan trọng

Mặc dù chỉ có thời gian mới cho biết tiêu chuẩn nào mà hệ sinh thái Ethereum sẽ chấp nhận là “Tiêu chuẩn vàng”, bạn với tư cách là nhà phát triển cần nhớ rằng trách nhiệm của bạn là bảo vệ quỹ của nhà giao dịch và nhà đầu tư. Nếu bạn đảm nhận một vị trí có trách nhiệm như vậy, bạn có thể sẽ đồng ý rằng mặc dù phức tạp, tiêu chuẩn ERC 777 nên được thực hiện và thông qua.

Lưu ý: Nếu bạn muốn tìm hiểu thêm về một số tiêu chuẩn ERC chính, hãy đọc “Danh sách cuối cùng về các tiêu chuẩn ERC mà bạn cần biết”. 

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map