ZKByte: 제로 지식 증명과 BitVm을 기반으로 한 비트코인 Layer2 확장 솔루션
저자:ZKBase
본 설계의 주요 목표는 비트코인 블록체인에 맞춤형 Layer2 네트워크를 구축하는 것입니다. 비트코인 Layer2 네트워크는 비트코인 생태계 내에서 더 빠르고 효율적인 거래에 대한 증가하는 수요를 충족하기 위해 설계되었습니다. 특정 거래 처리 작업을 메인넷에서 분리함으로써 비트코인 메인넷의 혼잡 문제를 완화하고 거래 확인에 필요한 시간을 크게 줄이는 것을 목표로 합니다.
비트코인 가상 머신(VM)의 계산 능력에 대한 고유한 제한을 감안할 때, 우리의 설계는 BitVM을 사용하여 두 레이어 네트워크 간에 스마트 계약을 실행할 수 있는 잠재력을 보여줍니다. 도전 및 응답 방식을 활용함으로써 BitVM은 비트코인 네트워크의 프로그래머블성을 위한 새로운 방법을 제시하며, 전통적인 제한을 깨뜨립니다.
비트코인 Layer2 네트워크의 보안성과 무결성을 강화하기 위해, 이 설계는 제로 지식 증명(ZK) 기술을 통합하여 상태 검증을 구현합니다. 이러한 첨단 암호화 기술은 비트코인 메인넷이 Layer2 네트워크의 상태를 효과적으로 검증할 수 있도록 하며, 기본 거래의 프라이버시와 기밀성을 손상시키지 않습니다. 제로 지식 증명은 정보를 검증하면서 거래의 구체적인 세부 사항을 누설하지 않아 프라이버시를 보호하면서 Layer2 네트워크의 무결성을 보장합니다.
전반적으로 이 설계는 Layer2 네트워크, BitVM을 통한 스마트 계약 실행, 제로 지식 증명 기술을 통한 상태 검증을 통해 비트코인 네트워크의 확장성, 속도 및 효율성을 높이는 동시에 기본 거래의 프라이버시와 보안을 유지하는 것을 목표로 합니다.
0、아키텍처
Layer2 블록체인은 계좌 모델을 채택합니다. 전체 블록체인의 상태는 Halo2 증명 시스템 기반의 zkVM을 통해 검증됩니다. Layer2 상태는 비트코인 메인 네트워크와 동기화되며, 모든 Layer2 상태는 BitVM이 구현한 제로 지식 증명(ZKP) 검증기에 의해 검증됩니다. 우리는 모든 Layer2 상태를 추적하기 위해 UTXO를 사용합니다. 또한, 우리는 신뢰할 수 있는 오라클을 사용하여 잠금/해제 스크립트의 입력/출력이 Layer2 프로토콜을 따르도록 보장합니다.
1、Layer2 위원회 및 신뢰할 수 있는 오라클
선택된 사용자 그룹으로 구성된 Layer2 위원회는 Layer2 네트워크의 전반적인 운영 상태를 감독합니다. 프로토콜 문제 발생 시, 위원회는 개입하여 프로토콜을 중단하고 모든 사용자의 자산을 보호할 수 있습니다. 신뢰할 수 있는 오라클은 입력/출력 UTXO 및 스크립트의 정확성을 검증하는 데 매우 중요합니다.
2、첫 번째 레이어에서 두 번째 레이어로
비트코인 네트워크에 Layer2 프로토콜을 나타내는 단일 Taproot 주소를 생성합니다. UTXO를 생성하고 이를 Taproot 주소로 전송할 때, 해당 UTXO는 실제로 비트코인 메인넷에서 Layer2로 "충전"됩니다.
프로토콜 또는 위원회 계좌는 Layer2로 "충전"된 모든 UTXO 자산의 "전송" 권한을 전담합니다. 프로토콜, 신뢰할 수 있는 오라클 또는 위원회 계좌만이 UTXO의 소유권을 변경할 수 있습니다. 신뢰할 수 있는 오라클은 소유권 이전 거래에 올바른 출력 UTXO 스크립트가 포함되도록 보장합니다.
3、비트코인 메인넷으로의 블록 동기화
모든 Layer2 네트워크의 상태는 블록 형태로 비트코인 메인넷에 동기화됩니다. 하나의 블록에 대해 다음 정보를 제공해야 합니다:
- 특정 블록 내의 거래
- 이러한 거래 적용 후의 새로운 계좌 상태
- 현재 블록 상태에서의 새로운 UTXO(프로토콜이 손상되더라도 항상 준비됨)
- 비트코인 네트워크의 블록 정보
- 제로 지식 증명(이전 블록에서 현재 블록으로의 상태 전환이 올바르다는 것을 증명) 이러한 모든 비트코인 메인넷의 상태는 UTXO 거래 기록에 기록됩니다.
3.1 증명에 대한 추가 정보
제로 지식 증명은 Layer2의 정확성을 검증하는 데 사용됩니다. 다음 내용을 증명하려고 합니다:
- Layer2의 블록 거래가 올바르게 서명되었음.
- 모든 계좌의 새로운 상태가 올바르게 처리되었음.
- 비트코인 메인넷의 특정 블록 이전의 모든 충전 거래가 올바르게 처리되었음.
- 현재 상태에 대해 모든 UTXO의 할당이 올바르게 생성되었음.
3.2 블록 정보 도전
비트코인 메인넷에서 지정된 블록 정보의 정확성을 보장하기 위해, 우리는 도전 및 응답 방식을 사용합니다. 증명자는 잠금 시간 동안 특정 블록 이후에 N개의 블록이 더 존재함을 지적하여 블록 정보의 정확성을 증명할 수 있습니다.
3.3 ZKP 회로 및 BitVM 강화
BitVM 논문에서 제시된 바와 같이, ZKP 검증은 두 참여자가 도전할 수 있는 이진 회로로 표현될 수 있습니다. 미리 서명된 거래를 통해 회로의 비트 약속을 얻기 위해 도전을 보낼 수 있습니다. 0과 1을 드러내면 도전이 성공합니다. BitVM을 사용하여 ZKP를 검증하기 위해서는 다음 두 가지 사항에 유의해야 합니다:
동일한 이진 회로 약속은 한 번만 사용할 수 있습니다. 즉, 동일한 회로 약속이 여러 블록에 사용될 경우, 하나의 비트 약속의 0과 1이 드러날 수 있습니다.
ZKP 검증을 위해서는 회로의 만족성 외에도 "공공 입력"을 확인해야 합니다.
이 두 가지 단점을 처리하기 위해, Layer2의 각 블록에 대해 고유한 이진 회로를 생성하고 "공공 입력"을 고정합니다. 비트코인 스크립트는 공공 입력의 해시를 처리하고 확인하는 데 사용됩니다. 올바른 공공 입력 비트 약속은 신뢰할 수 있는 오라클에 의해 확인됩니다. 회로의 만족성에 관해서는 위원회 내의 어떤 구성원도 도전을 제기할 권리가 있습니다.
4、Layer2에서 비트코인 메인넷으로
자산은 두 가지 방법으로 Layer2에서 비트코인 메인넷으로 이동할 수 있습니다: 출금(withdrawal) 및 강제 출금(force-withdrawal). 출금 거래는 Layer2에서 시작되며, ZKP 회로는 거래가 예상대로 처리되도록 보장합니다. 강제 출금 거래는 비트코인 네트워크에서 시작됩니다.
4.1 출금 및 강제 출금 거래
Layer2에서 시작된 출금 거래는 ZKP 회로를 사용하여 검증되어 거래가 올바르게 처리되도록 합니다. 비트코인 네트워크에서 시작된 강제 출금 거래는 다음 블록 상태 업데이트에 포함되어야 합니다.
4.2 UTXO 할당
블록 상태가 업데이트될 때, UTXO 할당이 동기화됩니다. 프로토콜이 중단된 경우, 모든 UTXO를 적용하여 모든 사용자 자산의 안전을 보장할 수 있습니다. 이러한 UTXO 중에서 출금 또는 강제 출금된 UTXO만이 프로토콜 서명을 받습니다.
5、Layer2 종료
ZKP가 검증되지 않으면 위원회는 프로토콜을 중단하고 종료해야 합니다. 프로토콜이 중단되면 위원회는 Layer2 최신 블록 상태에서 지정된 모든 UTXO 할당에 대해 서명합니다. 이러한 서명을 통해 사용자는 Layer2에서 출금할 수 있으며 손실 없이 진행할 수 있습니다.
참고 문헌:
- BitVM: https://bitvm.org/bitvm.pdf
- 비트코인 백서: https://bitcoin.org/bitcoin.pdf
- Halo2 설명: https://electriccoin.co/blog/explaining-halo-2/