Penulis: Omer Shlomovits, ZenGo.
Skema Tanda Tangan Threshold (TSS) adalah suatu primitif kriptografi yang memungkinkan pembuatan kunci dan tanda tangan secara terdistribusi. Memperkenalkan TSS ke dalam klien blockchain adalah paradigma baru yang menawarkan banyak keuntungan, terutama dalam hal keamanan. Secara umum, TSS dapat mendefinisikan ulang sistem manajemen kunci (seperti dompet cryptocurrency) dan memberikan dukungan asli untuk kasus DeFi. Namun, TSS sebagai teknologi yang sedang muncul juga memiliki risiko dan keterbatasan tertentu.
Artikel ini akan menjelaskan secara rinci konsep dasar TSS, potensi keuntungan yang dibawa ke bidang blockchain, metode implementasinya dalam klien blockchain, serta perbedaannya dengan Pembagian Rahasia Shamir dan tanda tangan ganda. Selain itu, kami akan memahami berbagai cara untuk menggunakan TSS untuk manajemen kunci terdistribusi dan membahas risiko serta keterbatasan terkait.
Kekuatan Kriptografi
Untuk memahami konsep TSS, kita perlu terlebih dahulu memahami beberapa dasar kriptografi. Sejak tahun 1970-an, semakin banyak sistem internet (seperti TLS dan PGP) mulai mengadopsi teknologi enkripsi asimetris, yang juga dikenal sebagai kriptografi kunci publik (PKC). PKC didasarkan pada dua kunci: kunci publik dan kunci pribadi. Kunci publik bersifat terbuka, siapa pun dapat menerbitkan dan menggunakannya, sementara kunci pribadi adalah rahasia inti yang melindungi keamanan sistem.
Enkripsi dan tanda tangan digital adalah dua aplikasi utama dari PKC. Kedua teknologi ini bergantung pada tiga algoritma: pertama, menghasilkan pasangan kunci pribadi dan publik, kedua, menghasilkan ciphertext/tanda tangan, dan akhirnya, proses dekripsi/verifikasi. Sebagai contoh tanda tangan digital, algoritma tanda tangan menggunakan kunci pribadi yang hanya diketahui oleh pemiliknya untuk menghasilkan tanda tangan unik yang dilampirkan pada pesan. Setelah itu, siapa pun yang memiliki kunci publik dapat memverifikasi keaslian dan ketepatan tanda tangan tersebut.
Blockchain
Tidak diragukan lagi, blockchain adalah teknologi yang sangat berpotensi dan kuat, yang menyediakan lapisan konsensus untuk mengorganisir dan mencatat peristiwa. Infrastruktur ini memberi pengguna kemungkinan untuk membangun ekonomi terdesentralisasi, bahkan pemerintahan terdesentralisasi. Yang mengejutkan, kriptografi dasar yang diperlukan untuk menjalankan blockchain yang mendasar hanya bergantung pada tanda tangan digital. Dalam blockchain, kunci pribadi mewakili identitas, sementara tanda tangan adalah pernyataan atau klaim publik yang dibuat oleh identitas tersebut. Blockchain mengurutkan pernyataan-pernyataan ini dan memverifikasi mereka berdasarkan seperangkat aturan, sehingga memastikan ketidakpalsuan dan ketepatan tanda tangan.
Dibandingkan dengan teknologi kriptografi tradisional yang digunakan dalam blockchain, kriptografi modern memperkenalkan banyak inovasi menarik, seperti bukti nol pengetahuan, enkripsi homomorfik, dan komputasi multi-pihak. Dalam dekade terakhir, penelitian blockchain telah sangat mendorong perkembangan kriptografi terapan, mencapai terobosan signifikan di bidang tersebut dan lebih banyak lagi.
Artikel ini akan fokus pada salah satu terobosan tersebut, yaitu skema tanda tangan threshold (TSS) yang aman dan efisien.
MPC dan Skema Tanda Tangan Threshold (TSS)
Komputasi multi-pihak (MPC) adalah cabang kriptografi yang berasal sekitar 40 tahun yang lalu dari penelitian pionir Andrew C. Yao. Inti dari MPC adalah memungkinkan sekelompok pihak yang saling tidak percaya untuk bersama-sama menghitung hasil dari suatu fungsi tanpa mengungkapkan informasi input masing-masing.
Sebagai contoh, misalkan n karyawan dari suatu perusahaan ingin mengetahui siapa yang memiliki gaji tertinggi, tetapi tidak ingin mengungkapkan gaji mereka yang sebenarnya. Dalam skenario ini, input dari setiap karyawan adalah gaji mereka sendiri, dan output akhirnya adalah nama karyawan dengan gaji tertinggi. Melalui MPC, perhitungan ini dapat dilakukan tanpa mengungkapkan informasi gaji karyawan mana pun.
Dua fitur inti dari MPC adalah ketepatan dan privasi:
Ketepatan: Output algoritma adalah hasil yang benar sesuai yang diharapkan.
Privasi: Data input dari setiap pihak yang terlibat tidak akan diungkapkan kepada pihak lain.
Kami akan memanfaatkan teknologi MPC untuk menghitung tanda tangan digital secara terdistribusi dan mengeksplorasi bagaimana fitur-fitur tersebut dapat diterapkan dalam proses penandatanganan. Seperti yang telah disebutkan sebelumnya, proses penandatanganan biasanya dibagi menjadi tiga langkah:
Pembuatan Kunci: Langkah pertama adalah langkah yang paling kompleks dalam seluruh proses. Langkah ini memerlukan pembuatan kunci publik yang digunakan untuk memverifikasi tanda tangan yang akan datang. Selain itu, perlu juga untuk menghasilkan 'potongan rahasia' yang independen untuk setiap pihak yang terlibat. Dalam hal ketepatan dan privasi, fungsi ini akan mengeluarkan kunci publik yang sama untuk semua pihak yang terlibat, sambil menghasilkan potongan rahasia yang berbeda untuk setiap pihak, sehingga memastikan: (1) Privasi: Data potongan rahasia tidak akan bocor di antara pihak-pihak, dan (2) Ketepatan: Kunci publik adalah hasil perhitungan fungsi dari semua potongan rahasia.
Tanda Tangan: Langkah ini melibatkan fungsi pembuatan tanda tangan. Input dari masing-masing pihak adalah potongan rahasia mereka yang berasal dari output langkah sebelumnya (pembuatan kunci terdistribusi). Selain itu, ada juga input publik yang dikenal, yaitu pesan yang perlu ditandatangani. Output adalah tanda tangan digital, sedangkan privasi memastikan bahwa selama proses perhitungan, potongan rahasia tidak bocor.
Verifikasi: Algoritma verifikasi tetap konsisten dengan metode tradisional. Untuk memastikan kompatibilitas dengan skema tanda tangan tunggal, setiap orang yang memiliki kunci publik dapat memverifikasi dan mengonfirmasi tanda tangan, yang merupakan tugas inti yang dilakukan oleh node verifikasi blockchain.
Skema Tanda Tangan Threshold (TSS) adalah nama yang diberikan kepada kombinasi proses pembuatan kunci terdistribusi (DKG) dan proses tanda tangan terdistribusi.
Menggabungkan TSS dengan blockchain
Cara yang intuitif untuk mengadopsi TSS dalam blockchain adalah dengan mengubah klien blockchain sehingga dapat menghasilkan kunci dan tanda tangan melalui teknologi TSS. Di sini, 'klien blockchain' merujuk pada sekumpulan perintah yang dijalankan oleh semua node. Dalam aplikasi nyata, TSS dapat menggantikan semua perintah yang terkait dengan kunci pribadi dengan perhitungan terdistribusi.
Untuk menjelaskan secara rinci, kami akan memperkenalkan secara singkat bagaimana membuat alamat baru dalam desain blockchain tradisional. Singkatnya, pertama, kunci pribadi dihasilkan, lalu kunci publik dihitung berdasarkan kunci pribadi, dan akhirnya alamat blockchain diturunkan dari kunci publik.
Dalam mode TSS, kunci publik dihitung secara bersama oleh n pihak, di mana setiap pihak hanya memegang satu potongan rahasia dari kunci pribadi (dan potongan-potongan tersebut tidak akan saling bocor). Kita dapat menurunkan alamat dari kunci publik dengan cara yang sama seperti sistem tradisional, sehingga cara pembuatan alamat tidak terikat oleh blockchain. Keuntungan dari metode ini adalah bahwa masing-masing pihak hanya memegang sebagian kunci pribadi, sehingga kunci pribadi tidak lagi menjadi sumber dari titik kegagalan tunggal.
Tanda tangan transaksi juga dapat dilakukan dengan cara serupa. Perbedaannya adalah bahwa kunci pribadi tidak lagi digunakan untuk tanda tangan satu pihak, tetapi melalui kolaborasi banyak pihak untuk menghasilkan tanda tangan terdistribusi. Oleh karena itu, selama ada cukup banyak pihak yang bertindak dengan itikad baik, tanda tangan yang valid dapat dihasilkan, sehingga mentransformasi dari perhitungan lokal (titik kegagalan tunggal) menjadi perhitungan interaktif.
Perlu dicatat bahwa pembuatan kunci terdistribusi dapat mendukung berbagai jenis struktur akses: pola umum 't dari n' dapat memastikan bahwa bahkan dalam kasus kegagalan acak hingga t kali, operasi terkait kunci tetap dapat dilakukan dengan aman.
TSS dan Tanda Tangan Ganda
Beberapa blockchain menyediakan fungsionalitas TSS sebagai bagian dari perangkat lunak yang terintegrasi atau dapat diprogram, yang biasanya kita sebut tanda tangan ganda. Untuk memahami perbedaan antara keduanya dengan lebih jelas, kita dapat melihat tanda tangan ganda sebagai TSS di lapisan aplikasi blockchain.
Dengan kata lain, tanda tangan ganda dan TSS pada dasarnya mencapai tujuan yang serupa, tetapi TSS menggunakan teknologi enkripsi off-chain, sedangkan tanda tangan ganda terjadi di on-chain. Namun, blockchain memerlukan metode tertentu untuk mengkodekan tanda tangan ganda, yang dapat mempengaruhi privasi, karena struktur akses (jumlah penandatangan) akan terekspos di blockchain. Selain itu, biaya transaksi tanda tangan ganda lebih tinggi, karena informasi dari setiap penandatangan perlu dikirim ke blockchain.
Dalam TSS, detail dari para penandatangan disematkan dalam transaksi biasa, sehingga menurunkan biaya dan melindungi privasi. Di sisi lain, tanda tangan ganda dapat dicapai melalui metode non-interaktif, yang menghilangkan kerumitan menjalankan lapisan komunikasi yang kompleks di antara penandatangan yang berbeda.
Perbedaan utama antara keduanya adalah bahwa tanda tangan ganda spesifik untuk blockchain, perlu diimplementasikan secara terpisah untuk setiap blockchain, dan mungkin sama sekali tidak didukung di beberapa blockchain. Sebaliknya, TSS sepenuhnya didasarkan pada kriptografi dan selalu dapat didukung. Untuk informasi lebih lanjut tentang perbedaan antara keduanya, silakan lihat di sini.
TSS dan Skema Pembagian Rahasia Shamir
Skema Pembagian Rahasia Shamir (SSSS) menyediakan cara untuk menyimpan kunci pribadi secara terdistribusi, memungkinkan kunci pribadi disimpan di beberapa lokasi saat berada dalam keadaan diam. SSSS dan TSS memiliki dua perbedaan utama:
Pembuatan Kunci: Dalam SSSS, satu peran yang disebut 'penyalur' (dealer) bertanggung jawab untuk menghasilkan potongan rahasia kunci pribadi. Penyalur menghasilkan kunci pribadi lengkap di satu lokasi dan membaginya menjadi beberapa potongan rahasia, kemudian mendistribusikannya ke lokasi yang berbeda. Dalam TSS, tidak ada keberadaan penyalur, karena seluruh proses bersifat terdistribusi dan kunci pribadi lengkap tidak pernah dihasilkan di satu lokasi.
Tanda Tangan: Dalam SSSS, masing-masing pihak harus terlebih dahulu membangun kembali kunci pribadi lengkap untuk menyelesaikan tanda tangan, yang menyebabkan risiko titik kegagalan tunggal setiap kali tanda tangan dilakukan. Sementara dalam TSS, proses tanda tangan dilakukan secara terdistribusi tanpa perlu membangun kembali potongan rahasia.
Oleh karena itu, dalam skema TSS, kunci pribadi tidak akan muncul di satu lokasi sepanjang siklus hidupnya, secara signifikan meningkatkan keamanan sistem.
Dompet Threshold
Dompet yang berbasis pada teknologi TSS sedikit berbeda dari dompet cryptocurrency tradisional. Dompet tradisional biasanya menentukan alamat dompet secara deterministik melalui pembuatan frase sandi. Pengguna dapat memanfaatkan struktur deterministik hierarkis (HD): 1) Mengambil kunci pribadi yang sesuai dengan alamat dompet dan melakukan tanda tangan transaksi; 2) Memulihkan semua kunci dompet melalui frase sandi.
Mekanisme kerja dompet threshold lebih kompleks. Meskipun juga mendukung pembuatan struktur HD, proses ini perlu dilakukan secara terdistribusi, mirip dengan protokol MPC lainnya. Setiap pihak harus bersama-sama menentukan kunci berikutnya yang akan digunakan. Dengan kata lain, setiap pihak memiliki frase sandi mereka sendiri. Frase sandi ini dihasilkan secara terpisah dan tidak digabungkan, sehingga tidak ada pihak yang dapat secara tunggal menurunkan kunci pribadi lengkap dari frase sandi mereka sendiri.
Selain itu, dompet berbasis TSS juga memiliki fitur keamanan yang kuat, yaitu kemampuan untuk melakukan rotasi kunci pribadi tanpa mengubah kunci publik dan alamat blockchain. Rotasi kunci pribadi, yang juga dikenal sebagai pembagian rahasia aktif, adalah protokol MPC lain yang menggunakan potongan rahasia lama sebagai input untuk menghasilkan serangkaian potongan rahasia baru. Potongan rahasia lama dapat dihapus, sementara potongan baru dapat terus digunakan.
Arsitektur ini memperkenalkan dimensi waktu untuk keamanan dompet threshold, yang berarti penyerang harus muncul pada waktu yang sama di beberapa lokasi untuk dapat berhasil menyerang dompet. Bahkan jika mencoba memalsukan tanda tangan, potongan rahasia yang diperoleh penyerang sebelum dan sesudah rotasi kunci pribadi tidak dapat digabungkan menjadi kunci lengkap, sehingga tidak menambah ancaman terhadap keamanan.
Namun, salah satu keterbatasan dompet semacam ini adalah tidak mendukung frase sandi, sehingga tidak kompatibel dengan sistem dompet kunci tunggal. Oleh karena itu, penting untuk jelas mengenai pihak mana yang memegang potongan rahasia.
Arsitektur yang mungkin ada meliputi:
Outsourcing TSS: Pengguna menyerahkan perhitungan kepada 'n' server. Pembuatan, pengelolaan, dan tanda tangan kunci akan secara efektif diserahkan kepada penyedia layanan, yang bukan pemilik aset, tetapi mendapatkan imbalan tertentu melalui penyediaan jaminan keamanan.
Kolaborasi Multi-perangkat: Pengguna menjalankan TSS di antara perangkat yang mereka miliki. Misalnya, perangkat IoT, perangkat mobile, dan laptop bekerja sama.
Mode Campuran: Sebagian pihak dikendalikan oleh penyedia layanan eksternal, sementara sebagian lainnya berjalan di perangkat yang dimiliki pengguna, bersama-sama menyelesaikan perhitungan TSS.
Cara pertama mengurangi beban perhitungan TSS pada klien pengguna, tetapi penyedia layanan dapat berkolusi untuk mencuri aset pengguna (meskipun biasanya diasumsikan bahwa cukup banyak penyedia layanan tidak akan disusupi secara bersamaan, namun kemungkinan ini tidak bisa diabaikan).
Cara kedua memberikan pengguna kontrol penuh, tetapi karena memerlukan beberapa perangkat yang terhubung secara online untuk berpartisipasi dalam perhitungan TSS, operasi transaksi menjadi lebih rumit.
Cara ketiga mencapai keseimbangan antara keduanya, memungkinkan pengguna untuk menyelesaikan transaksi dengan cara yang sederhana dan efisien, sambil memastikan bahwa transaksi tidak dapat diselesaikan tanpa izin pengguna.
TSS dan Kontrak Pintar
Selama bertahun-tahun, para peneliti telah menjelajahi berbagai penggunaan tanda tangan digital, beberapa di antaranya telah menjadi teknologi kunci yang tak tergantikan. Seperti yang telah disebutkan sebelumnya, TSS adalah primitif kriptografi yang dapat secara signifikan meningkatkan keamanan. Dalam konteks blockchain, skema kriptografi berbasis TSS dapat menggantikan banyak fungsi tradisional. Misalnya, aplikasi terdesentralisasi, solusi penskalaan Layer 2, pertukaran atom, pencampuran koin, dan warisan dapat direalisasikan melalui kerangka TSS. Hal ini membuat operasi kontrak pintar on-chain yang memiliki biaya dan risiko tinggi secara bertahap digantikan oleh solusi yang lebih ekonomis dan dapat diandalkan.
Sebagai contoh, kunci multi-hop dengan cerdik memanfaatkan tanda tangan dua pihak, menawarkan jaringan saluran pembayaran yang lebih aman dan lebih privat, yang dapat menjadi alternatif bagi jaringan Lightning Bitcoin. ShareLock mungkin merupakan solusi pencampuran on-chain dengan biaya terendah di Ethereum, yang berbasis pada verifikasi tanda tangan threshold tunggal.
Risiko
Dalam beberapa tahun terakhir, aplikasi TSS semakin meningkat. Namun, sebagai teknologi yang relatif baru, ia masih menghadapi beberapa keterbatasan dan masalah potensial. Dibandingkan dengan teknologi kriptografi kunci publik tradisional, protokol TSS lebih kompleks dan belum mendapatkan banyak 'uji coba di lapangan'. Umumnya, dibandingkan dengan tanda tangan digital yang sederhana, TSS memerlukan asumsi kriptografi tambahan, yang mungkin tidak cukup robust, sehingga memperkenalkan vektor serangan kriptografi yang belum pernah muncul dalam skema tradisional. Untuk mengamankan penerapan TSS dalam sistem, disarankan untuk mencari dukungan profesional dari insinyur keamanan dan ahli kriptografi.
Di sisi positif, berkat kontribusi komunitas yang terus meningkat, peninjauan sejawat, audit kode, dan optimasi algoritma, aplikasi TSS yang ada dan baru semakin matang.
Kesimpulan
Artikel ini memperkenalkan konsep dasar dari Skema Tanda Tangan Threshold (TSS), yang merupakan primitif kriptografi yang sangat berpotensi, yang diharapkan dapat mengubah cara kita berinteraksi dengan blockchain.
Karena artikel ini tidak mencakup penerapan ECDSA threshold yang dapat diterapkan di BNB Chain dan Bitcoin, pembaca yang tertarik dapat merujuk pada makalah terbaru berikut. Selain itu, jika Anda ingin mencoba beberapa aplikasi TSS, Anda dapat melihat kode sumber open-source untuk dompet BNB Chain dua pihak di sini, atau menggunakan dompet ZenGo, yang merupakan dompet BNB Chain dua pihak yang tidak dikelola dengan mode campuran.
Baca Dalam-dalam:
Skema tanda tangan ECDSA dua pihak yang aman dan efisien
Skema ECDSA multi-pihak yang aman dan efisien, mendukung pembuatan kunci terdistribusi yang praktis dan aplikasi pengelolaan cryptocurrency
ECDSA dua pihak berdasarkan sistem pembuktian hash dan instansiasi efisiennya
ECDSA multi-pihak threshold dengan pengaturan de-trust yang efisien
ECDSA dua pihak threshold yang aman berdasarkan asumsi ECDSA
ECDSA threshold berdasarkan asumsi ECDSA: beberapa contoh