Passkey adalah pendekatan keamanan dan pengguna yang ramah untuk otentikasi yang juga dapat digunakan untuk membuat dan menyimpan dompet kripto secara aman, berkat penggunaan kriptografi kurva eliptik.
Dalam posting ini, kami akan membahas bagaimana kunci lewat bekerja, menjelajahi risiko menggunakan kunci lewat untuk dompet kripto, dan menjelajahi bagaimana abstraksi akun memungkinkan kunci lewat digunakan ketika dikombinasikan dengan kontrak pintar.
Passkey adalah cara yang sederhana dan aman bagi pengguna untuk masuk ke aplikasi tanpa perlu menyimpan kata sandi sensitif atau mengingat detail login apa pun. Sebagai gantinya, pengguna membuat dan mengakses akun menggunakan metode yang familiar seperti biometrik seperti Face ID atau Touch ID.
Ini memungkinkan pengguna untuk dengan mudah masuk dan berinteraksi dengan aplikasi secara resmi tanpa pernah menyimpan kredensial sensitif; memberikan pengalaman yang mulus dan keamanan tambahan terhadap pelanggaran data dan serangan umum seperti phishing.
Pada sebagian besar perangkat, seperti iPhone, passkey disimpan di dalam perangkat keras khusus yang disebut Enklave Amanlingkungan yang didedikasikan, terisolasi yang dirancang untuk melindungi data sensitif bahkan jika prosesor utama dikompromikan.
Passkeys menggunakan kriptografi kunci publikuntuk menghasilkan pasangan kunci publik-privat pada perangkat pengguna, terdiri dari dua kunci:
Sepertidompet blockchain, kunci privat dari kunci lulusan dapat digunakan untuk menandatangani pesan dan transaksi yang dapat dikirimkan untuk membuat perubahan keadaan pada blockchain.
Untuk menandatangani transaksi dengan kunci pribadi passkey, transaksi dikirim ke perangkat keras yang aman, di mana transaksi tersebut ditandatangani, dan hasil tanda tangan kemudian dihasilkan. Selama proses ini, baik pemilik maupun pengembang aplikasi tidak pernah memiliki akses ke kunci pribadi; mereka hanya menerima tanda tangan yang dihasilkan.
Ini menyediakan keamanan yang ditingkatkan bagi pengguna, karena kunci pribadi biasanya tidak dimuat ke dalam memori aplikasi, mengurangi risiko paparan terhadap serangan potensial. Misalnya, pada iPhone, pengguna bahkan tidak dapat mengakses nilai passkey dalam pengaturan mereka, karena kunci tersebut dihasilkan dan disimpan di perangkat keras khusus yang tidak dapat diakses oleh antarmuka.
Passkeys dan dompet kripto menggunakan teknologi dasar yang sama dari kriptografi kurva eliptik untuk menghasilkan pasangan kunci publik-privat. Pengembang aplikasi blockchain dapat menggunakan passkeys untuk membuat dompet dalam aplikasi yang aman bagi pengguna dengan UX yang kuat.
Namun, ada satu perbedaan penting yang memperkenalkan kompleksitas saat menggunakan kunci sandi untuk akun blockchain; kunci sandi menggunakan kurva eliptis yang berbeda dari akun blockchain.
Sementara Apple, Android, dan WebAuthn semuanya menggunakan kurva secp256r1 (alias P-256) untuk kunci lulus, akun blockchain menggunakan kurva eliptik secp256k1.
Ini berarti transaksi yang ditandatangani oleh kunci pribadi dari kunci lulus tidak dipahami (dan oleh karena itu ditolak) oleh blockchain seperti Ethereum atau Abstract. Harapan default dari blockchain adalah bahwa transaksi ditandatangani oleh pasangan kunci yang dihasilkan pada kurva secp256k1.
Karena dompet reguler (EOA) dihasilkan pada kurva k1, maka diperlukan dompet kontrak pintar, karena mereka dapat menyertakan logika kustom yang memverifikasi transaksi yang ditandatangani oleh kunci privat yang dihasilkan oleh kunci akses sebelum mengotorisasi eksekusi transaksi.
Bitcoin adalah yang pertama mengadopsi kurva secp256k1 untuk operasi kriptografi, yang menetapkan standar bagi Ethereum dan rantai EVM lainnya untuk menggunakan variasi k1 dari kurva untuk akun.
Variasi k1 dari kurva juga kurang memiliki fitur tertentu seperti koefisien tambahan yang membuat secp256r1 sedikit lebih kompleks, artinya secp256k1 lebih efisien secara komputasi untuk pembangkitan kunci, pembuatan tanda tangan, dan verifikasi.
Meskipun tidak ditemukan kerentanan langsung, ada juga teori konspirasi yang ada bahwa Bitcoin memilih menggunakan kurva k1 daripada kurva r1 yang lebih banyak diadopsi untuk menghindari potensi pintu belakang yang mungkin telah diperkenalkan secara diam-diam oleh lembaga pemerintah seperti NSA, mengingat keterlibatan mereka dalam pengembangan standar kriptografi yang disetujui oleh NIST.
Dompet kontrak pintar (seperti yang didukung oleh abstraksi akun asli Abstract) dapat mengandung logika sembarang untuk dieksekusi oleh EVM; termasuk verifikasi tanda tangan untuk pesan yang diterimanya yang ditandatangani dengan kunci pribadi yang dibuat pada kurva r1.
Perpustakaan sumber terbuka seperti Verifikator P256 open-source Daimotelah dibangun untuk memverifikasi tanda tangan pada kurva secp256r1 di dalam kontrak pintar yang ditulis dalam Solidity.
Di Ethereum, ini berarti Anda dapat menggunakan kontrak pintar yang dibangun dengan standar abstraksi akun ERC-4337untuk memverifikasi tanda tangan r1 dari Operasi Pengguna di dalamvalidateUserOp
fungsi dari dompet kontrak pintar.
Pada Abstract, abstraksi akun aslimemungkinkan dompet kontrak pintar untuk mengirimkan transaksi dengan bidang tanda tangan diatur sebagai pesan yang ditandatangani oleh kunci pribadi dari kunci lulus. Jika akun yang mengirimkan transaksi adalah kontrak pintar yang mencakup logika untuk memverifikasi tanda tangan r1 (padamemvalidasiTransaksi
fungsi), transaksi diterima.
Dompet kontrak pintar menggunakan kode (dalam bentuk kontrak pintar) untuk mengelola dan mengontrol fungsionalitas mereka, yang berarti mereka dapat memiliki fitur khusus apa pun; termasuk modul pemulihan, beberapa penandatangan disetujui, batas pengeluaran, kunci sesi, dan lainnya.
Dompet kontrak pintar menawarkan fleksibilitas lebih dari pada dompet EOA (Externally Owned Accounts) tradisional dan karena mereka dapat menyertakan kode EVM sembarang, memiliki kekuatan untuk memverifikasi tanda tangan (yaitu mengotorisasi transaksi) dari pasangan kunci yang dibuat pada kurva eliptik r1.
Karena memverifikasi tanda tangan pada kurva r1 tidak asli untuk blockchain seperti Ethereum atau Abstract, maka secara komputasional mahal untuk melakukan verifikasi ini; menyebabkan biaya gas yang drastis meningkat untuk memverifikasi tanda tangan r1 dibandingkan dengan tanda tangan k1 (sekitar 100 kali lebih mahal).
RIP-7212 (Rollup Improvement Proposal) mengusulkan penambahan kontrak pintar yang sudah dikompilasi sebelumnya ke Ethereum L2s untuk verifikasi tanda tangan yang lebih efisien dalam penggunaan gas pada kurva r1. Meskipun hal ini belum termasuk dalam Ethereum, solusi skalabilitas yang kompatibel dengan EVM seperti Abstract telah mengimplementasikan ini dan memberikan pengurangan penggunaan gas sebesar 100 kali lipat untuk verifikasi tanda tangan r1.
Kekurangan dari dompet kunci adalah kenyataan bahwa mereka terikat pada satu domain. Misalnya, jika Anda membuat dompet di some-domain.com, passkey Anda (dan oleh karena itu dompet Anda) hanya dapat terhubung ke domain tertentu tersebut.
Ini adalah pilihan desain yang disengaja untuk menghindari serangan phishing, namun, ini merupakan kelemahan besar bagi pengguna yang menghargai pengelolaan sendiri, karena dompet Anda terikat langsung ke satu aplikasi; artinya:
Untuk alasan-alasan ini, dompet kunci lewat sangat cocok untuk jumlah uang kecil atau untuk memperkenalkan pengguna pemula pada pengalaman kripto pertama mereka sampai mereka menjadi lebih berpengetahuan tentang dompet self-custody.
Ini tergantung pada bagaimana Anda memilih untuk mencadangkan kunci lulus Anda. Ada beberapa opsi untuk mencadangkan kunci lulus Anda ke Cloud (seperti Apple Keychain) untuk dapat diakses di perangkat lain bahkan jika Anda kehilangan yang asli.
Kunci pribadi tidak dapat dibaca di perangkat pada titik manapun karena berada di Secure Enclave. Namun, jika mereka memiliki akses ke data biometrik Anda, mereka dapat melakukan operasi seolah-olah mereka memiliki kendali atas kunci sandi/dompet Anda.
Tidak. Biometrik Anda tidak dikirim ke mana pun; mereka tetap di perangkat Anda. Data biometrik Anda hanya digunakan untuk "membuka kunci" passkey.
Passkey adalah pendekatan keamanan dan pengguna yang ramah untuk otentikasi yang juga dapat digunakan untuk membuat dan menyimpan dompet kripto secara aman, berkat penggunaan kriptografi kurva eliptik.
Dalam posting ini, kami akan membahas bagaimana kunci lewat bekerja, menjelajahi risiko menggunakan kunci lewat untuk dompet kripto, dan menjelajahi bagaimana abstraksi akun memungkinkan kunci lewat digunakan ketika dikombinasikan dengan kontrak pintar.
Passkey adalah cara yang sederhana dan aman bagi pengguna untuk masuk ke aplikasi tanpa perlu menyimpan kata sandi sensitif atau mengingat detail login apa pun. Sebagai gantinya, pengguna membuat dan mengakses akun menggunakan metode yang familiar seperti biometrik seperti Face ID atau Touch ID.
Ini memungkinkan pengguna untuk dengan mudah masuk dan berinteraksi dengan aplikasi secara resmi tanpa pernah menyimpan kredensial sensitif; memberikan pengalaman yang mulus dan keamanan tambahan terhadap pelanggaran data dan serangan umum seperti phishing.
Pada sebagian besar perangkat, seperti iPhone, passkey disimpan di dalam perangkat keras khusus yang disebut Enklave Amanlingkungan yang didedikasikan, terisolasi yang dirancang untuk melindungi data sensitif bahkan jika prosesor utama dikompromikan.
Passkeys menggunakan kriptografi kunci publikuntuk menghasilkan pasangan kunci publik-privat pada perangkat pengguna, terdiri dari dua kunci:
Sepertidompet blockchain, kunci privat dari kunci lulusan dapat digunakan untuk menandatangani pesan dan transaksi yang dapat dikirimkan untuk membuat perubahan keadaan pada blockchain.
Untuk menandatangani transaksi dengan kunci pribadi passkey, transaksi dikirim ke perangkat keras yang aman, di mana transaksi tersebut ditandatangani, dan hasil tanda tangan kemudian dihasilkan. Selama proses ini, baik pemilik maupun pengembang aplikasi tidak pernah memiliki akses ke kunci pribadi; mereka hanya menerima tanda tangan yang dihasilkan.
Ini menyediakan keamanan yang ditingkatkan bagi pengguna, karena kunci pribadi biasanya tidak dimuat ke dalam memori aplikasi, mengurangi risiko paparan terhadap serangan potensial. Misalnya, pada iPhone, pengguna bahkan tidak dapat mengakses nilai passkey dalam pengaturan mereka, karena kunci tersebut dihasilkan dan disimpan di perangkat keras khusus yang tidak dapat diakses oleh antarmuka.
Passkeys dan dompet kripto menggunakan teknologi dasar yang sama dari kriptografi kurva eliptik untuk menghasilkan pasangan kunci publik-privat. Pengembang aplikasi blockchain dapat menggunakan passkeys untuk membuat dompet dalam aplikasi yang aman bagi pengguna dengan UX yang kuat.
Namun, ada satu perbedaan penting yang memperkenalkan kompleksitas saat menggunakan kunci sandi untuk akun blockchain; kunci sandi menggunakan kurva eliptis yang berbeda dari akun blockchain.
Sementara Apple, Android, dan WebAuthn semuanya menggunakan kurva secp256r1 (alias P-256) untuk kunci lulus, akun blockchain menggunakan kurva eliptik secp256k1.
Ini berarti transaksi yang ditandatangani oleh kunci pribadi dari kunci lulus tidak dipahami (dan oleh karena itu ditolak) oleh blockchain seperti Ethereum atau Abstract. Harapan default dari blockchain adalah bahwa transaksi ditandatangani oleh pasangan kunci yang dihasilkan pada kurva secp256k1.
Karena dompet reguler (EOA) dihasilkan pada kurva k1, maka diperlukan dompet kontrak pintar, karena mereka dapat menyertakan logika kustom yang memverifikasi transaksi yang ditandatangani oleh kunci privat yang dihasilkan oleh kunci akses sebelum mengotorisasi eksekusi transaksi.
Bitcoin adalah yang pertama mengadopsi kurva secp256k1 untuk operasi kriptografi, yang menetapkan standar bagi Ethereum dan rantai EVM lainnya untuk menggunakan variasi k1 dari kurva untuk akun.
Variasi k1 dari kurva juga kurang memiliki fitur tertentu seperti koefisien tambahan yang membuat secp256r1 sedikit lebih kompleks, artinya secp256k1 lebih efisien secara komputasi untuk pembangkitan kunci, pembuatan tanda tangan, dan verifikasi.
Meskipun tidak ditemukan kerentanan langsung, ada juga teori konspirasi yang ada bahwa Bitcoin memilih menggunakan kurva k1 daripada kurva r1 yang lebih banyak diadopsi untuk menghindari potensi pintu belakang yang mungkin telah diperkenalkan secara diam-diam oleh lembaga pemerintah seperti NSA, mengingat keterlibatan mereka dalam pengembangan standar kriptografi yang disetujui oleh NIST.
Dompet kontrak pintar (seperti yang didukung oleh abstraksi akun asli Abstract) dapat mengandung logika sembarang untuk dieksekusi oleh EVM; termasuk verifikasi tanda tangan untuk pesan yang diterimanya yang ditandatangani dengan kunci pribadi yang dibuat pada kurva r1.
Perpustakaan sumber terbuka seperti Verifikator P256 open-source Daimotelah dibangun untuk memverifikasi tanda tangan pada kurva secp256r1 di dalam kontrak pintar yang ditulis dalam Solidity.
Di Ethereum, ini berarti Anda dapat menggunakan kontrak pintar yang dibangun dengan standar abstraksi akun ERC-4337untuk memverifikasi tanda tangan r1 dari Operasi Pengguna di dalamvalidateUserOp
fungsi dari dompet kontrak pintar.
Pada Abstract, abstraksi akun aslimemungkinkan dompet kontrak pintar untuk mengirimkan transaksi dengan bidang tanda tangan diatur sebagai pesan yang ditandatangani oleh kunci pribadi dari kunci lulus. Jika akun yang mengirimkan transaksi adalah kontrak pintar yang mencakup logika untuk memverifikasi tanda tangan r1 (padamemvalidasiTransaksi
fungsi), transaksi diterima.
Dompet kontrak pintar menggunakan kode (dalam bentuk kontrak pintar) untuk mengelola dan mengontrol fungsionalitas mereka, yang berarti mereka dapat memiliki fitur khusus apa pun; termasuk modul pemulihan, beberapa penandatangan disetujui, batas pengeluaran, kunci sesi, dan lainnya.
Dompet kontrak pintar menawarkan fleksibilitas lebih dari pada dompet EOA (Externally Owned Accounts) tradisional dan karena mereka dapat menyertakan kode EVM sembarang, memiliki kekuatan untuk memverifikasi tanda tangan (yaitu mengotorisasi transaksi) dari pasangan kunci yang dibuat pada kurva eliptik r1.
Karena memverifikasi tanda tangan pada kurva r1 tidak asli untuk blockchain seperti Ethereum atau Abstract, maka secara komputasional mahal untuk melakukan verifikasi ini; menyebabkan biaya gas yang drastis meningkat untuk memverifikasi tanda tangan r1 dibandingkan dengan tanda tangan k1 (sekitar 100 kali lebih mahal).
RIP-7212 (Rollup Improvement Proposal) mengusulkan penambahan kontrak pintar yang sudah dikompilasi sebelumnya ke Ethereum L2s untuk verifikasi tanda tangan yang lebih efisien dalam penggunaan gas pada kurva r1. Meskipun hal ini belum termasuk dalam Ethereum, solusi skalabilitas yang kompatibel dengan EVM seperti Abstract telah mengimplementasikan ini dan memberikan pengurangan penggunaan gas sebesar 100 kali lipat untuk verifikasi tanda tangan r1.
Kekurangan dari dompet kunci adalah kenyataan bahwa mereka terikat pada satu domain. Misalnya, jika Anda membuat dompet di some-domain.com, passkey Anda (dan oleh karena itu dompet Anda) hanya dapat terhubung ke domain tertentu tersebut.
Ini adalah pilihan desain yang disengaja untuk menghindari serangan phishing, namun, ini merupakan kelemahan besar bagi pengguna yang menghargai pengelolaan sendiri, karena dompet Anda terikat langsung ke satu aplikasi; artinya:
Untuk alasan-alasan ini, dompet kunci lewat sangat cocok untuk jumlah uang kecil atau untuk memperkenalkan pengguna pemula pada pengalaman kripto pertama mereka sampai mereka menjadi lebih berpengetahuan tentang dompet self-custody.
Ini tergantung pada bagaimana Anda memilih untuk mencadangkan kunci lulus Anda. Ada beberapa opsi untuk mencadangkan kunci lulus Anda ke Cloud (seperti Apple Keychain) untuk dapat diakses di perangkat lain bahkan jika Anda kehilangan yang asli.
Kunci pribadi tidak dapat dibaca di perangkat pada titik manapun karena berada di Secure Enclave. Namun, jika mereka memiliki akses ke data biometrik Anda, mereka dapat melakukan operasi seolah-olah mereka memiliki kendali atas kunci sandi/dompet Anda.
Tidak. Biometrik Anda tidak dikirim ke mana pun; mereka tetap di perangkat Anda. Data biometrik Anda hanya digunakan untuk "membuka kunci" passkey.