Tanda Tangan BLS dan Skema Tanda Tangan Agregat
Jelajahi pairing BLS12-381, agregasi tanda tangan, dan cara Ethereum 2.0 menggunakan BLS untuk mengurangi beban validator.
Tanda Tangan BLS dan Skema Tanda Tangan Agregat adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.
Pairing Bilinear: Landasan Matematis
Tanda tangan BLS bergantung pada pairing bilinear—operasi matematis pada kurva eliptik. Pairing e: G1 x G2 -> GT memetakan pasangan titik dari dua grup (G1, G2) ke grup target GT. Sifat pentingnya adalah bilinearitas: e(aP, bQ) = e(P, Q)^(ab) untuk skalar a, b dan titik P, Q. Hal ini memungkinkan pemeriksaan hubungan antara elemen grup tanpa mengetahui logaritma diskretnya. Kurva pairing yang paling banyak digunakan dalam kriptografi adalah BLS12-381, yang dipilih karena tingkat keamanannya 128 bit, ukuran elemen grupnya kecil (48 bita dalam G1, 96 bita dalam G2), dan perhitungan pairing yang efisien.
Konstruksi Tanda Tangan BLS
Tanda tangan BLS (Boneh-Lynn-Shacham) bekerja sebagai berikut. Pembuatan kunci: kunci privat x adalah skalar acak; kunci publik PK = x * G, dengan G sebagai generator G2. Penandatanganan: untuk pesan m, hitung H = hash-to-curve(m) dalam G1, lalu sigma = x * H. Tanda tangan sigma adalah satu titik G1 (48 bita pada BLS12-381). Verifikasi: periksa e(sigma, G) == e(H, PK). Berdasarkan bilinearitas, e(x*H, G) = e(H, G)^x = e(H, x*G) = e(H, PK). Keamanannya bergantung pada asumsi co-CDH: menghitung x*H berdasarkan H dan x*G sulit dilakukan tanpa mengetahui x.
Agregasi Tanda Tangan: Inovasi Utama
Tanda tangan BLS mendukung agregasi tanpa interaksi: dengan tanda tangan sigma_1, ..., sigma_n atas pesan m_1, ..., m_n dari kunci publik PK_1, ..., PK_n, agregator menghitung sigma_agg = sigma_1 + sigma_2 + ... + sigma_n, yaitu penjumlahan titik kurva eliptik. Tanda tangan agregat tersebut berupa satu nilai 48 bita, berapa pun nilai n. Verifikasi memerlukan n+1 operasi pairing: periksa e(sigma_agg, G) == product(e(H_i, PK_i)). Dalam kasus umum ketika semua penanda tangan menandatangani pesan yang sama, verifikasi berkurang menjadi 2 pairing: e(sigma_agg, G) == e(H, sum(PK_i)).
Serangan Kunci Palsu dan Pertahanan
Agregasi BLS naif rentan terhadap serangan kunci palsu. Lawan mendaftarkan PK_adv = x_adv*G - PK_honest. Kunci agregat PK_agg = PK_honest + PK_adv = x_adv*G, sehingga sepenuhnya dikendalikan oleh lawan. Pilihan pertahanan: (1) Bukti Kepemilikan (PoP): setiap penanda tangan membuktikan bahwa ia mengetahui kunci privatnya dengan menandatangani kunci publiknya sendiri saat pendaftaran. (2) Penambahan pesan: sertakan kunci publik setiap penanda tangan ke dalam pesannya. (3) Delinearisasi (BGLS): kalikan setiap kunci publik dengan hash(PK_i, all_PKs) sebelum agregasi, sehingga linearitas yang memungkinkan serangan tersebut terputus. Ethereum menggunakan PoP untuk pendaftaran validator.
Penggunaan BLS pada Ethereum 2.0
Lapisan konsensus Ethereum (Beacon Chain) banyak menggunakan agregasi BLS12-381. Pada setiap slot, lebih dari sekitar 400.000 validator aktif memberikan pengesahan terhadap kepala rantai. Tanpa agregasi, penyimpanan semua tanda tangan akan memerlukan ~400.000 * 96 bita = 38 MB per slot. Dengan agregasi BLS per komite (biasanya 512 validator), setiap komite menghasilkan satu tanda tangan agregat berukuran 96 bita, sehingga total data tanda tangan berkurang menjadi beberapa kilobita per slot. Isi blok Beacon Chain memuat pengesahan agregat: medan bit yang menunjukkan validator mana yang berpartisipasi, serta satu tanda tangan BLS agregat untuk setiap komite.
Kinerja BLS vs ECDSA
Operasi tanda tangan BLS memiliki karakteristik kinerja yang berbeda dari ECDSA. Penandatanganan BLS memerlukan satu hash-to-curve dan satu perkalian skalar (~1 md pada perangkat keras modern). Verifikasi BLS memerlukan dua operasi pairing (~3–5 md setiap operasi = ~6–10 md total). Penandatanganan ECDSA memerlukan satu perkalian titik (~0,2 md); verifikasi memerlukan dua perkalian titik (~0,4 md). Verifikasi BLS lebih lambat untuk setiap tanda tangan, tetapi jauh lebih cepat secara agregat: verifikasi 1.000 tanda tangan BLS yang diagregasi memerlukan total ~10 md, dibandingkan ~400 md untuk 1.000 verifikasi ECDSA individual. Titik peralihannya berada di sekitar 2–3 tanda tangan.
Tanda Tangan BLS Berbasis Ambang
BLS berbasis ambang memperluas agregasi menjadi pembagian rahasia. Dalam skema ambang (t, n), kunci privat dibagi menjadi n bagian menggunakan pembagian rahasia Shamir pada medan skalar BLS. Setiap pemegang bagian i menghasilkan tanda tangan parsial sigma_i = sk_i * H(m). Setiap t tanda tangan parsial dapat digabungkan menggunakan koefisien interpolasi Lagrange: sigma = sum(lambda_i * sigma_i). Hasilnya identik dengan tanda tangan yang dihasilkan oleh kunci asli, tetapi tidak ada satu pihak pun yang pernah memegang kunci lengkap. BLS berbasis ambang digunakan dalam teknologi validator terdistribusi (DVT), dompet MPC, dan layanan penandatanganan berbasis ambang seperti Fireblocks dan Web3Auth.
BLS dalam Jaringan Filecoin
Filecoin menggunakan tanda tangan BLS untuk sistem bukti penyimpanan dan penandatanganan transaksi. Penambang penyimpanan mengagregasi beberapa bukti menggunakan agregasi BLS, sehingga mengurangi biaya verifikasi di dalam rantai. Kumpulan pesan Filecoin juga mengagregasi beberapa tanda tangan transaksi menjadi satu agregat, sehingga mengurangi ukuran blok. Implementasi Filecoin menggunakan draf standar BLS IETF (hash-to-curve sesuai RFC 9380, dengan kurva BLS12-381) dan varian dengan ukuran kunci publik minimum, yaitu kunci publik berada di G1 (48 bita) dan tanda tangan berada di G2 (96 bita)—kebalikan dari konvensi Ethereum.
BLS dalam Zcash dan Protokol Privasi
Meskipun Zcash terutama menggunakan bukti ZK-SNARK Groth16, pairing BLS merupakan landasan bagi banyak konstruksi tanpa pengetahuan berbasis pairing. Persamaan verifikasi Groth16 adalah pemeriksaan pairing: e(A, B) = e(alpha, beta) * e(vk, C), dengan A, B, C sebagai elemen bukti. Komitmen polinomial KZG (yang digunakan dalam transaksi blob EIP-4844 Ethereum dan berbagai sistem rollup ZK) juga bergantung pada pairing BLS12-381: komitmen terhadap polinomial f(x) adalah C = f(tau)*G, dan bukti evaluasinya diverifikasi melalui pairing. BLS12-381 dipilih secara khusus karena operasi pairing-nya yang efisien dan tingkat keamanan 128 bit.
Tanda Tangan yang Dapat Diagregasi di Luar BLS
BLS bukan satu-satunya skema tanda tangan yang dapat diagregasi. Tanda tangan Schnorr mendukung agregasi kunci (MuSig2, yang digunakan dalam Bitcoin Taproot), sehingga beberapa penanda tangan menghasilkan satu tanda tangan Schnorr yang tidak dapat dibedakan dari tanda tangan satu penanda tangan. FROST (Ambang Schnorr yang Fleksibel dan Dioptimalkan untuk Putaran) menyediakan tanda tangan Schnorr berbasis ambang dalam dua putaran. Namun, agregasi Schnorr memerlukan interaksi antarpemilik tanda tangan, berbeda dari agregasi BLS tanpa interaksi, sehingga kurang sesuai untuk kumpulan validator besar. BLS tetap lebih disukai untuk konsensus blockchain karena agregasinya tanpa interaksi dan verifikasi batch yang efisien.
Prospek Pasca-Kuantum untuk BLS
Tanda tangan BLS didasarkan pada pairing kurva eliptik, yang rentan terhadap komputer kuantum yang menjalankan algoritma Shor. Komputer kuantum yang cukup kuat dapat menghitung logaritma diskret pada BLS12-381, sehingga mematahkan semua tanda tangan BLS yang ada dan meruntuhkan keamanan konsensus Ethereum. Waktunya belum pasti, tetapi NIST memperkirakan 15–20 tahun hingga tersedianya komputer kuantum yang relevan secara kriptografis. Ethereum dan rantai lain yang bergantung pada BLS perlu bermigrasi ke skema tanda tangan pasca-kuantum (CRYSTALS-Dilithium/ML-DSA atau SPHINCS+/SLH-DSA) sebelum ancaman ini terwujud. Migrasi tersebut memerlukan perubahan tingkat protokol pada pendaftaran validator, format atestasi, dan verifikasi agregat.
Kuis Agregasi BLS
Apa keunggulan utama agregasi tanda tangan BLS pada lapisan konsensus Ethereum?
Rangkuman Tanda Tangan BLS
Tanda tangan BLS menggunakan pairing bilinear pada kurva BLS12-381. Tanda tangan berupa titik G1 berukuran 48 bita; kunci publik berupa titik G2 berukuran 96 bita menurut konvensi Ethereum. Agregasi noninteraktif menggabungkan n tanda tangan menjadi satu nilai berukuran 48 bita, yang diverifikasi menggunakan n+1 pairing. Serangan kunci jahat dimitigasi dengan Bukti Kepemilikan selama pendaftaran validator. Ethereum menggunakan BLS untuk memadatkan lebih dari 400.000 atestasi validator per slot menjadi beberapa kilobita. BLS ambang batas memungkinkan validator terdistribusi tanpa satu pemegang kunci tunggal. BLS berbasis pairing dan tidak aman terhadap komputer kuantum, sehingga memerlukan migrasi pada masa mendatang.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tanda Tangan BLS dan Skema Tanda Tangan Agregat” gratis?
Ya — teks lengkap “Tanda Tangan BLS dan Skema Tanda Tangan Agregat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tanda Tangan BLS dan Skema Tanda Tangan Agregat”?
Jelajahi pairing BLS12-381, agregasi tanda tangan, dan cara Ethereum 2.0 menggunakan BLS untuk mengurangi beban validator. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cryptology Academy?
Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Tanda Tangan BLS dan Skema Tanda Tangan Agregat” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?
Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mekanisme Kriptografi Proof-of-Stake
- Protokol BFT: PBFT dan Tendermint
- Fungsi Acak yang Dapat Diverifikasi dalam Konsensus
- Tanda Tangan BLS dan Skema Tanda Tangan Agregat