Dampak dari EIP-3074 pada Dompet dan DApps

Menengah5/27/2024, 9:17:11 AM
EIP-3074 memungkinkan akun yang dimiliki eksternal (EOA) untuk memberikan kontrol kepada kontrak yang ditentukan, sehingga memperoleh kemampuan eksekusi yang luas mirip dengan kontrak. Hal ini secara signifikan meningkatkan pengalaman pengguna dan dapat mendefinisikan ulang metode otorisasi yang familiar saat ini, meningkatkan keamanan sambil mempertahankan kegunaan. Nic dari imToken Labs menganalisis dampak EIP-3074, termasuk perbaikan pada metode otorisasi aset.

EIP-3074

Pengalaman Pengguna yang Lebih Baik dan Lebih Aman

EIP-3074 memungkinkan EOAs untuk mendelagasikan kontrol ke kontrak tertentu, sehingga memperoleh kemampuan eksekusi yang kaya mirip dengan kontrak. Sebelum EIP-3074, seorang EOA hanya bisa melakukan satu operasi per transaksi, seperti menyetujui token ERC20 atau melakukan pertukaran di Uniswap. Setelah EIP-3074, seorang EOA dapat menyelesaikan beberapa operasi dalam satu transaksi, memungkinkan kasus penggunaan yang sebelumnya tidak terbayangkan. Pada dasarnya, EIP-3074 secara signifikan meningkatkan pengalaman pengguna dan mengubah metode otorisasi yang sudah dikenal sambil meningkatkan keamanan.

Selain itu, dengan EIP-3074, EOAs tidak lagi perlu mengirim transaksi on-chain sendiri, sehingga menghilangkan kebutuhan untuk pertama-tama memperoleh ETH untuk membayar biaya transaksi.

Kontrak Pengundang

Kontrak yang dapat mengendalikan EOA disebut kontrak Invoker. Tidak sembarang kontrak bisa mendapatkan kendali; EOA harus menandatangani dengan kunci privatnya, menentukan kontrak Invoker mana dan operasi mana yang diizinkan untuk dilakukan oleh Invoker.

Proses ini biasanya melibatkan:

Alice menandatangani dengan kunci pribadi EOA-nya, menentukan kontrak Pemanggil dan operasi yang diotorisasi.

Alice mengirimkan konten yang ditandatangani dan tanda tangan ke Relayer.

Relayer mengirimkan transaksi ke-chain ke kontrak Invoker.

Invoker memverifikasi tanda tangan dan, setelah divalidasi, menjalankan operasi sebagai EOA milik Alice, seperti menyetujui USDC, menukar aset di Uniswap, dan menggunakan sebagian USDC untuk membayar Relayer sebagai biaya.

Catatan: Relayer bersifat opsional; Alice dapat mengirimkan konten yang ditandatangani dan tanda tangan secara mandiri ke dalam rantai.

Menghindari Serangan Replay

Invoker menjalankan operasi seolah-olah memiliki kontrol terbatas dari EOA milik Alice. Namun, nonce EOA tidak meningkat setelah eksekusi, artinya tanda tangan yang sama bisa digunakan kembali selama nonce EOA tetap tidak berubah. Oleh karena itu, Invoker harus menerapkan mekanisme nonce-nya untuk mencegah serangan replay.

Pelajari lebih lanjut

Untuk pengenalan terperinci terhadap cara kerja EIP-3074, silakan merujuk ke:https://medium.com/taipei-ethereum-meetup/eip3074-pengantar-2a880b918234

Aplikasi dari EIP-3074

Panggilan Batch

Batchcall memungkinkan pengguna untuk menggabungkan beberapa transaksi menjadi satu, menghemat proses tanda tangan otorisasi ganda dan beberapa biaya gas. Perhatikan bahwa ini memerlukan DApps untuk mendukung fungsionalitas Batchcall, seperti EIP-5792 yang saat ini dipromosikan. Tanpa dukungan tersebut, DApps akan meminta transaksi terpisah untuk setiap operasi, memperlakukan pengguna sebagai EOA reguler.

Untuk informasi lebih lanjut tentang EIP-5792, silakan lihat: EIP-5792.

Kunci Sesi

Pengguna dapat mendelegasikan operasi kepada pihak ketiga dalam kondisi-kondisi tertentu menggunakan kunci sesi. Dalam contoh di bawah ini, kunci delegasi mewakili pihak ketiga yang diotorisasi, sementara kebijakan akses menentukan batasan-batasan operasional, seperti membatasi tindakan-tindakan ke Uniswap, membatasi transfer hingga 1 ETH per hari, atau menetapkan tanggal kedaluwarsa otorisasi. Kondisi-kondisi ini dirancang dan diperiksa dalam kontrak Pemanggil. Setelah pemeriksaan berhasil, pihak ketiga dapat melakukan operasi sebagai EOA pengguna.

Sebagai contoh, Bot Telegram bisa diberi izin khusus untuk menjalankan operasi atas nama EOA pengguna.

Perizinan ETH Asli

Jika kondisinya terpenuhi (yaitu, tanda tangan izin valid), operasi dapat dilaksanakan sebagai EOA yang memberi otorisasi, memungkinkan fungsionalitas Izin ETH asli.

Pesanan Limit

Pengguna dapat menetapkan kondisi pesanan limit, yang, begitu terpenuhi, memungkinkan operasi dieksekusi sebagai EOA pengguna. Ini termasuk menyetujui aset digital yang relevan untuk DEX dan menukar aset di DEX. Dibandingkan dengan fungsionalitas pesanan limit yang disediakan oleh DEX itu sendiri, pengguna tidak perlu menyetujui aset terlebih dahulu untuk DEX.

Sebagai contoh, ketika Alice menyelesaikan pesanan limit, persetujuan dieksekusi secara bersamaan, menghilangkan kebutuhan persetujuan sebelumnya.

Dengan merancang kondisi secara lebih umum, kontrak Intent dapat dibuat: selama kondisi yang ditentukan dipenuhi, siapa pun dapat mengeksekusi niat atas nama EOA pengguna.

Pemulihan Sosial

Jika seorang pengguna kehilangan kunci pribadi EOA mereka, mereka dapat menggunakan otorisasi EIP-3074 yang sebelumnya ditandatangani, bersama dengan tanda tangan dari pihak yang diotorisasi (misalnya, Suami dan Agen Kepercayaan), untuk mentransfer semua aset dari EOA tersebut. Hal ini mengembalikan aset (yang dapat ditransfer), bukan kontrol akun. Setelah kunci pribadi EOA hilang, EOA tidak dapat digunakan lagi.

Meningkatkan Metode Otorisasi Aset

EIP-3074 memiliki potensi untuk memperbaiki atau bahkan menggantikan metode persetujuan saat ini. DApps saat ini beroperasi dengan asumsi bahwa pengguna adalah EOAs: pengguna harus melakukan persetujuan awal atas jumlah aset yang cukup besar ke kontrak DApp untuk menghindari tetap online secara konstan dan mengulangi persetujuan transaksi. Hal ini secara signifikan meningkatkan pengalaman pengguna.

Sebagai contoh, aplikasi bersyarat seperti pesanan batas atau DCA memerlukan pengguna untuk menyetujui sejumlah besar aset terlebih dahulu sehingga DApp dapat menjalankan operasi ketika kondisi terpenuhi, mungkin beberapa kali.

Namun, ini mengharuskan pengguna untuk mempercayai DApp atau menghindari menyetujui DApps palsu, dan mereka harus dapat menghapus persetujuan secara real-time.

Model izin terbaru seperti EIP-2612 atau Permit2 non-native bertujuan untuk meningkatkan pengalaman pengguna model persetujuan dan keamanan. Pengguna tidak perlu menyetujui jumlah aset besar untuk setiap kontrak DApp; sebaliknya, mereka dapat memberi wewenang kepada DApps untuk menarik sejumlah aset tertentu dalam waktu tertentu dengan menandatangani sekali. Hal ini sangat mengurangi permukaan serangan dan meningkatkan pengalaman pengguna.

△ Pengguna hanya perlu menandatangani di luar rantai, dan mereka dapat menentukan jumlah aset dan periode validitas, memberikan pengalaman pengguna yang lebih baik dan keamanan daripada persetujuan.

Namun, pada kenyataannya, tidak hanya menyetujui, mode izin sering dieksploitasi sebagai metode penipuan. Korban secara keliru menandatangani izin yang mereka yakini untuk penggunaan DApp tetapi sebenarnya memberikan otorisasi kepada penyerang.

△ Ketika pengguna menandatangani izin, mereka hanya dapat melihat siapa yang mereka otorisasi tetapi tidak tahu operasi apa yang akan dilakukan bersamanya.

Catatan:Desain izin saat ini tidak kompatibel dengan DApps yang memerlukan operasi berulang, seperti DCA atau aplikasi pembayaran periodik lainnya. Hal ini disebabkan oleh mekanisme anti-replay pada izin, sehingga setelah transaksi selesai, izin yang sama tidak dapat digunakan lagi. Pada dasarnya, pengguna perlu melakukan pra-tanda tangan izin untuk setiap operasi berulang di masa depan.

Pelajari Lebih Lanjut:

Untuk memahami lebih lanjut tentang kejadian di mana mode izin telah dieksploitasi sebagai metode penipuan, silakan salin tautan berikut ke browser Anda untuk informasi lebih lanjut:

Namun, EIP-3074 membawa kesempatan untuk perubahan: ketika pengembang DApp menyadari bahwa EOA dapat melakukan berbagai operasi kompleks melalui Invoker, desain interaksi DApp tidak lagi perlu mengorbankan keamanan demi pengalaman pengguna yang lebih baik, seperti "pengguna menyetujui sejumlah aset besar sebelumnya" atau "pengguna menandatangani pesan izin untuk mengotorisasi penarikan."

Sebagai gantinya, pengguna akan mengaitkan operasi DApp dengan tindakan persetujuan, menjalankannya secara atom melalui Pemanggil: baik kedua persetujuan dan operasi DApp berhasil bersama-sama atau gagal bersama-sama. Tidak ada kemungkinan tindakan persetujuan berhasil sendirian, sehingga pengguna dapat yakin bahwa tindakan persetujuan ini khusus untuk operasi saat ini.

Selain itu, pengguna memberi izin menggunakan tanda tangan di luar rantai, sehingga pengalaman pengguna sama seperti dengan izin! Ini berarti bahwa DApps tidak akan lagi memerlukan mode izin! Di masa depan, dompet dapat langsung memblokir atau lebih ketat memeriksa permintaan tanda tangan izin tanpa khawatir mencegah pengguna mengakses beberapa DApps tertentu (melainkan dieksploitasi oleh penipuan).

△ Pengguna tidak lagi hanya memberikan izin kepada alamat tertentu tapi juga menentukan tindakan apa yang dapat dilakukan, bahkan mereka dapat melihat hasil eksekusi simulasi.

Catatan:Ini tidak berarti penipuan bisa sepenuhnya dicegah! Pengguna masih bisa ditipu ke situs web penipuan, dan situs web penipuan masih dapat membuat operasi persetujuan atau transfer untuk pengguna tanda tangan. Namun, pada titik ini, pengguna setidaknya dapat melihat operasi apa yang disetujui oleh tanda tangan. Dompet bahkan dapat mensimulasikan dan menampilkan hasil eksekusi, menunjukkan secara jelas kepada pengguna siapa yang akan kehilangan uang dan siapa yang akan mendapatkan uang. Dibandingkan dengan izin di mana pengguna tidak dapat mengetahui operasi atau hasil eksekusi, pengguna sekarang memiliki lebih banyak informasi untuk memutuskan apakah akan memberikan izin. Meskipun bukan solusi yang sempurna, ini masih merupakan peningkatan signifikan atas situasi saat ini.

Bagaimana Dompet Mengatasi EOA Nonce

Saat ini, desain EIP-3074 mencakup nilai nonce EOA dalam konten tanda tangan. Oleh karena itu, begitu EOA mengirimkan transaksi on-chain yang mengubah nilai nonce, semua otorisasi EIP-3074 yang ada menjadi tidak valid.

Jika seorang pengguna memberikan otorisasi kepada orang lain untuk mengoperasikan EOA mereka atas nama mereka, seperti melalui Kunci Sesi atau metode Pemulihan Sosial yang disebutkan di atas, nonce EOA harus tetap tidak berubah. Jika tidak, semua otorisasi harus ditandatangani ulang dan diserahkan kepada wali, yang secara signifikan memengaruhi baik pengalaman pengguna maupun kekokohan mekanisme.

Jika pengguna mengotorisasi diri mereka sendiri untuk beroperasi, maka tidak perlu menghindari mengubah nonce EOA. Tanda tangan EIP-3074, seperti transaksi, diharapkan dieksekusi dalam periode tertentu. Namun, dompet harus mengelola transaksi EIP-3074 untuk EOA: jika ada tanda tangan EIP-3074 yang menunggu untuk on-chain, transaksi EOA harus menunggu.

Catatan:Kontrak Invoker itu sendiri harus mempertahankan mekanisme nonce yang terpisah, sehingga setiap tanda tangan harus diperbarui tanpa memperhatikan perubahan pada nonce EOA.

Kunci Sesi dan Pemulihan Sosial kemungkinan akan banyak diadopsi hanya setelah EIP-3074 memodifikasi aturan untuk menghapus nonce EOA dari konten tanda tangan. Oleh karena itu, dompet harus fokus pada skenario di mana "pengguna memberi otorisasi kepada diri mereka sendiri untuk beroperasi" dan memperlakukan tanda tangan EIP-3074 sebagaimana mereka akan transaksi, menghindari kekhawatiran tentang transaksi EOA yang mengubah nonce.

Namun, jika pengguna ingin mengirimkan tanda tangan EIP-3074 mereka sendiri ke rantai, ada dua kekurangan:

  1. Pengguna perlu menandatangani dua kali: sekali untuk tanda tangan EIP-3074 dan sekali untuk tanda tangan transaksi on-chain.

  2. Karena transaksi on-chain akan meningkatkan nonce EOA sebelum eksekusi, nonce EOA tanda tangan EIP-3074 harus di-pre-incremented untuk cocok dengan perubahan nonce yang disebabkan oleh transaksi on-chain.

△ Karena transaksi on-chain meningkatkan nonce EOA, verifikasi tanda tangan EIP-3074 akan gagal jika nonce tidak sesuai.

△ Pengguna perlu meningkatkan nonce EOA sebelumnya dalam tanda tangan EIP-3074 untuk berhasil lolos verifikasi.

Dengan memahami nuansa-nuansa ini, penyedia dompet dapat lebih baik mengelola penanganan nonce EOA, memastikan pengalaman pengguna yang lebih lancar dan aman dengan otorisasi EIP-3074.

Ringkasan dan sorotan

  • EIP-3074 memberikan kemampuan eksekusi yang kaya kepada EOAs (Externally Owned Accounts) seperti halnya kontrak, membuka berbagai skenario aplikasi baru.
  • Ini tidak hanya signifikan meningkatkan pengalaman pengguna tetapi juga mengubah metode otorisasi saat ini, membuatnya lebih aman tanpa mengorbankan kegunaan.
  • Selain itu, EIP-3074 melibatkan tanda tangan sederhana, sehingga pengguna tidak harus mengeksekusi tanda tangan ini secara on-chain sendiri, menghilangkan kebutuhan untuk mengumpulkan ETH untuk membayar biaya transaksi.
  • Penggunaan EIP-3074 termasuk Panggilan Batch, Kunci Sesi, Izin ETH Asli, Pesanan Batas, dan Pemulihan Sosial. Banyak dari ini awalnya tidak mungkin dicapai dengan EOA, dan beberapa, seperti Pesanan Batas, memerlukan pra-otorisasi dan metode kurang aman lainnya untuk digunakan.
  • Hal ini sebelumnya tidak mungkin untuk EOAs. Misalnya, menggunakan Limit Order memerlukan metode yang kurang aman seperti pra-otorisasi.
  • EIP-3074 juga akan mengubah metode otorisasi saat ini. Metode setuju secara langsung memberikan otorisasi kepada alamat tertentu untuk menarik aset digital tanpa batas untuk waktu yang tidak ditentukan, memerlukan EOA pengguna untuk mengirim transaksi untuk mengeksekusi persetujuan, yang mengakibatkan pengalaman pengguna dan keamanan yang buruk. Metode izin hanya memerlukan tanda tangan pengguna, dan setiap tanda tangan menentukan jumlah aset dan periode validitas, secara signifikan meningkatkan pengalaman pengguna dan keamanan dibandingkan dengan persetujuan.
  • Namun, metode izin masih sering dieksploitasi dalam penipuan. Saat menandatangani, pengguna hanya dapat melihat alamat, jumlah aset, dan periode validitas yang mereka otorisasi, tetapi tidak tujuan otorisasi. Tujuan akan ditentukan dalam tanda tangan lain (atau transaksi). DApp yang sah akan meminta pengguna untuk menandatangani baik izin maupun tujuannya, tetapi ini adalah dua tanda tangan terpisah. Oleh karena itu, ketika diminta untuk menandatangani izin, pengguna dan dompet tidak dapat menentukan penggunaan yang dimaksudkan dari izin tersebut.
  • Dengan EIP-3074, pengguna (1) tidak perlu menyetujui sejumlah besar aset ke DApp terlebih dahulu, tetapi hanya menyetujui ketika ada operasi, dan efeknya sama dengan izin; (2) cukup tanda tangani dan tidak perlu khawatir mengumpulkan ETH untuk membayar prosedur Biayanya sama dengan izin; (3) Setiap persetujuan terikat pada operasi yang ditentukan dan ditandatangani bersama. Pengguna dapat dengan jelas mengetahui "untuk apa persetujuan digunakan" kali ini. Ini akan lebih aman daripada izin!
  • Diharapkan bahwa EIP-3074 akan berhasil menggantikan metode persetujuan dan izin saat ini, memberikan pengguna metode otorisasi yang lebih aman.

Penafian:

  1. Artikel ini dicetak ulang dari [imToken Labs]. Semua hak cipta dimiliki oleh penulis asli [Nic]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan segera.
  2. Penolakan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan pandangan dari penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

Dampak dari EIP-3074 pada Dompet dan DApps

Menengah5/27/2024, 9:17:11 AM
EIP-3074 memungkinkan akun yang dimiliki eksternal (EOA) untuk memberikan kontrol kepada kontrak yang ditentukan, sehingga memperoleh kemampuan eksekusi yang luas mirip dengan kontrak. Hal ini secara signifikan meningkatkan pengalaman pengguna dan dapat mendefinisikan ulang metode otorisasi yang familiar saat ini, meningkatkan keamanan sambil mempertahankan kegunaan. Nic dari imToken Labs menganalisis dampak EIP-3074, termasuk perbaikan pada metode otorisasi aset.

EIP-3074

Pengalaman Pengguna yang Lebih Baik dan Lebih Aman

EIP-3074 memungkinkan EOAs untuk mendelagasikan kontrol ke kontrak tertentu, sehingga memperoleh kemampuan eksekusi yang kaya mirip dengan kontrak. Sebelum EIP-3074, seorang EOA hanya bisa melakukan satu operasi per transaksi, seperti menyetujui token ERC20 atau melakukan pertukaran di Uniswap. Setelah EIP-3074, seorang EOA dapat menyelesaikan beberapa operasi dalam satu transaksi, memungkinkan kasus penggunaan yang sebelumnya tidak terbayangkan. Pada dasarnya, EIP-3074 secara signifikan meningkatkan pengalaman pengguna dan mengubah metode otorisasi yang sudah dikenal sambil meningkatkan keamanan.

Selain itu, dengan EIP-3074, EOAs tidak lagi perlu mengirim transaksi on-chain sendiri, sehingga menghilangkan kebutuhan untuk pertama-tama memperoleh ETH untuk membayar biaya transaksi.

Kontrak Pengundang

Kontrak yang dapat mengendalikan EOA disebut kontrak Invoker. Tidak sembarang kontrak bisa mendapatkan kendali; EOA harus menandatangani dengan kunci privatnya, menentukan kontrak Invoker mana dan operasi mana yang diizinkan untuk dilakukan oleh Invoker.

Proses ini biasanya melibatkan:

Alice menandatangani dengan kunci pribadi EOA-nya, menentukan kontrak Pemanggil dan operasi yang diotorisasi.

Alice mengirimkan konten yang ditandatangani dan tanda tangan ke Relayer.

Relayer mengirimkan transaksi ke-chain ke kontrak Invoker.

Invoker memverifikasi tanda tangan dan, setelah divalidasi, menjalankan operasi sebagai EOA milik Alice, seperti menyetujui USDC, menukar aset di Uniswap, dan menggunakan sebagian USDC untuk membayar Relayer sebagai biaya.

Catatan: Relayer bersifat opsional; Alice dapat mengirimkan konten yang ditandatangani dan tanda tangan secara mandiri ke dalam rantai.

Menghindari Serangan Replay

Invoker menjalankan operasi seolah-olah memiliki kontrol terbatas dari EOA milik Alice. Namun, nonce EOA tidak meningkat setelah eksekusi, artinya tanda tangan yang sama bisa digunakan kembali selama nonce EOA tetap tidak berubah. Oleh karena itu, Invoker harus menerapkan mekanisme nonce-nya untuk mencegah serangan replay.

Pelajari lebih lanjut

Untuk pengenalan terperinci terhadap cara kerja EIP-3074, silakan merujuk ke:https://medium.com/taipei-ethereum-meetup/eip3074-pengantar-2a880b918234

Aplikasi dari EIP-3074

Panggilan Batch

Batchcall memungkinkan pengguna untuk menggabungkan beberapa transaksi menjadi satu, menghemat proses tanda tangan otorisasi ganda dan beberapa biaya gas. Perhatikan bahwa ini memerlukan DApps untuk mendukung fungsionalitas Batchcall, seperti EIP-5792 yang saat ini dipromosikan. Tanpa dukungan tersebut, DApps akan meminta transaksi terpisah untuk setiap operasi, memperlakukan pengguna sebagai EOA reguler.

Untuk informasi lebih lanjut tentang EIP-5792, silakan lihat: EIP-5792.

Kunci Sesi

Pengguna dapat mendelegasikan operasi kepada pihak ketiga dalam kondisi-kondisi tertentu menggunakan kunci sesi. Dalam contoh di bawah ini, kunci delegasi mewakili pihak ketiga yang diotorisasi, sementara kebijakan akses menentukan batasan-batasan operasional, seperti membatasi tindakan-tindakan ke Uniswap, membatasi transfer hingga 1 ETH per hari, atau menetapkan tanggal kedaluwarsa otorisasi. Kondisi-kondisi ini dirancang dan diperiksa dalam kontrak Pemanggil. Setelah pemeriksaan berhasil, pihak ketiga dapat melakukan operasi sebagai EOA pengguna.

Sebagai contoh, Bot Telegram bisa diberi izin khusus untuk menjalankan operasi atas nama EOA pengguna.

Perizinan ETH Asli

Jika kondisinya terpenuhi (yaitu, tanda tangan izin valid), operasi dapat dilaksanakan sebagai EOA yang memberi otorisasi, memungkinkan fungsionalitas Izin ETH asli.

Pesanan Limit

Pengguna dapat menetapkan kondisi pesanan limit, yang, begitu terpenuhi, memungkinkan operasi dieksekusi sebagai EOA pengguna. Ini termasuk menyetujui aset digital yang relevan untuk DEX dan menukar aset di DEX. Dibandingkan dengan fungsionalitas pesanan limit yang disediakan oleh DEX itu sendiri, pengguna tidak perlu menyetujui aset terlebih dahulu untuk DEX.

Sebagai contoh, ketika Alice menyelesaikan pesanan limit, persetujuan dieksekusi secara bersamaan, menghilangkan kebutuhan persetujuan sebelumnya.

Dengan merancang kondisi secara lebih umum, kontrak Intent dapat dibuat: selama kondisi yang ditentukan dipenuhi, siapa pun dapat mengeksekusi niat atas nama EOA pengguna.

Pemulihan Sosial

Jika seorang pengguna kehilangan kunci pribadi EOA mereka, mereka dapat menggunakan otorisasi EIP-3074 yang sebelumnya ditandatangani, bersama dengan tanda tangan dari pihak yang diotorisasi (misalnya, Suami dan Agen Kepercayaan), untuk mentransfer semua aset dari EOA tersebut. Hal ini mengembalikan aset (yang dapat ditransfer), bukan kontrol akun. Setelah kunci pribadi EOA hilang, EOA tidak dapat digunakan lagi.

Meningkatkan Metode Otorisasi Aset

EIP-3074 memiliki potensi untuk memperbaiki atau bahkan menggantikan metode persetujuan saat ini. DApps saat ini beroperasi dengan asumsi bahwa pengguna adalah EOAs: pengguna harus melakukan persetujuan awal atas jumlah aset yang cukup besar ke kontrak DApp untuk menghindari tetap online secara konstan dan mengulangi persetujuan transaksi. Hal ini secara signifikan meningkatkan pengalaman pengguna.

Sebagai contoh, aplikasi bersyarat seperti pesanan batas atau DCA memerlukan pengguna untuk menyetujui sejumlah besar aset terlebih dahulu sehingga DApp dapat menjalankan operasi ketika kondisi terpenuhi, mungkin beberapa kali.

Namun, ini mengharuskan pengguna untuk mempercayai DApp atau menghindari menyetujui DApps palsu, dan mereka harus dapat menghapus persetujuan secara real-time.

Model izin terbaru seperti EIP-2612 atau Permit2 non-native bertujuan untuk meningkatkan pengalaman pengguna model persetujuan dan keamanan. Pengguna tidak perlu menyetujui jumlah aset besar untuk setiap kontrak DApp; sebaliknya, mereka dapat memberi wewenang kepada DApps untuk menarik sejumlah aset tertentu dalam waktu tertentu dengan menandatangani sekali. Hal ini sangat mengurangi permukaan serangan dan meningkatkan pengalaman pengguna.

△ Pengguna hanya perlu menandatangani di luar rantai, dan mereka dapat menentukan jumlah aset dan periode validitas, memberikan pengalaman pengguna yang lebih baik dan keamanan daripada persetujuan.

Namun, pada kenyataannya, tidak hanya menyetujui, mode izin sering dieksploitasi sebagai metode penipuan. Korban secara keliru menandatangani izin yang mereka yakini untuk penggunaan DApp tetapi sebenarnya memberikan otorisasi kepada penyerang.

△ Ketika pengguna menandatangani izin, mereka hanya dapat melihat siapa yang mereka otorisasi tetapi tidak tahu operasi apa yang akan dilakukan bersamanya.

Catatan:Desain izin saat ini tidak kompatibel dengan DApps yang memerlukan operasi berulang, seperti DCA atau aplikasi pembayaran periodik lainnya. Hal ini disebabkan oleh mekanisme anti-replay pada izin, sehingga setelah transaksi selesai, izin yang sama tidak dapat digunakan lagi. Pada dasarnya, pengguna perlu melakukan pra-tanda tangan izin untuk setiap operasi berulang di masa depan.

Pelajari Lebih Lanjut:

Untuk memahami lebih lanjut tentang kejadian di mana mode izin telah dieksploitasi sebagai metode penipuan, silakan salin tautan berikut ke browser Anda untuk informasi lebih lanjut:

Namun, EIP-3074 membawa kesempatan untuk perubahan: ketika pengembang DApp menyadari bahwa EOA dapat melakukan berbagai operasi kompleks melalui Invoker, desain interaksi DApp tidak lagi perlu mengorbankan keamanan demi pengalaman pengguna yang lebih baik, seperti "pengguna menyetujui sejumlah aset besar sebelumnya" atau "pengguna menandatangani pesan izin untuk mengotorisasi penarikan."

Sebagai gantinya, pengguna akan mengaitkan operasi DApp dengan tindakan persetujuan, menjalankannya secara atom melalui Pemanggil: baik kedua persetujuan dan operasi DApp berhasil bersama-sama atau gagal bersama-sama. Tidak ada kemungkinan tindakan persetujuan berhasil sendirian, sehingga pengguna dapat yakin bahwa tindakan persetujuan ini khusus untuk operasi saat ini.

Selain itu, pengguna memberi izin menggunakan tanda tangan di luar rantai, sehingga pengalaman pengguna sama seperti dengan izin! Ini berarti bahwa DApps tidak akan lagi memerlukan mode izin! Di masa depan, dompet dapat langsung memblokir atau lebih ketat memeriksa permintaan tanda tangan izin tanpa khawatir mencegah pengguna mengakses beberapa DApps tertentu (melainkan dieksploitasi oleh penipuan).

△ Pengguna tidak lagi hanya memberikan izin kepada alamat tertentu tapi juga menentukan tindakan apa yang dapat dilakukan, bahkan mereka dapat melihat hasil eksekusi simulasi.

Catatan:Ini tidak berarti penipuan bisa sepenuhnya dicegah! Pengguna masih bisa ditipu ke situs web penipuan, dan situs web penipuan masih dapat membuat operasi persetujuan atau transfer untuk pengguna tanda tangan. Namun, pada titik ini, pengguna setidaknya dapat melihat operasi apa yang disetujui oleh tanda tangan. Dompet bahkan dapat mensimulasikan dan menampilkan hasil eksekusi, menunjukkan secara jelas kepada pengguna siapa yang akan kehilangan uang dan siapa yang akan mendapatkan uang. Dibandingkan dengan izin di mana pengguna tidak dapat mengetahui operasi atau hasil eksekusi, pengguna sekarang memiliki lebih banyak informasi untuk memutuskan apakah akan memberikan izin. Meskipun bukan solusi yang sempurna, ini masih merupakan peningkatan signifikan atas situasi saat ini.

Bagaimana Dompet Mengatasi EOA Nonce

Saat ini, desain EIP-3074 mencakup nilai nonce EOA dalam konten tanda tangan. Oleh karena itu, begitu EOA mengirimkan transaksi on-chain yang mengubah nilai nonce, semua otorisasi EIP-3074 yang ada menjadi tidak valid.

Jika seorang pengguna memberikan otorisasi kepada orang lain untuk mengoperasikan EOA mereka atas nama mereka, seperti melalui Kunci Sesi atau metode Pemulihan Sosial yang disebutkan di atas, nonce EOA harus tetap tidak berubah. Jika tidak, semua otorisasi harus ditandatangani ulang dan diserahkan kepada wali, yang secara signifikan memengaruhi baik pengalaman pengguna maupun kekokohan mekanisme.

Jika pengguna mengotorisasi diri mereka sendiri untuk beroperasi, maka tidak perlu menghindari mengubah nonce EOA. Tanda tangan EIP-3074, seperti transaksi, diharapkan dieksekusi dalam periode tertentu. Namun, dompet harus mengelola transaksi EIP-3074 untuk EOA: jika ada tanda tangan EIP-3074 yang menunggu untuk on-chain, transaksi EOA harus menunggu.

Catatan:Kontrak Invoker itu sendiri harus mempertahankan mekanisme nonce yang terpisah, sehingga setiap tanda tangan harus diperbarui tanpa memperhatikan perubahan pada nonce EOA.

Kunci Sesi dan Pemulihan Sosial kemungkinan akan banyak diadopsi hanya setelah EIP-3074 memodifikasi aturan untuk menghapus nonce EOA dari konten tanda tangan. Oleh karena itu, dompet harus fokus pada skenario di mana "pengguna memberi otorisasi kepada diri mereka sendiri untuk beroperasi" dan memperlakukan tanda tangan EIP-3074 sebagaimana mereka akan transaksi, menghindari kekhawatiran tentang transaksi EOA yang mengubah nonce.

Namun, jika pengguna ingin mengirimkan tanda tangan EIP-3074 mereka sendiri ke rantai, ada dua kekurangan:

  1. Pengguna perlu menandatangani dua kali: sekali untuk tanda tangan EIP-3074 dan sekali untuk tanda tangan transaksi on-chain.

  2. Karena transaksi on-chain akan meningkatkan nonce EOA sebelum eksekusi, nonce EOA tanda tangan EIP-3074 harus di-pre-incremented untuk cocok dengan perubahan nonce yang disebabkan oleh transaksi on-chain.

△ Karena transaksi on-chain meningkatkan nonce EOA, verifikasi tanda tangan EIP-3074 akan gagal jika nonce tidak sesuai.

△ Pengguna perlu meningkatkan nonce EOA sebelumnya dalam tanda tangan EIP-3074 untuk berhasil lolos verifikasi.

Dengan memahami nuansa-nuansa ini, penyedia dompet dapat lebih baik mengelola penanganan nonce EOA, memastikan pengalaman pengguna yang lebih lancar dan aman dengan otorisasi EIP-3074.

Ringkasan dan sorotan

  • EIP-3074 memberikan kemampuan eksekusi yang kaya kepada EOAs (Externally Owned Accounts) seperti halnya kontrak, membuka berbagai skenario aplikasi baru.
  • Ini tidak hanya signifikan meningkatkan pengalaman pengguna tetapi juga mengubah metode otorisasi saat ini, membuatnya lebih aman tanpa mengorbankan kegunaan.
  • Selain itu, EIP-3074 melibatkan tanda tangan sederhana, sehingga pengguna tidak harus mengeksekusi tanda tangan ini secara on-chain sendiri, menghilangkan kebutuhan untuk mengumpulkan ETH untuk membayar biaya transaksi.
  • Penggunaan EIP-3074 termasuk Panggilan Batch, Kunci Sesi, Izin ETH Asli, Pesanan Batas, dan Pemulihan Sosial. Banyak dari ini awalnya tidak mungkin dicapai dengan EOA, dan beberapa, seperti Pesanan Batas, memerlukan pra-otorisasi dan metode kurang aman lainnya untuk digunakan.
  • Hal ini sebelumnya tidak mungkin untuk EOAs. Misalnya, menggunakan Limit Order memerlukan metode yang kurang aman seperti pra-otorisasi.
  • EIP-3074 juga akan mengubah metode otorisasi saat ini. Metode setuju secara langsung memberikan otorisasi kepada alamat tertentu untuk menarik aset digital tanpa batas untuk waktu yang tidak ditentukan, memerlukan EOA pengguna untuk mengirim transaksi untuk mengeksekusi persetujuan, yang mengakibatkan pengalaman pengguna dan keamanan yang buruk. Metode izin hanya memerlukan tanda tangan pengguna, dan setiap tanda tangan menentukan jumlah aset dan periode validitas, secara signifikan meningkatkan pengalaman pengguna dan keamanan dibandingkan dengan persetujuan.
  • Namun, metode izin masih sering dieksploitasi dalam penipuan. Saat menandatangani, pengguna hanya dapat melihat alamat, jumlah aset, dan periode validitas yang mereka otorisasi, tetapi tidak tujuan otorisasi. Tujuan akan ditentukan dalam tanda tangan lain (atau transaksi). DApp yang sah akan meminta pengguna untuk menandatangani baik izin maupun tujuannya, tetapi ini adalah dua tanda tangan terpisah. Oleh karena itu, ketika diminta untuk menandatangani izin, pengguna dan dompet tidak dapat menentukan penggunaan yang dimaksudkan dari izin tersebut.
  • Dengan EIP-3074, pengguna (1) tidak perlu menyetujui sejumlah besar aset ke DApp terlebih dahulu, tetapi hanya menyetujui ketika ada operasi, dan efeknya sama dengan izin; (2) cukup tanda tangani dan tidak perlu khawatir mengumpulkan ETH untuk membayar prosedur Biayanya sama dengan izin; (3) Setiap persetujuan terikat pada operasi yang ditentukan dan ditandatangani bersama. Pengguna dapat dengan jelas mengetahui "untuk apa persetujuan digunakan" kali ini. Ini akan lebih aman daripada izin!
  • Diharapkan bahwa EIP-3074 akan berhasil menggantikan metode persetujuan dan izin saat ini, memberikan pengguna metode otorisasi yang lebih aman.

Penafian:

  1. Artikel ini dicetak ulang dari [imToken Labs]. Semua hak cipta dimiliki oleh penulis asli [Nic]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan segera.
  2. Penolakan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan pandangan dari penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
Start Now
Sign up and get a
$100
Voucher!