IOSG:우리가 제로 지식 증명 하드웨어 가속에 대해 긍정적인 이유는 무엇인가요?
저자: Bryan,IOSG Ventures
본 문서는 ZKP의 확장 솔루션으로서의 발전 현황을 주로 논의하며, 이론적 측면에서 증명 과정에서 최적화가 필요한 주요 차원 몇 가지를 설명하고, 다양한 확장 솔루션이 가속화에 대한 요구를 어떻게 반영하는지에 대해 심도 있게 다룬다. 이후 하드웨어 솔루션을 중심으로 zk 하드웨어 가속 분야의 무어의 법칙을 전망한다. 마지막으로 하드웨어 zk 가속 분야의 기회와 현황에 대해 문말에서 설명할 것이다. 먼저, 증명 속도에 영향을 미치는 주요 차원은 세 가지가 있다: 증명 시스템, 증명할 회로의 규모, 그리고 알고리즘 소프트웨어 및 하드웨어 최적화.
증명 시스템의 경우, 타원 곡선(EC)을 사용하는 알고리즘, 즉 시장에서 주류인 Groth 16(Zcash), Galo2(Scroll), Plonk(Aztec, Zksync)와 같은 zk-snark 알고리즘은 다항식 약속을 생성하는 과정에서 큰 수의 점 곱(MSM)이 포함되어 있으며, 현재 이 과정은 시간이 오래 걸리고(연산력 요구가 높음) 병목 현상이 있다. FRI 기반 알고리즘인 ZK-Stark의 경우, 다항식 약속 생성 방식은 해시 함수로, EC와 관련이 없으므로 MSM 연산이 포함되지 않는다.
증명 시스템은 기본이며, 증명할 회로의 규모 또한 핵심 하드웨어 최적화 요구 중 하나이다. 최근 논의가 활발한 ZKEVM은 이더리움과의 호환 정도에 따라 회로의 복잡성이 달라지며, 예를 들어 Zksync/Starkware는 원래 이더리움과는 다른 가상 머신을 구축하여 이더리움의 원래 코드 중 zk 처리에 적합하지 않은 하부 코드를 우회하여 회로의 복잡성을 줄였다. 반면 Scroll/Hermez와 같은 목표가 가장 하단에서 호환되는 zkevm의 회로는 자연스럽게 더 복잡해질 것이다.
이해하기 쉬운 비유로, 회로의 복잡성은 버스의 좌석 수로 이해할 수 있다. 예를 들어, 일반적인 날에는 30명 이하의 승객을 수용해야 하며, 일부 버스는 30인 좌석을 선택했다. 이러한 버스는 Zksync/StarkWare에 해당하며, 연중 특별히 많은 승객이 있는 날에는 일반적인 버스에 수용할 수 없으므로 더 많은 좌석을 설계한 버스(Scroll)가 있다. 그러나 이러한 날은 상대적으로 적어 평소에는 많은 빈 좌석이 발생할 수 있다.
하드웨어 가속은 이러한 더 복잡한 회로 설계에 대해 더욱 절실하지만, 이는 더 넓은 스펙트럼의 문제이며 ZKEVM에도 마찬가지로 장단점이 있다.
다양한 증명 시스템 최적화의 요구/초점:
기본:
증명할 사물이 회로(예: R1CS/QAP)를 거치면 일련의 스칼라와 벡터가 생성되며, 이후 다항식 또는 inner product argument(groth16)와 같은 다른 형태의 대수적 형태를 생성하는 데 사용된다. 이 다항식은 여전히 매우 길며, 직접 증명을 생성하면 증명의 크기나 검증 시간 모두 매우 커진다. 따라서 이 다항식을 추가로 간소화해야 한다. 여기서의 최적화 방법은 다항식 약속이라고 하며, 다항식의 특별한 해시 값으로 이해할 수 있다. 대수 기반의 다항식 약속에는 KZG, IPA, DARK가 있으며, 이들은 모두 타원 곡선을 사용하여 약속을 생성한다.
FRI는 해시 함수를 사용하여 약속을 생성하는 주요 경로이다. 다항식 약속의 선택은 주로 몇 가지 점을 중심으로 이루어진다 - 안전성, 성능. 안전성은 여기서 주로 설정 단계에서 고려된다. 만약 비밀을 생성하는 데 사용되는 무작위성이 공개되어 있다면, 예를 들어 FRI와 같이, 우리는 이 설정이 투명하다고 말한다. 만약 비밀을 생성하는 데 사용되는 무작위성이 비공개이며, Prover가 사용 후 파기해야 한다면, 이 설정은 신뢰가 필요하다. MPC는 여기서 신뢰를 해결하는 수단이지만, 실제 응용에서는 사용자가 일정 비용을 부담해야 한다는 것이 발견되었다.
위에서 언급한 안전성 측면에서 상대적으로 우수한 FRI는 성능이 이상적이지 않으며, 페어링 친화적인 타원 곡선의 성능은 비교적 우수하지만, 재귀를 추가할 때 적합한 곡선이 많지 않아 상당한 오버헤드가 존재한다.
이미지 출처: https://hackernoon.com
Justin Drake의 다항식 약속에 대한 논의, 1부
산업 현황:
현재 Plonk(matterlabs) 기반이든 Ultra-Plonk(Scroll, PSE) 기반이든, 그들의 최종 다항식 약속은 KZG를 기반으로 하므로 Prover의 대부분 작업은 대량의 FFT 계산(다항식 생성)과 ECC 점 곱 MSM 연산(다항식 약속 생성)을 포함하게 된다.
순수 plonk 모드에서는 커밋해야 할 포인트 수가 많지 않기 때문에 MSM 연산이 Prove 시간에서 차지하는 비중이 높지 않으므로 FFT 성능 최적화가 단기적으로 더 큰 성능 향상을 가져올 수 있다. 그러나 UltraPlonk(halo2) 프레임워크에서는 고객 게이트가 도입되어 Prover 단계에서 커밋해야 할 포인트 수가 증가하여 MSM 연산의 성능 최적화도 매우 중요해진다. (현재 MSM 연산이 피펜저 최적화 후에도 여전히 log(P(logB))가 필요하다 (B는 exp의 상한, p는 MSM에 참여하는 포인트의 수량).
현재 차세대 Plonky2 증명 시스템은 다항식 약속이 더 이상 KZG가 아니라 STARK 시스템에서 일반적인 FRI를 사용하므로 Plonky2의 Prover는 MSM을 고려할 필요가 없으며, 이론적으로 해당 시스템의 성능 향상은 MSM 관련 알고리즘 최적화에 의존하지 않는다. Plonky2의 저자 Mir(현재 Polygon Zero)는 이 시스템을 적극적으로 홍보하고 있다. 그러나 Plonky2가 사용하는 Goldilocks Field는 타원 곡선 관련 해시 알고리즘 관련 회로(예: ECDSA)를 작성하는 데 그리 친숙하지 않으므로, Goldilocks Field가 머신 워드 연산에서 명확한 장점을 가지고 있음에도 불구하고 Mir와 PSE/Scroll 솔루션 중 어느 것이 더 나은 솔루션인지 판단하기 어렵다.
Plonk, Ultraplonk, Plonky2의 Prove 알고리즘에 대한 종합적인 고려를 바탕으로, 하드웨어 가속이 필요한 모듈은 대체로 FFT, MSM, HASH 세 가지 방향에 집중될 가능성이 높다.
Prover의 또 다른 병목 현상은 witness의 생성이다. 일반적인 비 zk 계산에서는 많은 중간 변수를 생략하지만, ZK 증명의 과정에서는 모든 witness가 기록되어야 하며, 이후의 FFT 계산에 참여하게 된다. 따라서 효율적으로 병렬 witness 계산을 수행하는 것도 Prover 마이닝 기계가 잠재적으로 고려해야 할 방향이 될 것이다.
ZKP 가속 시도: 재귀 증명 - StarkNet의 프랙탈 L3 개념은 재귀 증명의 개념을 기반으로 하며, Zksync의 프랙탈 하이퍼스케일링, Scroll도 유사한 최적화를 가지고 있다.
재귀 zkSNARK 개념은 Proof A의 검증 과정을 증명하여 다른 Proof B를 생성하는 것이다. Verifier가 B를 수용할 수 있다면, 이는 A도 수용하는 것과 같다. 재귀 SNARK는 여러 증명을 집계할 수 있으며, 예를 들어 A1, A2, A3, A4의 검증 과정을 B로 집계할 수 있다. 재귀 SNARK는 긴 계산 과정을 여러 단계로 나누어 각 단계의 계산 증명 S1이 다음 단계의 계산 증명에서 검증되도록 할 수 있다. 즉, 한 단계 계산 후 검증하고 다음 단계로 진행하는 방식으로 Verifier는 마지막 단계만 검증하면 되며, 불확실한 길이의 큰 회로를 구성하는 어려움을 피할 수 있다.
이론적으로 zkSNARK는 모두 재귀를 지원하며, 일부 zkSNARK 솔루션은 Verifier를 회로로 구현할 수 있고, 다른 일부 zkSNARK는 Verifier 알고리즘을 회로화하기 쉬운 부분과 어려운 부분으로 나누어 후자의 경우 지연 집계 검증 전략을 사용하여 검증 과정을 마지막 단계의 검증 과정으로 이동시킨다.
L2의 미래 응용에서 재귀의 장점은 증명할 사물에 대한 귀납을 통해 비용 및 성능 요구를 더욱 낮출 수 있다.
첫 번째 경우(application-agnostic)는 서로 다른 증명할 사물에 대한 것으로, 예를 들어 하나는 상태 업데이트이고 다른 하나는 머클 트리인 경우, 이 두 증명할 사물의 증명을 하나로 합칠 수 있지만 여전히 두 개의 출력 결과(각각 검증을 위한 공개 키)가 존재한다.
두 번째 경우(applicative recursion)는 유사한 증명할 사물에 대한 것으로, 예를 들어 두 개 모두 상태 업데이트인 경우, 이 두 사물은 증명을 생성하기 전에 집계할 수 있으며, 단 하나의 출력 결과만 존재한다. 이 결과는 두 번의 업데이트를 거친 상태 차이이다. (Zksync의 방법도 유사하며, 사용자 비용은 상태 차이에 대해서만 책임진다.)
재귀 증명 및 아래에서 주로 논의할 하드웨어 가속 외에도 ZKP를 가속화하는 다른 방법도 있으며, 예를 들어 사용자 정의 게이트, FFT 제거(OlaVM의 이론적 기초) 등이 있지만, 본 문서에서는 분량 문제로 논의하지 않는다.
하드웨어 가속
하드웨어 가속은 암호학에서 항상 암호학 증명을 가속화하는 일반적인 방법으로, RSA(타원 곡선과 유사한 RSA의 기초 수학 논리도 많은 복잡한 큰 수 연산을 포함함)나 초기 zcash/filecoin의 zk-snark GPU 기반 최적화 방식 모두에 해당한다.
하드웨어 선택
이더리움 The Merge가 발생한 이후, 불가피하게 대량의 GPU 연산력이 남게 된다(일부는 이더리움 합의 변경의 영향을 받으며, GPU 대기업 엔비디아의 주가는 연초 대비 50% 하락했으며, 재고 잉여도 계속 증가하고 있다). 아래 그림은 엔비디아 GPU 플래그십 제품 RTX 3090의 거래 가격을 보여주며, 구매자의 세력이 약하다는 것을 나타낸다.
GPU 가격이 저점에 있고 대량의 GPU 연산력이 유휴 상태인 상황에서, 자연스러운 질문은 GPU가 zk를 가속화하는 적합한 하드웨어인가 하는 것이다. 하드웨어 측면에서 주로 세 가지 선택이 있다: GPU/FPGA/ASIC.
FPGA vs GPU:
먼저 요약하자면: 아래는 trapdoor-tech가 GPU(예: Nvidia 3090)와 FPGA(예: Xilinx VU9P)의 몇 가지 차원에서 요약한 내용이다. 매우 중요한 점은: GPU는 성능(증명 생성 속도) 측면에서 FPGA보다 우수하지만, FPGA는 에너지 소비 측면에서 더 유리하다.
Ingoyama의 구체적인 실행 결과에서 더 직관적으로 나타난다:
특히 비트 폭이 더 높은(2^20) 연산의 경우, GPU는 FPGA의 연산 속도의 다섯 배이며, 소비 전력도 훨씬 더 높다.
일반적인 채굴자에게는 성능 대비 가격비가 어떤 하드웨어를 사용할지 결정하는 중요한 요소이기도 하다. U55C($4795)나 VU9P($8394) 모두 GPU(RTX 3090: $1860)와 비교할 때 가격이 훨씬 높다.
이론적으로 GPU는 병렬 연산에 적합하고, FPGA는 프로그래머블성을 추구하지만, 제로 지식 증명 생성 환경에서는 이러한 장점이 완벽하게 적용되지 않는다. 예를 들어, GPU가 적합한 병렬 계산은 대규모 그래픽 처리에 대한 것이며, 논리적으로 MSM 처리 방식과 유사하지만, 적용 범위(부동 소수점 수)와 zk가 대상으로 하는 특정 유한체와는 일치하지 않는다. FPGA의 경우, 프로그래머블성이 여러 L2의 존재하는 응용 시나리오에서 명확하지 않다. L2의 채굴자 보상은 단일 L2의 수요와 연결되어 있으며(POW와는 다르게), 세분화된 경로에서 승자가 모든 것을 차지하는 상황이 발생할 가능성이 낮아, 채굴자가 알고리즘을 자주 변경해야 할 가능성은 낮다.
ASIC은 성능과 비용 측면에서 균형 잡힌 우수한 솔루션(처리량, 지연 등)을 제공하지만, 가장 좋은 솔루션인지에 대한 결론은 여전히 없다. 그 문제는 다음과 같다:
개발 시간이 길다 - 완전한 칩 설계에서 칩 생산 과정까지 거쳐야 하며, 현재 칩이 설계되었더라도 칩 생산은 긴 시간과 비용이 많이 드는 과정이며, 양품률도 일정하지 않다. 대행 자원 측면에서 TSMC와 삼성은 최고의 칩 대행 공장이다. 현재 TSMC의 주문은 2년 후까지 밀려 있으며, ZK 칩과 경쟁하는 대행 자원은 AI 칩, 전기차 칩과 같은 웹2에서 미리 설계된 수요가 입증된 제품이다. 이에 비해 ZK 칩의 수요는 불확실하다.
또한, 전체 칩의 성능과 단일 칩의 크기, 즉 사람들이 흔히 말하는 20nm, 18nm는 반비례 관계에 있다. 즉, 단일 칩이 작을수록 칩이 수용할 수 있는 칩의 수가 많아져 전체 성능이 높아지며, 현재 고급 칩 제조 기술은 독점되어 있다(예: 칩 제조에서 가장 복잡한 단계인 리소그래피 기술은 네덜란드의 ASML 회사가 독점하고 있다). 중소형 대행 공장(예: 중국의 중신국제)은 이러한 기술에서 최고 공장보다 1~2세대 뒤처져 있으며, 이는 양품률 및 칩 크기 측면에서 최고 대행 공장에 뒤처진다는 것을 의미한다. 이는 ZK 칩의 경우 최적의 솔루션을 찾기 어렵게 만들며, 수요가 불확실한 상황에서 비용을 고려하여 약 28nm의 비고급 칩을 선택하게 된다.
현재의 ASIC 솔루션은 FFT 및 MSM 두 가지 일반적인 ZK 회로에서 연산 요구가 높은 연산자를 처리하며, 특정 프로젝트를 위해 설계된 것이 아니므로 실제 실행 효율이 이론적으로 가장 높지 않다. 예를 들어, 현재 Scroll의 Prover의 논리 회로는 100% 구현되지 않았으며, 따라서 이에 일치하는 하드웨어 회로도 존재하지 않는다. 또한, ASIC은 응용 프로그램 특정이며, 이후 조정을 지원하지 않으며, 논리 회로가 변경될 경우, 예를 들어 노드의 클라이언트가 업그레이드해야 할 경우, 호환 가능한 솔루션이 존재하는지 여부도 현재 불확실하다.
또한, 인재 부족도 ZK 칩의 산업 현황 중 하나로, 암호학과 하드웨어를 이해하는 인재를 찾기 어렵고, 적합한 후보자는 깊은 수학적 지식과 다년간의 하드웨어 제품 설계 및 유지 관리 경험을 동시에 갖춰야 한다.
마무리 생각 - Prover 발전 추세 EigenDA
이상은 ZKP 가속에 대한 산업의 생각과 시도이며, 궁극적인 의미는 Prover의 진입 장벽이 점점 낮아질 것이라는 것이다. 주기적으로 Prover는 대략 다음 세 가지 단계를 거쳐야 한다:
Phase I: 클라우드 기반 Prover
클라우드 기반 Prover는 제3자 Prover(사용자/프로젝트 측이 아닌)의 진입 장벽을 크게 높일 수 있으며, 이는 웹2의 AWS/Google Cloud와 유사하다. 상업적 모델 측면에서 프로젝트 측은 일부 보상을 잃게 되지만, 탈중앙화의 서사 측면에서는 더 많은 참여자를 유치하는 경제적 및 실행적 방법이 된다. 클라우드 컴퓨팅/클라우드 서비스는 웹2의 기존 기술 스택으로, 개발자가 사용할 수 있는 성숙한 개발 환경이 있으며, 클라우드의 고유한 낮은 진입 장벽/높은 집단 효과를 활용하여 단기적으로 증명 아웃소싱의 선택이 될 수 있다.
현재 Ingoyama도 이 분야에서 구현하고 있으며(최신 F1 버전은 pipeMSM의 기준 속도의 두 배에 달한다). 그러나 여전히 이는 단일 Prover가 전체 증명을 실행하는 방식이며, Phase II에서는 증명이 분할 가능한 형태로 존재할 수 있으며, 참여자 수가 더 많아질 것이다.
Phase II: Prover 마켓플레이스
증명 생성 과정에는 다양한 연산이 포함되며, 일부 연산은 효율성을 선호하고, 다른 연산은 비용/에너지 소비에 대한 요구가 있다. 예를 들어 MSM 계산은 사전 계산을 포함하며, 이는 다양한 사전 계산에 대한 스칼라 입자를 지원하기 위해 일정한 메모리가 필요하다. 만약 모든 스칼라가 하나의 컴퓨터에 존재한다면 해당 컴퓨터의 메모리 요구가 높아지지만, 서로 다른 스칼라를 여러 서버에 저장하면 이러한 계산의 속도가 향상될 뿐만 아니라 참여자 수 또한 증가할 것이다.
마켓플레이스는 이러한 아웃소싱 계산에 대한 상업적 모델에서의 대담한 사고이다. 그러나 사실 Crypto圈에서도 선례가 있다 - Chainlink의 오라클 서비스는 서로 다른 체인에서의 서로 다른 거래 쌍의 가격을 공급하는 것도 마켓플레이스 형태로 존재한다. 동시에 Aleo의 창립자 Howard Wu는 DIZK라는 분산 원장 제로 지식 증명 생성 방법론을 공동 저술한 바 있으며, 이론적으로는 가능하다.
다시 말해, 상업적 모델 측면에서 이는 매우 흥미로운 사고이지만, 실제로 구현할 때 실행상의 어려움이 클 수 있다. 예를 들어 이러한 연산 간의 조정이 어떻게 이루어져 전체 증명을 생성할 수 있을지, 적어도 시간 및 비용 측면에서 Phase I에 뒤지지 않아야 한다.
Phase III: 모든 사람이 Prover를 실행한다
미래의 Prover는 사용자 로컬(웹 또는 모바일)에서 실행될 것이며, Zprize는 웹어셈블리/안드로이드 실행 환경을 기반으로 한 ZKP 가속 관련 경연 및 보상을 제공하며, 이는 일정 부분에서 사용자의 프라이버시가 보장될 것임을 의미한다(현재의 중앙화된 Prover는 확장성을 위해 존재하며 사용자의 프라이버시를 보장하지 않는다). 가장 중요한 점은 - 여기서의 프라이버시는 체인 상의 행동에 국한되지 않고 체인 외 행동도 포함된다.
반드시 고려해야 할 문제는 웹 환경의 보안성이다. 웹 환경의 실행 조건은 하드웨어에 비해 보안성의 선결 조건이 더 높다(업계의 사례로는 메타마스크와 같은 웹 지갑이 하드웨어 지갑에 비해 보안성이 더 낮다).
체인 상 데이터와 체인 외 증명 외에도, ZKP 형태로 체인 외 데이터를 체인 상에 업로드하면서 사용자 프라이버시를 100% 보호하는 것도 이 단계에서만 가능할 것이다. 현재의 솔루션은 두 가지 문제를 피할 수 없다 - 1. 중앙화, 즉 사용자의 정보가 여전히 검열의 위험이 있다. 2. 검증 가능한 데이터 형식이 단일하다. 체인 외 데이터 형식은 다양하고 비정형화되어 있으며, 검증 가능한 데이터 형식은 대량의 정제/선별을 거쳐야 하며 여전히 형식이 단일하다.
여기서의 도전은 증명 생성 환경뿐만 아니라 알고리즘 측면에서 호환 가능성이 있는지(먼저 투명한 알고리즘을 사용해야 한다), 비용/시간/효율성 모두를 고려해야 한다. 그러나 동일한 수요는 비할 데 없이 크다. 현실 세계의 신용을 탈중앙화된 방식으로 담보로 하여 체인 상에서 대출을 진행하고, 검열의 위험이 없다는 것을 상상해보라.