
"파이프라인 모드"를 통해 증명 생성 효율성을 어떻게 향상시킬 수 있는가?
글: 강수열, Fox Tech CEO; 맹현제, Fox Tech 수석 과학자
검토: 임연서, Fox Tech CTO
서론
오늘날 디지털 시대에 블록체인 기술의 급속한 발전과 함께 데이터 프라이버시와 보안에 대한 관심이 점점 더 커지고 있다. 더욱 효율적이고 확장 가능한 블록체인 애플리케이션을 구현하기 위해 다양한 솔루션이 제안되었으며, 그 중 하나가 제로노워드프루프(Zero-Knowledge Proof) 기술이다. 제로노워드프루프는 민감한 정보를 노출하지 않으면서도 특정 진술의 진위를 검증할 수 있는 강력한 암호화 도구이다.
최근 들어 zkRollup은 블록체인 확장성 기술의 중요한 혁신 중 하나로서 큰 주목을 받고 있다. zkRollup은 다수의 거래를 한 번에 묶어 오프체인에서 실행하고 제로노워드프루프 기술을 활용해 이들 거래의 정확성을 검증함으로써 블록체인의 처리량과 확장성을 크게 향상시킨다. 그리고 zkRollup 구현에서 거래를 어떻게 분배하여 패키징하고 증명을 생성하는가는 시스템의 핵심 요소가 된다.
레이어1 시스템에서는 거래가 블록 형태로 패키징되어 마이너가 계산한다. 반면 레이어2 시스템에서는 거래를 어떻게 패키징하거나 레이어2 블록을 어떻게 생성할 것인지 별도로 고려해야 한다.
FOX는 zkEVM 기반의 레이어2 zkRollup 확장 프로젝트로서, 이러한 문제 해결을 위해 파이프라인 방식의 처리 방법을 적용하여 거래를 배치 처리하는 것을 탐색하고 있으며, 이를 통해 효율성이 크게 향상될 것으로 기대하고 있다.
본문에서는 zkRollup 내에서 파이프라인 방식으로 제로노워드프루프를 생성하는 응용 사례를 심층적으로 살펴볼 것이다. 먼저 기본적인 거래 패키징 방식을 분석하고, 이후 파이프라인 방식의 제로노워드프루프 생성 기술에 집중하여 그 원리와 적용 사례를 자세히 분석하겠다.
일반적인 거래 패키징 방식
기존 블록체인 시스템에서 거래 확인 및 패키징은 시간과 리소스를 많이 소모하는 과정이다. 일반적으로 거래는 개별로 검증되어 블록에 추가된 후 합의 알고리즘을 통해 상태 갱신이 이루어진다. 그러나 이러한 개별 검증 및 패키징 방식은 처리량 저하와 높은 지연 시간 등 명백한 한계가 존재한다.
일반적인 거래 패키징 프로세스에서 우선 처리 대기 중인 일괄 거래들이 수집된다. 사용자가 제출한 거래 또는 다른 체인에서 온 거래일 수 있다. 이후 이들 거래는 합법성과 유효성을 보장하기 위해 검증된다. 검증에는 서명 확인, 거래 유효성 및 일관성 검사 등이 포함된다. 검증을 통과하면 이들은 하나의 배치로 패키징되어 제출 대기 블록이 된다.
zkRollup 시스템에서도 사용자가 제출한 거래는 먼저 트랜잭션 풀에 저장되어 대기한다. FOX 시스템에서는 Sequencer가 정기적으로 트랜잭션 풀에서 거래를 가져와 로컬에서 실행 및 정렬하여 거래 패키지, 즉 블록을 형성한다. 이때 거래 실행 결과를 레이어1에 제출하며, 동시에 이 결과와 거래 데이터를 증명을 생성하는 Folder 노드에 전달한다.
제로노워드프루프 알고리즘에 대한 기본 이해에 따르면(Fox의 이전 시리즈 글 참조), Folder가 증명을 생성하려면 입력값과 실행 완료 결과가 필요하다. 따라서 일반적인 방식대로라면 Sequencer가 모든 거래를 완전히 실행한 후 Folder에 넘겨줘야 한다. 계산 자원을 보다 효과적으로 활용하기 위해 Sequencer가 일부 거래만 실행한 후 바로 Folder에 넘겨 증명 생성을 시작하길 원한다.
FOX가 탐색 중인 파이프라인 처리 방식
위 목표를 달성하기 위해 Sequencer는 거래를 배치로 나누어 실행하고, 한 배치 실행 후 즉시 중간 결과를 Folder에 전송해야 한다.
구체적으로 설명하자면, 전체 거래 수가 100건이고 한 배치당 거래 수가 10건이라면, 파이프라인 처리 방식은 아래 그림과 같이 표현할 수 있다.

그림 1: 파이프라인 모드로 거래 증명 생성
다음으로 두 방식의 시간 소요를 간단히 분석하고, 어떤 경우에 파이프라인 방식이 더 효율적인지 논의하겠다. 단순화를 위해 여기서는 Sequencer가 데이터를 Folder에 전송하는 시간은 고려하지 않는다.
거래 패키지의 총 거래 수를 n, 배치 수를 k, Sequencer의 실행 시간 함수를 exe(), Folder의 증명 생성 시간 함수를 prove(), 증명 집합 시간 함수를 aggr()이라 하고, 일반 방식의 총 시간을 Sum1, 파이프라인 방식의 총 시간을 Sum2라 하자.
따라서 위 과정에 따라 일반 방식은 Sequencer가 먼저 실행한 후 Folder가 증명을 생성해야 하므로 총 소요 시간은 다음과 같다:
Sum1 = exe(n) + prove(n)
파이프라인 방식의 시간은 첫 번째 배치 거래에 대한 Sequencer의 실행 시간과 이후 증명 생성 시간, 후속 배치 실행 시간 중 큰 값, 그리고 마지막 집합 시간을 포함한다.
Sum2 = exe(n/k) + max{k×prove(n/k), (k−1)×exe(n/k)} + aggr(k)
따라서 두 방식의 총 시간을 비교하면, 실행 시간 함수 exe()는 거의 선형 함수로 근사할 수 있으며, 증명 생성 시간 함수 prove()의 경우 FOX 시스템의 증명 알고리즘이 선형 시간이므로 역시 선형 함수로 간주할 수 있다.
결론은 다음과 같다:
-
만약 exe(n) > prove(n)이면, prove(n) > aggr(k)일 때 Sum1 > Sum2가 성립한다.
-
만약 exe(n) < prove(n)이면, (k−1)×exe(n/k) > aggr(k)일 때 Sum1 > Sum2가 성립한다.
즉, 집합 시간 aggr(k)이 충분히 작고 증명 생성 시간이 선형인 경우, 파이프라인 방식은 시스템 효율을 크게 높이고 전체 증명 생성 시간을 줄이는 데 매우 유리하다.
위 분석은 선형 시간 증명 알고리즘에 대해서만 성립하며, 이로부터 FOX가 선형 시간 증명 알고리즘을 채택한 것이 얼마나 중요한지 알 수 있다.

그림 2: 증명 계산 흐름도
파이프라인 방식이 여전히 탐색 단계라고 말하는 이유는, 이러한 모드 분석을 통해 거래 패키지를 나누는 배치 수가 많을수록 Sequencer가 Folder에 기록하고 전송해야 하는 데이터 양이 늘어나 오버헤드가 커지며, Folder 입장에서는 단일 처리 계산 부하는 다소 줄지만 집합 과정이 더 복잡해지기 때문이다. 따라서 정확히 어떻게 나눌지는 균형을 맞춰야 하는 문제이며, Sequencer와 Folder의 계산 성능에 구체적으로 의존한다.
효율적인 거래 분배 및 패키징을 통한 증명 배치 생성이 핵심 최적화 포인트
zkRollup 구현에서 거래를 효율적으로 분배하고 패키징하여 증명을 생성하는 것은 핵심 최적화 요소이다. FOX는 지속적으로 모델을 최적화하며 더욱 효율적인 솔루션을 찾고 있다. 다음은 FOX가 채택한 기본 프로세스이다:
-
거래 수집: 처리 대기 중인 거래들을 수집하여 트랜잭션 풀에 저장한다. 사용자가 제출한 거래 또는 다른 시스템이나 스마트계약에서 발생한 거래일 수 있다.
-
거래 정렬: 트랜잭션 풀 내 거래들을 정렬하여 패키징 순서를 결정한다. 일반적으로 우선순위, 타임스탬프 또는 기타 기준에 기반한 정렬 알고리즘을 사용한다. 목적은 전체 거래 처리량과 효율을 극대화하는 것이다.
-
거래 분배: 정렬된 거래들을 적절한 블록에 분배한다. zkRollup에서는 일반적으로 일정 수의 거래를 수용하기 위해 새로운 블록을 생성한다. 분배 과정에는 그리디 알고리즘 또는 기타 전략을 사용하여 각 블록의 용량 활용률을 극대화할 수 있다.
-
블록 패키징: 분배된 거래들을 패키징하여 완전한 블록을 구성한다. FOX의 레이어2 아키텍처에서 이 블록은 실제로 거래 내용이 아닌 해시 또는 기타 압축 표현 형태의 요약 정보만 포함하며, 상세한 거래 정보는 FOX의 Ringer에 저장되어 데이터 가용성(DA)을 실현한다.
-
증명 생성: 패키징된 블록에 대해 해당 증명을 생성한다. 이 증명은 블록 내 각 거래의 유효성과 전체 블록의 일관성을 입증해야 한다. FOX의 파이프라인 모드는 이 단계에 주로 적용되며, Folder의 연산 능력을 보다 효율적으로 활용하기 위해 블록 내 거래를 배치로 나누어 Folder에 전달하여 증명을 생성하게 한다. Folder는 각 배치별로 정확성 증명을 계산한 후 최종적으로 집합한다. 일반적으로 이 증명은 FOAKS라는 고속 특화 제로노워드프루프 알고리즘을 기반으로 하며, 블록 내 거래를 상태 전이 규칙과 비교하여 시스템의 규칙과 제약 조건을 준수하는지 검증한다.
-
증명 검증: 수신자는 증명을 사용해 블록의 유효성을 검증할 수 있으며, 전체 블록을 다시 계산할 필요가 없다. 이 검증 과정은 매우 효율적이며, 복잡한 계산 없이 증명 자체만 검사하면 되기 때문이다.
FOX의 "파이프라인 모드"는 주로 증명 생성 단계에서 발생한다. 거래 수집 및 정렬 과정에서 Sequencer는 처리 대기 중인 거래들을 수집하고 특정 규칙에 따라 정렬하여 실행 순서를 결정한다. 이후 거래 배치 실행 단계에서 Sequencer는 정렬된 거래들을 배치로 나누어 실행한다. 각 배치의 거래 그룹은 실행 엔진으로 전송되어 처리되며, 실행 엔진은 이 거래들을 시뮬레이션 실행하고 상태 전이의 중간 결과를 기록한다. 각 배치 거래 실행 후 Sequencer는 중간 결과를 Folder에 전송한다.
이는 중간 결과를 상태 업데이트, 거래 해시 등의 형태로 인코딩하여 Folder로 전달하는 통신 채널을 통해 수행할 수 있다. Folder는 각 배치의 중간 결과를 수신한 후 이를 이용해 배치별로 증명을 생성한다. 이 증명 생성은 FOX가 자체 개발한 FOAKS 제로노워드프루프 알고리즘을 기반으로 하며, 중간 결과를 입력으로 사용해 거래의 유효성과 전체 블록의 일관성을 입증한다.
마지막 단계는 증명 검증이다. 생성된 증명은 Ethereum에 배포된 스마트컨트랙트 Verifier에게 전송되어 블록의 유효성을 검증받는다. Verifier는 검증 알고리즘을 사용해 증명을 검사하여 그 정확성과 합법성을 보장한다.
이러한 파이프라인 방식을 통해 Sequencer는 거래를 실행하면서 지속적으로 중간 결과를 Folder에 전송할 수 있고, Folder는 이를 바탕으로 증명을 배치별로 생성할 수 있다. 이를 통해 전체 시스템의 효율성과 처리량이 향상되고, 증명 생성 지연이 감소한다.
맺음말
본문에서는 zkRollup 내에서 거래를 배치 처리하여 증명을 생성하는 새로운 방식인 파이프라인 방식을 소개하고, 이 방식의 시간 소요를 자세히 분석했다. 선형 증명 알고리즘의 경우, 적절히 파이프라인 방식을 활용하면 전체 증명 생성 시간을 줄이는 데 도움이 된다. FOX가 채택한 증명 시스템은 선형 증명 시간을 실현하여 빠른 증명 생성과 사용자 경험 향상에 큰 기여를 한다. FOX 팀은 앞으로도 이 방안을 지속적으로 탐색하고 최적화해 나갈 것이다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














