들어가며
블록체인의 확장성 문제를 해결하기 위해서는 많은 트랜잭션을 처리해야 하며, 분산화를 유지한 채 수 명의 사용자 요구를 충족할 수 있는 시스템 능력이 필요합니다. 이를 위한 전제 조건으로는 빠른 속도, 저렴한 비용, 사용이 편한 UX, 프라이버시 등이 있습니다. 과거의 확장 솔루션은 이러한 요구사항 중 하나 이상을 포기해야 했지만, 최근 영지식 증명의 발전으로 이러한 조건들을 함께 해결할 수 있는 새로운 가능성이 열렸습니다.
영지식 증명(Zero Knowledge Proofs)는 암호화 네트워크에서 개인정보를 보호할 수 있는 방법이며, ‘Big Blockchain Challenges’를 해결하는 데 유용하다는 것을 입증했습니다. 실제로 오늘날 산업계에서 영지식 증명은 암호화 검증 또는 인증에 대한 유효성을 증명하고, 효과적인 확장 솔루션을 구축하며, 정보 저장 및 여러 DApp 구성 요소를 개선하는 방안으로 제안되고 있습니다.
다른 영지식 증명 프로토콜로는 우리가 앞선 포스트에서 살펴본 zk-SNARKs을 비롯한 Sonic, Plonk, Slonk, Marlin, SuperSonic, Halo, Fractal 등이 있습니다. 우리는 이러한 프로토콜을 통해 블록체인 시스템에서 영지식 증명을 효과적으로 활용할 수 있습니다.
영지식 증명의 주요한 특징은 데이터를 공개하지 않고 데이터의 유효성을 증명할 수 있다는 것입니다. 블록체인에서는 이러한 특징을 활용해 확장성을 위한 새로운 방안을 탐색했습니다. 오늘 포스트에서는 블록체인 확장성을 위해 영지식 증명을 활용한 zkRollup을 살펴봅니다.
본 포스팅에서는 영지식 증명 활용에 대한 정보를 제외한 각 솔루션의 체계, 활용성, 확장의 정도는 구체적으로 다루지 않습니다. 본 포스팅에서는 ‘블록체인 확장을 위해 영지식 증명을 활용한 이유’, ‘이를 구현하기 위한 체계’에 대해 중점적으로 살펴봅니다.
[블록체인 영지식 증명 시리즈]
영지식 증명의 개요
- 영지식 증명 이해하기
- 영지식 증명의 개요
- ZKP Under the Hood - 비대화형 영지식 증명 이해하기
- 대화형 증명 시스템 (Interactive Proof System)
- 대화형 영지식 증명 시스템 (Interactive Zero-Knowledge Proof System)
- 비대화형 영지식 증명 시스템(Non-Interactive Zero-Knowledge Proof System)
영지식 증명 구현을 위한 타원곡선 이해하기
- 타원곡선의 수학 이야기(1)
- 타원곡선이 왜 생겼나요?
- 왜 타원곡선이라 부르나요?
- 타원곡선의 특징은 무엇인가요? - 타원곡선의 수학 이야기(2)
- 타원곡선이 암호학에서 사용되는 이유는 무엇인가요?
- 타원곡선의 수학적 정의는 무엇인가요?
블록체인에서 가장 많이 사용하는 zk-SNARKs 이해하기
- zk-SNARKs의 수학 이야기(1)
- Homomorphic Hidings
- Blind Evaluation of Polynomials
- The Knowledge of Coefficient Test and Assumption - zk-SNARKs의 수학 이야기(2)
- How to make Blind Evaluation of Polynomials Verifiable
- From Computations to Polynomials
- The Pinocchio Protocol - zk-SNARKs의 수학 이야기(3)
- Pairing of Elliptic Curves
영지식 증명을 활용한 블록체인 확장 솔루션
ZK Rollup
Summary
- 블록체인 확장을 위해 영지식 증명을 활용한 이유
다른 참여자에게 데이터를 공개하지 않고 블록의 유효성을 이더리움 네트워크에 공개적으로 기록하고, 이 과정에서 컴퓨터 파워와 저장 리소스를 줄여 블록체인 확장성을 향상 - 이를 구현하기 위한 체계
zk-SNARK를 통해 블록의 유효성 검증을 위한 트랜잭션 데이터 보유량을 줄이고, rollup 방식을 통해 대량의 전송(transfer)을 하나의 트랜잭션으로 묶어서 처리
- secret: Transactors가 전송한 트랜잭션 데이터
- prover: Relayers
- verifier: 이더리움 smart contract
개요
ZK Rollup은 모든 자금을 메인체인(예: 이더리움)의 smart contract에 취하고, 필요한 계산과 데이터의 저장은 모두 off-chain에서 수행하는 layer2 확장 솔루션입니다. 우리는 이와 유사한 layer2 솔루션인 Plasma를 알고 있습니다. 실제로 ZK Rollup은 Plasma의 결함을 보완하는 layer2 솔루션입니다.
Plasma는 2017년 Joseph Poon과 Vitalik Buterin이 발표한 블록체인 확장 솔루션으로, 이더리움 블록체인을 위해 Layer2 블록을 사이드 체인 형식으로 배치하는 방법입니다. Plasma는 이더리움에 추가된 사이드체인 블록의 단일 해시(single hash)만 사용하여 수백 개의 사이드체인의 트랜잭션을 오프라인으로 처리할 수 있는 기능을 제공합니다.
Plasma은 기본적인 결함이 존재합니다. 이를 간략히 살펴보면, Plasma에서의 사용자는 사이드체인에서 자금을 철회하기 위해서는 ‘exit game’을 수행해야 하는데, 이 과정에서 사용자는 유효성 검증을 위해 충분한 양의 데이터를 보유해야 합니다. 또한 사용자는 이 챌린지(challenge) 기간 동안 온라인 상태를 유지해야 하고, 이를 이행하지 못할 경우 보상금을 잃게 됩니다. (Plasma에 대한 자세한 내용은 차후 포스팅에서 다루겠습니다)
ZK Rollup은 이러한 결함을 보완하여 사용자가 해당 프로그램을 보다 적절하게 사용할 수 있도록 사용자 친화적인 방법을 제공하고, 리소스를 절감하는 방법을 제공합니다. 또한 영지식 증명을 활용하여 Layer1 네트워크(예: 이더리움)에 각 트랜잭션의 일부 데이터를 공개적으로 게시하여 Plasma의 문제인 ‘데이터 가용성’을 해결합니다.
ZK Rollup의 영지식 활용
ZK Rollup은 영지식 증명 프로토콜인 zk-SNARK를 통해 블록체인 확장성을 향상합니다. 영지식 증명은 암호학에서 누군가가 상대방에게 어떤 상태가 참이라는 것을 증명할 때, 그 문장의 참 거짓 여부를 제외한 그 어떤 정보도 노출하지 않는 절차를 의미합니다. ZK Rollup이 사용하는 zk-SNARK는 non-interactive zkp로 상태의 참 거짓을 검증할 때 참여자들 간의 상호작용 없이 단방향의 데이터 제공을 통해 이를 가능하게 합니다.
이 특징을 ZK Rollup에 대입하면,
영지식 증명은 어떤 데이터의 유효성을 검증하기 위해 참여자에게 전체 데이터를 제시하지 않아도 되며, 참여자는 데이터를 확인하지 않고 유효성을 인정할 수 있는 절차입니다.
ZK Rollup은 이러한 기능을 통해 블록체인 네트워크 참여자에게 데이터를 공개하지 않고, 블록의 유효성을 공개적으로 이더리움 네트워크에 기록하기 위해 영지식 증명을 사용합니다.
ZK Rollup은 대량의 전송(transfer)을 하나의 트랜잭션으로 묶어서 처리하며, 이 과정을 롤업(rollup)이라 합니다. Plasma의 경우 전송마다 하나의 트랜잭션을 생성해 처리하지만, ZK Rollup은 수백 개의 전송을 하나의 트랜잭션으로 롤업하여 처리해 블록체인 확장성을 향상합니다.
ZK Rollup의 영지식 활용 체계를 좀 더 살펴보기 위해 두 가지 유형의 역할을 살펴봅니다.
Trasnactors
Transactors는 전송을 만들고 이를 네트워크에 전파하는 사용자입니다. 전송 데이터는 ‘to’와 ‘from’ 주소, 거래할 금액, 네트워크 수수료, nonce로 구성되어 있습니다. Transactors의 전송을 받은 메인체인의 smart contract는 주소와 거래 금액을 두 개의 머클 트리에 각각 저장합니다.
Relayers
Relayers은 Trasnactors가 전파한 대량의 전송을 수집하여 하나의 트랜잭션으로 결합합니다. 이 과정에서 Relayers는 zk-SANRK를 통해 ‘간결한 SANRK proof’를 생성해야 하며, 이는 메인체인의 smart contract에 의해 검증됩니다. 즉, Relayers는 영지식 증명에서 Prover의 역할을 수행하며, smart contract는 Verifier 역할을 수행합니다.
zk-SANRK는 영지식 증명을 통해 블록의 유효성을 검증하기 위해 트래잭션이 보유해야 하는 데이터의 양을 줄일 수 있으며, 이러한 기능은 zk-SANRK의 특징인 ‘간결성(succinctness)’를 통해 가능합니다.
메인체인의 smart contract에 자금을 넣은 누구나 ‘Relayers’가 될 수 있습니다. 이 자금은 Relayers가 롤업을 무단으로 변경하거나 보류하지 않도록 하는 안전장치의 역할을 합니다.
smart contract는 하나의 트랜잭션을 묶인 모든 전송을 해체하고 이에 대한 유효성을 검증합니다. 이후 모든 블록에 대한 데이터는 txCALLDATA로 메인체인 네트워크에 공개적으로 게시되며, 이 과정은 Plasma의 문제인 ‘데이터 가용성’을 해결합니다. 또한, 이에 따라 Relayers가 유효하지 않거나 조작된 상태를 커밋하는 것을 불가능하게 합니다.
마치며
이번 포스팅에서는 영지식 증명을 활용한 블록체인 확장 솔루션인 zkRollup에 대해서 다루었으며, 새로운 솔루션이나 서비스에 대해서 꾸준히 업데이트할 예정입니다. 추가로 분석해 주었으면 하는 주제와 관련한 솔루션과 서비스를 response에 달아주시면, 선정하여 업데이트하겠습니다.
email: tjfh3217@gmail.com
[블록체인 영지식 증명 시리즈]
영지식 증명의 개요
- 영지식 증명 이해하기
- 영지식 증명의 개요
- ZKP Under the Hood - 비대화형 영지식 증명 이해하기
- 대화형 증명 시스템 (Interactive Proof System)
- 대화형 영지식 증명 시스템 (Interactive Zero-Knowledge Proof System)
- 비대화형 영지식 증명 시스템(Non-Interactive Zero-Knowledge Proof System)
영지식 증명 구현을 위한 타원곡선 이해하기
- 타원곡선의 수학 이야기(1)
- 타원곡선이 왜 생겼나요?
- 왜 타원곡선이라 부르나요?
- 타원곡선의 특징은 무엇인가요? - 타원곡선의 수학 이야기(2)
- 타원곡선이 암호학에서 사용되는 이유는 무엇인가요?
- 타원곡선의 수학적 정의는 무엇인가요?
블록체인에서 가장 많이 사용하는 zk-SNARKs 이해하기
- zk-SNARKs의 수학 이야기(1)
- Homomorphic Hidings
- Blind Evaluation of Polynomials
- The Knowledge of Coefficient Test and Assumption - zk-SNARKs의 수학 이야기(2)
- How to make Blind Evaluation of Polynomials Verifiable
- From Computations to Polynomials
- The Pinocchio Protocol - zk-SNARKs의 수학 이야기(3)
- Pairing of Elliptic Curves