Academy

Penjelasan Mengenai Threshold Signatures dalam Blockchain

Published

on

Threshold Signature Scheme (TSS) merupakan sebuah konsep yang memiliki signifikansi kriptografis dalam pembuatan dan penandatanganan kunci yang bersifat kolektif. Pengaplikasian TSS dalam dunia blockchain menjadi sebuah paradigma inovatif yang mengusung sejumlah keunggulan, terutama dalam aspek keamanan.

Secara umum, TSS memiliki potensi untuk mengubah lanskap pengelolaan kunci, seperti dompet kripto, dan memainkan peran penting dalam berbagai kasus penggunaan di dalam ekosistem DeFi. Namun demikian, TSS masih dianggap sebagai teknologi yang relatif baru, sehingga perlu diwaspadai pula risiko-risiko dan batas-batas yang mungkin timbul.

Dalam tulisan ini, kami akan menguraikan konsep TSS, potensi manfaatnya dalam lingkungan blockchain, bagaimana konsep ini direalisasikan dalam klien blockchain, perbandingan dengan metode pembagian rahasia Shamir dan Multisig, alternatif penggunaan TSS dalam skenario pengelolaan kunci bersama, serta mengulas secara mendalam risiko-risiko dan keterbatasannya.

Potensi Kekuatan dalam Dunia Aset Kripto

Sebelum menjelaskan lebih lanjut tentang TSS, penting untuk memahami dasar-dasar kriptografi. Sejak awal tahun 1970-an, teknologi internet semakin melibatkan penggunaan kriptografi asimetris yang dikenal juga dengan sebutan Public Key Cryptography (PKC). PKC memanfaatkan sepasang kunci: kunci publik dan kunci pribadi. Kunci publik dapat diakses oleh siapa saja dan digunakan untuk mengenkripsi pesan, sedangkan kunci pribadi merupakan informasi rahasia yang menjamin keamanan sistem.

Penerapan PKC umumnya digunakan dalam enkripsi dan penandatanganan digital. Kedua proses ini bergantung pada tiga set algoritma: pertama, pembuatan pasangan kunci pribadi dan publik; kedua, proses enkripsi atau penandatanganan pesan; dan ketiga, proses dekripsi atau verifikasi pesan.

Dalam penandatanganan digital, algoritma penandatanganan membutuhkan kunci pribadi yang hanya diketahui oleh pemiliknya, untuk menghasilkan tanda tangan digital yang unik. Tanda tangan ini ditempelkan pada pesan yang akan dikirim, dan semua orang dengan kunci publik yang sesuai dapat memverifikasi keaslian dan integritas pesan tersebut.

Peran Blockchain

Tak diragukan lagi, teknologi blockchain telah mengubah banyak hal. Dengan memberikan lapisan konsensus yang mengatur dan merekam transaksi, teknologi ini membuka peluang untuk membangun ekonomi dan sistem yang terdesentralisasi. Yang menarik, teknologi kriptografi telah menjadi dasar operasional blockchain, dengan penandatanganan digital menjadi salah satu pilar utamanya.

Dalam konteks blockchain, kunci pribadi mewakili identitas, sedangkan tanda tangan adalah pernyataan publik atau klaim yang diajukan oleh entitas tertentu. Blockchain akan mengatur dan memvalidasi pernyataan-pernyataan ini sesuai dengan aturan yang telah ditetapkan, menjamin di antaranya keaslian dan tidak dapat disangkalnya tanda tangan tersebut.

Berbeda dengan kriptografi konvensional yang digunakan dalam blockchain, toolbox kriptografi modern menawarkan beragam inovasi menakjubkan, termasuk bukti pengetahuan nol, enkripsi homomorfik, dan komputasi berlapis. Dalam beberapa dekade terakhir, penelitian dalam bidang blockchain telah mendorong penerapan kriptografi dengan lebih luas, menghasilkan terobosan di berbagai area, termasuk yang telah disebutkan di atas.

Artikel ini akan memfokuskan pada salah satu terobosan tersebut, yaitu threshold signatures (TSS), yang menawarkan efisiensi dan keamanan dalam konteks yang relevan.

MPC dan Konsep Threshold Signature (TSS)

Multi-party computation (MPC) adalah salah satu bidang dalam kriptografi yang muncul dari karya penting oleh Andrew C. Yao hampir empat dekade yang lalu. Dalam MPC, sekelompok entitas (pihak-pihak) yang tidak saling mempercayai berusaha untuk secara bersama-sama melakukan perhitungan fungsi atas input mereka sambil menjaga kerahasiaan input tersebut.

Sebagai contoh, bayangkan ada n karyawan di sebuah perusahaan yang ingin mengetahui siapa di antara mereka yang memiliki gaji tertinggi tanpa harus mengungkapkan gaji sebenarnya. Dalam hal ini, input rahasia adalah gaji masing-masing karyawan, dan outputnya adalah nama karyawan dengan gaji tertinggi. Melalui penerapan MPC, kita dapat memastikan bahwa selama perhitungan ini, tidak ada informasi gaji yang terungkap.

Dua aspek penting dalam MPC adalah kebenaran dan kerahasiaan:

  1. Kebenaran: Output yang dihasilkan oleh algoritma adalah benar dan sesuai dengan hasil yang diharapkan.
  2. Kerahasiaan: Input-data rahasia yang dimiliki oleh satu entitas tidak bocor kepada entitas lain.

Dalam konteks ini, kami akan menggabungkan konsep MPC untuk melakukan perhitungan tanda tangan digital yang didistribusikan. Mari kita lihat bagaimana komponen-komponen tersebut dapat diaplikasikan pada tanda tangan. Harap diperhatikan bahwa proses tanda tangan melibatkan tiga langkah:

  1. Pembuatan Kunci: Langkah pertama ini adalah yang paling kompleks. Dalam tahap ini, kita harus menciptakan kunci publik yang digunakan untuk memverifikasi tanda tangan di masa depan. Namun, kita juga perlu membuat bagian rahasia individual untuk setiap entitas yang disebut sebagai “secret share.” Dalam hal kebenaran dan kerahasiaan, fungsi ini memastikan bahwa kunci publik yang dihasilkan untuk semua entitas adalah sama, sementara secret share masing-masing adalah sebagai berikut: (1) Kerahasiaan: Tidak ada informasi secret share yang bocor di antara entitas, dan (2) Kebenaran: Kunci publik adalah hasil dari secret share.
  1. Penandatanganan: Tahap ini melibatkan proses pembuatan tanda tangan. Input dari masing-masing entitas akan menjadi secret share-nya, yang diperoleh dari langkah sebelumnya (pembuatan kunci terdistribusi). Selain itu, ada juga input publik yang diketahui oleh semua entitas, yaitu pesan yang akan ditandatangani. Output dari tahap ini adalah tanda tangan digital, dan aspek kerahasiaan memastikan bahwa tidak ada secret share yang bocor selama perhitungan.
  1. Verifikasi: Algoritma verifikasi tetap sama seperti dalam pengaturan konvensional. Agar sesuai dengan tanda tangan kunci tunggal, setiap orang yang memiliki kunci publik seharusnya dapat memverifikasi dan memvalidasi tanda tangan. Ini adalah apa yang sebenarnya dilakukan oleh jaringan blockchain dalam mengotorisasi node.

Konsep Skema Threshold Signature (TSS)

Skema Threshold Signature (TSS) merupakan hasil dari komposisi dari generasi kunci terdistribusi (DKG) dan skema tanda tangan ambang (threshold signature).

Integrasi TSS dengan Blockchain

Penerapan alami dari TSS dalam konteks blockchain adalah dengan memodifikasi klien blockchain untuk melakukan pembuatan kunci dan tanda tangan menggunakan TSS. Di sini, “klien blockchain” mengacu pada serangkaian instruksi yang dieksekusi oleh node penuh. Dalam prakteknya, teknologi TSS memungkinkan penggantian seluruh kunci privat yang terkait dengan perintah-perintah ini melalui perhitungan terdistribusi.

Untuk menjelaskannya lebih mendalam, mari kita deskripsikan bagaimana alamat baru dibuat dalam desain blockchain tradisional. Secara sederhana, alamat baru dibuat dengan menciptakan kunci privat, lalu menghitung kunci publik dari kunci privat tersebut. Akhirnya, alamat publik diturunkan dari kunci publik.

Melalui TSS, kita akan melibatkan sekumpulan n entitas dalam penghitungan kunci publik, di mana setiap entitas memiliki secret share dari kunci privat (tanpa saling membocorkan secret share). Dari kunci publik ini, alamat publik dapat diturunkan dengan cara yang sama seperti yang dilakukan dalam pengaturan tradisional, menjadikan proses pembuatan alamat independen dari blockchain. Keuntungannya adalah kunci privat tidak lagi menjadi titik kegagalan karena tiap entitas hanya memiliki satu bagian dari secret share.

Hal yang sama berlaku saat menandatangani transaksi. Daripada satu entitas menggunakan kunci privatnya untuk menandatangani, proses pembuatan tanda tangan didistribusikan antara banyak entitas. Dengan demikian, tiap entitas dapat menghasilkan tanda tangan yang valid selama bertindak secara jujur. Ini mendorong perpindahan dari perhitungan lokal (single point of failure) ke perhitungan interaktif.

Penting untuk dicatat bahwa pembuatan kunci terdistribusi dapat diatur dengan berbagai skema akses: dalam pengaturan “t dari n,” sistem dapat menghadapi hingga t kegagalan sewenang-wenang dalam proses terkait kunci privat tanpa mengorbankan keamanan.

TSS versus Multisig

Beberapa jaringan blockchain menyediakan fungsi TSS sebagai fitur bawaan yang dapat diprogram dalam perangkat lunak. Fungsi ini dikenal sebagai multisig atau multi-tanda tangan. Untuk memahami perbedaannya dengan lebih baik, kita dapat menganggap multisig sebagai bentuk TSS di tingkat aplikasi dalam ekosistem blockchain.

Meskipun pada dasarnya baik multisig maupun TSS berusaha mencapai tujuan serupa, yaitu meningkatkan keamanan dan kontrol atas transaksi, TSS menggunakan kriptografi di luar jaringan blockchain (off-chain), sementara multisig beroperasi di dalam jaringan blockchain (on-chain).

Namun, saat mengimplementasikan multisig, blockchain memerlukan cara untuk mengkodekannya, yang dapat mengorbankan privasi karena struktur akses (jumlah penandatangan) terlihat pada blockchain. Biaya transaksi multisig cenderung lebih tinggi karena informasi dari penandatangan yang berbeda juga harus disampaikan melalui blockchain.

Dalam TSS, detail dari para penandatangan disimpan dalam transaksi yang tampak seperti transaksi biasa, mengurangi biaya dan mempertahankan privasi. Di sisi lain, multisig dapat tidak interaktif, menghindari kerumitan komunikasi antara para penandatangan yang berbeda.

Titik penting dalam perbedaan ini adalah bahwa multisig memerlukan pendekatan yang spesifik untuk setiap jaringan blockchain, dan kadang-kadang mungkin tidak didukung sama sekali. Sebaliknya, TSS bergantung pada kriptografi murni, sehingga mendapatkan dukungan yang lebih konsisten. Artikel yang menyajikan ilustrasi perbedaan ini dapat ditemukan di sini.

TSS versus Skema Pembagian Rahasia Shamir

Skema Pembagian Rahasia Shamir (Shamir Secret Sharing Scheme atau SSSS) menawarkan cara untuk menyimpan kunci privat secara terdistribusi, artinya kunci privat disimpan di beberapa tempat. Terdapat dua perbedaan utama antara SSSS dan TSS:

Pembuatan Kunci: Dalam SSSS, terdapat satu pihak yang disebut “dealer” yang bertanggung jawab untuk menciptakan secret shares dari kunci privat. Ini berarti bahwa saat pembuatan kunci, kunci privat diciptakan di satu tempat dan kemudian dibagi oleh dealer ke beberapa tempat lain. Di dalam TSS, tidak ada dealer karena peranannya didistribusikan dengan cara yang kunci privat tidak pernah benar-benar ada di satu lokasi.

Penandatanganan: Dalam SSSS, entitas harus merestrukturisasi kunci privat sepenuhnya untuk melakukan penandatanganan, yang pada akhirnya menjadi titik kegagalan potensial setiap kali tanda tangan diperlukan. Dalam TSS, penandatanganan dilakukan secara terdistribusi tanpa perlu merestrukturisasi secret shares.

Seperti yang dapat kita amati, dalam TSS, kunci privat (yang mewakili keamanan sistem) tidak pernah ada di satu lokasi sepanjang waktu.

Dompet Threshold

Dompet yang didasarkan pada teknologi TSS memiliki perbedaan dari dompet kripto tradisional. Secara spesifik, dompet konvensional menghasilkan frase bibit (seed phrase) dan menggunakan ini untuk menentukan alamat secara deterministik. Pengguna kemudian dapat menggunakan struktur deterministik hierarkis (HD) ini untuk 1) mendapatkan kunci privat yang sesuai dengan alamat dompet dan menandatangani transaksi, serta 2) memulihkan semua kunci dompet menggunakan frase bibit.

Dalam dompet ambang, semuanya lebih kompleks. Meskipun memungkinkan untuk menghasilkan struktur HD, proses ini harus dihitung secara terdistribusi, sebagai protokol MPC yang berbeda. Entitas-entitas harus sepakat pada kunci mana yang akan digunakan selanjutnya. Dengan kata lain, setiap entitas harus memiliki frase bibit. Frase bibit dihasilkan secara terpisah dan tidak pernah digabungkan, sehingga entitas tunggal tidak dapat merekonstruksi kunci privat dari frase bibitnya.

Dompet berbasis TSS juga memiliki sistem keamanan yang kuat, yang memungkinkan rotasi kunci privat tanpa mengubah kunci publik dan alamat yang sesuai dalam jaringan blockchain. Rotasi kunci privat, juga dikenal sebagai “secret sharing proactive,” adalah protokol MPC berbeda yang mengambil secret shares sebagai masukan dan menghasilkan set baru secret shares. Secret shares lama dapat dihapus, dan yang baru dapat digunakan dengan cara yang sama.

Struktur semacam ini memperkenalkan dimensi waktu pada keamanan, yang berarti bahwa seorang penyerang harus hadir di banyak lokasi pada saat bersamaan untuk menyerang dompet ambang. Menggabungkan secret shares sebelum dan sesudah rotasi tidak akan memberikan penyerang keuntungan tambahan dalam upaya pemalsuan tanda tangan.

Namun, kelemahan dari jenis dompet ini adalah bahwa frase bibit membuatnya tidak kompatibel dengan dompet kunci tunggal. Oleh karena itu, sangat penting untuk mempertimbangkan secara cermat bagaimana secret shares disimpan.

Terdapat beberapa arsitektur yang memungkinkan:

  • Outsourcing TSS: Pengguna membiarkan “n” server menjalankan perhitungan atas nama mereka. Ini memindahkan pembuatan kunci, manajemen, dan penandatanganan ke penyedia layanan eksternal yang memberikan lapisan keamanan sebagai kompensasi.
  • Penggunaan Beberapa Perangkat: Pengguna menjalankan TSS dengan perangkat-perangkat yang mereka miliki. Sebagai contoh, satu perangkat bisa menjadi Internet of Things (IoT), satu lagi ponsel pengguna, dan seterusnya.
  • Pendekatan Hybrid: TSS berjalan dengan beberapa entitas dikontrol oleh penyedia layanan eksternal dan beberapa entitas lainnya menjalankan perangkat-perangkat pribadi pengguna.

Pendekatan pertama membantu meringankan beban perhitungan TSS dari sisi pengguna, tetapi penyedia layanan bisa saja berkolaborasi (meskipun diasumsikan mereka tidak diserang secara bersamaan, dalam praktiknya hal ini bisa terjadi) dan mencuri aset pengguna.

Pendekatan kedua memberikan pengguna kontrol penuh, tetapi ini bisa menjadi rumit dalam melakukan transaksi karena memerlukan banyak perangkat yang harus online dan terlibat dalam perhitungan TSS.

Pendekatan ketiga dianggap yang paling menguntungkan karena memungkinkan pengguna untuk melakukan transaksi dengan mudah dan cepat, serta memberikan jaminan bahwa transaksi tidak dapat dilakukan tanpa otorisasi pengguna.

TSS dan Kontrak Pintar (Smart Contracts)

Seiring berjalannya waktu, para peneliti telah menemukan berbagai penerapan tanda tangan digital yang lebih berarti daripada yang awalnya diperkirakan. Seperti yang telah diungkapkan, Threshold Signature Scheme (TSS) adalah primitif kriptografi yang memiliki potensi besar untuk meningkatkan keamanan secara substansial.

Dalam konteks teknologi blockchain, TSS mampu menggantikan berbagai fungsionalitas dengan dasar kriptografi yang lebih aman. Aplikasi-aplikasi yang berhubungan dengan desentralisasi, solusi penskalaan di lapisan kedua, pertukaran atomik, pencampuran (mixing), pewarisan (inheritance), dan lain sebagainya, semuanya dapat dibangun di atas kerangka kerja TSS. Akhirnya, hal ini berpotensi menggantikan proses smart contract on-chain yang mahal dan berisiko dengan alternatif yang lebih hemat biaya dan dapat diandalkan.

Untuk memberikan contoh konkret, teknik Multi-Hop Locks memanfaatkan tanda tangan dua pihak dengan pintar, mampu berfungsi sebagai opsi alternatif pada jaringan Lightning Bitcoin dengan saluran pembayaran yang lebih aman dan privasi yang lebih terjaga. ShareLock, sebagai contoh lain, mungkin menjadi solusi on-chain yang lebih ekonomis untuk Ethereum, didasarkan pada verifikasi dari tanda tangan ambang tunggal.

Risiko dan Batasan

Pada beberapa tahun terakhir, implementasi TSS telah mengalami perkembangan yang signifikan. Namun, sebagai teknologi yang relatif baru, masih ada beberapa keterbatasan yang perlu diakui. Dibandingkan dengan kriptografi kunci publik klasik, protokol TSS memiliki kompleksitas yang lebih tinggi dan belum sepenuhnya teruji dalam situasi nyata.

Umumnya, TSS memerlukan asumsi kriptografi yang lebih lemah jika dibandingkan dengan tanda tangan digital sederhana. Sebagai hasilnya, terdapat potensi munculnya serangan kriptografi yang tidak ditemukan dalam pengaturan tradisional (lihat presentasi di Breaking Bitcoin Conference 2019). Ahli keamanan dan kriptografi terapan diperlukan untuk membantu mengimplementasikan TSS dengan cara yang aman dan andal.

Kesimpulan

Dalam artikel ini, kita telah memperkenalkan konsep dasar dari Skema Tanda Tangan Ambang (Threshold Signature Scheme atau TSS), sebuah primitif kriptografi yang menjanjikan untuk mengubah cara kita memanfaatkan teknologi blockchain dengan signifikan.

Karena artikel ini tidak membahas tentang ECDSA Threshold yang dapat diterapkan pada Binance Chain dan Bitcoin, para pembaca yang tertarik pada topik ini dapat merujuk pada daftar paper terbaru di bawah ini. Bagi yang ingin bereksperimen dengan implementasi TSS, kode untuk dompet dua pihak (two-party wallet) di Binance Chain dapat ditemukan di sini, atau Anda bisa mencoba ZenGo wallet yang menggunakan pendekatan hybrid untuk menyediakan dompet dua pihak di Binance Chain yang non-custodial.

Jika kamu ingin mengetahui lebih dalam mengenai aset kripto atau cryptocurrency, bisa baca artikel “Belajar Crypto untuk Pemula Mulai Dari Sini.”

Sumber: Binance Academy Indonesia

Popular

Exit mobile version