BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Khám phá các tiêu chuẩn chung cho các giao dịch meta Ethereum

以太坊爱好者
特邀专栏作者
Bài viết này có khoảng 5330 từ, đọc toàn bộ bài viết mất khoảng 8 phút
Giao dịch meta, ví hợp đồng thông minh và các giả định chức năng tiêu chuẩn chung.
Tóm tắt AI
Giao dịch meta, ví hợp đồng thông minh và các giả định chức năng tiêu chuẩn chung.

Lưu ý của biên tập viên: Bài viết này là từ:Những người đam mê Ethereum (ID: ethfans)Lưu ý của biên tập viên: Bài viết này là từ:

Những người đam mê Ethereum (ID: ethfans)

Bài viết này là câu trả lời của Bloxis đối với sự cạnh tranh của Metamask nhằm khái quát hóa các siêu giao dịch trên Gitcoin. Khi chúng tôi dự định kết hợp chức năng này vào các sản phẩm sắp tới của mình, chúng tôi đã đầu tư rất nhiều thời gian và công sức vào lĩnh vực này và do đó, chúng tôi thực sự muốn có thể tham gia thảo luận về lĩnh vực này. Nếu bạn có bất kỳ phản đối nào đối với quan điểm của tôi, vui lòng chỉ ra chúng và tôi rất vui được thảo luận với bạn.

giới thiệu

- Nguồn: Gitcoin -

giới thiệu

Miễn là bạn sẵn sàng chi tiền, bạn có thể thực hiện bất kỳ thao tác nào (không vượt quá giới hạn Gas) trong một giao dịch Ethereum-trên một mạng chuỗi khối không biên giới phi tập trung gần như hoàn toàn. Âm thanh rất tuyệt phải không? đó là sự thật. Nhưng! Vấn đề là cần Gas để thực hiện giao dịch và Gas được thanh toán bằng Ethereum, nhưng ai có Ethereum cho người dùng mới? (Cái gì? Bạn nói có những kẻ chơi mạng, các bên tích trữ tiền xu và các tổ chức MLM? Thôi nào, đó không phải là những người bình thường)

Mô tả hình ảnh

- Nguồn hình ảnh: Gói biểu tượng cảm xúc này là của riêng tôi P :) -

Tương lai của DeFi, trò chơi blockchain và hệ sinh thái dApp phụ thuộc vào quy mô người chơi tham gia thị trường. Điều này có nghĩa là chúng tôi cần giải quyết vấn đề giới thiệu cho người chơi mới và hạ thấp ngưỡng kiến ​​thức để vận hành an toàn. Hai vấn đề chính hiện tại là người chơi cần phải có ví kỹ thuật số và một số ether để bắt đầu - đây là điều mà nhiều người trong ngành đang nỗ lực khắc phục.

Trước khi giao dịch meta ra đời, việc gửi tiền trước là bắt buộc để hoàn thành các dịch vụ trên, tức là lần gửi Ether đầu tiên vào tài khoản của người dùng cuối để tạo thuận lợi cho giao dịch. Lambda Sensui từ Uport là một ứng dụng tiêu biểu trong vấn đề này.

hoàn thành

Nếu bạn muốn tìm hiểu thêm về các giao dịch meta, bạn có thể đọc bài viết sau, tác giả của bài viết này là một điểm chuẩn trong cộng đồng - Austin Griffith.

Giao dịch meta Ethereum: Hạ thấp các rào cản đối với việc phổ biến Ethereum (Ghi chú của biên tập viên: Xem phần cuối bài viết để biết bản dịch tiếng Trung)

hoàn thành

Trên chuỗi, việc triển khai các giao dịch meta yêu cầu một tiêu chuẩn mã hóa để mã hóa dữ liệu giao dịch được gửi bởi người gửi ban đầu - để hợp đồng đích có thể khôi phục chữ ký và dữ liệu của họ mà không bị ảnh hưởng bởi msg.sender (tức là người chuyển tiếp). Tuy nhiên, ngoài chuỗi, người dùng cuối phải được kết nối với người chuyển tiếp thông qua API hoặc giao thức truyền thông. Và bản thân người chuyển tiếp phải có một số ether và cơ sở hạ tầng để tìm nạp và chuyển tiếp các giao dịch meta.

Một giải pháp rất phù hợp với tình huống cụ thể, chẳng hạn như phương thức permit() được sử dụng trong hợp đồng mã thông báo ERC-20 của Dai, giúp giải quyết vấn đề trên chuỗi một cách tinh tế - đây là một loại vấn đề cần được gửi trực tiếp bởi phương thức phê duyệt của người dùng cuối. Ngoài ra, phương pháp này triển khai EIP-712, tiêu chuẩn để biểu thị và ký dữ liệu tin nhắn để sử dụng trên chuỗi. Có thể cho rằng, Dai chỉ cần hỗ trợ một siêu giao dịch này, vì tất cả các trường hợp sử dụng khác (chẳng hạn như gửi Dai và điều phối các hoạt động DeFi) đều có thể được triển khai bằng giải pháp này.

Ví hợp đồng

Một số tổ chức như Dapper Labs, Gnosis và Argent đang tung ra các ví hợp đồng nhằm mục đích cân bằng trải nghiệm người dùng và bảo mật. Ví hợp đồng lưu trữ tiền của người dùng trong hợp đồng thông minh và các chức năng gửi giao dịch và bảo vệ bảo mật tài khoản trong hợp đồng có thể vượt xa cấp độ của chính giao thức Ethereum.

Mô tả hình ảnh

- Nguồn: Dapper Labs -

Với cách tiếp cận này, các giao dịch có thể được gửi ngay cả khi không có Ether trong tài khoản và không cần ngành phải chấp nhận tiêu chuẩn tương tự - ví hợp đồng có thể giống như một tài khoản chủ sở hữu bên ngoài (nghĩa là địa chỉ người dùng bình thường được kiểm soát bởi khóa tiêu chuẩn pair, EOA) để gọi các hợp đồng khác. Ngoài ra, nó còn mang đến một loạt tính năng bảo mật, chẳng hạn như tường lửa giao dịch của Authereum.

Mô tả hình ảnh

- Nguồn: Authereum -

Những rắc rối do ví hợp đồng mang lại

Đối với ví hợp đồng và các đổi mới như Dịch vụ đặt tên Ethereum (ENS), có rất nhiều tiếng vang trong cộng đồng Ethereum. Tuy nhiên, với nhiều người dùng sử dụng tên miền ENS làm danh tính cho tất cả hoạt động trên chuỗi của họ (và sử dụng tên thật cho phần có thể đọc được của tên miền), mối lo ngại lớn về quyền riêng tư và bảo mật bắt đầu xuất hiện.

Bản thân các địa chỉ ví Ethereum là "ẩn danh giả" (và do đó hơi riêng tư), nhưng nhiều nhà cung cấp phần mềm ví hiện đang khuyến khích người dùng của họ lấy địa chỉ ENS mà không thông báo cho họ về hậu quả của việc làm như vậy. Tóm lại, hồ sơ giao dịch của tài khoản Ethereum (bao gồm danh mục đầu tư và hồ sơ tương tác với dApps) được công khai trên chuỗi. Sau khi một địa chỉ đăng ký tên miền ENS, các hoạt động giao dịch này được liên kết với tên miền ENS này. Tên ENS do người dùng đăng ký có thể là tên mà người dùng đã sử dụng trong các dịch vụ khác hoặc trong đời thực. Đây là lý do chính khiến tôi nghi ngờ về việc ràng buộc ENS với các địa chỉ ví hợp đồng (cho mục đích sử dụng cá nhân).

Tuy nhiên, tôi hoàn toàn ủng hộ ví hợp đồng/ví đa chữ ký sử dụng ENS để xác định hợp đồng thông minh nhằm ngăn chặn gian lận và cho các tổ chức có thể hưởng lợi từ các hoạt động minh bạch 🙌

Thông qua Ví xác định phân cấp (viết tắt là ví HD), người dùng có thể sử dụng một khóa riêng để tạo nhiều địa chỉ EOA để lưu trữ các tài sản khác nhau; sử dụng nhiều địa chỉ để hoạt động riêng biệt, ngay cả khi người dùng biết cách sử dụng giao thức dApp và DeFi và khởi tạo một số lượng lớn các giao dịch và vẫn duy trì một mức độ ẩn danh nhất định. Sử dụng bộ quy tắc này, người dùng thậm chí chỉ có thể giữ một khóa riêng, sau đó tạo địa chỉ EOA cho mỗi dApp và mã thông báo sẽ được sử dụng để tương tác. Mặc dù ví hợp đồng cũng có thể làm điều này, nhưng do có phí Gas nên việc tạo ví hợp đồng cho mỗi dApp/token được người dùng sử dụng là rất tốn kém và không thực tế. Ngay cả khi phí gas không được xem xét, làm như vậy sẽ gây ra tắc nghẽn mạng.

Mô tả hình ảnh

- Ví xác định phân cấp là một giải pháp bảo mật theo cách riêng của chúng và cũng áp dụng cho ví Ethereum. Nguồn: Casa-

Giả sử rằng tất cả người dùng trong hệ sinh thái Ethereum có một ví hợp đồng tương ứng cho mỗi dApp tương tác với họ, để họ có thể sử dụng chức năng giao dịch meta và bảo vệ quyền riêng tư của họ - thì sẽ hợp lý hơn nếu các hợp đồng thông minh áp dụng một tiêu chuẩn chung .

Hướng tới tiêu chuẩn chung

Bất kể quan điểm của bạn về các giải pháp dựa trên hợp đồng và dựa trên ví hợp đồng là gì, hiện tại không có tiêu chuẩn rõ ràng — các cuộc gọi phương thức khác nhau giữa các hợp đồng và các hệ thống chuyển tiếp giao dịch khác nhau. Mạng Trạm xăng đã thực hiện rất nhiều công việc cơ bản, nhưng nó vẫn chưa đủ linh hoạt. Hợp đồng người được trả tiền có thể không trả phí gas. Vậy làm thế nào để người dùng sử dụng tài sản của họ để trả tiền cho người chuyển tiếp? Làm thế nào để chúng tôi yêu cầu bên kia thanh toán phí gas cho giao dịch này? Đây là những loại câu hỏi mà chúng tôi hy vọng sẽ giải quyết được trong cuộc đua tổng quát hóa các siêu giao dịch — những đề xuất thực sự đáng giá sẽ đối mặt với những câu hỏi này.

  • Dựa trên ý tưởng chúng tôi đưa ra, tổng cố vấn Vincent của chúng tôi đã đề xuất một ý tưởng: cho phép các nhà phát triển dApp gửi tiền trước để người dùng trả phí gas và người dùng trao đổi chúng bằng tiền pháp định; để tránh các dự án dApp bị coi là trao đổi, Những ethers chỉ có thể được sử dụng bên trong dApp. Đây là cơ chế mà chúng tôi hy vọng sẽ hỗ trợ trong một tiêu chuẩn siêu giao dịch tổng quát trong tương lai (đây là điều mà chúng tôi đã nghĩ ra cách đây một năm khi chúng tôi đang nghiên cứu một thứ khác). Mạng trạm xăng hỗ trợ ý tưởng này bằng cách triển khai tùy chỉnh phương thức acceptRelayedCall().

  • Ngoài ra, cho phép người chuyển tiếp xử lý giao dịch theo lô, nó cũng sẽ giảm phí Gas?

  • Các cơ chế sẵn có để hỗ trợ các phương thức hoàn trả/thanh toán thay thế cho người chuyển tiếp

Một phương thức phù hợp để chạy trong hợp đồng thông minh cho dApps nội dung và DeFi (chứ không phải tiêu chuẩn ví hợp đồng)

Cơ chế hỗ trợ giao dịch theo đợt trong hợp đồng mục tiêu hoặc hợp đồng được sử dụng để chuyển tiếp giao dịch

ethereum/EIP-1613:Gas Station Network

ethereum/EIP-712

Tổng quan về đề xuất của chúng tôi

Như bạn có thể thấy, chúng tôi rất ủng hộ các ý tưởng do Mạng lưới trạm xăng đề xuất. Các phương thức getSender() và getMessageData() do RelayRecipient cung cấp triển khai một giao diện thống nhất, làm cho các siêu giao dịch của tất cả các hợp đồng tương thích với nhau. Tuy nhiên, những cách tiếp cận này ở dạng hiện tại có hai nhược điểm - không có khả năng bảo vệ chống lại các cuộc tấn công lừa đảo và phát lại. Chi tiết:

Để ngăn chặn lừa đảo, EIP-712 đề xuất một giải pháp khéo léo - tách tên miền. Đối tượng này chứa các chi tiết của hợp đồng (mà người dùng ký vào giao dịch sẽ được chuyển tiếp đến) — nghĩa là địa chỉ, tên và phiên bản của dApp. Dữ liệu này được bao gồm trong chữ ký và được trình bày cho người dùng cuối một cách rất thân thiện cùng với tất cả các dữ liệu giao dịch khác. Điều này hạn chế cách người dùng có thể ký giao dịch, ngăn họ khởi tạo các loại giao dịch không mong muốn (chẳng hạn như cố tình gửi giao dịch đến sai hợp đồng).

Makerdao/dss:https://github.com/makerdao/

Mô tả hình ảnh

- Giao diện metamask để ký dữ liệu bằng phương thức signTypedData_v4. Nguồn: Metamask -

Các hợp đồng hỗ trợ EIP-712 cần xác minh rằng phần tách tên miền khớp với chính hợp đồng và từ chối giao dịch nếu chúng không khớp. Bạn có thể thấy điều này trong mã cho hợp đồng Dai được liệt kê bên dưới. Chúng tôi muốn tích hợp EIP-712 vào getSender() và getMessageData() để có thể thực hiện kiểm tra này trên mọi lệnh gọi phương thức - nếu chữ ký không khớp, hãy từ chối giao dịch. Bạn có thể nhấp vào liên kết bên dưới để xem mã cho chức năng này. (Xin lỗi, định dạng mã nhúng của bài viết không được hiển thị chính xác)

Ngoài ra, trong mã ở trên, bạn cũng có thể thấy rằng MakerDAO tự triển khai tính năng bảo vệ phát lại bằng thuộc tính nonce - nếu không có thuộc tính này, các bên được ủy quyền có thể rút tiền của người dùng bằng cách phát lại các giao dịch.

Siêu giao dịch thường là một phần của tập hợp các hoạt động có thể phụ thuộc vào các giao dịch trước đó. Ví dụ: trong trường hợp bằng chứng về khái niệm mà chúng tôi đã xây dựng, người dùng có thể gửi xDai vào giao thức Compound. Trên mạng chính, điều này có nghĩa là chúng tôi cấp quyền truy cập hợp đồng cDai vào tiền của người dùng, sau đó gọi phương thức mint() để gửi số tiền đó vào giao thức cho vay.

Nếu tài khoản của người dùng không phải là ví hợp đồng, thì cần phải thực hiện một loạt thao tác để hoàn tất quy trình này: trước tiên, phương thức phê duyệt()/permit() phải được gọi thông qua giao dịch, sau đó phương thức mint() phải được gọi sau đó. giao dịch được đóng gói. Với ví hợp đồng, bạn có thể xử lý hàng loạt các giao dịch này bằng cách gọi một phương thức hợp đồng đặc biệt.

Nó chắc chắn sẽ là một sự đổi mới lớn nếu có một phương pháp phân lô siêu giao dịch tổng quát có sẵn cho tất cả mọi người. Điều này sẽ đơn giản hóa đáng kể các hoạt động trên chuỗi, giống như các ví dụ khác nhau được đề cập ở trên. Ngoài ra, phương pháp này sẽ cho phép người dùng ký và chuyển tiếp nhiều giao dịch không liên quan cùng một lúc.

Tuy nhiên, trong một số trường hợp, người dùng có thể muốn gửi nhiều giao dịch meta cho một hợp đồng. Ví dụ: khi một EOA chỉ nắm giữ một tài sản muốn trả lương theo đợt. Một hệ thống xử lý hàng loạt các siêu giao dịch phải được thiết kế có tính đến điều này và đảm bảo rằng thứ tự gửi các giao dịch được giữ nguyên.

Ngoài ra, xử lý hàng loạt cũng cho phép người chuyển tiếp thu phí tập trung thông qua các giao dịch do người dùng ký, nghĩa là thêm giao dịch chuyển khoản cho người chuyển tiếp trong một loạt giao dịch và phương thức này cũng có thể được tùy chỉnh. Điều này có thể bằng cách chuyển mã thông báo ERC-20 cho người chuyển tiếp hoặc yêu cầu hợp đồng mục tiêu của người dùng trả phí.

Bộ tổng hợp chuyển tiếp phải hỗ trợ tạo đợt giao dịch và bổ sung phương thức sendRawTransaction() bằng phương thức sendRawTransactionSet() để gửi nhiều giao dịch bởi cùng một người dùng. Phương thức sendRawTransactionSetPlural() cũng nên được sử dụng để tạo điều kiện thuận lợi cho các giao dịch theo đợt chuyển tiếp từ nhiều người dùng nhằm giảm thiểu chi phí gas.

- Nguồn: Tabey -

tóm tắt

Nếu nó có thể được tài trợ bởi một giao dịch trong bộ giao dịch, thì điều này có thể đạt được chỉ với một thay đổi nhỏ đối với quy trình làm việc hiện tại của bộ tổng hợp chuyển tiếp. Bộ chuyển tiếp có thể chuyển gasPrice và các tham số phí acceptRelayCall() được đặt thành 0. Người chuyển tiếp có thể liên tục trích xuất các giao dịch từ bộ giao dịch và xử lý chúng theo tiêu chuẩn cho đến khi hoàn thành.

Thách thức thực sự mà chúng tôi phải đối mặt là làm thế nào để tạo ra một tiêu chuẩn để đóng gói các giao dịch thành các bộ giao dịch, giải nén và thực hiện các giao dịch (đồng thời đảm bảo tính nguyên tử của giao dịch). Nếu không thể đảm bảo tính nguyên tử của giao dịch, những người chuyển tiếp có thể thoát khỏi nó bằng cách chỉ chuyển tiếp các giao dịch phải trả tiền, trong khi bỏ qua các giao dịch khác trong tập hợp. Đó là công việc thực sự! Tôi hiện không biết làm thế nào để làm điều này, nhưng hãy theo dõi bài viết tiếp theo của tôi! Hy vọng rằng tôi có thể biến điều này thành một giải pháp khả thi cho cuộc thi.

tóm tắt

ETH
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký:
https://t.me/Odaily_News
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina
Mục lục bài viết
Thư viện tác giả
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android