Sebuah Analisis tentang EIP-6963: Langkah Menuju Peningkatan Interoperabilitas Dompet Ethereum dan Meningkatkan Pengalaman Pengguna

Lanjutan1/15/2025, 8:36:35 AM
EIP-6963 memperkenalkan standar baru yang bertujuan untuk mengoptimalkan mekanisme penemuan dan interaksi dompet ekstensi browser Ethereum. Ini bertujuan untuk mengatasi masalah seperti konflik dompet, kurangnya dukungan multi-layanan, dan pengalaman pengguna yang tidak intuitif. Dibandingkan dengan standar EIP-1193 yang ada, EIP-6963 memperkenalkan peristiwa jendela dan protokol komunikasi dua arah, memungkinkan dApps untuk lebih efisien mengenali dan beradaptasi dengan dompet yang disukai pengguna.

Asal Usul EIP-6963

Dalam ekosistem blockchain, dompet perpanjangan browser adalah aplikasi dompet yang ada dalam bentuk plugin browser. Mereka memungkinkan pengguna untuk berinteraksi dengan akun blockchain secara nyaman langsung dalam dApps, seperti mengirim transaksi, menandatangani pesan, atau berinteraksi dengan kontrak pintar. Contoh paling khas adalah MetaMask, yang hampir menjadi alat standar untuk menggunakan dApps ekosistem Ethereum. Berbeda dengan aplikasi tradisional, dompet perpanjangan browser tertanam dalam lingkungan browser. Metode ini menyederhanakan proses interaksi pengguna dengan blockchain dan menghilangkan hambatan teknis dari operasi node kompleks atau pengelolaan kunci pribadi. Pengguna hanya perlu menginstal ekstensi untuk mulai dengan cepat menggunakan jaringan blockchain.

Dalam konteks ini, "penyedia layanan" mengacu pada teknologi atau antarmuka yang mendasari yang mendukung fungsi dompet ini. Misalnya, dompet berkomunikasi dengan node blockchain melalui protokol Ethereum JSON-RPC, sementara penyedia layanan menawarkan antarmuka RPC yang sesuai untuk memungkinkan dompet menangani interaksi on-chain dengan aman.

Bayangkan Anda ingin menggunakan pertukaran terdesentralisasi (DEX) atau pasar NFT. Anda membuka situs web dApp, bersemangat untuk mulai berinteraksi. Namun, muncul masalah — browser Anda memiliki beberapa ekstensi dompet yang terpasang, seperti MetaMask, Coinbase Wallet, dan Brave Wallet, tetapi dApp gagal mengidentifikasi dengan benar dompet mana yang Anda gunakan saat ini dan bahkan menampilkan pesan kesalahan: “Tidak ada dompet terdeteksi, harap pasang ekstensi dompet.” Anda mencoba menyegarkan halaman dan me-restart browser, tetapi masalah tetap ada. Skenario umum ini menyoroti masalah praktis: mekanisme identifikasi dan interaksi dari ekstensi dompet browser tidak memadai. Seiring munculnya lebih banyak ekstensi dompet dan penyedia layanan, pengalaman pengguna menjadi lebih rumit dan membingungkan.

Untuk mengatasi masalah interaksi antara dompet dan dApps, komunitas memperkenalkan EIP-1193 (Ethereum JavaScript Provider API), standar universal yang mendefinisikan bagaimana dApps dapat berkomunikasi dengan dompet melalui lingkungan browser. Ide inti dari EIP-1193 adalah menangani fungsi blockchain yang disediakan oleh dompet melalui antarmuka yang terstandarisasi. Misalnya, dApp berkomunikasi dengan dompet melalui objek window.ethereum, mengirim permintaan atau menerima peristiwa blockchain.

Meskipun EIP-1193 secara sebagian mengatasi masalah kompatibilitas antara dompet dan dApps, namun masih memiliki beberapa keterbatasan yang jelas:

  1. Konflik Multi-dompet: Ketika pengguna memiliki beberapa dompet ekstensi browser terpasang, EIP-1193 secara default mengaitkan window.ethereum ke dompet pertama yang dimuat. Akibatnya, dompet lain mungkin tidak dikenali dengan benar, dan dalam beberapa kasus, dApp mungkin tidak berfungsi sama sekali.
  2. Kurangnya Dukungan Multi-layanan: Banyak dApps ingin mendukung beberapa dompet, tetapi EIP-1193 tidak memberikan mekanisme yang jelas untuk membedakan atau memilih antara penyedia layanan yang berbeda. Hal ini memaksa pengembang dApp untuk merancang logika kompleks untuk menangani adaptasi dompet.
  3. Pengalaman Pengguna yang Tidak Intuitif: Bagi pengguna reguler, sulit untuk memahami alasan teknis di balik pesan kesalahan seperti “Tidak ada dompet terdeteksi” atau “Tidak terhubung dengan benar,” yang meningkatkan ambang penggunaan dan menyebabkan frustrasi.

Untuk menyelesaikan masalah ini, komunitas mengusulkan EIP-6963 (Standar Penemuan Dompet Ekstensi Browser), rencana perbaikan untuk dompet ekstensi browser yang bertujuan untuk mengoptimalkan penemuan dompet dan mekanisme interaksi. Solusi ini bertujuan untuk menurunkan hambatan masuk bagi penyedia dompet baru, mempromosikan persaingan yang lebih adil, dan meningkatkan pengalaman pengguna di jaringan Ethereum. Secara khusus, itu memperkenalkan serangkaian peristiwa jendela dan menyediakan protokol komunikasi dua arah, memungkinkan perpustakaan Ethereum dan skrip yang disuntikkan oleh ekstensi browser untuk berinteraksi. Ini akan memungkinkan pengguna memilih dompet pilihan mereka berdasarkan kebutuhan mereka, meningkatkan pengalaman secara keseluruhan.

Analisis Kode

Reverse DNS (RDNS)

Reverse DNS (RDNS) memastikan stabilitas pengenal penyedia dompet sambil mencegah konflik namespace. EIP-6963 menekankan aturan konvensi RDNS yang harus diikuti, seperti format domain yang valid dan bagian domain yang dikontrol oleh penyedia. Ini juga menekankan bahwa dApps seharusnya tidak mengandalkan nilai RDNS untuk deteksi fitur untuk menghindari kemungkinan insentif yang dipalsukan atau jahat. Antarmuka ProviderDetail EIP-6963 menyediakan dApps dengan metadata penyedia dompet, membantu dalam interaksi dompet.

EIP6963ProviderDetail

EIP6963ProviderDetail adalah antarmuka yang digunakan untuk mendeklarasikan dan menjelaskan informasi penyedia dompet. Dengan menyertakan properti seperti info (metadata dompet) dan provider (antarmuka penyedia dompet), ini memungkinkan dApps untuk memperoleh informasi detail tentang dompet dan berinteraksi dengan mereka melalui antarmuka standar. Antarmuka ini berfungsi sebagai dasar untuk mencapai kompatibilitas dan interoperabilitas antara aplikasi terdesentralisasi dan berbagai dompet.

Mekanisme Acara

Mekanisme acara memastikan bahwa dApps dan dompet dapat menemukan dan berinteraksi satu sama lain tanpa tergantung pada urutan eksekusi yang tetap. Ini memungkinkan penemuan dan interaksi antara dApps dan dompet tidak terpengaruh oleh urutan eksekusi, sehingga menghindari konflik dan kesalahan.

Jenis Acara

EIP6963AnnounceProviderEvent: Acara ini digunakan oleh dompet untuk mengumumkan kehadirannya. Ini berisi informasi tentang dompet (EIP6963ProviderDetail) dan antarmuka dompet (EIP1193Provider). Properti detail dari acara ini menyimpan metadata beku dompet (menggunakan Object.freeze()) untuk memastikan ketidakberubahannya.

EIP6963RequestProviderEvent: Acara ini digunakan oleh dApps untuk meminta penyedia dompet. Aplikasi dApp menggunakan acara ini untuk memberi tahu dompet bahwa ia siap dan meminta interaksi.

Kesesuaian Acara

Karena urutan eksekusi yang tidak pasti dari kode dApp dan dompet, kondisi perlombaannya dapat muncul. Mekanisme acara ini dirancang khusus untuk memastikan bahwa dApps dan dompet dapat menangani acara dengan benar ketika mereka menemukan satu sama lain. Sebuah dompet mungkin mengeluarkan acara pengumuman terlebih dahulu, sementara dApp mungkin belum siap untuk mendengarkannya sampai nanti. Untuk mencegah kesalahan, dompet akan memicu ulang acara pengumuman setelah yang pertama, memastikan bahwa dApp menerimanya tepat waktu.

Penanganan Acara dApp

dApps harus mendengarkan EIP6963AnnounceProviderEvent dan tidak boleh menghapus penerima acara selama memuat halaman. Hal ini memastikan bahwa dApp dapat terus mendengarkan dan merespons acara pengumuman dompet selama siklus hidupnya. Setelah menangani acara pengumuman, dApp harus memicu EIP6963RequestProviderEvent untuk meminta interaksi lebih lanjut dengan dompet.

Penemuan dan Peralihan Dompet

dApps dapat menyimpan beberapa objek EIP6963ProviderDetail untuk berbagai dompet, memungkinkan pengguna memilih antara dompet yang berbeda untuk berinteraksi dalam dApp. Ini memberikan fleksibilitas yang lebih besar bagi pengguna, memungkinkan mereka untuk beralih dompet tanpa me-reload halaman.

Desain ini mencapai penemuan dan interaksi yang mulus antara dApps dan dompet melalui EIP6963AnnounceProviderEvent dan EIP6963RequestProviderEvent. Dengan menggunakan pemantau acara dan pemicu acara, dApps dan dompet dapat mengoordinasikan tindakan mereka meskipun urutan eksekusi tidak pasti, menghindari kondisi perlombaan, dan memastikan perilaku yang stabil. Selain itu, dApps dapat beralih dompet berdasarkan preferensi pengguna, meningkatkan pengalaman pengguna dan interoperabilitas dompet.

Kompatibilitas Mundur

EIP ini tidak memerlukan penggantian window.ethereum, yang berarti itu tidak akan secara langsung merusak aplikasi eksisting yang tidak dapat diperbarui untuk menggunakan metode penemuan dompet ini. Namun, sangat disarankan agar dApps mengimplementasikan EIP ini untuk memastikan bahwa mereka dapat menemukan beberapa penyedia dompet, dan bahwa mereka menonaktifkan penggunaan window.ethereum, kecuali digunakan sebagai metode cadangan ketika penemuan gagal. Demikian pula, penyedia dompet harus menjaga kompatibilitas dengan window.ethereum untuk memastikan kompatibilitas mundur dengan dApps yang tidak mengimplementasikan EIP ini. Untuk menghindari masalah konflik namespace sebelumnya, disarankan agar dompet menyuntikkan objek penyedia mereka ke dalam namespace dompet spesifik dan kemudian meneruskan objek ke namespace window.ethereum.

Desain Keamanan

Pencemaran Prototipe Objek Penyedia Dompet

Ekstensi browser, terutama ekstensi dompet, memiliki kemampuan untuk memodifikasi konten halaman dan objek penyedia, yang merupakan fitur inti dari desain mereka. Objek penyedia dari berbagai dompet dianggap antarmuka yang sangat tepercaya untuk mentransmisikan data transaksi. Untuk mencegah modifikasi yang tidak disengaja terhadap interaksi antara dApp dan dompet oleh halaman atau ekstensi lain, praktik terbaik adalah membekukan objek EIP1193Provider menggunakan Object.freeze() sebelum dompet mengirimkan acara eip6963:announceProvider. Ini memastikan bahwa objek tidak dapat dimodifikasi. Namun, dalam beberapa kasus, kompatibilitas web mungkin memerlukan modifikasi objek ini. Dalam kasus seperti itu, pengimplementasi dompet perlu menemukan keseimbangan antara keamanan dan kompatibilitas web.

Pemalsuan dan Pencemaran Dompet

dApps harus secara aktif mendeteksi apakah properti atau fungsi dari objek penyedia dompet telah dimanipulasi untuk mencegah pemalsuan atau perubahan dompet lain. Salah satu cara untuk mendeteksi pemalsuan adalah dengan memeriksa apakah properti uuid dalam dua objek EIP6963ProviderInfo konsisten. dApps dan pustaka penemuan mereka harus mempertimbangkan metode manipulasi potensial lainnya dan mengambil langkah perlindungan tambahan untuk mencegah perilaku tersebut, memastikan keamanan pengguna.

Mencegah Eksekusi JavaScript dalam SVG

Menggunakan gambar SVG dapat menyebabkan serangan cross-site scripting (XSS), karena SVG dapat berisi kode JavaScript. Kode ini dieksekusi dalam konteks halaman dan berpotensi untuk memodifikasi konten halaman atau mempengaruhi dompet lainnya. Oleh karena itu, saat merender ikon, dApps perlu mempertimbangkan cara mengatasi risiko keamanan tersebut untuk mencegah penggunaan gambar jahat sebagai teknik penyamaran, sehingga menyembunyikan modifikasi jahat pada halaman atau dompet.

Mencegah Pencitraan Dompet

Salah satu keunggulan dari mekanisme loop peristiwa bersamaan yang digunakan dalam desain ini adalah bahwa baik dApp maupun dompet dapat memulai proses untuk mengumumkan penyedia. Oleh karena itu, pengimplementasi dompet dapat memilih apakah akan mengumumkan diri kepada semua halaman atau mengambil langkah lain untuk mengurangi kemungkinan pengguna teridentifikasi melalui objek window.ethereum yang disuntikkan. Salah satu alternatif yang mungkin adalah bagi dompet untuk menunda penyuntikan objek penyedia hingga dApp mengumumkan peristiwa eip6963:requestProvider. Pada titik ini, dompet dapat memulai aliran persetujuan UI, menanyakan kepada pengguna apakah mereka bersedia membagikan alamat dompet mereka. Pendekatan ini memungkinkan dompet untuk mengaktifkan fitur “koneksi pribadi”. Namun, ketika mengambil pendekatan ini, dompet juga perlu mempertimbangkan bagaimana cara memastikan kompatibilitas mundur dengan dApp yang tidak mendukung EIP ini.

Fitur Peningkatan EIP-6963

Pemudahan Proses Penemuan Dompet

EIP-6963, diusulkan pada Mei 2023 sebagai standar baru Ethereum dan disetujui pada bulan Oktober tahun yang sama, bertujuan untuk mengatasi kurangnya standar yang jelas seperti window.ethereum. Standar ini memperkenalkan mekanisme penemuan penyedia multi-injeksi, memungkinkan dApps untuk secara dapat diandalkan menemukan dan terhubung ke semua dompet yang diinstal di browser pengguna. Hal ini mengatasi keterbatasan dan konflik yang ditimbulkan oleh metode tradisional. Dibandingkan dengan pendekatan window.ethereum tradisional, EIP-6963 menyederhanakan proses penemuan dompet, mendukung ko-eksistensi beberapa ekstensi dompet di browser yang sama. Inovasi ini sangat meningkatkan interoperabilitas ekosistem Ethereum dan meningkatkan pengalaman pengguna.

Definisi yang jelas dan Pengalaman Pengguna yang Ditingkatkan

EIP-6963 bukan hanya perbaikan fungsional; itu juga meningkatkan keberagaman dompet dan pengalaman pengguna dengan memungkinkan dompet menyuntikkan informasi seperti nama, logo, UUID, dan reverse DNS (RDNS). dApps dapat menampilkan informasi ini, memungkinkan pengguna memahami dengan jelas dompet mana yang mereka interaksikan, sehingga menghindari kebingungan dan kesalahan operasi. Hal ini menghasilkan antarmuka yang lebih jelas, lebih dapat diandalkan, dan ramah pengguna. Dengan cara ini, EIP-6963 memberikan pengalaman yang lebih lancar bagi pengguna, mengurangi potensi perselisihan dan kesulitan operasional yang tidak perlu, sambil memberikan kontribusi positif pada ekosistem Ethereum secara keseluruhan.

Potensi Risiko Keamanan

Desain dari EIP-6963 memperkenalkan potensi kerentanan keamanan. Dengan menyediakan daftar semua dompet terdaftar, hal ini memfasilitasi interaksi antara dApps dan pengguna, namun juga dapat disalahgunakan oleh aplikasi berbahaya. dApps berbahaya mungkin membaca daftar dompet yang diinstal oleh pengguna, menyimpulkan aktivitas blockchain atau distribusi aset mereka. Jika mekanisme registrasi layanan kurang verifikasi yang ketat, dompet berbahaya dapat menyamar sebagai penyedia layanan yang sah, menipu pengguna untuk memberikan akses dan mencuri aset. Oleh karena itu, langkah-langkah keamanan tambahan (seperti persetujuan pengguna dan validasi registrasi) diperlukan.

Kompleksitas dalam Pengalaman Pengguna

Dalam hal pengalaman pengguna, dukungan multi-dompet dari EIP-6963, meskipun merupakan peningkatan signifikan, juga dapat meningkatkan kompleksitas. Sebagai contoh, setelah seorang pengguna menginstal beberapa dompet, dApp mungkin menampilkan terlalu banyak opsi, membingungkan pengguna tentang dompet mana yang harus dipilih. Selain itu, beberapa dompet mungkin memiliki nama atau logo yang tidak intuitif, meningkatkan kesulitan identifikasi. Bagi pengguna yang perlu sering beralih dompet, fleksibilitas ini mungkin menjadi beban daripada manfaat.

Ringkasan

EIP-6963 memperkenalkan pendekatan berbasis acara untuk mengatasi isu seperti koinstalasi multi-dompet, konflik namespace, dan perlindungan privasi pengguna dalam aplikasi Web3, secara signifikan meningkatkan pengalaman pengguna. Mekanisme berstandar ini memungkinkan dApps untuk secara otomatis menemukan dan menghubungkan beberapa dompet tanpa perpindahan manual, sambil menghindari persaingan dan konflik antara dompet, meningkatkan kelancaran dan stabilitas koneksi. EIP-6963 juga memperkuat keamanan dengan membekukan objek penyedia dompet untuk mencegah pemalsuan, mengurangi potensi risiko keamanan. Dalam hal privasi, pengguna dapat memilih apakah akan membagikan alamat dompet mereka, mencegah kebocoran identitas dan fingerprinting. EIP-6963 mempertahankan kompatibilitas mundur dengan antarmuka lama, memastikan transisi lancar bagi sistem yang sudah ada, sambil menyederhanakan pekerjaan pengembang dApp dan meningkatkan dukungan lintas platform dan multi-perangkat. Secara keseluruhan, EIP-6963 meningkatkan interoperabilitas, keamanan, dan perlindungan privasi dalam Web3 dan menyediakan pengembang dengan alat yang lebih efisien, mendorong perkembangan lebih lanjut dari ekosistem Web3.

Tác giả: Rachel
Thông dịch viên: Piper
(Những) người đánh giá: Edward、Piccolo、Elisa
Đánh giá bản dịch: Ashely、Joyce
* Đầu tư có rủi ro, phải thận trọng khi tham gia thị trường. Thông tin không nhằm mục đích và không cấu thành lời khuyên tài chính hay bất kỳ đề xuất nào khác thuộc bất kỳ hình thức nào được cung cấp hoặc xác nhận bởi Gate.io.
* Không được phép sao chép, truyền tải hoặc đạo nhái bài viết này mà không có sự cho phép của Gate.io. Vi phạm là hành vi vi phạm Luật Bản quyền và có thể phải chịu sự xử lý theo pháp luật.

Mời người khác bỏ phiếu

Nội dung

Sebuah Analisis tentang EIP-6963: Langkah Menuju Peningkatan Interoperabilitas Dompet Ethereum dan Meningkatkan Pengalaman Pengguna

Lanjutan1/15/2025, 8:36:35 AM
EIP-6963 memperkenalkan standar baru yang bertujuan untuk mengoptimalkan mekanisme penemuan dan interaksi dompet ekstensi browser Ethereum. Ini bertujuan untuk mengatasi masalah seperti konflik dompet, kurangnya dukungan multi-layanan, dan pengalaman pengguna yang tidak intuitif. Dibandingkan dengan standar EIP-1193 yang ada, EIP-6963 memperkenalkan peristiwa jendela dan protokol komunikasi dua arah, memungkinkan dApps untuk lebih efisien mengenali dan beradaptasi dengan dompet yang disukai pengguna.

Asal Usul EIP-6963

Dalam ekosistem blockchain, dompet perpanjangan browser adalah aplikasi dompet yang ada dalam bentuk plugin browser. Mereka memungkinkan pengguna untuk berinteraksi dengan akun blockchain secara nyaman langsung dalam dApps, seperti mengirim transaksi, menandatangani pesan, atau berinteraksi dengan kontrak pintar. Contoh paling khas adalah MetaMask, yang hampir menjadi alat standar untuk menggunakan dApps ekosistem Ethereum. Berbeda dengan aplikasi tradisional, dompet perpanjangan browser tertanam dalam lingkungan browser. Metode ini menyederhanakan proses interaksi pengguna dengan blockchain dan menghilangkan hambatan teknis dari operasi node kompleks atau pengelolaan kunci pribadi. Pengguna hanya perlu menginstal ekstensi untuk mulai dengan cepat menggunakan jaringan blockchain.

Dalam konteks ini, "penyedia layanan" mengacu pada teknologi atau antarmuka yang mendasari yang mendukung fungsi dompet ini. Misalnya, dompet berkomunikasi dengan node blockchain melalui protokol Ethereum JSON-RPC, sementara penyedia layanan menawarkan antarmuka RPC yang sesuai untuk memungkinkan dompet menangani interaksi on-chain dengan aman.

Bayangkan Anda ingin menggunakan pertukaran terdesentralisasi (DEX) atau pasar NFT. Anda membuka situs web dApp, bersemangat untuk mulai berinteraksi. Namun, muncul masalah — browser Anda memiliki beberapa ekstensi dompet yang terpasang, seperti MetaMask, Coinbase Wallet, dan Brave Wallet, tetapi dApp gagal mengidentifikasi dengan benar dompet mana yang Anda gunakan saat ini dan bahkan menampilkan pesan kesalahan: “Tidak ada dompet terdeteksi, harap pasang ekstensi dompet.” Anda mencoba menyegarkan halaman dan me-restart browser, tetapi masalah tetap ada. Skenario umum ini menyoroti masalah praktis: mekanisme identifikasi dan interaksi dari ekstensi dompet browser tidak memadai. Seiring munculnya lebih banyak ekstensi dompet dan penyedia layanan, pengalaman pengguna menjadi lebih rumit dan membingungkan.

Untuk mengatasi masalah interaksi antara dompet dan dApps, komunitas memperkenalkan EIP-1193 (Ethereum JavaScript Provider API), standar universal yang mendefinisikan bagaimana dApps dapat berkomunikasi dengan dompet melalui lingkungan browser. Ide inti dari EIP-1193 adalah menangani fungsi blockchain yang disediakan oleh dompet melalui antarmuka yang terstandarisasi. Misalnya, dApp berkomunikasi dengan dompet melalui objek window.ethereum, mengirim permintaan atau menerima peristiwa blockchain.

Meskipun EIP-1193 secara sebagian mengatasi masalah kompatibilitas antara dompet dan dApps, namun masih memiliki beberapa keterbatasan yang jelas:

  1. Konflik Multi-dompet: Ketika pengguna memiliki beberapa dompet ekstensi browser terpasang, EIP-1193 secara default mengaitkan window.ethereum ke dompet pertama yang dimuat. Akibatnya, dompet lain mungkin tidak dikenali dengan benar, dan dalam beberapa kasus, dApp mungkin tidak berfungsi sama sekali.
  2. Kurangnya Dukungan Multi-layanan: Banyak dApps ingin mendukung beberapa dompet, tetapi EIP-1193 tidak memberikan mekanisme yang jelas untuk membedakan atau memilih antara penyedia layanan yang berbeda. Hal ini memaksa pengembang dApp untuk merancang logika kompleks untuk menangani adaptasi dompet.
  3. Pengalaman Pengguna yang Tidak Intuitif: Bagi pengguna reguler, sulit untuk memahami alasan teknis di balik pesan kesalahan seperti “Tidak ada dompet terdeteksi” atau “Tidak terhubung dengan benar,” yang meningkatkan ambang penggunaan dan menyebabkan frustrasi.

Untuk menyelesaikan masalah ini, komunitas mengusulkan EIP-6963 (Standar Penemuan Dompet Ekstensi Browser), rencana perbaikan untuk dompet ekstensi browser yang bertujuan untuk mengoptimalkan penemuan dompet dan mekanisme interaksi. Solusi ini bertujuan untuk menurunkan hambatan masuk bagi penyedia dompet baru, mempromosikan persaingan yang lebih adil, dan meningkatkan pengalaman pengguna di jaringan Ethereum. Secara khusus, itu memperkenalkan serangkaian peristiwa jendela dan menyediakan protokol komunikasi dua arah, memungkinkan perpustakaan Ethereum dan skrip yang disuntikkan oleh ekstensi browser untuk berinteraksi. Ini akan memungkinkan pengguna memilih dompet pilihan mereka berdasarkan kebutuhan mereka, meningkatkan pengalaman secara keseluruhan.

Analisis Kode

Reverse DNS (RDNS)

Reverse DNS (RDNS) memastikan stabilitas pengenal penyedia dompet sambil mencegah konflik namespace. EIP-6963 menekankan aturan konvensi RDNS yang harus diikuti, seperti format domain yang valid dan bagian domain yang dikontrol oleh penyedia. Ini juga menekankan bahwa dApps seharusnya tidak mengandalkan nilai RDNS untuk deteksi fitur untuk menghindari kemungkinan insentif yang dipalsukan atau jahat. Antarmuka ProviderDetail EIP-6963 menyediakan dApps dengan metadata penyedia dompet, membantu dalam interaksi dompet.

EIP6963ProviderDetail

EIP6963ProviderDetail adalah antarmuka yang digunakan untuk mendeklarasikan dan menjelaskan informasi penyedia dompet. Dengan menyertakan properti seperti info (metadata dompet) dan provider (antarmuka penyedia dompet), ini memungkinkan dApps untuk memperoleh informasi detail tentang dompet dan berinteraksi dengan mereka melalui antarmuka standar. Antarmuka ini berfungsi sebagai dasar untuk mencapai kompatibilitas dan interoperabilitas antara aplikasi terdesentralisasi dan berbagai dompet.

Mekanisme Acara

Mekanisme acara memastikan bahwa dApps dan dompet dapat menemukan dan berinteraksi satu sama lain tanpa tergantung pada urutan eksekusi yang tetap. Ini memungkinkan penemuan dan interaksi antara dApps dan dompet tidak terpengaruh oleh urutan eksekusi, sehingga menghindari konflik dan kesalahan.

Jenis Acara

EIP6963AnnounceProviderEvent: Acara ini digunakan oleh dompet untuk mengumumkan kehadirannya. Ini berisi informasi tentang dompet (EIP6963ProviderDetail) dan antarmuka dompet (EIP1193Provider). Properti detail dari acara ini menyimpan metadata beku dompet (menggunakan Object.freeze()) untuk memastikan ketidakberubahannya.

EIP6963RequestProviderEvent: Acara ini digunakan oleh dApps untuk meminta penyedia dompet. Aplikasi dApp menggunakan acara ini untuk memberi tahu dompet bahwa ia siap dan meminta interaksi.

Kesesuaian Acara

Karena urutan eksekusi yang tidak pasti dari kode dApp dan dompet, kondisi perlombaannya dapat muncul. Mekanisme acara ini dirancang khusus untuk memastikan bahwa dApps dan dompet dapat menangani acara dengan benar ketika mereka menemukan satu sama lain. Sebuah dompet mungkin mengeluarkan acara pengumuman terlebih dahulu, sementara dApp mungkin belum siap untuk mendengarkannya sampai nanti. Untuk mencegah kesalahan, dompet akan memicu ulang acara pengumuman setelah yang pertama, memastikan bahwa dApp menerimanya tepat waktu.

Penanganan Acara dApp

dApps harus mendengarkan EIP6963AnnounceProviderEvent dan tidak boleh menghapus penerima acara selama memuat halaman. Hal ini memastikan bahwa dApp dapat terus mendengarkan dan merespons acara pengumuman dompet selama siklus hidupnya. Setelah menangani acara pengumuman, dApp harus memicu EIP6963RequestProviderEvent untuk meminta interaksi lebih lanjut dengan dompet.

Penemuan dan Peralihan Dompet

dApps dapat menyimpan beberapa objek EIP6963ProviderDetail untuk berbagai dompet, memungkinkan pengguna memilih antara dompet yang berbeda untuk berinteraksi dalam dApp. Ini memberikan fleksibilitas yang lebih besar bagi pengguna, memungkinkan mereka untuk beralih dompet tanpa me-reload halaman.

Desain ini mencapai penemuan dan interaksi yang mulus antara dApps dan dompet melalui EIP6963AnnounceProviderEvent dan EIP6963RequestProviderEvent. Dengan menggunakan pemantau acara dan pemicu acara, dApps dan dompet dapat mengoordinasikan tindakan mereka meskipun urutan eksekusi tidak pasti, menghindari kondisi perlombaan, dan memastikan perilaku yang stabil. Selain itu, dApps dapat beralih dompet berdasarkan preferensi pengguna, meningkatkan pengalaman pengguna dan interoperabilitas dompet.

Kompatibilitas Mundur

EIP ini tidak memerlukan penggantian window.ethereum, yang berarti itu tidak akan secara langsung merusak aplikasi eksisting yang tidak dapat diperbarui untuk menggunakan metode penemuan dompet ini. Namun, sangat disarankan agar dApps mengimplementasikan EIP ini untuk memastikan bahwa mereka dapat menemukan beberapa penyedia dompet, dan bahwa mereka menonaktifkan penggunaan window.ethereum, kecuali digunakan sebagai metode cadangan ketika penemuan gagal. Demikian pula, penyedia dompet harus menjaga kompatibilitas dengan window.ethereum untuk memastikan kompatibilitas mundur dengan dApps yang tidak mengimplementasikan EIP ini. Untuk menghindari masalah konflik namespace sebelumnya, disarankan agar dompet menyuntikkan objek penyedia mereka ke dalam namespace dompet spesifik dan kemudian meneruskan objek ke namespace window.ethereum.

Desain Keamanan

Pencemaran Prototipe Objek Penyedia Dompet

Ekstensi browser, terutama ekstensi dompet, memiliki kemampuan untuk memodifikasi konten halaman dan objek penyedia, yang merupakan fitur inti dari desain mereka. Objek penyedia dari berbagai dompet dianggap antarmuka yang sangat tepercaya untuk mentransmisikan data transaksi. Untuk mencegah modifikasi yang tidak disengaja terhadap interaksi antara dApp dan dompet oleh halaman atau ekstensi lain, praktik terbaik adalah membekukan objek EIP1193Provider menggunakan Object.freeze() sebelum dompet mengirimkan acara eip6963:announceProvider. Ini memastikan bahwa objek tidak dapat dimodifikasi. Namun, dalam beberapa kasus, kompatibilitas web mungkin memerlukan modifikasi objek ini. Dalam kasus seperti itu, pengimplementasi dompet perlu menemukan keseimbangan antara keamanan dan kompatibilitas web.

Pemalsuan dan Pencemaran Dompet

dApps harus secara aktif mendeteksi apakah properti atau fungsi dari objek penyedia dompet telah dimanipulasi untuk mencegah pemalsuan atau perubahan dompet lain. Salah satu cara untuk mendeteksi pemalsuan adalah dengan memeriksa apakah properti uuid dalam dua objek EIP6963ProviderInfo konsisten. dApps dan pustaka penemuan mereka harus mempertimbangkan metode manipulasi potensial lainnya dan mengambil langkah perlindungan tambahan untuk mencegah perilaku tersebut, memastikan keamanan pengguna.

Mencegah Eksekusi JavaScript dalam SVG

Menggunakan gambar SVG dapat menyebabkan serangan cross-site scripting (XSS), karena SVG dapat berisi kode JavaScript. Kode ini dieksekusi dalam konteks halaman dan berpotensi untuk memodifikasi konten halaman atau mempengaruhi dompet lainnya. Oleh karena itu, saat merender ikon, dApps perlu mempertimbangkan cara mengatasi risiko keamanan tersebut untuk mencegah penggunaan gambar jahat sebagai teknik penyamaran, sehingga menyembunyikan modifikasi jahat pada halaman atau dompet.

Mencegah Pencitraan Dompet

Salah satu keunggulan dari mekanisme loop peristiwa bersamaan yang digunakan dalam desain ini adalah bahwa baik dApp maupun dompet dapat memulai proses untuk mengumumkan penyedia. Oleh karena itu, pengimplementasi dompet dapat memilih apakah akan mengumumkan diri kepada semua halaman atau mengambil langkah lain untuk mengurangi kemungkinan pengguna teridentifikasi melalui objek window.ethereum yang disuntikkan. Salah satu alternatif yang mungkin adalah bagi dompet untuk menunda penyuntikan objek penyedia hingga dApp mengumumkan peristiwa eip6963:requestProvider. Pada titik ini, dompet dapat memulai aliran persetujuan UI, menanyakan kepada pengguna apakah mereka bersedia membagikan alamat dompet mereka. Pendekatan ini memungkinkan dompet untuk mengaktifkan fitur “koneksi pribadi”. Namun, ketika mengambil pendekatan ini, dompet juga perlu mempertimbangkan bagaimana cara memastikan kompatibilitas mundur dengan dApp yang tidak mendukung EIP ini.

Fitur Peningkatan EIP-6963

Pemudahan Proses Penemuan Dompet

EIP-6963, diusulkan pada Mei 2023 sebagai standar baru Ethereum dan disetujui pada bulan Oktober tahun yang sama, bertujuan untuk mengatasi kurangnya standar yang jelas seperti window.ethereum. Standar ini memperkenalkan mekanisme penemuan penyedia multi-injeksi, memungkinkan dApps untuk secara dapat diandalkan menemukan dan terhubung ke semua dompet yang diinstal di browser pengguna. Hal ini mengatasi keterbatasan dan konflik yang ditimbulkan oleh metode tradisional. Dibandingkan dengan pendekatan window.ethereum tradisional, EIP-6963 menyederhanakan proses penemuan dompet, mendukung ko-eksistensi beberapa ekstensi dompet di browser yang sama. Inovasi ini sangat meningkatkan interoperabilitas ekosistem Ethereum dan meningkatkan pengalaman pengguna.

Definisi yang jelas dan Pengalaman Pengguna yang Ditingkatkan

EIP-6963 bukan hanya perbaikan fungsional; itu juga meningkatkan keberagaman dompet dan pengalaman pengguna dengan memungkinkan dompet menyuntikkan informasi seperti nama, logo, UUID, dan reverse DNS (RDNS). dApps dapat menampilkan informasi ini, memungkinkan pengguna memahami dengan jelas dompet mana yang mereka interaksikan, sehingga menghindari kebingungan dan kesalahan operasi. Hal ini menghasilkan antarmuka yang lebih jelas, lebih dapat diandalkan, dan ramah pengguna. Dengan cara ini, EIP-6963 memberikan pengalaman yang lebih lancar bagi pengguna, mengurangi potensi perselisihan dan kesulitan operasional yang tidak perlu, sambil memberikan kontribusi positif pada ekosistem Ethereum secara keseluruhan.

Potensi Risiko Keamanan

Desain dari EIP-6963 memperkenalkan potensi kerentanan keamanan. Dengan menyediakan daftar semua dompet terdaftar, hal ini memfasilitasi interaksi antara dApps dan pengguna, namun juga dapat disalahgunakan oleh aplikasi berbahaya. dApps berbahaya mungkin membaca daftar dompet yang diinstal oleh pengguna, menyimpulkan aktivitas blockchain atau distribusi aset mereka. Jika mekanisme registrasi layanan kurang verifikasi yang ketat, dompet berbahaya dapat menyamar sebagai penyedia layanan yang sah, menipu pengguna untuk memberikan akses dan mencuri aset. Oleh karena itu, langkah-langkah keamanan tambahan (seperti persetujuan pengguna dan validasi registrasi) diperlukan.

Kompleksitas dalam Pengalaman Pengguna

Dalam hal pengalaman pengguna, dukungan multi-dompet dari EIP-6963, meskipun merupakan peningkatan signifikan, juga dapat meningkatkan kompleksitas. Sebagai contoh, setelah seorang pengguna menginstal beberapa dompet, dApp mungkin menampilkan terlalu banyak opsi, membingungkan pengguna tentang dompet mana yang harus dipilih. Selain itu, beberapa dompet mungkin memiliki nama atau logo yang tidak intuitif, meningkatkan kesulitan identifikasi. Bagi pengguna yang perlu sering beralih dompet, fleksibilitas ini mungkin menjadi beban daripada manfaat.

Ringkasan

EIP-6963 memperkenalkan pendekatan berbasis acara untuk mengatasi isu seperti koinstalasi multi-dompet, konflik namespace, dan perlindungan privasi pengguna dalam aplikasi Web3, secara signifikan meningkatkan pengalaman pengguna. Mekanisme berstandar ini memungkinkan dApps untuk secara otomatis menemukan dan menghubungkan beberapa dompet tanpa perpindahan manual, sambil menghindari persaingan dan konflik antara dompet, meningkatkan kelancaran dan stabilitas koneksi. EIP-6963 juga memperkuat keamanan dengan membekukan objek penyedia dompet untuk mencegah pemalsuan, mengurangi potensi risiko keamanan. Dalam hal privasi, pengguna dapat memilih apakah akan membagikan alamat dompet mereka, mencegah kebocoran identitas dan fingerprinting. EIP-6963 mempertahankan kompatibilitas mundur dengan antarmuka lama, memastikan transisi lancar bagi sistem yang sudah ada, sambil menyederhanakan pekerjaan pengembang dApp dan meningkatkan dukungan lintas platform dan multi-perangkat. Secara keseluruhan, EIP-6963 meningkatkan interoperabilitas, keamanan, dan perlindungan privasi dalam Web3 dan menyediakan pengembang dengan alat yang lebih efisien, mendorong perkembangan lebih lanjut dari ekosistem Web3.

Tác giả: Rachel
Thông dịch viên: Piper
(Những) người đánh giá: Edward、Piccolo、Elisa
Đánh giá bản dịch: Ashely、Joyce
* Đầu tư có rủi ro, phải thận trọng khi tham gia thị trường. Thông tin không nhằm mục đích và không cấu thành lời khuyên tài chính hay bất kỳ đề xuất nào khác thuộc bất kỳ hình thức nào được cung cấp hoặc xác nhận bởi Gate.io.
* Không được phép sao chép, truyền tải hoặc đạo nhái bài viết này mà không có sự cho phép của Gate.io. Vi phạm là hành vi vi phạm Luật Bản quyền và có thể phải chịu sự xử lý theo pháp luật.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500