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.
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.
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.
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.
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.
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 dalamvalidateUserOpfungsi 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 (padamemvalidasiTransaksifungsi), transaksi diterima.

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.
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.
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:





