Dampak EIP-3074 pada Dompet dan DApps

MenengahJun 11, 2024
Artikel ini memperkenalkan dampak inovatif EIP-3074 pada EOA. Dengan memungkinkan EOA untuk mentransfer kontrol ke kontrak Invoker, ia memperoleh kemampuan operasi multi-fungsi yang sama dengan kontrak. Ini tidak hanya secara signifikan meningkatkan pengalaman pengguna, tetapi juga membentuk kembali metode otorisasi yang ada untuk membuatnya lebih aman tanpa mengubah pengalaman pengguna.
Dampak EIP-3074 pada Dompet dan DApps

EIP-3074

Pengalaman penggunaan yang lebih baik dan lebih aman

EIP-3074 memungkinkan EOA (Akun Milik Eksternal) untuk mentransfer kontrol ke kontrak tertentu, sehingga memperoleh kemampuan eksekusi kaya yang sama dengan kontrak. Sebelum EIP-3074, EOA hanya dapat melakukan satu operasi per transaksi, seperti menyetujui ERC20 atau bertukar di Uniswap. Setelah EIP-3074, EOA dapat melakukan beberapa operasi sekaligus, atau bahkan menyelesaikan tugas yang sebelumnya tak terbayangkan. Sederhananya, EIP-3074 sangat meningkatkan pengalaman pengguna, dan metode otorisasi token yang sudah dikenal akan dibentuk kembali, meningkatkan keamanan tanpa mengubah pengalaman pengguna.

Selain itu, melalui EIP-3074, EOA tidak lebih lama perlu mengirim transaksi ke rantai dengan sendirinya, menghilangkan kesulitan karena harus menaikkan ETH untuk membayar biaya transaksi.

Kontrak Invoker

Kontrak yang dapat memperoleh kendali EOA disebut kontrak Invoker. Tentu saja, tidak sembarang kontrak dapat mengendalikan EOA: EOA harus menandatangani dengan kunci pribadi, dan isi tanda tangan akan dengan jelas menentukan kontrak Invoker mana itu dan operasi apa yang diizinkan untuk dilakukan oleh Invoker.

Konten tanda tangan EOA akan dengan jelas menentukan kontrak Invoker (alamat invoker) mana dan mengotorisasi operasi kontrak Invoker tersebut (commit)

Proses eksekusi yang sebenarnya mungkin akan terlihat seperti ini:

  1. Alice menandatangani dengan kunci pribadi EEO-nya dan kemudian memberikan konten tanda tangan dan tanda tangan ke Relayer
  2. Relayer membawa rantai ke eksekusi kontrak Invoker
  3. Invoker memverifikasi tanda tangan. Setelah lulus verifikasi, ia dapat melakukan operasi sebagai EOA, seperti menyetujui USDC, kemudian pergi ke Uniswap untuk pertukaran, dan akhirnya mentransfer beberapa USDC ke Relayer sebagai biaya penanganan.

Catatan 1: Relayer tidak diperlukan. Alice juga dapat membawa konten dan segel tanda tangannya sendiri ke rantai.

Setelah Invoker memverifikasi tanda tangan dan mulai menjalankan operasi, itu akan dieksekusi sebagai Alice EOA, yang seperti mendapatkan kontrol (terbatas) dari EOA.

Namun, perlu dicatat bahwa nilai nonce EOA tidak akan meningkat setelah eksekusi, sehingga tanda tangan yang sama dapat digunakan kembali (long karena nonce EOA tetap tidak berubah), sehingga Invoker perlu menerapkan mekanisme nonce sendiri untuk menghindari pemutaran ulang.

Jika kontrak Invoker tidak Replay-proof, otorisasi yang sama dapat dijalankan setiap saat.

Untuk pengenalan mekanisme operasi aktual EIP-3074, silakan merujuk ke: Pengantar EIP3074

Application

Batchcall

Izinkan pengguna untuk menggabungkan eksekusi beberapa transaksi menjadi satu, menghemat proses beberapa tanda tangan resmi dan beberapa biaya Gas.

Catatan: Ini akan mengharuskan dApp untuk juga dukungan fungsi Batchcall, seperti EIP-5792, yang saat ini sedang didorong oleh komunitas. Jika tidak, dApp hanya akan meminta pengguna untuk masuk sekali untuk setiap operasi jika memperlakukan pengguna sebagai EOA normal.

Kunci Sesi

Pengguna juga dapat mengizinkan pihak ketiga untuk bertindak atas nama mereka dalam kondisi tertentu. Kunci delegasi dalam diagram di bawah ini adalah pihak ketiga yang berwenang; kebijakan akses adalah pembatasan eksekusi, seperti membatasinya untuk hanya mengoperasikan Uniswap, mentransfer maksimum 1 ETH per hari, masa berlaku otorisasi, dll. Kondisi ini dirancang dan diperiksa dalam kontrak Invoker. long saat pemeriksaan dilewati, pihak ketiga dapat menjalankan operasi sebagai EOA pengguna.


Telegram Bot dapat diberikan izin khusus untuk melakukan operasi atas nama EOA pengguna

Izin ETH Asli

Karena long kondisi terpenuhi (yaitu, tanda tangan Izin adalah legal), transfer ETH dapat dilakukan sebagai EOA otorisasi, mencapai efek dari Izin ETH asli.

Limit Order

Pengguna mengisi batas pesanan kondisi, dan ketika kondisi terpenuhi, itu dapat dieksekusi sebagai EOA pengguna, termasuk menyetujui token untuk DEX, pergi ke DEX untuk penebusan, dll. Dibandingkan dengan Limit Order yang disediakan oleh DEX itu sendiri, pengguna tidak perlu mengirim transaksi ke DEX untuk persetujuan terlebih dahulu.

Ketika Alice menyelesaikan pesanan, dia akan mengeksekusi persetujuan pada saat yang sama, menghilangkan kebutuhan untuk persetujuan sebelumnya.

Jika kondisi dirancang untuk menjadi lebih umum, itu akan menjadi seperti kontrak Intent: long kondisi yang ditentukan oleh pengguna terpenuhi, siapa pun dapat mengeksekusi intent atas nama EOA mereka.

long kondisi Intent terpenuhi, siapa pun dapat memulai eksekusi atas nama EOA pengguna

Pemulihan Sosial

Ketika pengguna kehilangan kunci pribadi EOA, dia (Alice) dapat menggunakan otorisasi EIP-3074 yang dia tandatangani, bersama dengan tanda tangan orang yang berwenang (Suami dan Agen Perwalian) untuk mentransfer semua aset EOA. Pada kenyataannya, apa yang dipulihkan adalah aset (yang dapat dipindahtangankan), bukan kontrol akun. Setelah kunci privat EOA hilang, EOA tidak dapat lebih lama digunakan.

Ketika pengguna kehilangan kunci privat EOA, orang lain yang berwenang dapat menandatangani dan mengotorisasi transfer aset EOA.

Dampak EIP-3074

Meningkatkan metode otorisasi token, dan berpotensi menggantikan persetujuan/izin?

Saat ini, dApps dirancang dengan asumsi bahwa pengguna adalah EOA: pengguna harus "menyetujui sebelumnya" dan "menyetujui jumlah uang yang cukup" untuk kontrak dApp. Ini berarti pengguna tidak perlu tetap online sepanjang waktu, menunggu dApp dijalankan, atau terus-menerus menyetujui kembali, sangat meningkatkan pengalaman pengguna. Untuk aplikasi yang dipicu kondisi seperti limit order atau DCA, pengguna mungkin tidak online ketika kondisi terpenuhi, sehingga mereka perlu menyetujui terlebih dahulu sejumlah besar uang untuk mengeksekusi kontrak dApp, dan ini mungkin merupakan proses yang berulang.

Pengguna harus menyetujui jumlah yang cukup besar untuk dApp terlebih dahulu sehingga dApp dapat beroperasi dengan uangnya.

Tetapi juga perlu mempercayai dApp atau menghindari menyetujui dApp palsu, dan untuk dapat segera menghapus persetujuan

Mode izin yang muncul kemudian, seperti token-native EIP-2612 atau Permit2 non-native, semuanya untuk meningkatkan pengalaman penggunaan dan keamanan mode persetujuan: pengguna tidak perlu lebih lama menyetujui sejumlah besar uang untuk setiap kontrak dApp (dan setiap token harus disetujui satu kali). Sebagai gantinya, pengguna hanya perlu "menandatangani nama" untuk mengotorisasi kontrak dApp untuk "menarik jumlah yang ditentukan" dalam "waktu yang ditentukan". Ini tidak hanya sangat mengurangi permukaan serangan, tetapi juga sangat meningkatkan pengalaman pengguna.

Pengguna hanya perlu menandatangani off-chain, dan dapat menentukan jumlah dan masa berlaku, memberikan pengalaman dan keamanan pengguna yang lebih baik daripada menyetujui.

Namun pada kenyataannya, tidak hanya menyetujui, mode izin telah sering digunakan sebagai metode serangan penipuan (1,2,3): korban secara keliru menandatangani apa yang mereka pikir sebagai izin untuk dApp tetapi sebenarnya diberikan kepada penyerang.

Ketika pengguna menandatangani izin, mereka hanya dapat melihat siapa yang harus diotorisasi, tetapi mereka tidak tahu operasi apa yang akan dipasangkan dengannya untuk dijalankan.

Catatan: Desain izin saat ini tidak kompatibel dengan dApps operasi berulang, seperti DCA atau aplikasi pembayaran reguler lainnya. Ini karena izin tersebut memiliki mekanisme perlindungan pemutaran ulang, jadi setelah transfer selesai, izin yang sama tidak dapat digunakan lagi, yang berarti bahwa pengguna harus menandatangani izin terlebih dahulu untuk setiap operasi berulang di masa mendatang.

Namun, EIP-3074 membawa peluang untuk perubahan: ketika pengembang dApp tahu bahwa EOA dapat melakukan berbagai operasi kompleks melalui Invoker, desain interaksi dApp tidak lebih lama perlu mengorbankan keamanan dalam pesanan untuk meningkatkan pengalaman pengguna, seperti "pengguna pra-menyetujui sejumlah besar uang" dan "pengguna menandatangani pesan izin untuk mengotorisasi penarikan." Sebaliknya, pengguna mengikat operasi dApp untuk menyetujui dan melakukan eksekusi atom melalui Invoker: baik menyetujui dan operasi dApp berhasil dijalankan bersama-sama, atau mereka gagal bersama-sama. Tidak ada kemungkinan berhasil untuk persetujuan saja, sehingga pengguna dapat yakin bahwa persetujuan ini untuk operasi ini. Dan pengguna menggunakan otorisasi tanda tangan off-chain, jadi pengalaman pengguna sama dengan izin! Ini berarti bahwa dApp tidak lebih lama memerlukan mode izin! Di masa depan, dompet dapat langsung melarang atau melakukan tinjauan yang lebih ketat terhadap permintaan tanda tangan izin, tanpa harus khawatir apakah itu akan menyebabkan pengguna tidak menggunakan beberapa dApps (tetapi pada gilirannya digunakan untuk penipuan).

Pengguna tidak lebih lama hanya mengotorisasi alamat tertentu, tetapi mengotorisasi alamat tertentu dan apa yang harus dilakukan, dan bahkan melihat hasil eksekusi simulasi.

Catatan: Ini tidak berarti bahwa penipuan dapat sepenuhnya diblokir! Pengguna mungkin masih tertipu ke situs web penipuan, dan situs web penipuan masih dapat mengatur operasi persetujuan atau transfer bagi pengguna untuk ditandatangani, tetapi saat ini pengguna setidaknya dapat melihat apa yang akan dilakukan tanda tangan ini, dan dompet bahkan dapat mensimulasikan hasil eksekusi tampilan dan menyajikannya kepada pengguna, sehingga pengguna dapat dengan jelas mengetahui siapa yang akan kehilangan berapa banyak uang dan siapa yang akan mendapatkan berapa banyak uang. Dibandingkan dengan izin yang tidak tahu operasi apa atau bahkan hasil eksekusi, pengguna memiliki lebih banyak informasi untuk memutuskan apakah akan diotorisasi. Meskipun ini bukan obat yang sempurna, itu masih akan menjadi perbaikan substansial untuk situasi saat ini.

Bagaimana Dompet Menangani EOA nonces

Desain EIP-3074 saat ini akan menyertakan nilai nonce EOA dalam konten tanda tangan, sehingga long saat EOA mengirim transaksi ke rantai untuk dieksekusi dan mengubah nilai nonce, semua otorisasi EIP-3074 asli akan dibatalkan.

Jika pengguna mengizinkan orang lain untuk mengoperasikan EOA, seperti Kunci Sesi atau metode Pemulihan Sosial yang disebutkan di atas, nonce EOA harus dicegah agar tidak berubah. Jika tidak, perlu untuk menandatangani semua otorisasi lagi dan memberikannya kepada wali amanat, yang memiliki dampak besar pada pengalaman pengguna dan ketahanan mekanisme.

Jika pengguna berwenang untuk beroperasi sendiri, tidak perlu secara khusus mencegah nonce EOA diubah, karena tanda tangan EIP-3074 masih diharapkan untuk dieksekusi sebelum batas waktu tertentu seperti transaksi. Hanya saja dompet perlu mengelola lebih banyak transaksi EIP-3074 dari EOA: jika ada tanda tangan EIP-3074 yang menunggu untuk diunggah ke rantai, maka transaksi EOA itu sendiri harus menunggu.

Catatan: Kontrak Invoker itu sendiri akan (dan harus) mempertahankan serangkaian mekanisme nonce, jadi setelah tanda tangan digunakan, masih perlu ditandatangani lagi, terlepas dari apakah EOA nonce berubah.

Kunci Sesi dan Pemulihan Sosial kemungkinan besar harus menunggu hingga EIP-3074 mengubah aturan untuk menghapus nonce EOA dari konten tanda tangan sebelum dapat diadopsi dalam skala besar. Oleh karena itu, dompet hanya perlu fokus pada kasus penggunaan "operasi resmi pengguna" dan memperlakukan tanda tangan EIP-3074 sebagai transaksi. Tidak perlu khawatir tentang menghindari transaksi pengiriman EOA atau mengubah nonce EOA.

Namun, perlu dicatat bahwa jika pengguna ingin membawa konten tanda tangannya sendiri EIP-3074 ke rantai, akan ada dua kelemahan:

  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 menambahkan 1 ke nonce EOA sebelum transaksi mulai dijalankan, nonce EOA dalam tanda tangan EIP-3074 pengguna perlu ditambahkan terlebih dahulu 1 agar sesuai dengan EOA nonce +1 yang disebabkan oleh rantai itu sendiri.

Karena rantai akan menambahkan 1 ke nonce EOA terlebih dahulu, verifikasi tanda tangan EIP-3074 akan gagal karena ketidakcocokan nonce EOA.

Jika pengguna menambahkan 1 ke nonce EOA dalam tanda tangan EIP-3074 sebelum membawanya ke rantai itu sendiri, verifikasi dapat dilanjutkan dengan lancar.

Ringkasan dan Sorotan

  • EIP-3074 memungkinkan EOA untuk mendapatkan kemampuan eksekusi kaya yang sama seperti kontrak, membuka banyak skenario aplikasi baru.
  • Ini tidak hanya akan sangat meningkatkan pengalaman pengguna, tetapi juga akan mengubah metode otorisasi token saat ini, membuatnya lebih aman sambil mempertahankan pengalaman pengguna yang sama.
  • Selain itu, EIP-3074 adalah tanda tangan sederhana, dan pengguna tidak perlu membawa tanda tangan ke rantai untuk dieksekusi, jadi tidak perlu khawatir mengumpulkan ETH untuk membayar biaya transaksi.
  • Penggunaan EIP-3074 meliputi Batch Call, Session Key, Native ETH Permit, Limit Order, dan Social Recovery. Banyak dari ini sebelumnya tidak mungkin dicapai oleh EOA, dan beberapa, seperti Limit Order, memerlukan metode pra-otorisasi yang tidak aman untuk digunakan.
  • EIP-3074 juga akan mengubah metode otorisasi token saat ini. Metode approve secara langsung mengotorisasi alamat tertentu untuk memiliki kekuatan untuk menarik token tanpa batas, dan itu mengharuskan EOA pengguna untuk mengirim transaksi untuk mengeksekusi approve, sehingga pengalaman dan keamanan pengguna tidak baik; Metode izin hanya mengharuskan pengguna untuk menandatangani, dan setiap tanda tangan akan menentukan jumlah dan masa berlaku, yang sangat meningkatkan pengalaman dan keamanan pengguna dibandingkan dengan menyetujui.
  • Namun, izin tersebut masih sering digunakan dalam penipuan. Saat menandatangani, pengguna hanya dapat mengetahui siapa yang harus diotorisasi, berapa banyak, dan masa berlakunya, tetapi mereka tidak tahu untuk apa otorisasi ini. "Untuk apa" akan menjadi tanda tangan (atau transaksi) lain. Normal dApps akan membiarkan pengguna menandatangani izin dan "untuk apa", tetapi mereka masih akan menjadi dua tanda tangan yang berbeda, jadi ketika diminta untuk menandatangani izin, baik pengguna maupun dompet tidak dapat mengetahui untuk apa izin ini akan digunakan.
  • Dengan EIP-3074, pengguna (1) tidak perlu menyetujui sejumlah besar uang ke dApp terlebih dahulu, tetapi hanya perlu menyetujui ketika ada operasi, yang memiliki efek yang sama dengan izin; (2) hanya tanda tangan sederhana dan tidak perlu khawatir mengumpulkan ETH untuk membayar biaya transaksi, yang sama dengan izin; (3) Setiap persetujuan terkait dengan operasi tertentu dan ditandatangani bersama, sehingga pengguna dapat dengan jelas mengetahui untuk apa persetujuan ini, yang akan lebih aman daripada izin!
  • Diharapkan EIP-3074 dapat berhasil menggantikan mode persetujuan dan izin saat ini dan memberi pengguna metode otorisasi yang lebih aman.

Penafian:

  1. Artikel ini dicetak ulang dari [imToken Labs]. Semua hak cipta adalah milik penulis asli [Tidak ada]. Jika ada keberatan dengan cetak ulang ini, silakan hubungi tim Gate Learn, dan mereka akan segera menanganinya.
  2. Penafian Kewajiban: Pandangan dan pendapat yang diungkapkan dalam artikel ini semata-mata milik penulis dan bukan merupakan saran investasi.
  3. Penerjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

Dampak EIP-3074 pada Dompet dan DApps

MenengahJun 11, 2024
Artikel ini memperkenalkan dampak inovatif EIP-3074 pada EOA. Dengan memungkinkan EOA untuk mentransfer kontrol ke kontrak Invoker, ia memperoleh kemampuan operasi multi-fungsi yang sama dengan kontrak. Ini tidak hanya secara signifikan meningkatkan pengalaman pengguna, tetapi juga membentuk kembali metode otorisasi yang ada untuk membuatnya lebih aman tanpa mengubah pengalaman pengguna.
Dampak EIP-3074 pada Dompet dan DApps

EIP-3074

Pengalaman penggunaan yang lebih baik dan lebih aman

EIP-3074 memungkinkan EOA (Akun Milik Eksternal) untuk mentransfer kontrol ke kontrak tertentu, sehingga memperoleh kemampuan eksekusi kaya yang sama dengan kontrak. Sebelum EIP-3074, EOA hanya dapat melakukan satu operasi per transaksi, seperti menyetujui ERC20 atau bertukar di Uniswap. Setelah EIP-3074, EOA dapat melakukan beberapa operasi sekaligus, atau bahkan menyelesaikan tugas yang sebelumnya tak terbayangkan. Sederhananya, EIP-3074 sangat meningkatkan pengalaman pengguna, dan metode otorisasi token yang sudah dikenal akan dibentuk kembali, meningkatkan keamanan tanpa mengubah pengalaman pengguna.

Selain itu, melalui EIP-3074, EOA tidak lebih lama perlu mengirim transaksi ke rantai dengan sendirinya, menghilangkan kesulitan karena harus menaikkan ETH untuk membayar biaya transaksi.

Kontrak Invoker

Kontrak yang dapat memperoleh kendali EOA disebut kontrak Invoker. Tentu saja, tidak sembarang kontrak dapat mengendalikan EOA: EOA harus menandatangani dengan kunci pribadi, dan isi tanda tangan akan dengan jelas menentukan kontrak Invoker mana itu dan operasi apa yang diizinkan untuk dilakukan oleh Invoker.

Konten tanda tangan EOA akan dengan jelas menentukan kontrak Invoker (alamat invoker) mana dan mengotorisasi operasi kontrak Invoker tersebut (commit)

Proses eksekusi yang sebenarnya mungkin akan terlihat seperti ini:

  1. Alice menandatangani dengan kunci pribadi EEO-nya dan kemudian memberikan konten tanda tangan dan tanda tangan ke Relayer
  2. Relayer membawa rantai ke eksekusi kontrak Invoker
  3. Invoker memverifikasi tanda tangan. Setelah lulus verifikasi, ia dapat melakukan operasi sebagai EOA, seperti menyetujui USDC, kemudian pergi ke Uniswap untuk pertukaran, dan akhirnya mentransfer beberapa USDC ke Relayer sebagai biaya penanganan.

Catatan 1: Relayer tidak diperlukan. Alice juga dapat membawa konten dan segel tanda tangannya sendiri ke rantai.

Setelah Invoker memverifikasi tanda tangan dan mulai menjalankan operasi, itu akan dieksekusi sebagai Alice EOA, yang seperti mendapatkan kontrol (terbatas) dari EOA.

Namun, perlu dicatat bahwa nilai nonce EOA tidak akan meningkat setelah eksekusi, sehingga tanda tangan yang sama dapat digunakan kembali (long karena nonce EOA tetap tidak berubah), sehingga Invoker perlu menerapkan mekanisme nonce sendiri untuk menghindari pemutaran ulang.

Jika kontrak Invoker tidak Replay-proof, otorisasi yang sama dapat dijalankan setiap saat.

Untuk pengenalan mekanisme operasi aktual EIP-3074, silakan merujuk ke: Pengantar EIP3074

Application

Batchcall

Izinkan pengguna untuk menggabungkan eksekusi beberapa transaksi menjadi satu, menghemat proses beberapa tanda tangan resmi dan beberapa biaya Gas.

Catatan: Ini akan mengharuskan dApp untuk juga dukungan fungsi Batchcall, seperti EIP-5792, yang saat ini sedang didorong oleh komunitas. Jika tidak, dApp hanya akan meminta pengguna untuk masuk sekali untuk setiap operasi jika memperlakukan pengguna sebagai EOA normal.

Kunci Sesi

Pengguna juga dapat mengizinkan pihak ketiga untuk bertindak atas nama mereka dalam kondisi tertentu. Kunci delegasi dalam diagram di bawah ini adalah pihak ketiga yang berwenang; kebijakan akses adalah pembatasan eksekusi, seperti membatasinya untuk hanya mengoperasikan Uniswap, mentransfer maksimum 1 ETH per hari, masa berlaku otorisasi, dll. Kondisi ini dirancang dan diperiksa dalam kontrak Invoker. long saat pemeriksaan dilewati, pihak ketiga dapat menjalankan operasi sebagai EOA pengguna.


Telegram Bot dapat diberikan izin khusus untuk melakukan operasi atas nama EOA pengguna

Izin ETH Asli

Karena long kondisi terpenuhi (yaitu, tanda tangan Izin adalah legal), transfer ETH dapat dilakukan sebagai EOA otorisasi, mencapai efek dari Izin ETH asli.

Limit Order

Pengguna mengisi batas pesanan kondisi, dan ketika kondisi terpenuhi, itu dapat dieksekusi sebagai EOA pengguna, termasuk menyetujui token untuk DEX, pergi ke DEX untuk penebusan, dll. Dibandingkan dengan Limit Order yang disediakan oleh DEX itu sendiri, pengguna tidak perlu mengirim transaksi ke DEX untuk persetujuan terlebih dahulu.

Ketika Alice menyelesaikan pesanan, dia akan mengeksekusi persetujuan pada saat yang sama, menghilangkan kebutuhan untuk persetujuan sebelumnya.

Jika kondisi dirancang untuk menjadi lebih umum, itu akan menjadi seperti kontrak Intent: long kondisi yang ditentukan oleh pengguna terpenuhi, siapa pun dapat mengeksekusi intent atas nama EOA mereka.

long kondisi Intent terpenuhi, siapa pun dapat memulai eksekusi atas nama EOA pengguna

Pemulihan Sosial

Ketika pengguna kehilangan kunci pribadi EOA, dia (Alice) dapat menggunakan otorisasi EIP-3074 yang dia tandatangani, bersama dengan tanda tangan orang yang berwenang (Suami dan Agen Perwalian) untuk mentransfer semua aset EOA. Pada kenyataannya, apa yang dipulihkan adalah aset (yang dapat dipindahtangankan), bukan kontrol akun. Setelah kunci privat EOA hilang, EOA tidak dapat lebih lama digunakan.

Ketika pengguna kehilangan kunci privat EOA, orang lain yang berwenang dapat menandatangani dan mengotorisasi transfer aset EOA.

Dampak EIP-3074

Meningkatkan metode otorisasi token, dan berpotensi menggantikan persetujuan/izin?

Saat ini, dApps dirancang dengan asumsi bahwa pengguna adalah EOA: pengguna harus "menyetujui sebelumnya" dan "menyetujui jumlah uang yang cukup" untuk kontrak dApp. Ini berarti pengguna tidak perlu tetap online sepanjang waktu, menunggu dApp dijalankan, atau terus-menerus menyetujui kembali, sangat meningkatkan pengalaman pengguna. Untuk aplikasi yang dipicu kondisi seperti limit order atau DCA, pengguna mungkin tidak online ketika kondisi terpenuhi, sehingga mereka perlu menyetujui terlebih dahulu sejumlah besar uang untuk mengeksekusi kontrak dApp, dan ini mungkin merupakan proses yang berulang.

Pengguna harus menyetujui jumlah yang cukup besar untuk dApp terlebih dahulu sehingga dApp dapat beroperasi dengan uangnya.

Tetapi juga perlu mempercayai dApp atau menghindari menyetujui dApp palsu, dan untuk dapat segera menghapus persetujuan

Mode izin yang muncul kemudian, seperti token-native EIP-2612 atau Permit2 non-native, semuanya untuk meningkatkan pengalaman penggunaan dan keamanan mode persetujuan: pengguna tidak perlu lebih lama menyetujui sejumlah besar uang untuk setiap kontrak dApp (dan setiap token harus disetujui satu kali). Sebagai gantinya, pengguna hanya perlu "menandatangani nama" untuk mengotorisasi kontrak dApp untuk "menarik jumlah yang ditentukan" dalam "waktu yang ditentukan". Ini tidak hanya sangat mengurangi permukaan serangan, tetapi juga sangat meningkatkan pengalaman pengguna.

Pengguna hanya perlu menandatangani off-chain, dan dapat menentukan jumlah dan masa berlaku, memberikan pengalaman dan keamanan pengguna yang lebih baik daripada menyetujui.

Namun pada kenyataannya, tidak hanya menyetujui, mode izin telah sering digunakan sebagai metode serangan penipuan (1,2,3): korban secara keliru menandatangani apa yang mereka pikir sebagai izin untuk dApp tetapi sebenarnya diberikan kepada penyerang.

Ketika pengguna menandatangani izin, mereka hanya dapat melihat siapa yang harus diotorisasi, tetapi mereka tidak tahu operasi apa yang akan dipasangkan dengannya untuk dijalankan.

Catatan: Desain izin saat ini tidak kompatibel dengan dApps operasi berulang, seperti DCA atau aplikasi pembayaran reguler lainnya. Ini karena izin tersebut memiliki mekanisme perlindungan pemutaran ulang, jadi setelah transfer selesai, izin yang sama tidak dapat digunakan lagi, yang berarti bahwa pengguna harus menandatangani izin terlebih dahulu untuk setiap operasi berulang di masa mendatang.

Namun, EIP-3074 membawa peluang untuk perubahan: ketika pengembang dApp tahu bahwa EOA dapat melakukan berbagai operasi kompleks melalui Invoker, desain interaksi dApp tidak lebih lama perlu mengorbankan keamanan dalam pesanan untuk meningkatkan pengalaman pengguna, seperti "pengguna pra-menyetujui sejumlah besar uang" dan "pengguna menandatangani pesan izin untuk mengotorisasi penarikan." Sebaliknya, pengguna mengikat operasi dApp untuk menyetujui dan melakukan eksekusi atom melalui Invoker: baik menyetujui dan operasi dApp berhasil dijalankan bersama-sama, atau mereka gagal bersama-sama. Tidak ada kemungkinan berhasil untuk persetujuan saja, sehingga pengguna dapat yakin bahwa persetujuan ini untuk operasi ini. Dan pengguna menggunakan otorisasi tanda tangan off-chain, jadi pengalaman pengguna sama dengan izin! Ini berarti bahwa dApp tidak lebih lama memerlukan mode izin! Di masa depan, dompet dapat langsung melarang atau melakukan tinjauan yang lebih ketat terhadap permintaan tanda tangan izin, tanpa harus khawatir apakah itu akan menyebabkan pengguna tidak menggunakan beberapa dApps (tetapi pada gilirannya digunakan untuk penipuan).

Pengguna tidak lebih lama hanya mengotorisasi alamat tertentu, tetapi mengotorisasi alamat tertentu dan apa yang harus dilakukan, dan bahkan melihat hasil eksekusi simulasi.

Catatan: Ini tidak berarti bahwa penipuan dapat sepenuhnya diblokir! Pengguna mungkin masih tertipu ke situs web penipuan, dan situs web penipuan masih dapat mengatur operasi persetujuan atau transfer bagi pengguna untuk ditandatangani, tetapi saat ini pengguna setidaknya dapat melihat apa yang akan dilakukan tanda tangan ini, dan dompet bahkan dapat mensimulasikan hasil eksekusi tampilan dan menyajikannya kepada pengguna, sehingga pengguna dapat dengan jelas mengetahui siapa yang akan kehilangan berapa banyak uang dan siapa yang akan mendapatkan berapa banyak uang. Dibandingkan dengan izin yang tidak tahu operasi apa atau bahkan hasil eksekusi, pengguna memiliki lebih banyak informasi untuk memutuskan apakah akan diotorisasi. Meskipun ini bukan obat yang sempurna, itu masih akan menjadi perbaikan substansial untuk situasi saat ini.

Bagaimana Dompet Menangani EOA nonces

Desain EIP-3074 saat ini akan menyertakan nilai nonce EOA dalam konten tanda tangan, sehingga long saat EOA mengirim transaksi ke rantai untuk dieksekusi dan mengubah nilai nonce, semua otorisasi EIP-3074 asli akan dibatalkan.

Jika pengguna mengizinkan orang lain untuk mengoperasikan EOA, seperti Kunci Sesi atau metode Pemulihan Sosial yang disebutkan di atas, nonce EOA harus dicegah agar tidak berubah. Jika tidak, perlu untuk menandatangani semua otorisasi lagi dan memberikannya kepada wali amanat, yang memiliki dampak besar pada pengalaman pengguna dan ketahanan mekanisme.

Jika pengguna berwenang untuk beroperasi sendiri, tidak perlu secara khusus mencegah nonce EOA diubah, karena tanda tangan EIP-3074 masih diharapkan untuk dieksekusi sebelum batas waktu tertentu seperti transaksi. Hanya saja dompet perlu mengelola lebih banyak transaksi EIP-3074 dari EOA: jika ada tanda tangan EIP-3074 yang menunggu untuk diunggah ke rantai, maka transaksi EOA itu sendiri harus menunggu.

Catatan: Kontrak Invoker itu sendiri akan (dan harus) mempertahankan serangkaian mekanisme nonce, jadi setelah tanda tangan digunakan, masih perlu ditandatangani lagi, terlepas dari apakah EOA nonce berubah.

Kunci Sesi dan Pemulihan Sosial kemungkinan besar harus menunggu hingga EIP-3074 mengubah aturan untuk menghapus nonce EOA dari konten tanda tangan sebelum dapat diadopsi dalam skala besar. Oleh karena itu, dompet hanya perlu fokus pada kasus penggunaan "operasi resmi pengguna" dan memperlakukan tanda tangan EIP-3074 sebagai transaksi. Tidak perlu khawatir tentang menghindari transaksi pengiriman EOA atau mengubah nonce EOA.

Namun, perlu dicatat bahwa jika pengguna ingin membawa konten tanda tangannya sendiri EIP-3074 ke rantai, akan ada dua kelemahan:

  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 menambahkan 1 ke nonce EOA sebelum transaksi mulai dijalankan, nonce EOA dalam tanda tangan EIP-3074 pengguna perlu ditambahkan terlebih dahulu 1 agar sesuai dengan EOA nonce +1 yang disebabkan oleh rantai itu sendiri.

Karena rantai akan menambahkan 1 ke nonce EOA terlebih dahulu, verifikasi tanda tangan EIP-3074 akan gagal karena ketidakcocokan nonce EOA.

Jika pengguna menambahkan 1 ke nonce EOA dalam tanda tangan EIP-3074 sebelum membawanya ke rantai itu sendiri, verifikasi dapat dilanjutkan dengan lancar.

Ringkasan dan Sorotan

  • EIP-3074 memungkinkan EOA untuk mendapatkan kemampuan eksekusi kaya yang sama seperti kontrak, membuka banyak skenario aplikasi baru.
  • Ini tidak hanya akan sangat meningkatkan pengalaman pengguna, tetapi juga akan mengubah metode otorisasi token saat ini, membuatnya lebih aman sambil mempertahankan pengalaman pengguna yang sama.
  • Selain itu, EIP-3074 adalah tanda tangan sederhana, dan pengguna tidak perlu membawa tanda tangan ke rantai untuk dieksekusi, jadi tidak perlu khawatir mengumpulkan ETH untuk membayar biaya transaksi.
  • Penggunaan EIP-3074 meliputi Batch Call, Session Key, Native ETH Permit, Limit Order, dan Social Recovery. Banyak dari ini sebelumnya tidak mungkin dicapai oleh EOA, dan beberapa, seperti Limit Order, memerlukan metode pra-otorisasi yang tidak aman untuk digunakan.
  • EIP-3074 juga akan mengubah metode otorisasi token saat ini. Metode approve secara langsung mengotorisasi alamat tertentu untuk memiliki kekuatan untuk menarik token tanpa batas, dan itu mengharuskan EOA pengguna untuk mengirim transaksi untuk mengeksekusi approve, sehingga pengalaman dan keamanan pengguna tidak baik; Metode izin hanya mengharuskan pengguna untuk menandatangani, dan setiap tanda tangan akan menentukan jumlah dan masa berlaku, yang sangat meningkatkan pengalaman dan keamanan pengguna dibandingkan dengan menyetujui.
  • Namun, izin tersebut masih sering digunakan dalam penipuan. Saat menandatangani, pengguna hanya dapat mengetahui siapa yang harus diotorisasi, berapa banyak, dan masa berlakunya, tetapi mereka tidak tahu untuk apa otorisasi ini. "Untuk apa" akan menjadi tanda tangan (atau transaksi) lain. Normal dApps akan membiarkan pengguna menandatangani izin dan "untuk apa", tetapi mereka masih akan menjadi dua tanda tangan yang berbeda, jadi ketika diminta untuk menandatangani izin, baik pengguna maupun dompet tidak dapat mengetahui untuk apa izin ini akan digunakan.
  • Dengan EIP-3074, pengguna (1) tidak perlu menyetujui sejumlah besar uang ke dApp terlebih dahulu, tetapi hanya perlu menyetujui ketika ada operasi, yang memiliki efek yang sama dengan izin; (2) hanya tanda tangan sederhana dan tidak perlu khawatir mengumpulkan ETH untuk membayar biaya transaksi, yang sama dengan izin; (3) Setiap persetujuan terkait dengan operasi tertentu dan ditandatangani bersama, sehingga pengguna dapat dengan jelas mengetahui untuk apa persetujuan ini, yang akan lebih aman daripada izin!
  • Diharapkan EIP-3074 dapat berhasil menggantikan mode persetujuan dan izin saat ini dan memberi pengguna metode otorisasi yang lebih aman.

Penafian:

  1. Artikel ini dicetak ulang dari [imToken Labs]. Semua hak cipta adalah milik penulis asli [Tidak ada]. Jika ada keberatan dengan cetak ulang ini, silakan hubungi tim Gate Learn, dan mereka akan segera menanganinya.
  2. Penafian Kewajiban: Pandangan dan pendapat yang diungkapkan dalam artikel ini semata-mata milik penulis dan bukan merupakan saran investasi.
  3. Penerjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!