쌍선형 페어링 (Bilinear Pairing)
쌍선형 페어링(Bilinear Pairing)은 두 군 G₁, G₂의 원소 쌍을 제3의 군 G_T의 원소로 보내는 함수 e: G₁ × G₂ → G_T로, e(aP, bQ) = e(P, Q)ab라는 쌍선형성을 만족합니다. 이 성질 덕분에 '숨겨진 지수끼리의 곱'을 검증할 수 있어 BLS 서명, KZG 커밋먼트, Groth16 같은 현대 암호의 핵심 도구가 되었습니다.
자세히 알아보기
암호학에서 쓰는 페어링은 세 가지 조건을 만족해야 합니다. ① 쌍선형성: 위 등식. ② 비퇴화성: 생성원 P, Q에 대해 e(P, Q) ≠ 1. ③ 효율성: 실제로 빠르게 계산 가능. 구체적으로는 타원곡선 위의 베유(Weil) 페어링, 테이트(Tate) 페어링과 이를 최적화한 아테(Ate) 페어링이 사용됩니다.
페어링이 강력한 이유는 이산 로그를 모르는 상태에서도 관계를 확인할 수 있기 때문입니다. 예를 들어 aP, bQ, cP가 주어졌을 때 c = ab인지 e(aP, bQ) = e(cP, Q)로 확인할 수 있습니다. 이 '한 번의 곱셈 검사' 능력이 짧은 서명, 신원 기반 암호, 다항식 커밋먼트, 상수 크기 영지식 증명을 가능하게 합니다.
모든 곡선에서 효율적인 페어링이 존재하는 것은 아닙니다. '임베딩 차수'가 작은 페어링 친화 곡선이 필요하며, 대표적으로 BN254(alt_bn128)와 BLS12-381이 있습니다. 페어링은 이산 로그 문제를 G_T의 유한체 이산 로그로 옮기기도 하므로, 곡선 크기는 유한체 쪽 공격까지 고려해 정해야 합니다. 실제로 BN254는 2016년 이후 개선된 수체 체 공격 때문에 보안 강도가 약 100비트 수준으로 재평가되었고, 새 시스템에는 BLS12-381이 선호됩니다.
블록체인·암호화폐에서는
Ethereum은 2017년 비잔티움 업그레이드에서 EIP-196/197로 BN254 곡선의 덧셈·곱셈·페어링 검사 프리컴파일을 추가해 온체인 zk-SNARK 검증(Groth16 등)을 가능하게 했습니다. Tornado Cash 같은 프라이버시 프로토콜과 많은 zk 롤업이 이 프리컴파일을 이용했습니다. 합의 계층은 BLS12-381 페어링으로 BLS 서명을 검증하고, EIP-4844 블롭의 KZG 커밋먼트 검증에도 페어링이 쓰입니다. 2025년 5월 Pectra 업그레이드(EIP-2537)로 BLS12-381 프리컴파일도 실행 계층에 추가되었습니다.
쉽게 말하면
서로 다른 두 상자에 숨긴 숫자를 열어 보지 않고도 '이 두 숫자의 곱이 저 숫자와 같다'를 확인해 주는 저울입니다.
예시
BLS 서명 검증: e(g, σ) = e(P, H(m)). σ = x·H(m), P = x·g이면 양변 모두 e(g, H(m))x가 되어 등식이 성립합니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.