BLS Signatures: Tanda Tangan Pendek yang Dapat Diagregasi dari Bilinear Map

Penulis Boneh, Dan; Lynn, Ben; Shacham, Hovav
Tahun 2001
Proyek BLS Signatures
Lisensi Public Domain
Sumber Resmi iacr.org/archive/asiacrypt2001/22480516.pdf
Disclaimer: Halaman ini merupakan ringkasan dan analisis edukatif dari whitepaper atau makalah teknis resmi. Konten ini disajikan untuk tujuan pendidikan semata dan bukan merupakan saran investasi atau keuangan. Selalu baca dokumen asli dan lakukan riset mandiri sebelum mengambil keputusan keuangan apa pun.

“Short Signatures from the Weil Pairing” (2001, ASIACRYPT) oleh Dan Boneh, Ben Lynn, dan Hovav Shacham memperkenalkan tanda tangan BLS — skema tanda tangan yang menghasilkan tanda tangan pendek (48 byte dalam BLS12-381) dengan properti kritis: tanda tangan dari banyak penanda tangan dapat diagregasi menjadi satu tanda tangan tunggal yang dapat diverifikasi dengan satu operasi pairing. BLS signatures digunakan dalam beacon chain Ethereum Proof of Stake, di mana 500.000+ validator menandatangani setiap attestasi — agregasi mengurangi data on-chain dari gigabyte menjadi kilobyte.

Publikasi dan Konteks

Sebelum BLS, agregasi tanda tangan tidak mungkin dengan ECDSA (yang digunakan Bitcoin dan Ethereum). Setiap validator harus menyimpan tanda tangannya sendiri secara terpisah. Untuk sistem dengan ratusan ribu validator (seperti beacon chain Ethereum), biaya penyimpanan dan verifikasi ini akan menjadi hambatan yang menghancurkan. BLS memecahkan ini dengan menggunakan bilinear pairing — operasi kriptografis yang memungkinkan “penjumlahan” banyak tanda tangan menjadi satu.

Cara Kerja BLS

BLS beroperasi di atas kurva eliptik ramah pairing (Ethereum menggunakan BLS12-381):

Pembuatan Kunci:

  • Private key: skalar acak sk
  • Public key: titik pk = sk × G₁ (di kurva G1)

Penandatanganan:

  • Pesan m di-hash ke titik H(m) di kurva G2
  • Tanda tangan: σ = sk × H(m) — titik G2 (48 byte di BLS12-381)

Verifikasi:

  • Periksa: e(G₁, σ) = e(pk, H(m)) menggunakan bilinear pairing

Agregasi (properti kunci):

  • n tanda tangan σ1, …, σn diagregasi: σagg = σ1 + ... + σn
  • Verifikasi: e(G₁, σagg) = e(pk1 + ... + pkn, H(m))
  • Satu verifikasi pairing sudah cukup untuk semua n tanda tangan

Ethereum Beacon Chain

Beacon chain menggunakan BLS signatures untuk:

  • Attestasi: Setiap validator menandatangani pandangan mereka tentang kepala chain (voting per slot)
  • Aggregate attestations: Aggregator menggabungkan attestasi dari ~128 validator menjadi satu tanda tangan
  • Sync committee: 512 validator menandatangani setiap blok dengan BLS; satu agregat membuktikan konsensus komite

Tanpa BLS, beacon chain Ethereum perlu menyimpan dan memverifikasi 500.000 tanda tangan individual per epoch — ~25 MB data tanda tangan. BLS mengurangi ini menjadi kilobyte.

BLS vs. ECDSA vs. Schnorr

Properti BLS ECDSA Schnorr
Agregasi Ya (native) Tidak Ya (MuSig2)
Ukuran tanda tangan 48 byte 64–71 byte 64 byte
Kecepatan verifikasi Lambat (pairing) Cepat Cepat

Istilah Terkait

Referensi