오프체인 계산 혁신: ZK 협처리기 및 그 DeFi와 DAO에서의 응용 전망 상세 설명
원문 제목:Kernel Ventures:Dapp에 체인 외 계산 능력 부여 --- ZK 협처리기
원문 저자:Turbo Guo,Kernel Ventures
원문 심사:Mandy,Joshua,Kernel Ventures
TL;DR
ZK 협처리기는 dApp이 체인 외 계산 자원을 활용할 수 있게 하는 솔루션으로, 본문에서는 협처리기의 구현 방식, 다양한 응용 및 미래 발전 방향에 대해 논의합니다. 주요 내용은 다음과 같습니다:
- RISC Zero의 zkVM은 ZK 협처리기 솔루션으로, 체인 상 계약이 체인 외 zkVM에서 특정 Rust 코드를 실행하고 결과를 체인 상으로 반환할 수 있게 하며, 계약이 계산이 올바른지 검증할 수 있도록 zkp를 제공합니다.
- ZK 협처리기는 다양한 구현 방식이 있으며, zkVM 외에도 사용자가 프로그램을 위해 맞춤형 ZK 회로를 작성하거나, 미리 제작된 프레임워크를 사용하여 회로를 작성하여 계약이 체인 외 계산 자원을 활용할 수 있게 합니다.
- ZK 협처리기는 DeFi에서 역할을 할 수 있으며, 예를 들어 AMM의 계산을 체인 외에서 수행하여 프로토콜이 MEV와 유사한 가치를 포착하거나, AMM이 복잡하고 많은 계산을 요구하는 실행 논리를 구현할 수 있게 합니다. ZK 협처리기는 또한 대출 프로토콜이 실시간으로 이자율을 계산하고, 마진 계산을 투명하게 하는 등의 기능을 제공합니다. zkAMM에는 zkVM을 사용하는 방식과 zkOracle을 사용하는 방식 두 가지가 있습니다.
- ZK 협처리기는 다른 잠재적 용도도 있으며, 예를 들어 지갑은 ZK 협처리기를 사용하여 신원 인증을 체인 외에서 수행할 수 있고, 협처리기는 체인 상 게임이 더 복잡한 계산을 수행할 수 있게 하며, DAO 거버넌스에 필요한 가스를 줄일 수 있습니다.
- ZK 협처리기의 구조는 아직 정해지지 않았지만, 사용자가 직접 회로를 작성하는 것보다 하나의 프로젝트를 통해 체인 외 자원에 대한 인터페이스 호출을 사용하는 것이 더 친숙할 수 있습니다. 그러나 그 "인터페이스" 프로젝트 뒤에 어떤 계산 서비스 제공자(전통적인 클라우드 업체, 탈중앙화 자원 공유)가 연결되어 있는지는 또 다른 논의의 주제가 됩니다.
1. ZK 협처리기의 의미와 응용
ZK 협처리기의 핵심은 체인 상 계산을 체인 외로 옮기고, ZK를 통해 체인 외 계산 과정의 신뢰성을 증명하여 스마트 계약이 대량의 계산을 쉽게 처리할 수 있게 하며, 계약이 계산의 신뢰성을 검증할 수 있게 하는 것입니다. 이는 zkRollup의 사고방식과 유사하지만, Rollup은 체인 프로토콜 계층이 체인 외 계산 자원을 활용하는 반면, ZK 협처리기는 dApp이 체인 외 자원을 활용하는 것입니다.
여기서는 RISC Zero를 사용하여 ZK 협처리기의 한 가지 구현 방식을 설명하지만, ZK 협처리기는 여러 가지 구현 방식이 있으며, 후속 문서에서 계속 소개할 것입니다. RISC Zero는 Bonsai ZK 협처리기 아키텍처를 개발했으며, 그 핵심은 RISC Zero의 zkVM입니다. 개발자는 zkVM에서 "특정 Rust 코드가 올바르게 실행되었는지"에 대한 zkp를 생성할 수 있습니다. zkVM이 있으면 ZK 협처리기를 구현하는 구체적인 과정은 다음과 같습니다:
- 개발자는 Bonsai의 중계 계약에 요청을 시작하여, zkVM에서 개발자가 요구하는 프로그램을 실행합니다.
- 중계 계약은 요청을 체인 외 요청 풀로 전달합니다.
- Bonsai는 체인 외 zkVM에서 요청을 실행하고 대규모 체인 외 계산을 수행한 후, 이를 위한 증명서(receipt)를 생성합니다.
- 이러한 증명서는 "영수증"이라고도 하며, Bonsai가 중계 계약을 통해 체인 상으로 다시 게시합니다.
Bonsai에서 증명된 프로그램은 Guest Program이라고 하며, 영수증(receipt)은 guest program이 올바르게 실행되었음을 증명하는 데 사용됩니다. 영수증은 저널(journal)과 봉인(seal)을 포함합니다. 구체적으로, 저널은 zkVM 애플리케이션의 공개 출력을 담고 있으며, 봉인은 영수증의 유효성을 증명하는 데 사용됩니다. 즉, guest program이 올바르게 실행되었음을 증명하며, 봉인 자체도 증명자가 생성한 zkSTARK입니다. 영수증을 검증하면 저널이 올바른 회로 등을 사용하여 구축되었음을 보장할 수 있습니다.
Bonsai는 개발자가 Rust 코드에서 zkVM 바이트코드로의 컴파일, 프로그램 업로드, VM 내 실행 및 증명 피드백 등의 과정을 간소화하여, 개발자가 프로그램의 논리 설계에 더 집중할 수 있도록 합니다. 또한 부분적인 계약 논리뿐만 아니라 전체 계약 논리도 체인 외에서 실행할 수 있습니다. RISC Zero는 또한 연속성을 사용하여, 큰 증명을 여러 부분으로 나누어 각 부분을 개별적으로 증명합니다. 이렇게 하면 대형 프로그램에 대한 증명을 생성할 수 있으며, 메모리를 너무 많이 차지하지 않습니다. RISC Zero 외에도 IronMill, =nil; Foundation 및 Marlin과 같은 여러 프로젝트도 유사한 일반 솔루션을 제공합니다.
2. ZK 협처리기의 DeFi에서의 응용
2.1 AMM - Bonsai를 협처리기로
zkUniswap은 체인 외 계산 자원을 활용하는 AMM의 한 예로, 핵심은 스왑의 일부 계산을 체인 외에서 수행하는 것입니다. 그리고 이는 Bonsai를 사용합니다. 사용자는 체인 상에서 스왑 요청을 시작합니다. Bonsai의 중계 계약이 요청을 수신하고 체인 외 계산을 시작하며, Bonsai가 계산을 완료한 후 EVM 내의 콜백 함수에 계산 결과와 증명을 반환합니다. 증명이 성공으로 검증되면 스왑이 실행됩니다.
그러나 스왑은 한 번에 완료되지 않으며, 요청과 실행 과정이 서로 다른 트랜잭션에서 이루어지므로 일정한 위험이 있습니다. 즉, 요청 제출 후 스왑 완료 전까지 풀의 상태가 변경될 수 있습니다. 검증은 요청 제출 시 풀의 상태를 기반으로 하기 때문입니다. 요청이 대기 중일 때 풀의 상태가 변경되면 검증이 무효화됩니다.
이 문제를 해결하기 위해 개발자는 풀 잠금을 설계했습니다. 사용자가 요청을 시작할 때, 스왑 정산 외의 모든 작업이 잠금 상태가 되며, 체인 외에서 체인 상 스왑이 성공적으로 트리거되거나 스왑이 시간 초과될 때까지 잠금이 유지됩니다(이 시간은 미리 설정됩니다). 시간 제한이 있으면 중계나 zkp에 문제가 발생하더라도 풀은 계속 잠겨 있지 않습니다. 구체적인 시간 제한은 몇 분일 수 있습니다.
zkUniswap은 MEV에 대해 특별한 설계를 가지고 있으며, 개발자는 프로토콜이 MEV 가치를 포착하기를 원합니다. 이론적으로 zkAMM도 MEV를 가지고 있으며, 첫 번째 거래를 제안한 사람이 잠금을 할 수 있으므로 모두가 가스를 놓고 경쟁하게 됩니다. 빌더들도 요청 거래의 순서를 정할 수 있습니다. 그러나 zkUniswap은 MEV 수익을 스스로 가져가며, 이를 위해 가변 이자율 점진적 네덜란드 경매(VRGDA) 방식을 사용합니다.
zkUniswap은 잠금을 꺼내어 스스로 가격을 낮추어 경매를 진행합니다. 잠금이 빠르게 판매되면 프로토콜은 현재 수요가 많다는 것을 알고 자동으로 가격을 올리며, 잠금 판매 속도가 느려지면 가격을 낮춥니다. 이는 새로운 수익원이 될 것입니다. 즉, 프로토콜은 거래 순서를 결정하는 새로운 요소를 제공하며, 경쟁 가격의 자금이 직접 새로운 요소를 통해 프로젝트 측에 전달됩니다. 이는 매우 창의적인 접근입니다.
2.2 AMM - zkOracle을 협처리기로
zkVM 외에도 zkOracle을 사용하여 체인 외 계산 자원을 활용하자는 제안이 있습니다. zkOracle은 입력과 출력을 모두 고려하는 오라클입니다. 일반적으로 오라클은 두 가지 유형이 있습니다. 하나는 입력 오라클이고, 다른 하나는 출력 오라클입니다. 입력 오라클은 체인 외 데이터를 정리(계산)하여 체인 상에 올리고, 출력 오라클은 체인 상 데이터를 정리(계산)하여 체인 외에 제공합니다. I/O(입력 및 출력) 오라클(zkOracle)은 먼저 출력을 수행한 후 입력을 수행하여 체인 상에서 체인 외 계산 자원을 활용할 수 있게 합니다.
zkOracle은 한편으로 체인 상 데이터를 데이터 소스로 사용하고, 다른 한편으로 ZK를 사용하여 오라클 노드의 계산이 조작되지 않았음을 보장하여 협처리기의 기능을 구현할 수 있습니다. 따라서 AMM의 핵심 계산을 zkOracle에 두어 전통적인 AMM 기능을 구현하는 동시에, zkOracle을 사용하여 더 복잡하고 계산 자원을 많이 소모하는 작업을 수행할 수 있습니다.
2.3 대출 이자율 계산, 마진 계산 등의 기타 응용
구현 방식을 떠나 ZK 협처리기를 통해 많은 기능을 구현할 수 있습니다. 예를 들어, 대출 프로토콜은 더 이상 매개변수를 미리 설정할 필요가 없으며, 실시간 대출 상황에 따라 이자율을 조정할 수 있습니다. 예를 들어, 대출 수요가 많을 때 이자율을 높여 공급을 유도하고, 수요가 줄어들면 이자율을 낮출 수 있습니다. 이는 대출 프로토콜이 실시간으로 체인 상 데이터를 얻고, 대량의 계산을 수행하여 적절한 매개변수를 도출할 수 있어야 하며, 이는 체인 외 계산이 필요합니다(체인 상 비용이 극히 낮지 않는 한).
마진 잔액, 미실현 손익, 청산 금액 등의 복잡한 계산도 협처리기로 이전하여 실행할 수 있습니다. 협처리기를 사용하는 장점은 이러한 응용이 더 투명하고 검증 가능하게 되어, 마진 엔진의 논리가 더 이상 비밀스러운 블랙박스가 되지 않는 것입니다. 계산이 체인 외에서 수행되지만, 사용자는 그 실행의 정확성을 완전히 신뢰할 수 있습니다. 또한 이러한 접근은 옵션 계산에도 적용될 수 있습니다.
3. ZK 협처리기의 기타 응용
3.1 지갑 - Bonsai를 협처리기로
Bonfire Wallet은 zkVM을 사용하여 신원 인증 계산을 체인 외로 옮겼습니다. 이 지갑의 목표는 사용자가 생체 정보(지문) 또는 암호화 하드웨어 yubikey를 사용하여 버너 지갑을 생성할 수 있도록 하는 것입니다.
구체적으로, Bonfire Wallet은 WebAuthn이라는 일반적인 웹 인증 표준을 사용하여 사용자가 비밀번호 없이 장치를 통해 웹에서 신원 인증을 완료할 수 있도록 합니다. 따라서 Bonfire 지갑에서 사용자는 WebAuthn을 통해 공개 키(체인 상의 것이 아니라 WebAuthn에 사용되는)를 생성한 후, 이를 사용하여 지갑을 생성합니다.
각 Burner 지갑은 체인 상에 계약을 가지고 있으며, 여기에는 WebAuthn의 공개 키가 포함되어 있습니다. 계약은 사용자의 WebAuthn 서명을 검증해야 합니다. 그러나 이 계산량은 매우 크기 때문에 Bonsai를 사용하여 계산을 체인 외에서 수행하고, 체인 외에서 zkVM 게스트 프로그램을 통해 서명을 검증하고, 체인 상 검증을 위한 zkp를 생성합니다.
3.2 체인 상 데이터 요청 - 사용자가 ZK 회로를 직접 작성
Axiom은 zkVM을 사용하지 않고 다른 협처리기 솔루션을 사용하는 애플리케이션입니다. 먼저 Axiom이 하고자 하는 것을 소개하자면, ZK 협처리기를 활용하여 계약이 과거 체인 상 정보를 조회할 수 있도록 하는 것입니다. 사실 계약이 과거 데이터를 읽는 것은 매우 어렵습니다. 스마트 계약은 일반적으로 실시간 체인 상 데이터를 얻으며, 이는 매우 비쌉니다. 계약이 과거 잔액이나 거래 기록과 같은 가치 있는 체인 상 데이터를 얻기가 어렵습니다.
Axiom 노드는 필요한 체인 상 데이터에 접근하고 체인 외에서 지정된 계산을 수행한 후, 계산 결과가 유효한 체인 상 데이터를 기반으로 올바르게 계산되었음을 증명하는 제로 지식 증명을 생성합니다. 이 증명은 체인 상에서 검증되어 계약이 이 결과를 신뢰할 수 있도록 보장합니다.
체인 외 계산을 위해 zkp를 생성하려면 프로그램을 ZK 회로에 컴파일해야 하며, 앞서 zkVM을 사용하여 이 작업을 수행한다고 언급했습니다. Axiom 공식은 이 작업에 대해 많은 솔루션이 있으며, 성능, 유연성 및 개발 경험 간의 균형을 고려해야 한다고 지적했습니다:
- 맞춤형 회로: 개발자가 프로그램을 위해 맞춤형 회로를 작성하면 성능이 가장 좋지만, 개발에 시간이 걸립니다.
- eDSL/DSL: 개발자가 여전히 회로를 작성하지만, 선택 가능한 프레임워크가 개발자가 ZK 관련 문제를 해결하는 데 도움을 주어 성능과 개발 경험 간의 균형을 이룰 수 있습니다.
- zkVM: 개발자가 기존의 가상 머신에서 ZK를 실행하는 것이 매우 편리하지만, Axiom 공식은 효율성이 매우 낮다고 생각합니다.
따라서 Axiom은 두 번째 방법을 선택했으며, 프로젝트 측은 사용자가 회로를 직접 설계할 수 있도록 최적화된 ZK 모듈을 제공합니다.
Axiom과 유사한 프로젝트로는 Herodotus가 있으며, 이는 크로스 체인 정보 전송을 위한 미들웨어를 목표로 하고 있습니다. 정보 처리가 체인 외에서 이루어지므로 서로 다른 체인이 처리된 데이터를 얻는 것은 매우 합리적인 접근입니다. 또 다른 프로젝트인 Space and Time은 유사한 구조를 사용하여 데이터 인덱싱을 구현했습니다.
3.3 체인 상 게임, DAO 거버넌스 등의 기타 응용
그 외에도 체인 상 게임과 DAO 거버넌스는 ZK 협처리기를 사용할 수 있습니다. RISC Zero는 250k gas 이상의 계산이 ZK 협처리기를 사용할 경우 비용이 더 낮아질 것이라고 생각하지만, 구체적으로 어떻게 도출되었는지는 아직 검토가 필요합니다. DAO 거버넌스도 ZK 협처리기를 사용할 수 있으며, 이는 여러 사람과 여러 계약이 관련되어 있어 계산 자원을 많이 소모합니다. RISC Zero는 Bonsai를 사용하면 가스 비용이 50% 줄어들 수 있다고 주장합니다. ZKML은 본질적으로 ZK 협처리기의 사고방식이므로 Modulus Labs와 Giza도 이 분야의 프로젝트입니다. ZK 협처리기의 개념이 더 크기 때문입니다.
또한 ZK 협처리기 분야에는 ezkl과 같은 보조 프로젝트도 있으며, 이는 ZK 회로를 제작하는 컴파일러, ZK 배포 도구 세트, 체인 상 계산을 체인 외로 이전하는 도구 등을 제공합니다.
4. 미래 전망
협처리기는 체인 상 애플리케이션이 "클라우드"와 같은 외부 계산 자원을 가지게 하여, 상대적으로 저렴한 대량의 계산을 제공하며, 체인 상에서는 필요한 계산만 처리합니다. 실제로 zkVM도 클라우드에서 실행될 수 있으며, ZK 협처리기는 본질적으로 체인 상 계산을 체인 외로 옮기는 방식으로, 체인 외 계산 자원은 누구에게서 제공받는지에 제한이 없습니다.
본질적으로 체인 외 계산 자원은 전통적인 대형 업체, 심지어 탈중앙화된 계산 자원 공유 및 로컬 장치에서 제공될 가능성이 있습니다. 이 세 가지 방향은 각각 차이가 있으며, 전통적인 대형 업체는 상대적으로 성숙한 체인 외 계산 솔루션을 제공할 수 있으며, 미래의 탈중앙화 계산 자원의 "강인성"이 더 강할 수 있습니다. 또한 사용자의 로컬 계산도 상상할 여지가 많습니다. 그러나 현재 많은 ZK 협처리기 프로젝트는 서비스 제공의 단계에서 폐쇄형 소스를 선택하고 있으며, 이 분야의 상하류가 아직 형성되지 않아 서비스를 세분화하고 다양한 프로젝트에 제공할 수 없습니다. 미래에는 두 가지 가능성이 있습니다:
- ZK 협처리기의 각 단계에서 많은 프로젝트가 서로 경쟁하게 된다.
- 서비스 경험이 좋은 하나의 프로젝트가 시장의 대부분을 차지하게 된다.
개발자의 관점에서 ZK 협처리기를 사용할 때, 아마도 하나의 "인터페이스" 프로젝트만 사용할 것입니다. 이는 아마존 클라우드가 시장의 많은 부분을 차지하는 이유 중 하나이기도 하며, 개발자는 특정 배포 방식에 익숙해지게 됩니다. 그러나 그 체인 외 계산 자원의 "인터페이스" 프로젝트 뒤에 어떤 계산 서비스 제공자(전통적인 클라우드 업체, 탈중앙화 자원 공유)가 연결되어 있는지는 또 다른 트랙에서 논의할 가치가 있는 문제입니다.