Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.
Jawaban langsung
Tanda tangan Boneh-Lynn-Shacham adalah tanda tangan digital berbasis pairing. Dalam orientasi umum, kunci rahasia sk menghasilkan kunci publik PK = sk * G1; pesan m dipetakan ke H(m) dalam G2; dan tanda tangan sig = sk * H(m) diverifikasi melalui e(PK, H(m)) = e(G1, sig). Grup, encoding, suite hash-to-curve, dan pemisahan domain yang tepat adalah pilihan ciphersuite, bukan notasi yang dapat dipertukarkan.
BLS memiliki keunggulan operasional yang tidak biasa: tanda tangan valid dapat dijumlahkan menjadi satu elemen grup berukuran konstan. Ini memampatkan tanda tangan, tetapi tidak memampatkan daftar penanda tangan, membuktikan quorum, mengenali validator berwenang, mencegah equivocation, atau membuat konsensus final. Sifat tersebut berasal dari protokol di sekelilingnya.
Cara kerjanya
- Tetapkan protokol, ciphersuite, dan versi: kurva, grup kunci publik dan tanda tangan, serialisasi, fungsi hash-to-curve, tag pemisahan domain, dan konstruksi message root. Jangan menyimpulkan kompatibilitas hanya dari label BLS.
- Buat
skdengan prosedur key generation yang ditetapkan dan turunkanPK. Tolak nol, infinity, encoding cacat, nonkanonis, dan subgroup salah menurut aturanKeyValidateserta deserialisasi yang tepat. - Bentuk bytes pesan dan domain penandatanganan yang tepat. Dalam konsensus Ethereum, signing root mengikat root objek SSZ ke domain yang diturunkan dari jenis operasi dan data fork; teks tampilan bukan objek yang ditandatangani.
- Tanda tangani dan verifikasi satu per satu dengan skema terpilih. Varian Basic, message augmentation, dan proof-of-possession memiliki pertahanan rogue key berbeda dan tidak boleh dicampur sembarangan.
- Pilih verifier agregat berdasarkan pola pesan. Gunakan
FastAggregateVerifyhanya untuk beberapa kunci publik tervalidasi yang menandatangani pesan sama dengan asumsi proof-of-possession yang diwajibkan; gunakanAggregateVerifyuntuk daftar kunci dan pesan yang diizinkan skema. - Rekonstruksi himpunan penanda tangan secara independen dari data komite atau participant bitlist, tolak indeks duplikat atau tanpa wewenang, terapkan bobot stake atau threshold, lalu verifikasi tanda tangan agregat. Agregat valid mengautentikasi himpunan yang diberikan; ia tidak memutuskan apakah himpunan memenuhi kebijakan.
- Rekonsiliasi hasil dengan fork choice, kondisi slashing, quorum, availability, waktu, dan finality. Simpan input bytes, domain, indeks penanda tangan, versi implementasi, dan test vectors, serta bandingkan pustaka independen sebelum deployment.
Contoh terhitung
- Kompresi tidak menghapus data keanggotaan. Konsensus Ethereum mengodekan setiap kunci publik BLS sebagai
48 bytesdan setiap tanda tangan sebagai96 bytes. Untuk512tanda tangan pesan sama, tanda tangan terpisah memakai512 * 96 = 49,152 bytes. Satu tanda tangan agregat beserta participant bitlist512-bit = 64-bytememakai96 + 64 = 160 bytes, pengurangan49,152 - 160 = 48,992 bytes, atau99.6744791667%. Kunci publik validator dan pemetaan komite tetap harus tersedia di tempat lain. - Agregasi pesan sama. Validator terdaftar
17,24, dan91menandatangani signing root identikR. Tanda tangan mereka diagregasi sebagaisigAgg = sig17 + sig24 + sig91. Verifikasi memakai himpunan kunci publik tervalidasi dan berurutan[PK17, PK24, PK91],Ryang sama, danFastAggregateVerify. Hasil valid membuktikan kunci tersebut menandatanganiRdalam skema; aturan terpisah menentukan bobot dan apakah tiga penanda tangan membentuk quorum. - Pesan berbeda memerlukan API yang benar. Kunci
PK1,PK2, danPK3menandatangani pesan berbedam1,m2, danm3. Verifier harus mempertahankan pasangan[PK1, m1],[PK2, m2],[PK3, m3]dan memanggilAggregateVerifyyang berlaku; menggantinya dengan satu pesan danFastAggregateVerifymemverifikasi klaim berbeda. Dalam skema Basic, pesan juga harus berbeda. - Agregasi bukan threshold signing. Dalam grup
8anggota, agregasi biasa tanda tangan anggota[1, 2, 4, 6, 8]menghasilkan satu tanda tangan dan daftar lima penanda tangan. Ini tidak menjadi tanda tangan threshold5-of-8di bawah satu kunci publik grup. Threshold-BLS sejati memerlukan distributed key generation atau trusted dealer, indeks share, dan aturan interpolasi; asumsi kepercayaan dan kegagalannya harus diaudit terpisah.
Risiko
- Memakai kurva, orientasi grup, atau ciphersuite yang berbeda dari protokol.
- Menandatangani bytes serialisasi berbeda meski menampilkan pesan yang sama.
- Menghilangkan domain fork, operasi, atau aplikasi sehingga memungkinkan replay lintas konteks.
- Memperlakukan Internet-Draft kedaluwarsa sebagai standar final yang tidak berubah.
- Menerima encoding titik cacat, nonkanonis, atau infinity.
- Melewatkan pemeriksaan subgroup dan menerima input invalid-curve atau small-subgroup.
- Memakai code hash-to-curve buatan sendiri, bukan suite dan test vectors yang ditetapkan.
- Menghasilkan kunci rahasia bias, nol, duplikat, bocor, atau dapat diprediksi.
- Memakai ulang kunci pada protokol dengan asumsi proof-of-possession dan domain berbeda.
- Mengagregasi kunci publik tidak terdaftar tanpa pertahanan rogue key yang diwajibkan.
- Memanggil verifikasi cepat pesan sama untuk pesan berbeda atau root tidak konsisten.
- Menukar, menduplikasi, atau menghilangkan asosiasi kunci publik dengan pesan.
- Memercayai participant bitlist tanpa memeriksa keanggotaan komite dan keunikan indeks.
- Menghitung tanda tangan, bukan stake, bobot, atau threshold yang ditentukan protokol.
- Menganggap satu agregat mengungkap tanda tangan individual yang tidak valid.
- Mencampur agregasi biasa, multisignatures, dan threshold signatures.
- Menganggap validitas tanda tangan sebagai bukti availability, kebenaran eksekusi, atau finality.
- Mengabaikan equivocation, pesan slashable, jendela waktu, atau konteks fork choice.
- Bergantung pada satu pustaka, fitur CPU, atau optimasi batch verification yang tidak diperiksa.
- Meremehkan biaya pairing, input denial-of-service, side channel, kustodi kunci, upgrade, dan ketiadaan keamanan pascakuantum.
Kesalahpahaman umum
- Tanda tangan agregat membuktikan setiap validator berpartisipasi.
- Kunci publik dan tanda tangan BLS apa pun dapat digabungkan aman tanpa aturan proof-of-possession.
- Agregasi berukuran konstan menghapus kebutuhan mengirim atau merekonstruksi keanggotaan penanda tangan.
- Agregasi BLS dan threshold BLS adalah konstruksi yang sama.
- Tanda tangan BLS valid membuat blok, pesan bridge, atau protokol aman secara ekonomi dan final.
Topik terkait
Sumber
- BLS Signatures - Internet Research Task Force (accessed: 2026-08-12)
- RFC 9380: Hashing to Elliptic Curves - RFC Editor (accessed: 2026-08-12)
- Short Signatures from the Weil Pairing - Springer (accessed: 2026-08-12)
- Ethereum Proof-of-Stake Consensus Specifications - Ethereum Foundation (accessed: 2026-08-12)
- Phase 0 Beacon Chain Specification - Ethereum Foundation (accessed: 2026-08-12)
- Ethereum Annotated Specification: BLS Signatures - Ethereum Foundation (accessed: 2026-08-12)
- EIP-2537: Precompile for BLS12-381 curve operations - Ethereum Improvement Proposals (accessed: 2026-08-12)
- Consensus mechanisms - Ethereum.org (accessed: 2026-08-12)