Semua orang membicarakan Abstraksi Akun (AA) dan potensinya untuk merevolusi pengalaman pengguna dalam ruang blockchain. Namun, salah satu kesalahpahaman utama tentang AA adalah bahwa ia melampaui sekadar mengabstraksi biaya gas atau memungkinkan transaksi batch. Bagaimana caranya? Melalui sistem manajemen kunci yang dapat diprogram.
Sistem-sistem ini dapat memberikan keamanan tingkat perangkat keras untuk perangkat sehari-hari dan mengintegrasikan metode otentikasi Web2 ke dalam lingkungan Web3, memungkinkan kita untuk melampaui frase benih 12 kata tradisional. Hari ini, saya akan menjelaskan berbagai sistem pengelolaan kunci yang dapat digunakan oleh pengembang dan kasus penggunaan khusus di mana mereka paling berguna.
Tanpa Abstraksi Akun (AA), sebagian besar solusi yang ada bergantung pada Perhitungan Multi-Pihak (MPC) untuk mendistribusikan kunci ke beberapa bagian dan membuat ambang batas untuk melakukan transaksi. Solusi-solusi ini sering mengklaim sebagai self-custodial, namun hal ini tidak sepenuhnya akurat. Sebagai contoh, Binance menyimpan satu bagian dari kunci, bertindak sebagai penjaga keamanan jika pengguna kehilangan perangkat mereka. Konfigurasi ini berarti bahwa, meskipun klaim tersebut, pengguna tidak sepenuhnya mengontrol kunci mereka, dan masih ada ketergantungan pada entitas terpusat untuk pemulihan kunci.

Selain itu, jika ada bagian kunci yang bocor, tidak ada cara untuk mencabut kunci dari akun utama. Pencabutan tidak mungkin karena Akun Milik Eksternal (EOA) tidak mendukung rotasi kunci, yang berarti kunci yang bocor akan selalu menjadi bagian dari akun. Ini merupakan risiko keamanan yang signifikan, karena kunci yang kompromi tidak dapat digantikan atau dihapus, meninggalkan akun rentan secara tidak terbatas.
Jika Anda ingin belajar lebih lanjut tentang bagaimana AA membuka jalan untuk akun yang dapat diprogram dan rotasi kunci, Anda dapatperiksa artikel saya.
Dengan AA, dana disimpan dalam kontrak pintar, dan kepemilikan akun ditentukan oleh kontrak pintar ini. Akun yang kompatibel dengan EIP-4337 memiliki dua bagian dalam transaksinya.
Jadi, ketika kita berbicara tentang akun tradisional (EOA) otentikasi sama dengan otorisasi. Dengan AA, otorisasi dapat diprogram, sehingga pengembang dapat mendefinisikan skema kontrol akses berbasis peran dan menegakkan prinsip hak istimewa paling sedikit.
Ada banyak metode otentikasi (yaitu, sistem manajemen kunci) di dunia kripto yang dapat mengaktifkan skema kontrol akses berbasis peran, dan menggunakan hanya satu kunci tidak dapat menyelesaikan semua masalah yang terkait dengan manajemen kunci. Aspek paling penting dari sistem manajemen kunci adalah: di mana kunci disimpan dan siapa yang mengotentikasi kunci tersebut.
Menggunakan secp256k1 memiliki beberapa keuntungan: tidak ada biaya gas tambahan, murah, dan mudah diverifikasi di onchain melalui ecrecover precompile. Ini juga self-custodial karena hanya pengguna yang dapat mengakses kunci.
Namun, ada beberapa keterbatasan:

Para pengembang menciptakan chip mikro khusus yang disebut Secure Enclave untuk mengelola operasi sensitif ini secara terpisah. Secure Enclave berfungsi secara mirip dengan dompet perangkat keras; ia beroperasi secara independen, mengelola data sensitif secara aman, dan bahkan pemilik perangkat tidak dapat mengakses isinya. Untungnya, Secure Enclave mendukung operasi kriptografi, seperti membuat kunci pribadi dan menandatangani pesan dengan kunci tersebut. Sayangnya, Secure Enclave tidak mendukung kurva yang didukung Ethereum (secp256k1), melainkan mendukung kurva p256. Untuk mengaktifkan verifikasi P256 asli, kami (@getclave"">Tim @getclave) mengusulkanRIP-7212dan hampir semua rollup besar sekarang mendukungnya.
Dan bagian terbaik tentang Secure Enclaves adalah kita dapat membuat kunci privat di dalam Secure Enclaves hanya dengan otentikasi biometrik yang memungkinkan pengalaman onboarding dengan sekali klik dengan keamanan terbaik yang tersedia pada perangkat modern - tingkat perangkat keras. Tetapi ini juga memiliki beberapa kekurangan:

Mari kita periksa di mana mereka menyimpan kunci-kunci dan bagaimana mereka mencapai kuorum untuk mengakses kunci pribadi. Sebagian besar protokol yang ada menggunakan tiga bagian kunci: satu bagian disimpan di perangkat pengguna, satu disimpan di server mereka (atau dalam Jaringan MPC), dan satu disimpan sebagai cadangan. Beberapa aplikasi, seperti Google Drive, memanfaatkan solusi penyimpanan awan untuk menyimpan bagian-bagian kunci ini.
Jadi, pengguna mendellegasikan kontrol dompet mereka kepada pihak lain dengan kuorum. MPC (Multi-Party Computation) sangat kuat untuk mendellegasikan tanggung jawab pengelolaan kunci kepada pihak-pihak yang berbeda, tetapi juga memiliki beberapa kekurangan:
Sebagian besar solusi MPC membutuhkan pihak yang terpusat, dan terkadang, apa yang mereka sebut sebagai desentralisasi sebenarnya bukan desentralisasi yang sebenarnya. MPC dengan AA sangat kuat karena rotasi kunci memungkinkan, tetapi banyak solusi MPC termasuk beberapa fungsi untuk pengaturan gerbang. Juga dalam banyak kasus, kunci sebelumnya mungkin masih digunakan bahkan setelah rotasi sehingga seseorang perlu mempercayai bahwa kunci benar-benar dibuang Beberapa solusi MPC dapat menyensor pengguna, sehingga hanya mengandalkan MPC tidak selalu layak.
Salah satu kekurangan utama dari SSS adalah bahwa itu merekonstruksi kunci privat, biasanya di peramban. Ini adalah risiko keamanan besar bagi kunci teks biasa untuk tersedia di sisi klien. TSS tidak pernah merekonstruksi kunci dan menggunakan MPC untuk mengfederasikan penandatanganan di seluruh bagian kunci.

Dengan memanfaatkan TEEs, kami dapat membangun lapisan pengelolaan kunci di mana pengembang dapat menggunakan metode otentikasi yang berbeda, dan TEE dapat memverifikasinya. Setelah verifikasi, TEE menandatangani pesan dengan kunci pribadi yang terkait dengan pengguna dan memverifikasinya on-chain.
Kunci privat utama yang mengendalikan dana pengguna disimpan di dalam TEE dan tidak dapat diekstrak. Hal ini mengancam desentralisasi karena jika layanan memutuskan untuk menutup atau menyensor pengguna, tidak ada yang bisa dilakukan oleh pembangun dApp.
TEE berbasis cloud terlihat menjanjikan dalam teori, tetapi di masa lalu, kami telah melihat kerentanan sepertisgx.faildi cloud TEEs. Namun, keunggulan dari TEEs adalah meskipun ada backdoor atau kerentanan, penyerang memerlukan akses fisik ke TEE, itulah mengapa perangkat keras konsumen (Secure Enclave - Passkeys) sangat kuat karena perangkat keras konsumen menyimpan kunci di dalam Secure Enclave pengguna dan hanya pemilik yang dapat mengakses kunci, sedangkan TEE Cloud menyimpan kunci di dalam cloud dan ini membuatnya rentan terhadap serangan.
Bukan lingkungan aman Anda, bukan koin Anda.
Seperti yang telah saya sebutkan, TEE memiliki beberapa kelebihan, seperti menggunakan hampir semua metode otentikasi tanpa adanya pembatas kriptografi. Namun, mereka juga memiliki beberapa kelemahan:
Jika penyedia layanan menutup server, dana pengguna akan dibekukan dan tidak ada yang dapat mengaksesnya. Kunci disimpan di dalam Cloud TEE, yang berarti mereka dapat menyensor pengguna. Bergantung hanya pada TEE untuk manajemen kunci menciptakan titik kegagalan tunggal.

Di dunia web2, kunci sesi seperti sandi sementara yang digunakan selama percakapan antara dua perangkat (seperti komputer Anda dan server). Mereka dibuat di awal percakapan, digunakan untuk menjaga informasi yang dibagikan aman, dan kemudian dibuang setelah percakapan berakhir. Jadi, bahkan jika seorang peretas dengan cara tertentu mengetahui sandi ini, mereka tidak dapat menggunakannya untuk mendengarkan percakapan di masa depan karena sandi baru yang berbeda (atau kunci sesi) dibuat setiap kali.
Seperti di dunia Web3, kami mendefinisikan kunci sesi sebagai kerangka kerja yang berpotensi mengubah cara pengguna berinteraksi dengan dApps. Tujuan dari kunci sesi adalah memungkinkan pengguna untuk mengatur persetujuan awal untuk waktu tertentu dalam berbagai skenario dan melakukan transaksi tanpa tanda tangan. Namun bagaimana cara kerjanya?
Pengguna membuat izin terbatas seperti kunci sesi yang dapat menghabiskan aset hanya sebagaimana yang ditentukan oleh pengguna, untuk jangka waktu yang terbatas, dan dapat ditarik kembali kapan saja. Setelah itu, layanan backend memungkinkan pengguna melakukan transaksi dengan menandatanganinya atas nama mereka. Pengaturan ini menciptakan jendela kepercayaan sementara antara dApp dan pengguna. Ini jauh lebih baik daripada persetujuan tak terbatas karena persetujuan yang diberikan pengguna hanya untuk aset tertentu dan untuk jangka waktu yang ditentukan. Bahkan jika dApp diretas, pengguna tidak perlu khawatir tentang kunci sesi yang dibuat beberapa bulan yang lalu 🙂.

Metode otentikasi berbasis Secure Enclave (passkeys) menyediakan keamanan tingkat perangkat keras; namun, kemampuan pemulihan mereka sering kali tidak mencukupi bagi sebagian besar pengguna. Untungnya, AA memungkinkan pengembang untuk menggabungkan berbagai metode penandatanganan dan menggunakannya dalam satu akun. Dengan menambahkan penandatangan pemulihan ke akun pintar, kita dapat memecahkan masalah pemulihan yang dimiliki oleh passkeys.
Ada beberapa opsi pemulihan seperti pemulihan sosial, pemulihan universal (Pemulihan Berbasis ZK-Email), dan pemulihan berbasis MPC. Namun, menurut pendapat saya, untuk aplikasi fintech yang dirancang untuk sepenuhnya mandiri, pemulihan sosial dapat menyelesaikan sebagian besar masalah. Di Clave, kami membangun modul pemulihan sosial dan sedang mengerjakan Pemulihan Universal.
Pendekatan ini memaksimalkan keamanan, yang bagus untuk aplikasi keuangan. Tetapi memiliki kelemahan penting: aplikasi memerlukan otentikasi biometrik untuk setiap transaksi yang ingin pengguna lakukan. Bayangkan jika Anda ingin membagikan konten di aplikasi media sosial dan aplikasi tersebut muncul layar tanda tangan biometrik... mengerikan, bukan?

Aplikasi non-keuangan seperti aplikasi sosial-Fi dan permainan terdesentralisasi memerlukan cara yang lebih mudah untuk melakukan transaksi, idealnya tanpa memerlukan pengguna untuk menandatangani setiap transaksi. Bagaimana caranya? Inilah jawabannya:
Hari ini, sebagian besar pengguna bahkan tidak memeriksa apa yang mereka tandatangani saat bermain game atau berinteraksi dengan dApp. Ini berbahaya karena front-end jahat dapat menyebabkan pengguna kehilangan semua aset mereka.
Kunci sesi adalah alternatif yang lebih baik untuk ini. Pengguna dapat memeriksa berapa lama sesi akan aktif dan aset apa yang dapat diakses oleh sesi tersebut, mengurangi kebutuhan untuk mempercayai dApp. Setelah waktu sesi berakhir, pengguna tidak perlu khawatir tentang persetujuan = Tidak perlu lagirevoke.cashseperti aplikasi :)
Sudah ada beberapa aplikasi yang menggunakan arsitektur pengelolaan kunci ini.
Kita memerlukan standar (bukan gatekeepers) atau setidaknya cara yang lebih baik untuk mendanai dompet baru. Jika tidak, tidak akan pernah ada adopsi dompet pintar secara luas, dan pemain yang sudah ada akan tetap menjadi pembuat keputusan, mendikte praktik industri bahkan jika mereka tidak benar.
Selain itu, "rage quit" harus menjadi fitur default, karena aktor sentral di hampir semua sistem manajemen kunci dapat dimatikan. Seharusnya lebih mudah bagi pengguna untuk mengubah penandatangan atau mengganti kontrak pintar, dan hosting mandiri harus menjadi opsi default bagi pengguna. Ada dua standar akun pintar modular: ERC-6900 dan ERC-7579. Mereka berdua berusaha mencapai tujuan yang sama - untuk membuat akun pintar lebih pintar.

Terima kasih khusus kepadaDerek ,Konrad, danNoamuntuk umpan balik dan komentar!





