Phân tích về EIP-6963: Một bước tiến về việc cải thiện khả năng tương tác của Ví Ethereum và nâng cao trải nghiệm người dùng

Nâng cao1/15/2025, 8:36:35 AM
EIP-6963 giới thiệu một tiêu chuẩn mới nhằm tối ưu hóa cơ chế khám phá và tương tác của ví tiền mở rộng trình duyệt Ethereum. Nó nhằm giải quyết các vấn đề như xung đột ví, thiếu hỗ trợ đa dịch vụ và trải nghiệm người dùng không trực quan. So với tiêu chuẩn EIP-1193 hiện tại, EIP-6963 giới thiệu các sự kiện cửa sổ và một giao thức truyền thông hai chiều, cho phép các ứng dụng phi tập trung nhận diện và điều chỉnh ví tiền ưa thích của người dùng một cách hiệu quả hơn.

Nguồn gốc của EIP-6963

Trong hệ sinh thái blockchain, Ví tiền tiện ích trình duyệt là ứng dụng ví tiền tồn tại dưới dạng plugin trình duyệt. Chúng cho phép người dùng tương tác một cách tiện lợi với tài khoản blockchain trực tiếp trong các ứng dụng phân cấp (dApps), như gửi giao dịch, ký các thông điệp, hoặc tương tác với hợp đồng thông minh. Ví dẫn đầu nhất là MetaMask, mà gần như đã trở thành một công cụ tiêu chuẩn cho việc sử dụng các ứng dụng dApps trên hệ sinh thái Ethereum. Khác với các ứng dụng truyền thống, ví tiện ích trình duyệt được nhúng trong môi trường trình duyệt. Phương pháp này giúp đơn giản hóa quá trình tương tác của người dùng với blockchain và loại bỏ các rào cản kỹ thuật của các hoạt động nút phức tạp hoặc quản lý khóa riêng tư. Người dùng chỉ cần cài đặt tiện ích mở rộng để nhanh chóng bắt đầu sử dụng mạng blockchain.

Trong ngữ cảnh này, “nhà cung cấp dịch vụ” đề cập đến công nghệ hoặc giao diện mặc định hỗ trợ các chức năng của ví tiền này. Ví dụ, các ví tiền giao tiếp với các nút blockchain thông qua giao thức Ethereum JSON-RPC, trong khi nhà cung cấp dịch vụ cung cấp giao diện RPC tương ứng để cho phép ví tiền xử lý an toàn các tương tác trên chuỗi.

Hãy tưởng tượng bạn muốn sử dụng một sàn giao dịch phi tập trung (DEX) hoặc một thị trường NFT. Bạn mở trang web của dApp, hào hứng bắt đầu tương tác. Tuy nhiên, một vấn đề phát sinh - trình duyệt của bạn đã cài đặt nhiều tiện ích mở rộng ví, chẳng hạn như MetaMask, Coinbase Wallet và Brave Wallet, nhưng dApp không xác định chính xác ví bạn hiện đang sử dụng và thậm chí còn đưa ra thông báo lỗi: "Không phát hiện thấy ví, vui lòng cài đặt tiện ích mở rộng ví." Bạn thử làm mới trang và khởi động lại trình duyệt, nhưng sự cố vẫn tiếp diễn. Kịch bản phổ biến này nêu bật một vấn đề thực tế: cơ chế nhận dạng và tương tác của ví mở rộng trình duyệt là không đầy đủ. Khi nhiều tiện ích mở rộng ví và nhà cung cấp dịch vụ xuất hiện, trải nghiệm người dùng trở nên phức tạp và khó hiểu hơn.

Để giải quyết các vấn đề tương tác giữa ví tiền và các ứng dụng phi tập trung, cộng đồng đã giới thiệu EIP-1193 (Ethereum JavaScript Provider API), một tiêu chuẩn chung xác định cách các ứng dụng phi tập trung có thể giao tiếp với ví tiền thông qua môi trường trình duyệt. Ý tưởng cốt lõi của EIP-1193 là xử lý các chức năng blockchain được cung cấp bởi ví tiền thông qua một giao diện chuẩn. Ví dụ, một ứng dụng phi tập trung giao tiếp với ví tiền thông qua đối tượng window.ethereum, gửi yêu cầu hoặc nhận sự kiện blockchain.

Mặc dù EIP-1193 một phần giải quyết vấn đề tương thích giữa ví tiền và ứng dụng phi tập trung, nhưng vẫn còn một số hạn chế rõ ràng:

  1. Xung đột nhiều Ví tiền: Khi người dùng cài đặt nhiều Ví tiền tiện ích trình duyệt, EIP-1193 theo mặc định sẽ gán window.ethereum với Ví tiền đầu tiên được tải. Kết quả, các Ví tiền khác có thể không được nhận diện đúng, và trong một số trường hợp, ứng dụng phi tập trung có thể không hoạt động.
  2. Thiếu Hỗ trợ Đa dịch vụ: Nhiều dApps muốn hỗ trợ nhiều ví tiền, nhưng EIP-1193 không cung cấp cơ chế rõ ràng để phân biệt hoặc chọn lựa giữa các nhà cung cấp dịch vụ khác nhau. Điều này buộc các nhà phát triển dApp phải thiết kế logic phức tạp để xử lý việc điều chỉnh ví tiền.
  3. Trải nghiệm người dùng không rõ ràng: Đối với người dùng thông thường, việc hiểu rõ nguyên nhân kỹ thuật đằng sau các thông báo lỗi như “Không phát hiện được ví tiền” hoặc “Không kết nối đúng cách,” làm tăng ngưỡng sử dụng và dẫn đến sự nản lòng.

Để giải quyết vấn đề này, cộng đồng đã đề xuất EIP-6963 (Tiêu chuẩn Khám phá Ví tiền Trình duyệt Mở rộng), một kế hoạch cải tiến cho các ví tiền trình duyệt mở rộng nhằm tối ưu hóa cơ chế khám phá và tương tác của ví tiền. Giải pháp nhằm mục tiêu giảm thiểu rào cản đối với các nhà cung cấp ví tiền mới, thúc đẩy cạnh tranh công bằng và nâng cao trải nghiệm người dùng trên mạng lưới Ethereum. Cụ thể, nó giới thiệu một tập hợp các sự kiện cửa sổ và cung cấp một giao thức truyền thông hai chiều, cho phép thư viện Ethereum và các kịch bản được tiêm vào bởi các tiện ích mở rộng trình duyệt tương tác. Điều này sẽ cho phép người dùng chọn ví tiền ưa thích dựa trên nhu cầu của họ, cải thiện trải nghiệm tổng thể.

Phân tích mã

Đảo ngược DNS (RDNS)

Reverse DNS (RDNS) đảm bảo sự ổn định của các nhà cung cấp ví tiền trong khi ngăn chặn xung đột tên miền. EIP-6963 nhấn mạnh các quy tắc mà các quy ước RDNS nên tuân theo, chẳng hạn như định dạng tên miền hợp lệ và các phần tên miền do nhà cung cấp kiểm soát. Nó cũng nhấn mạnh rằng các dApp không nên dựa vào giá trị RDNS để phát hiện tính năng để tránh khả năng khích lệ giả mạo hoặc động cơ độc hại. Giao diện ProviderDetail của EIP-6963 cung cấp cho các dApp siêu dữ liệu nhà cung cấp ví tiền, hỗ trợ tương tác ví tiền.

Chi tiết Người cung cấp EIP6963

EIP6963ProviderDetail là một giao diện được sử dụng để khai báo và mô tả thông tin nhà cung cấp ví tiền. Bằng cách bao gồm các thuộc tính như thông tin (siêu dữ liệu ví) và nhà cung cấp (giao diện nhà cung cấp ví), nó cho phép các ứng dụng phi tập trung (dApps) có được thông tin chi tiết về các ví và tương tác với chúng thông qua các giao diện tiêu chuẩn. Giao diện này đóng vai trò là nền tảng để đạt được tính tương thích và khả năng tương tác giữa các ứng dụng phi tập trung và các ví khác nhau.

Cơ chế Sự kiện

Cơ chế sự kiện đảm bảo rằng các ứng dụng phi tập trung và ví tiền có thể khám phá và tương tác với nhau mà không phụ thuộc vào thứ tự thực thi cố định. Điều này cho phép việc khám phá và tương tác giữa các ứng dụng phi tập trung và ví tiền không bị ảnh hưởng bởi thứ tự thực thi, do đó tránh xung đột và lỗi.

Loại Sự kiện

EIP6963AnnounceProviderEvent: Sự kiện này được ví tiền sử dụng để thông báo về sự hiện diện của họ. Nó chứa thông tin về ví tiền (EIP6963ProviderDetail) và giao diện ví tiền (EIP1193Provider). Thuộc tính chi tiết của sự kiện này giữ metadata đóng băng của ví tiền (sử dụng Object.freeze()) để đảm bảo tính bất biến.

Sự kiện EIP6963RequestProviderEvent: Sự kiện này được sử dụng bởi dApps để yêu cầu một nhà cung cấp ví tiền. Ứng dụng decentralized (dApp) sử dụng sự kiện này để thông báo cho ví tiền rằng nó đã sẵn sàng và yêu cầu tương tác.

Sự kiện Concurrency

Do vì thứ tự thực thi không xác định của mã dApp và ví tiền, điều kiện đua nhau có thể phát sinh. Cơ chế sự kiện được thiết kế đặc biệt để đảm bảo rằng dApps và ví tiền có thể xử lý đúng sự kiện khi chúng phát hiện ra nhau. Một ví tiền có thể phát ra sự kiện thông báo trước, trong khi dApp có thể chưa sẵn sàng lắng nghe cho đến sau này. Để ngăn ngừa lỗi, ví tiền sẽ kích hoạt lại sự kiện thông báo sau sự kiện ban đầu, đảm bảo rằng dApp nhận được nó đúng thời điểm.

Xử lý Sự kiện của Ứng dụng phi tập trung

dApps phải lắng nghe sự kiện EIP6963AnnounceProviderEvent và không được gỡ bỏ trình nghe sự kiện trong quá trình tải trang. Điều này đảm bảo rằng ứng dụng phân cấp có thể liên tục lắng nghe và phản hồi sự kiện thông báo của ví tiền trong suốt vòng đời của nó. Sau khi xử lý sự kiện thông báo, ứng dụng phân cấp phải kích hoạt sự kiện EIP6963RequestProviderEvent để yêu cầu tương tác tiếp theo với ví tiền.

Khám phá và Chuyển đổi Ví tiền

Ứng dụng phi tập trung có thể lưu trữ nhiều đối tượng EIP6963ProviderDetail cho các ví tiền khác nhau, cho phép người dùng lựa chọn giữa các ví tiền khác nhau để tương tác trong ứng dụng phi tập trung. Điều này cung cấp tính linh hoạt lớn hơn cho người dùng, cho phép họ chuyển đổi ví tiền mà không cần tải lại trang.

Thiết kế này đạt được việc khám phá và tương tác liền mạch giữa các ứng dụng phi tập trung và ví tiền thông qua EIP6963AnnounceProviderEvent và EIP6963RequestProviderEvent. Bằng cách sử dụng trình nghe sự kiện và kích hoạt sự kiện, các ứng dụng phi tập trung và ví tiền có thể phối hợp hành động của họ mặc dù thứ tự thực thi không xác định, tránh được các tình huống đua nhau và đảm bảo hành vi ổn định. Hơn nữa, các ứng dụng phi tập trung có thể chuyển đổi ví tiền dựa trên sở thích của người dùng, nâng cao trải nghiệm người dùng và khả năng tương tác của ví tiền.

Tính tương thích ngược

EIP này không yêu cầu thay thế window.ethereum, có nghĩa là nó sẽ không gây ra sự cố trực tiếp cho các ứng dụng hiện có mà không thể cập nhật để sử dụng phương thức khám phá ví này. Tuy nhiên, rất khuyến nghị rằng các ứng dụng phi tập trung (dApps) triển khai EIP này để đảm bảo họ có thể khám phá nhiều nhà cung cấp ví tiền, và họ vô hiệu hóa việc sử dụng window.ethereum, trừ khi nó được sử dụng như một phương pháp dự phòng khi quá trình khám phá thất bại. Tương tự, các nhà cung cấp ví tiền nên duy trì tính tương thích với window.ethereum để đảm bảo tính tương thích ngược với các ứng dụng phi triển khai EIP này. Để tránh các vấn đề xung đột tên miền không gian trước đây, đề xuất rằng các ví tiền tiêm vào đối tượng nhà cung cấp của họ vào một không gian tên ví tiền cụ thể và sau đó ủy quyền đối tượng vào không gian tên window.ethereum.

Thiết kế bảo mật

Lỗi ô nhiễm nguyên mẫu của Đối tác cung cấp Ví tiền

Các tiện ích trình duyệt, đặc biệt là các tiện ích ví, có khả năng sửa đổi nội dung trang và đối tượng cung cấp, đó là một tính năng cốt lõi của thiết kế của họ. Các đối tượng cung cấp của các ví khác nhau được xem xét là giao diện được tin tưởng cao để truyền dữ liệu giao dịch. Để ngăn chặn sửa đổi không cố ý của sự tương tác giữa ứng dụng phi tập trung và ví bởi trang hoặc các tiện ích khác, thực hành tốt nhất là đóng băng đối tượng EIP1193Provider bằng cách sử dụng Object.freeze() trước khi ví gửi sự kiện eip6963:announceProvider. Điều này đảm bảo rằng đối tượng không thể được sửa đổi. Tuy nhiên, trong một số trường hợp, tính tương thích trang web có thể yêu cầu sửa đổi đối tượng này. Trong các trường hợp như vậy, người triển khai ví cần phải thể hiện sự cân nhắc giữa bảo mật và tính tương thích trang web.

Ví tiền Giả mạo và Can thiệp

dApps nên chủ động phát hiện xem các thuộc tính hoặc chức năng của đối tượng cung cấp ví đã bị thao tác để ngăn chặn việc làm giả hoặc sửa đổi các ví khác. Một cách để phát hiện sự làm giả là kiểm tra xem thuộc tính uuid trong hai đối tượng EIP6963ProviderInfo có nhất quán hay không. Các dApps và thư viện khám phá của chúng nên xem xét các phương pháp làm giả khác và áp đặt các biện pháp bảo vệ bổ sung để ngăn chặn hành vi đó, đảm bảo an ninh cho người dùng.

Ngăn chặn việc thực thi JavaScript trong SVGs

Sử dụng hình ảnh SVG có thể dẫn đến các cuộc tấn công đoạn mã chéo trên trang (XSS), vì SVG có thể chứa mã JavaScript. Mã này được thực thi trong ngữ cảnh của trang và có thể tiềm ẩn sửa đổi nội dung trang hoặc ảnh hưởng đến các ví tiền khác. Do đó, khi hiển thị biểu tượng, các ứng dụng phi tập trung cần xem xét cách xử lý các rủi ro bảo mật như vậy để ngăn chặn hình ảnh độc hại được sử dụng như các kỹ thuật làm mờ, từ đó ẩn các sửa đổi độc hại vào trang hoặc ví tiền.

Ngăn chặn vân tay Ví tiền

Một lợi ích của cơ chế vòng sự kiện đồng thời được sử dụng trong thiết kế này là cả dApp và Ví tiền đều có thể khởi tạo quy trình để thông báo nhà cung cấp. Do đó, các nhà triển khai Ví tiền có thể chọn xem liệu họ có muốn thông báo cho tất cả các trang hay thực hiện các biện pháp khác để giảm khả năng người dùng bị nhận dạng thông qua đối tượng window.ethereum được tiêm vào. Một phương án thay thế khả thi khác là cho Ví tiền trì hoãn việc tiêm đối tượng nhà cung cấp cho đến khi dApp thông báo sự kiện eip6963:requestProvider. Tại thời điểm này, ví tiền có thể khởi tạo một quy trình đồng ý giao diện người dùng, hỏi người dùng liệu họ có sẵn lòng chia sẻ địa chỉ ví tiền của mình. Phương pháp này cho phép Ví tiền kích hoạt tính năng “kết nối riêng tư”. Tuy nhiên, khi thực hiện phương pháp này, Ví tiền cũng cần xem xét cách đảm bảo tính tương thích ngược với các dApp không hỗ trợ EIP này.

Đặc điểm của Cải tiến EIP-6963

Quá trình tìm kiếm Ví tiền được đơn giản hóa

EIP-6963, được đề xuất vào tháng 5 năm 2023 như là một tiêu chuẩn Ethereum mới và được thông qua vào tháng 10 cùng năm, nhằm mục đích giải quyết vấn đề thiếu tiêu chuẩn được xác định rõ ràng như window.ethereum. Tiêu chuẩn này giới thiệu cơ chế phát hiện nguồn cung cấp tiền điện tử đa tiêm, cho phép các ứng dụng phi tập trung có thể phát hiện và kết nối một cách đáng tin cậy với tất cả các ví tiền được cài đặt trên trình duyệt của người dùng. Điều này vượt qua các hạn chế và xung đột được thể hiện bởi các phương pháp truyền thống. So với phương pháp window.ethereum truyền thống, EIP-6963 đơn giản hóa quá trình phát hiện ví tiền, hỗ trợ sự tồn tại song song của nhiều tiện ích mở rộng ví tiền trong cùng một trình duyệt. Điều này đổi mới một cách đáng kể tăng cường khả năng tương tác của hệ sinh thái Ethereum và cải thiện trải nghiệm người dùng.

Định nghĩa rõ ràng và trải nghiệm người dùng được cải thiện

EIP-6963 không chỉ là cải tiến chức năng; nó cũng nâng cao khả năng nhận diện của Ví tiền và trải nghiệm người dùng bằng cách cho phép Ví tiền chèn thông tin như tên, logo, UUID và reverse DNS (RDNS). Các ứng dụng có thể hiển thị thông tin này, giúp người dùng hiểu rõ hơn về Ví tiền mà họ đang tương tác với, từ đó tránh sự nhầm lẫn và các hoạt động không đúng. Điều này dẫn đến giao diện rõ ràng, đáng tin cậy và thân thiện với người dùng hơn. Đến mức đó, EIP-6963 cung cấp cho người dùng trải nghiệm mượt mà hơn, giảm thiểu tranh chấp tiềm ẩn và khó khăn vận hành không cần thiết, đồng thời đóng góp tích cực vào hệ sinh thái Ethereum tổng thể.

Rủi ro an ninh tiềm năng

Thiết kế của EIP-6963 đưa ra khả năng mở ra những lỗ hổng bảo mật tiềm ẩn. Bằng cách cung cấp một danh sách của tất cả các ví tiền đã đăng ký, nó tạo điều kiện cho sự tương tác giữa dApps và người dùng, nhưng cũng có thể bị lạm dụng bởi các ứng dụng độc hại. Các ứng dụng độc hại có thể đọc danh sách các ví tiền đã được cài đặt bởi người dùng, suy luận hoạt động blockchain hoặc phân phối tài sản của họ. Nếu cơ chế đăng ký dịch vụ thiếu sự xác minh nghiêm ngặt, các ví tiền độc hại có thể giả mạo là nhà cung cấp dịch vụ hợp lệ, lừa người dùng cấp quyền truy cập và đánh cắp tài sản. Do đó, các biện pháp bảo mật bổ sung (như sự đồng thuận của người dùng và xác nhận đăng ký) là cần thiết.

Độ phức tạp trong trải nghiệm người dùng

Về trải nghiệm người dùng, việc hỗ trợ ví tiền đa nhiệm của EIP-6963, mặc dù là một cải tiến đáng kể, cũng có thể tăng sự phức tạp. Ví dụ, sau khi người dùng cài đặt nhiều ví tiền, ứng dụng có thể hiển thị quá nhiều lựa chọn, làm rối tung người dùng về việc chọn ví nào. Ngoài ra, một số ví tiền có thể có tên hoặc biểu tượng không dễ hiểu, làm tăng độ khó trong việc nhận diện. Đối với người dùng cần thường xuyên chuyển đổi ví tiền, tính linh hoạt này có thể trở thành gánh nặng thay vì là lợi ích.

Tóm tắt

EIP-6963 giới thiệu một phương pháp dựa trên sự kiện để giải quyết các vấn đề như sự cùng tồn tại của nhiều ví tiền, xung đột tên miền và bảo vệ quyền riêng tư người dùng trong các ứng dụng Web3, cải thiện đáng kể trải nghiệm người dùng. Cơ chế chuẩn này cho phép dApps tự động phát hiện và kết nối nhiều ví tiền mà không cần chuyển đổi thủ công, đồng thời tránh xung đột và xung đột giữa các ví tiền, tăng cường sự mượt mà và ổn định của kết nối. EIP-6963 cũng tăng cường an ninh bằng cách đóng băng các đối tượng cung cấp ví tiền để ngăn chặn sự can thiệp, giảm thiểu rủi ro an ninh tiềm ẩn. Về mặt quyền riêng tư, người dùng có thể lựa chọn liệu có chia sẻ địa chỉ ví tiền của họ hay không, ngăn chặn rò rỉ danh tính và lập dấu vân tay. EIP-6963 duy trì tính tương thích ngược với các giao diện cũ, đảm bảo sự chuyển đổi mượt mà cho các hệ thống hiện có, đồng thời đơn giản hóa công việc cho các nhà phát triển dApp và tăng cường hỗ trợ đa nền tảng và đa thiết bị. Tổng thể, EIP-6963 cải thiện khả năng tương tác, an ninh và bảo vệ quyền riêng tư trong Web3 và cung cấp cho các nhà phát triển các công cụ hiệu quả hơn, thúc đẩy sự phát triển tiếp theo của hệ sinh thái Web3.

Автор: Rachel
Перекладач: Piper
Рецензент(-и): Edward、Piccolo、Elisa
Рецензент(и) перекладу: Ashely、Joyce
* Ця інформація не є фінансовою порадою чи будь-якою іншою рекомендацією, запропонованою чи схваленою Gate.io.
* Цю статтю заборонено відтворювати, передавати чи копіювати без посилання на Gate.io. Порушення є порушенням Закону про авторське право і може бути предметом судового розгляду.

Phân tích về EIP-6963: Một bước tiến về việc cải thiện khả năng tương tác của Ví Ethereum và nâng cao trải nghiệm người dùng

Nâng cao1/15/2025, 8:36:35 AM
EIP-6963 giới thiệu một tiêu chuẩn mới nhằm tối ưu hóa cơ chế khám phá và tương tác của ví tiền mở rộng trình duyệt Ethereum. Nó nhằm giải quyết các vấn đề như xung đột ví, thiếu hỗ trợ đa dịch vụ và trải nghiệm người dùng không trực quan. So với tiêu chuẩn EIP-1193 hiện tại, EIP-6963 giới thiệu các sự kiện cửa sổ và một giao thức truyền thông hai chiều, cho phép các ứng dụng phi tập trung nhận diện và điều chỉnh ví tiền ưa thích của người dùng một cách hiệu quả hơn.

Nguồn gốc của EIP-6963

Trong hệ sinh thái blockchain, Ví tiền tiện ích trình duyệt là ứng dụng ví tiền tồn tại dưới dạng plugin trình duyệt. Chúng cho phép người dùng tương tác một cách tiện lợi với tài khoản blockchain trực tiếp trong các ứng dụng phân cấp (dApps), như gửi giao dịch, ký các thông điệp, hoặc tương tác với hợp đồng thông minh. Ví dẫn đầu nhất là MetaMask, mà gần như đã trở thành một công cụ tiêu chuẩn cho việc sử dụng các ứng dụng dApps trên hệ sinh thái Ethereum. Khác với các ứng dụng truyền thống, ví tiện ích trình duyệt được nhúng trong môi trường trình duyệt. Phương pháp này giúp đơn giản hóa quá trình tương tác của người dùng với blockchain và loại bỏ các rào cản kỹ thuật của các hoạt động nút phức tạp hoặc quản lý khóa riêng tư. Người dùng chỉ cần cài đặt tiện ích mở rộng để nhanh chóng bắt đầu sử dụng mạng blockchain.

Trong ngữ cảnh này, “nhà cung cấp dịch vụ” đề cập đến công nghệ hoặc giao diện mặc định hỗ trợ các chức năng của ví tiền này. Ví dụ, các ví tiền giao tiếp với các nút blockchain thông qua giao thức Ethereum JSON-RPC, trong khi nhà cung cấp dịch vụ cung cấp giao diện RPC tương ứng để cho phép ví tiền xử lý an toàn các tương tác trên chuỗi.

Hãy tưởng tượng bạn muốn sử dụng một sàn giao dịch phi tập trung (DEX) hoặc một thị trường NFT. Bạn mở trang web của dApp, hào hứng bắt đầu tương tác. Tuy nhiên, một vấn đề phát sinh - trình duyệt của bạn đã cài đặt nhiều tiện ích mở rộng ví, chẳng hạn như MetaMask, Coinbase Wallet và Brave Wallet, nhưng dApp không xác định chính xác ví bạn hiện đang sử dụng và thậm chí còn đưa ra thông báo lỗi: "Không phát hiện thấy ví, vui lòng cài đặt tiện ích mở rộng ví." Bạn thử làm mới trang và khởi động lại trình duyệt, nhưng sự cố vẫn tiếp diễn. Kịch bản phổ biến này nêu bật một vấn đề thực tế: cơ chế nhận dạng và tương tác của ví mở rộng trình duyệt là không đầy đủ. Khi nhiều tiện ích mở rộng ví và nhà cung cấp dịch vụ xuất hiện, trải nghiệm người dùng trở nên phức tạp và khó hiểu hơn.

Để giải quyết các vấn đề tương tác giữa ví tiền và các ứng dụng phi tập trung, cộng đồng đã giới thiệu EIP-1193 (Ethereum JavaScript Provider API), một tiêu chuẩn chung xác định cách các ứng dụng phi tập trung có thể giao tiếp với ví tiền thông qua môi trường trình duyệt. Ý tưởng cốt lõi của EIP-1193 là xử lý các chức năng blockchain được cung cấp bởi ví tiền thông qua một giao diện chuẩn. Ví dụ, một ứng dụng phi tập trung giao tiếp với ví tiền thông qua đối tượng window.ethereum, gửi yêu cầu hoặc nhận sự kiện blockchain.

Mặc dù EIP-1193 một phần giải quyết vấn đề tương thích giữa ví tiền và ứng dụng phi tập trung, nhưng vẫn còn một số hạn chế rõ ràng:

  1. Xung đột nhiều Ví tiền: Khi người dùng cài đặt nhiều Ví tiền tiện ích trình duyệt, EIP-1193 theo mặc định sẽ gán window.ethereum với Ví tiền đầu tiên được tải. Kết quả, các Ví tiền khác có thể không được nhận diện đúng, và trong một số trường hợp, ứng dụng phi tập trung có thể không hoạt động.
  2. Thiếu Hỗ trợ Đa dịch vụ: Nhiều dApps muốn hỗ trợ nhiều ví tiền, nhưng EIP-1193 không cung cấp cơ chế rõ ràng để phân biệt hoặc chọn lựa giữa các nhà cung cấp dịch vụ khác nhau. Điều này buộc các nhà phát triển dApp phải thiết kế logic phức tạp để xử lý việc điều chỉnh ví tiền.
  3. Trải nghiệm người dùng không rõ ràng: Đối với người dùng thông thường, việc hiểu rõ nguyên nhân kỹ thuật đằng sau các thông báo lỗi như “Không phát hiện được ví tiền” hoặc “Không kết nối đúng cách,” làm tăng ngưỡng sử dụng và dẫn đến sự nản lòng.

Để giải quyết vấn đề này, cộng đồng đã đề xuất EIP-6963 (Tiêu chuẩn Khám phá Ví tiền Trình duyệt Mở rộng), một kế hoạch cải tiến cho các ví tiền trình duyệt mở rộng nhằm tối ưu hóa cơ chế khám phá và tương tác của ví tiền. Giải pháp nhằm mục tiêu giảm thiểu rào cản đối với các nhà cung cấp ví tiền mới, thúc đẩy cạnh tranh công bằng và nâng cao trải nghiệm người dùng trên mạng lưới Ethereum. Cụ thể, nó giới thiệu một tập hợp các sự kiện cửa sổ và cung cấp một giao thức truyền thông hai chiều, cho phép thư viện Ethereum và các kịch bản được tiêm vào bởi các tiện ích mở rộng trình duyệt tương tác. Điều này sẽ cho phép người dùng chọn ví tiền ưa thích dựa trên nhu cầu của họ, cải thiện trải nghiệm tổng thể.

Phân tích mã

Đảo ngược DNS (RDNS)

Reverse DNS (RDNS) đảm bảo sự ổn định của các nhà cung cấp ví tiền trong khi ngăn chặn xung đột tên miền. EIP-6963 nhấn mạnh các quy tắc mà các quy ước RDNS nên tuân theo, chẳng hạn như định dạng tên miền hợp lệ và các phần tên miền do nhà cung cấp kiểm soát. Nó cũng nhấn mạnh rằng các dApp không nên dựa vào giá trị RDNS để phát hiện tính năng để tránh khả năng khích lệ giả mạo hoặc động cơ độc hại. Giao diện ProviderDetail của EIP-6963 cung cấp cho các dApp siêu dữ liệu nhà cung cấp ví tiền, hỗ trợ tương tác ví tiền.

Chi tiết Người cung cấp EIP6963

EIP6963ProviderDetail là một giao diện được sử dụng để khai báo và mô tả thông tin nhà cung cấp ví tiền. Bằng cách bao gồm các thuộc tính như thông tin (siêu dữ liệu ví) và nhà cung cấp (giao diện nhà cung cấp ví), nó cho phép các ứng dụng phi tập trung (dApps) có được thông tin chi tiết về các ví và tương tác với chúng thông qua các giao diện tiêu chuẩn. Giao diện này đóng vai trò là nền tảng để đạt được tính tương thích và khả năng tương tác giữa các ứng dụng phi tập trung và các ví khác nhau.

Cơ chế Sự kiện

Cơ chế sự kiện đảm bảo rằng các ứng dụng phi tập trung và ví tiền có thể khám phá và tương tác với nhau mà không phụ thuộc vào thứ tự thực thi cố định. Điều này cho phép việc khám phá và tương tác giữa các ứng dụng phi tập trung và ví tiền không bị ảnh hưởng bởi thứ tự thực thi, do đó tránh xung đột và lỗi.

Loại Sự kiện

EIP6963AnnounceProviderEvent: Sự kiện này được ví tiền sử dụng để thông báo về sự hiện diện của họ. Nó chứa thông tin về ví tiền (EIP6963ProviderDetail) và giao diện ví tiền (EIP1193Provider). Thuộc tính chi tiết của sự kiện này giữ metadata đóng băng của ví tiền (sử dụng Object.freeze()) để đảm bảo tính bất biến.

Sự kiện EIP6963RequestProviderEvent: Sự kiện này được sử dụng bởi dApps để yêu cầu một nhà cung cấp ví tiền. Ứng dụng decentralized (dApp) sử dụng sự kiện này để thông báo cho ví tiền rằng nó đã sẵn sàng và yêu cầu tương tác.

Sự kiện Concurrency

Do vì thứ tự thực thi không xác định của mã dApp và ví tiền, điều kiện đua nhau có thể phát sinh. Cơ chế sự kiện được thiết kế đặc biệt để đảm bảo rằng dApps và ví tiền có thể xử lý đúng sự kiện khi chúng phát hiện ra nhau. Một ví tiền có thể phát ra sự kiện thông báo trước, trong khi dApp có thể chưa sẵn sàng lắng nghe cho đến sau này. Để ngăn ngừa lỗi, ví tiền sẽ kích hoạt lại sự kiện thông báo sau sự kiện ban đầu, đảm bảo rằng dApp nhận được nó đúng thời điểm.

Xử lý Sự kiện của Ứng dụng phi tập trung

dApps phải lắng nghe sự kiện EIP6963AnnounceProviderEvent và không được gỡ bỏ trình nghe sự kiện trong quá trình tải trang. Điều này đảm bảo rằng ứng dụng phân cấp có thể liên tục lắng nghe và phản hồi sự kiện thông báo của ví tiền trong suốt vòng đời của nó. Sau khi xử lý sự kiện thông báo, ứng dụng phân cấp phải kích hoạt sự kiện EIP6963RequestProviderEvent để yêu cầu tương tác tiếp theo với ví tiền.

Khám phá và Chuyển đổi Ví tiền

Ứng dụng phi tập trung có thể lưu trữ nhiều đối tượng EIP6963ProviderDetail cho các ví tiền khác nhau, cho phép người dùng lựa chọn giữa các ví tiền khác nhau để tương tác trong ứng dụng phi tập trung. Điều này cung cấp tính linh hoạt lớn hơn cho người dùng, cho phép họ chuyển đổi ví tiền mà không cần tải lại trang.

Thiết kế này đạt được việc khám phá và tương tác liền mạch giữa các ứng dụng phi tập trung và ví tiền thông qua EIP6963AnnounceProviderEvent và EIP6963RequestProviderEvent. Bằng cách sử dụng trình nghe sự kiện và kích hoạt sự kiện, các ứng dụng phi tập trung và ví tiền có thể phối hợp hành động của họ mặc dù thứ tự thực thi không xác định, tránh được các tình huống đua nhau và đảm bảo hành vi ổn định. Hơn nữa, các ứng dụng phi tập trung có thể chuyển đổi ví tiền dựa trên sở thích của người dùng, nâng cao trải nghiệm người dùng và khả năng tương tác của ví tiền.

Tính tương thích ngược

EIP này không yêu cầu thay thế window.ethereum, có nghĩa là nó sẽ không gây ra sự cố trực tiếp cho các ứng dụng hiện có mà không thể cập nhật để sử dụng phương thức khám phá ví này. Tuy nhiên, rất khuyến nghị rằng các ứng dụng phi tập trung (dApps) triển khai EIP này để đảm bảo họ có thể khám phá nhiều nhà cung cấp ví tiền, và họ vô hiệu hóa việc sử dụng window.ethereum, trừ khi nó được sử dụng như một phương pháp dự phòng khi quá trình khám phá thất bại. Tương tự, các nhà cung cấp ví tiền nên duy trì tính tương thích với window.ethereum để đảm bảo tính tương thích ngược với các ứng dụng phi triển khai EIP này. Để tránh các vấn đề xung đột tên miền không gian trước đây, đề xuất rằng các ví tiền tiêm vào đối tượng nhà cung cấp của họ vào một không gian tên ví tiền cụ thể và sau đó ủy quyền đối tượng vào không gian tên window.ethereum.

Thiết kế bảo mật

Lỗi ô nhiễm nguyên mẫu của Đối tác cung cấp Ví tiền

Các tiện ích trình duyệt, đặc biệt là các tiện ích ví, có khả năng sửa đổi nội dung trang và đối tượng cung cấp, đó là một tính năng cốt lõi của thiết kế của họ. Các đối tượng cung cấp của các ví khác nhau được xem xét là giao diện được tin tưởng cao để truyền dữ liệu giao dịch. Để ngăn chặn sửa đổi không cố ý của sự tương tác giữa ứng dụng phi tập trung và ví bởi trang hoặc các tiện ích khác, thực hành tốt nhất là đóng băng đối tượng EIP1193Provider bằng cách sử dụng Object.freeze() trước khi ví gửi sự kiện eip6963:announceProvider. Điều này đảm bảo rằng đối tượng không thể được sửa đổi. Tuy nhiên, trong một số trường hợp, tính tương thích trang web có thể yêu cầu sửa đổi đối tượng này. Trong các trường hợp như vậy, người triển khai ví cần phải thể hiện sự cân nhắc giữa bảo mật và tính tương thích trang web.

Ví tiền Giả mạo và Can thiệp

dApps nên chủ động phát hiện xem các thuộc tính hoặc chức năng của đối tượng cung cấp ví đã bị thao tác để ngăn chặn việc làm giả hoặc sửa đổi các ví khác. Một cách để phát hiện sự làm giả là kiểm tra xem thuộc tính uuid trong hai đối tượng EIP6963ProviderInfo có nhất quán hay không. Các dApps và thư viện khám phá của chúng nên xem xét các phương pháp làm giả khác và áp đặt các biện pháp bảo vệ bổ sung để ngăn chặn hành vi đó, đảm bảo an ninh cho người dùng.

Ngăn chặn việc thực thi JavaScript trong SVGs

Sử dụng hình ảnh SVG có thể dẫn đến các cuộc tấn công đoạn mã chéo trên trang (XSS), vì SVG có thể chứa mã JavaScript. Mã này được thực thi trong ngữ cảnh của trang và có thể tiềm ẩn sửa đổi nội dung trang hoặc ảnh hưởng đến các ví tiền khác. Do đó, khi hiển thị biểu tượng, các ứng dụng phi tập trung cần xem xét cách xử lý các rủi ro bảo mật như vậy để ngăn chặn hình ảnh độc hại được sử dụng như các kỹ thuật làm mờ, từ đó ẩn các sửa đổi độc hại vào trang hoặc ví tiền.

Ngăn chặn vân tay Ví tiền

Một lợi ích của cơ chế vòng sự kiện đồng thời được sử dụng trong thiết kế này là cả dApp và Ví tiền đều có thể khởi tạo quy trình để thông báo nhà cung cấp. Do đó, các nhà triển khai Ví tiền có thể chọn xem liệu họ có muốn thông báo cho tất cả các trang hay thực hiện các biện pháp khác để giảm khả năng người dùng bị nhận dạng thông qua đối tượng window.ethereum được tiêm vào. Một phương án thay thế khả thi khác là cho Ví tiền trì hoãn việc tiêm đối tượng nhà cung cấp cho đến khi dApp thông báo sự kiện eip6963:requestProvider. Tại thời điểm này, ví tiền có thể khởi tạo một quy trình đồng ý giao diện người dùng, hỏi người dùng liệu họ có sẵn lòng chia sẻ địa chỉ ví tiền của mình. Phương pháp này cho phép Ví tiền kích hoạt tính năng “kết nối riêng tư”. Tuy nhiên, khi thực hiện phương pháp này, Ví tiền cũng cần xem xét cách đảm bảo tính tương thích ngược với các dApp không hỗ trợ EIP này.

Đặc điểm của Cải tiến EIP-6963

Quá trình tìm kiếm Ví tiền được đơn giản hóa

EIP-6963, được đề xuất vào tháng 5 năm 2023 như là một tiêu chuẩn Ethereum mới và được thông qua vào tháng 10 cùng năm, nhằm mục đích giải quyết vấn đề thiếu tiêu chuẩn được xác định rõ ràng như window.ethereum. Tiêu chuẩn này giới thiệu cơ chế phát hiện nguồn cung cấp tiền điện tử đa tiêm, cho phép các ứng dụng phi tập trung có thể phát hiện và kết nối một cách đáng tin cậy với tất cả các ví tiền được cài đặt trên trình duyệt của người dùng. Điều này vượt qua các hạn chế và xung đột được thể hiện bởi các phương pháp truyền thống. So với phương pháp window.ethereum truyền thống, EIP-6963 đơn giản hóa quá trình phát hiện ví tiền, hỗ trợ sự tồn tại song song của nhiều tiện ích mở rộng ví tiền trong cùng một trình duyệt. Điều này đổi mới một cách đáng kể tăng cường khả năng tương tác của hệ sinh thái Ethereum và cải thiện trải nghiệm người dùng.

Định nghĩa rõ ràng và trải nghiệm người dùng được cải thiện

EIP-6963 không chỉ là cải tiến chức năng; nó cũng nâng cao khả năng nhận diện của Ví tiền và trải nghiệm người dùng bằng cách cho phép Ví tiền chèn thông tin như tên, logo, UUID và reverse DNS (RDNS). Các ứng dụng có thể hiển thị thông tin này, giúp người dùng hiểu rõ hơn về Ví tiền mà họ đang tương tác với, từ đó tránh sự nhầm lẫn và các hoạt động không đúng. Điều này dẫn đến giao diện rõ ràng, đáng tin cậy và thân thiện với người dùng hơn. Đến mức đó, EIP-6963 cung cấp cho người dùng trải nghiệm mượt mà hơn, giảm thiểu tranh chấp tiềm ẩn và khó khăn vận hành không cần thiết, đồng thời đóng góp tích cực vào hệ sinh thái Ethereum tổng thể.

Rủi ro an ninh tiềm năng

Thiết kế của EIP-6963 đưa ra khả năng mở ra những lỗ hổng bảo mật tiềm ẩn. Bằng cách cung cấp một danh sách của tất cả các ví tiền đã đăng ký, nó tạo điều kiện cho sự tương tác giữa dApps và người dùng, nhưng cũng có thể bị lạm dụng bởi các ứng dụng độc hại. Các ứng dụng độc hại có thể đọc danh sách các ví tiền đã được cài đặt bởi người dùng, suy luận hoạt động blockchain hoặc phân phối tài sản của họ. Nếu cơ chế đăng ký dịch vụ thiếu sự xác minh nghiêm ngặt, các ví tiền độc hại có thể giả mạo là nhà cung cấp dịch vụ hợp lệ, lừa người dùng cấp quyền truy cập và đánh cắp tài sản. Do đó, các biện pháp bảo mật bổ sung (như sự đồng thuận của người dùng và xác nhận đăng ký) là cần thiết.

Độ phức tạp trong trải nghiệm người dùng

Về trải nghiệm người dùng, việc hỗ trợ ví tiền đa nhiệm của EIP-6963, mặc dù là một cải tiến đáng kể, cũng có thể tăng sự phức tạp. Ví dụ, sau khi người dùng cài đặt nhiều ví tiền, ứng dụng có thể hiển thị quá nhiều lựa chọn, làm rối tung người dùng về việc chọn ví nào. Ngoài ra, một số ví tiền có thể có tên hoặc biểu tượng không dễ hiểu, làm tăng độ khó trong việc nhận diện. Đối với người dùng cần thường xuyên chuyển đổi ví tiền, tính linh hoạt này có thể trở thành gánh nặng thay vì là lợi ích.

Tóm tắt

EIP-6963 giới thiệu một phương pháp dựa trên sự kiện để giải quyết các vấn đề như sự cùng tồn tại của nhiều ví tiền, xung đột tên miền và bảo vệ quyền riêng tư người dùng trong các ứng dụng Web3, cải thiện đáng kể trải nghiệm người dùng. Cơ chế chuẩn này cho phép dApps tự động phát hiện và kết nối nhiều ví tiền mà không cần chuyển đổi thủ công, đồng thời tránh xung đột và xung đột giữa các ví tiền, tăng cường sự mượt mà và ổn định của kết nối. EIP-6963 cũng tăng cường an ninh bằng cách đóng băng các đối tượng cung cấp ví tiền để ngăn chặn sự can thiệp, giảm thiểu rủi ro an ninh tiềm ẩn. Về mặt quyền riêng tư, người dùng có thể lựa chọn liệu có chia sẻ địa chỉ ví tiền của họ hay không, ngăn chặn rò rỉ danh tính và lập dấu vân tay. EIP-6963 duy trì tính tương thích ngược với các giao diện cũ, đảm bảo sự chuyển đổi mượt mà cho các hệ thống hiện có, đồng thời đơn giản hóa công việc cho các nhà phát triển dApp và tăng cường hỗ trợ đa nền tảng và đa thiết bị. Tổng thể, EIP-6963 cải thiện khả năng tương tác, an ninh và bảo vệ quyền riêng tư trong Web3 và cung cấp cho các nhà phát triển các công cụ hiệu quả hơn, thúc đẩy sự phát triển tiếp theo của hệ sinh thái Web3.

Автор: Rachel
Перекладач: Piper
Рецензент(-и): Edward、Piccolo、Elisa
Рецензент(и) перекладу: Ashely、Joyce
* Ця інформація не є фінансовою порадою чи будь-якою іншою рекомендацією, запропонованою чи схваленою Gate.io.
* Цю статтю заборонено відтворювати, передавати чи копіювати без посилання на Gate.io. Порушення є порушенням Закону про авторське право і може бути предметом судового розгляду.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!