BLS 서명 (Boneh–Lynn–Shacham Signature)

암호학수정일

BLS 서명은 2001년 댄 보네(Dan Boneh), 벤 린(Ben Lynn), 호바브 샤참(Hovav Shacham)이 제안한 전자서명으로, 쌍선형 페어링을 이용합니다. 서명이 짧고 서로 다른 메시지·키의 서명 여러 개를 하나로 합칠 수 있어, 수십만 개가 넘는 검증인이 참여하는 Ethereum 지분 증명 합의에 채택되었습니다.

자세히 알아보기

개인 키 x, 공개 키 P = x·g일 때 메시지 m의 서명은 σ = x·H(m)입니다. 여기서 H는 메시지를 곡선 위의 점으로 보내는 '해시 투 커브' 함수(RFC 9380)입니다. 검증은 페어링 등식 e(g, σ) = e(P, H(m))가 성립하는지 확인하는 것입니다. 서명 과정에 난수가 없어 결정적이며, 같은 메시지와 키에는 항상 같은 서명이 나옵니다.

핵심 장점은 집계(aggregation)입니다. 서명 σ₁, σ₂, …, σₙ을 단순히 더하면 하나의 집계 서명이 되고, 검증자는 이를 하나의 페어링 등식 e(g, σ) = e(P₁, H(m₁))·…·e(Pₙ, H(mₙ))로 한꺼번에 확인합니다. 서로 다른 메시지라면 페어링이 n + 1번 필요하지만, 같은 메시지에 대한 서명이라면 공개 키도 더해 하나로 만들 수 있어 페어링 2번으로 끝납니다. 또한 샤미르 비밀 분산과 결합하면 임계값 서명을 간단히 만들 수 있습니다.

단점과 주의점도 있습니다. 페어링 연산은 ECDSA·Ed25519 검증보다 느립니다. 공개 키 집계 시 공격자가 다른 사람의 키를 상쇄하는 공개 키를 등록하는 '악성 키(rogue key) 공격'이 가능하므로, 키 소유 증명(proof of possession)이나 메시지 증강 같은 대책이 필요합니다. 표준화는 IRTF CFRG 초안(draft-irtf-cfrg-bls-signature)으로 진행 중입니다. 양자 컴퓨터에 대해서는 다른 타원곡선 서명과 마찬가지로 안전하지 않습니다.

블록체인·암호화폐에서는

Ethereum 합의 계층(비콘 체인, 2020년 12월 가동)은 BLS12-381 곡선 위 BLS 서명을 사용합니다. 공개 키는 48바이트(G1), 서명은 96바이트(G2)이며, 같은 위원회(committee)에 속한 수많은 검증인의 증명(attestation)을 하나의 서명으로 집계해 네트워크 부담을 크게 줄입니다. 2025년 5월 Pectra 업그레이드(EIP-2537)로 실행 계층에도 BLS12-381 프리컴파일이 추가되어 스마트 컨트랙트에서 BLS 서명 검증이 쉬워졌습니다. 이 밖에 drand 같은 분산 난수 비콘은 임계값 BLS 서명을 사용합니다.

쉽게 말하면

수천 명이 각자 찍은 도장을 겹쳐서 도장 하나 크기로 만들 수 있는 서명입니다. 확인하는 사람은 겹친 도장 하나만 보면 됩니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.