ERC-4337 và EIP-3074: Sự phân đôi sai

Nâng caoJan 16, 2024
Bài viết này làm rõ những quan niệm sai lầm về EIP-3074 như một đường dẫn trừu tượng hóa tài khoản thay thế và phân tích sự khác biệt giữa ERC-4337 trừu tượng hóa tài khoản đầy đủ và Epos trừu tượng thực thi thuần túy.
ERC-4337 và EIP-3074: Sự phân đôi sai

Trừu tượng hóa tài khoản là gì?

Mỗi tài khoản Ethereum thực hiện năm chức năng:

  • Xác thực
  • Ủy quyền
  • Bảo vệ phát lại
  • Thanh toán gas
  • Chấp hành

EOA triển khai chúng theo cách được mã hóa cứng:

  • Xác thực và ủy quyền được kết hợp cùng nhau: khóa ECDSA bất biến chứng minh danh tính và cấp toàn quyền.
  • Bảo vệ chống phát lại là một nonce đơn giản - một bộ đếm tăng đơn điệu.
  • Thanh toán gas được thực hiện trực tiếp từ số dư ETH của EOA.
  • Thực thi - một cuộc gọi đến một đích duy nhất.

Trừu tượng hóa tài khoản có nghĩa là thêm logic lập trình vào năm chức năng sau:

  • Xác thực - bất kỳ hình thức chứng minh danh tính của một người.
  • Ủy quyền - bất kỳ chính sách truy cập nào.
  • Bảo vệ lặp lại - thứ tự giao dịch được tách rời khỏi bảo vệ lặp lại.
  • Thanh toán gas - thanh toán gas được tách riêng khỏi tài khoản.
  • Thực thi - bất kỳ logic thực thi nào.

Ví dụ về các trường hợp sử dụng trừu tượng hóa tài khoản

  • Lược đồ chữ ký khác nhau
    • secp256r1 (vùng an toàn, mật mã)
    • Schnorr
    • BLS
    • Hậu lượng tử
    • Bằng chứng ZK (ví dụ zkemail)
  • Xoay phím
    • Thay thế các khóa bị xâm phạm
    • Công tắc kế thừa của Deadman (khóa sẽ hoạt động nếu tài khoản không hoạt động trong một năm)
  • Chính sách truy cập khác nhau
    • Đa chữ ký
    • Truy cập dựa trên vai trò
    • khóa phiên dành riêng cho dapp
    • Phục hồi xã hội
  • Các chương trình bảo vệ phát lại khác nhau
    • Giao dịch song song từ các thực thể khác nhau
    • Các giao dịch trong tương lai được ký trước sẽ được gửi bởi bên thứ 3
    • Kênh hành chính
  • Khai thác khí
    • Tài trợ gas của bên thứ 3
    • Thanh toán bằng tài sản khác ngoài ETH
    • Quyền riêng tư: yêu cầu airdrop ẩn danh hoặc rút tiền từ các bản tổng hợp hoặc bộ trộn ZK
  • Trừu tượng thực thi
    • Sắp xếp nhiều cuộc gọi đến nhiều điểm đến (ví dụ: phê duyệt+chuyểnTừ)
    • Tính nguyên tử
    • cải tiến UX dành riêng cho dapp

ERC-4337 và EIP-3074: Sự phân đôi sai

EIP-3074 nhằm mục đích trừu tượng hóa việc Thực thi bằng cách tăng cường EOA bằng logic thực thi tùy ý thông qua trình gọi. Nó có một thuộc tính duy nhất - mở rộng khả năng của EOA mà không cần phải di chuyển tài sản sang tài khoản mới. Nó không cần giải quyết các vấn đề như truy cập phi tập trung vì việc thực thi không ảnh hưởng đến điều này. Bốn chức năng còn lại cũng có nhưng chúng nằm ngoài phạm vi của EIP-3074.

ERC-4337 nhằm mục đích trừu tượng hóa toàn bộ tài khoản - tất cả năm chức năng. Đó là một vấn đề khó giải quyết hơn nếu muốn duy trì sự phân cấp và khả năng chống kiểm duyệt. Trọng tâm của ERC-4337 là giảm thiểu DoS và các vectơ tấn công nguy hiểm được kích hoạt bằng cách trừu tượng hóa bốn chức năng đầu tiên mà không cần dùng đến cơ sở hạ tầng tập trung. Là một ERC, nó không thể mở rộng khả năng của EOA và yêu cầu chuyển sang tài khoản thông minh.

Sự chồng chéo giữa hai phương thức là tối thiểu: chỉ trừu tượng hóa Thực thi.

Ngoài ra, mỗi phương pháp đều nhằm mục đích giải quyết các vấn đề mà phương pháp kia không làm được: EIP-3074 nhằm mục đích phục vụ các EOA hiện có và giữ mọi thứ đơn giản nhất có thể. ERC-4337 nhằm mục đích cung cấp tính năng Trừu tượng hóa tài khoản đầy đủ mà không phải hy sinh các thuộc tính cốt lõi của Ethereum, chẳng hạn như tính phân cấp.

Nếu ai đó nhất quyết so sánh ERC-4337 với đề xuất trước đó thì đề xuất gần nhất là EIP-2938, không phải EIP-3074. EIP-2938 là một bước đột phá trong việc trừu tượng hóa tài khoản, đề xuất đầu tiên nhận ra khó khăn trong việc giảm thiểu DoS trong bộ nhớ AA. ERC-4337 giải quyết được một số vấn đề nhất định mà EIP-2938 không giải quyết được nhưng việc so sánh đầy đủ nằm ngoài phạm vi của tài liệu này.

Cả ERC-4337 và EIP-3074 có thể giải quyết được vấn đề gì?

Cả hai đều giải quyết được tính trừu tượng thực thi và do đó kích hoạt danh mục cuối cùng của các trường hợp sử dụng ở trên:

  • Thực hiện nhiều cuộc gọi đến nhiều điểm đến
  • Tính nguyên tử
  • cải tiến UX dành riêng cho dapp

EIP-3074 có thể làm gì mà ERC-4337 không thể?

  • Thêm chức năng thực thi phức tạp vào các EOA hiện có.
    • ERC-4337 không thể thêm chức năng vào EOA vì đó là ERC.
  • Đơn giản và hiệu quả sử dụng gas tốt hơn khi chỉ cần thực hiện-trừu tượng.
    • Việc trừu tượng hóa toàn bộ tài khoản sẽ tăng thêm độ phức tạp không cần thiết cho việc trừu tượng hóa thực thi.

ERC-4337 có thể làm gì mà EIP-3074 không thể?

  • Hỗ trợ bất kỳ chuỗi EVM nào vào ngày đầu tiên. Không có thay đổi đồng thuận.
    • EIP-3074 sẽ phải được mỗi chuỗi chấp nhận thông qua thay đổi đồng thuận.
  • Đổi mới không được phép
    • Ví sẽ chỉ cho phép những người gọi EIP-3074 được đưa vào danh sách trắng. Bất kỳ ai cũng có thể tạo và sử dụng tài khoản ERC-4337.
  • Trừu tượng hóa toàn bộ tài khoản - tất cả các trường hợp sử dụng ở trên mà không ảnh hưởng đến tính phân quyền:
    • Đề án chữ ký khác nhau.
      • EIP-3074 sử dụng ECDSA. EIP có đề cập đến lộ trình trong tương lai để chuyển sang một sơ đồ khác, nhưng miễn là bản thân EOA tôn trọng khóa ECDSA thì kẻ xâm nhập không thể ngăn nó được sử dụng trực tiếp.
    • Xoay phím.
      • Với EIP-3074, EOA vẫn có khóa không thể hủy ngang.
    • Chính sách truy cập khác nhau
      • Khóa ECDSA có thể bỏ qua kẻ gọi và thực hiện bất kỳ thao tác nào trong tài khoản. Không có kiểm soát truy cập chi tiết.
    • Các chương trình bảo vệ phát lại khác nhau
      • Tài khoản vẫn là EOA và sử dụng nonce 1 chiều.
    • Khai thác khí
      • Tài khoản tự trả tiền gas bằng ETH.
      • Một hệ thống khai thác khí có thể được xây dựng dựa trên EIP-3074, sử dụng rơle để gửi các giao dịch meta thay mặt cho tài khoản. Tuy nhiên, việc bảo vệ những rơle như vậy khỏi DoS và sự cố là một thách thức, vì vậy chúng có thể sẽ được cấp phép. Phần lớn sự phức tạp của ERC-4337 là do không cho phép các bộ chuyển tiếp (bộ đóng gói) đó.

EIP-3074 + EIP-5003 có thể làm được những gì ERC-4337 làm không?

EIP-5003 bổ sung cho EIP-3074 bằng cách cho phép EOA thu hồi khóa ECDSA của nó và trở thành hợp đồng thông minh. Là một hợp đồng, nó có thể trừu tượng hóa phần còn lại của các chức năng tài khoản, ví dụ: thay thế ECDSA bằng chữ ký khác, xoay phím, áp dụng chính sách truy cập, v.v. Theo nghĩa đó, nó phần nào tương đương với các đề xuất như EIP-6913EIP-7377, nhưng vượt trội hơn EIP-7377 vì với tư cách là một opcode, nó có thể sử dụng hệ thống trích xuất khí để tự di chuyển.

Sau khi EOA được chuyển đổi thành hợp đồng thông minh, nó không còn có thể giao dịch trực tiếp nữa và cần được truy cập thông qua một EOA khác. Điều này đặt ra thách thức mà ERC-4337 được thiết kế để giải quyết. Người dùng có hai cách để giao dịch với tài khoản sau khi di chuyển:

  1. Duy trì một EOA được tài trợ khác để giao dịch với tài khoản và ký mỗi giao dịch hai lần. Điều này phủ nhận giá trị của việc trừu tượng hóa tài khoản và dẫn đến trải nghiệm người dùng kém.
  2. Sử dụng rơle duy trì EOA được tài trợ, đưa các giao dịch vào chuỗi và được tài khoản hoàn trả. Việc bảo vệ một rơle như vậy chống lại DoS và sự đau buồn khó hơn tưởng tượng, vì vậy một số dự án chạy một rơle được cấp phép. Điều này dẫn đến mất đi sự phân cấp và khả năng chống kiểm duyệt.

Cách để phân cấp quyền truy cập tài khoản sau di chuyển là áp dụng một số hạn chế nhất định cho đến khi tài khoản thanh toán gas. Cách tiếp cận này được thực hiện bởi cả EIP-2938 và ERC-4337. <a href="https://notes.ethereum.org/ @yoav /unified-erc-4337-mempool">ERC-4337 mempool cung cấp một cách phi tập trung để giao dịch với tài khoản.

TL;DR: Không, nó chỉ nêu bật sự cần thiết của ERC-4337.

Hãy cẩn thận: Việc di chuyển EOA được coi là có hại

Việc người dùng EOA hiện tại chuyển sang tài khoản thông minh tại chỗ thay vì chuyển tài sản là điều hấp dẫn. Tuy nhiên, nó đi kèm với một số lỗ hổng nhất định, một số trong đó không thể giảm thiểu được.

Điều gì có thể xảy ra nếu khóa EOA bị xâm phạm sau khi bị thu hồi?

  1. Khóa vẫn còn hiệu lực trên các chuỗi khác (bao gồm cả các chuỗi trong tương lai thậm chí không tồn tại tại thời điểm di chuyển). Nó có thể được sử dụng để yêu cầu cùng một tài khoản trên các chuỗi khác và chuyển bất kỳ tài sản nào được gửi đến tài khoản trên các chuỗi này.
  2. Các hệ thống ngoài chuỗi như quy trình đăng nhập của giao diện dapp sẽ kiểm tra chữ ký. Nhiều người trong số họ hỗ trợ EIP-1271 cho chữ ký hợp đồng thông minh, nhưng chỉ thử nếu ecrecover không thành công. Chìa khóa có thể được sử dụng để xâm phạm tài khoản trên các hệ thống này.
  3. Nó có thể được sử dụng trên chuỗi (trên cùng một chuỗi nơi nó đã bị thu hồi) để ký ủy quyền cấp phép. Nếu tài khoản chứa mã thông báo ERC-20 hỗ trợ giấy phép, các mã thông báo này có thể bị đánh cắp bằng cách sử dụng khóa bị thu hồi.
  4. Cầu nối chuỗi thường kiểm tra chữ ký trong quá trình rút tiền. Nếu tài khoản gửi tiền đến một chuỗi khác thông qua một cây cầu như vậy, khóa bị thu hồi có thể được sử dụng để rút tiền ở phía bên kia.

Người dùng có thể ghi khóa riêng sau khi di chuyển và hy vọng rằng không còn bản sao nào, nhưng sau đó người dùng cũng không thể yêu cầu cùng một địa chỉ trên các chuỗi khác.

Do đó, việc di chuyển nên được sử dụng như là phương sách cuối cùng khi có lý do chính đáng để giữ địa chỉ cũ. Theo mặc định, các tài khoản mới được triển khai tốt nhất với CREATE2 thay vì được di chuyển từ EOA, để chúng không được liên kết với khóa EOA trên các chuỗi khác.

Cộng đồng có xu hướng nhấn mạnh quá mức tầm quan trọng của việc di chuyển EOA vì hầu hết người dùng hiện tại đều có EOA. Một tỷ người dùng tiếp theo có thể bắt đầu bằng tài khoản thông minh và không phải di chuyển từ EOA. Chúng tôi, những người dùng EOA hiện tại, chỉ là một phần rất nhỏ trong số đó. Việc di chuyển có thể quan trọng trong một thời gian để người dùng hiện tại di chuyển. Nó sẽ trở thành một luồng ít được sử dụng khi việc trừu tượng hóa tài khoản là tiêu chuẩn.

Có sự phối hợp giữa ERC-4337 và EIP-3074 không?

Đúng, chúng có thể được <a href="https://notes.ethereum.org/@yoav/eip-3074-erc-4337-synergy"> kết hợp theo những cách thú vị . Nếu một chuỗi áp dụng EIP-3074, các dự án sử dụng ERC-4337 có thể sử dụng nó để mang lại lợi ích cho họ.

RIP-7560: Con đường đầy hứa hẹn cho tương lai của việc trừu tượng hóa tài khoản

Cả EIP-3074 và ERC-4337 đều là các bước để nhận được một số lợi ích của việc trừu tượng hóa tài khoản gốc hoàn toàn. Cái trước tập trung vào việc nhận được tất cả lợi ích của việc trừu tượng hóa thực thi và cái sau tập trung vào việc nhận được tất cả lợi ích của việc trừu tượng hóa tài khoản trên tất cả các chuỗi EVM nhưng theo cách không tự nhiên và kém hiệu quả hơn.

Một chuỗi mong muốn người dùng được hưởng lợi từ việc trừu tượng hóa tài khoản gốc hoàn toàn có thể áp dụng RIP-7560. Nó sử dụng cùng một tài khoản và kiến trúc mempool như ERC-4337 nhưng hoạt động nguyên bản ở cấp giao thức.

RIP-7560 không cần phải được áp dụng từ ngày đầu tiên và các tài khoản hiện tại sẽ có thể di chuyển sang nó trên các chuỗi chọn áp dụng nó bất kỳ lúc nào trong tương lai:

  • Các tài khoản ERC-4337 sẽ có thể di chuyển sang RIP-7560 mà không thay đổi kiến trúc của chúng, bằng cách thay đổi cách triển khai để tin tưởng vào địa chỉ EntryPoint đặc biệt được xác định trong RIP-7560. Một tài khoản có thể tương thích với cả ERC-4337 và RIP-7560 mà không tốn nhiều công sức nên thậm chí không cần phải di chuyển.
  • EOA có thể di chuyển trực tiếp sang RIP-7560 mà không cần thông qua ERC-4337 hoặc EIP-3074. RIP-7560 đã hỗ trợ khai thác khí cho EOA. RIP trong tương lai có thể cho phép EOA đặt mã của nó, cho dù sử dụng mã opcode như SETCODE (EIP-6913) hay AUTHUSURP (EIP-5003) hoặc bằng cách thêm loại phụ TransactionType4 tương tự như EIP-7377. Mã hoạt động/loại phụ này có thể được sử dụng bởi hợp đồng di chuyển được gọi trong giao dịch Loại 4 (RIP-7560). Tuy nhiên, quá trình di chuyển EOA <a href="https://notes.ethereum.org/@yoav/erc-4337-vs-eip-3074-false-dichotomy#Caveat:-EOA-migration-considered-harmful"> không được khuyến khích .

RIP-7560 cần phản hồi của bạn

Chúng tôi đang thu thập phản hồi về RIP-7560 trước khi đề xuất cất giữ nó. Nếu bạn quan tâm đến việc trừu tượng hóa tài khoản gốc, vui lòng xem lại PR hoặc tham gia thảo luận.

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được in lại từ [https://notes.ethereum.org/@ yoav/erc-4337-vs-eip-3074-false-dichotomy@yoav ]. Mọi bản quyền đều thuộc về tác giả gốc [@yoav]. Nếu có ý kiến phản đối việc tái bản này, vui lòng liên hệ với nhóm Gate Learn , họ sẽ xử lý kịp thời.
  2. Tuyên bố miễn trừ trách nhiệm pháp lý: Các quan điểm và ý kiến trình bày trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Việc dịch bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch đều bị cấm.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500
Tạo tài khoản