다른 zk-SNARK와 비교하여 Groth16은 상대적으로 작은 증명 크기와 빠른 확인 시간을 가지므로 효율적이고 안전한 거래 처리를 위한 DeGate의 요구 사항에 매우 적합합니다.
카를로스 라모스가 각본을 맡은 작품
DeGate는 영지식(ZK) 기술을 기반으로 하는 이더리움을 기반으로 구축된 분산형 거래 프로토콜입니다. ZK Rollup 분산형 거래소(DEX)인 DeGate는 Binance 또는 Bybit와 같은 인기 있는 중앙형 거래소(CEX)와 유사한 거래 경험을 제공합니다. 이 프로토콜은 현물 거래 및 그리드 거래를 포함한 다양한 기능을 지원하며 원활한 거래 경험을 보장하기 위해 더 많은 기능이 지속적으로 추가될 예정입니다. DeGate는 빠르고 저렴한 거래가 가능하도록 설계되어 사용자에게 다양한 자산 토큰 획득 시 보다 효율적이고 편리한 거래를 제공합니다.
이 기사에서는 DeGate의 아키텍처와 그 뒤에 있는 영지식 및 Groth16 기술에 대해 자세히 살펴보겠습니다.
DeGate의 기술 아키텍처
DeGate의 핵심 기술은 수많은 온체인 및 오프체인 구성 요소를 포함하는 영지식 롤업(ZK-Rollup)입니다. 계정 및 자산 변경 사항은 오프체인에서 처리되고 온체인 스마트 계약으로 집계됩니다.
온체인 구성요소
DeGate 스마트 계약은 온체인 구성 요소입니다. 스마트 계약은 이더리움 블록체인에 배포되며 거래소와 상호작용하려는 누구나 접근할 수 있습니다. 이는 거래를 신뢰할 수 없고 투명하게 만들고, 사용자는 자신의 자금을 완전히 통제할 수 있으며, DeGate에 의존하지 않고 자산을 스스로 인출할 수 있습니다( Exodus 모델 참조). EVM 네트워크에 배포된 스마트 계약은 자산을 저장하고, 영지식 증명을 확인하고, 입출금 방법을 제공합니다.
오프체인 구성요소
DeGate는 또한 오프체인 주문 매칭과 주문장 관리를 활용하여 거래 비용을 줄이고 거래 실행 속도를 높입니다. 이는 이더리움 네트워크에 부담을 주지 않으면서도 안전하고 신뢰할 수 없는 상태를 유지하면서 대량의 거래를 빠르고 효율적으로 처리할 수 있는 zk-rollups 기술 덕분입니다.
DeGate 오프체인 노드에는 주로 다음이 포함됩니다.
- 거래 시스템: 사용자 주문을 처리하고, 주문서의 주문을 일치시키며, 계정 및 자산 상태 변경 이벤트를 처리합니다.
- 운영자: 정기적으로 오프체인 계정 및 자산 거래를 처리하고, zkBlock을 생성하고, zkp-worker를 호출하고, 증거(zkBlock 데이터)를 제출합니다.
- zkp-worker: 영지식 증명이 필요한 이벤트를 설명하고 영지식 증명을 생성합니다. 머클 트리(Merkle tree): DeGate 프로토콜의 계정, 자산 및 주문을 트리 구조로 저장합니다.
- 체인 동기화: DeGate 스마트 계약 내에서 발생하는 모든 거래를 관찰하고 확인합니다.
- Postman: EVM 네트워크에서 DeGate 스마트 계약 방법을 호출하고 zkBlock 데이터를 스마트 계약에 제출합니다.
ZK-롤업 기술
이전 그림에서 DeGate에는 DeGate Node L2라는 주요 구성 요소가 있으며 Rollup 프로세스는 다음 세 단계로 요약될 수 있습니다.
- 사용자 서명 요청은 자산 개인키(PK) 또는 사용자 지갑 PK(이체, 입금)를 사용하여 DeGate를 통해 완료할 수 있습니다.
- 노드는 사용자 요청을 확인 및 처리하고, 오프체인 트랜잭션을 일괄적으로 블록으로 패키징하고, 회로를 호출하여 영지식 증명을 생성합니다.
- 노드는 검증을 위해 체인의 스마트 계약에 증명 결과를 보내고 ZK-Rollup을 완료하며 데이터 가용성을 달성합니다.
데이터 가용성
DeGate의 ZK-Rollup은 증명 생성과 증명 검증이라는 두 가지 핵심 요소로 보장됩니다. DeGate 프로토콜에서는 오프체인 회로 절차를 통해 노드별로 증명 생성이 완료됩니다. 중계자는 SNARK 증명을 생성하기 위해 많은 수의 거래를 수집합니다. SNARK 증명은 DeGate 상태에 대한 변경 사항 집합을 나타내는 해시와 유사한 콘텐츠입니다. 블록체인 시스템에 대한 분산형 신뢰를 활성화하고 증명하기 위해 DeGate는 검증을 위해 오픈 소스 스마트 계약과 고정 검증 키를 사용합니다.
순회 프로그램
회로 정보: 영지식 증명 회로는 몇 개의 논리 게이트로 구성된 논리 회로입니다. 모든 계산은 산술 회로로 설명될 수 있습니다. 이러한 전제를 바탕으로 복잡한 논리 연산을 간단한 덧셈과 곱셈 게이트로 분해하고 설명할 수 있습니다.
영지식 증명(Zero Knowledge Proof)은 한 당사자(증명자)가 해당 진술에 대한 정보를 공개하지 않고 특정 진술이 사실임을 다른 당사자(검증자)에게 설득할 수 있도록 하는 프로토콜입니다. 비대화형 영지식 증명(NIZK)은 증명자가 검증자와 상호 작용하지 않고 증명을 생성할 수 있는 특정 유형의 영지식 증명입니다. NIZK 프로토콜은 스마트 계약이 유효성 검사기 역할을 할 수 있도록 하기 때문에 Ethereum 애플리케이션에 매우 적합합니다. 이런 방식으로 누구나 증거를 생성하고 이를 거래의 일부로 스마트 계약으로 보낼 수 있으며, 스마트 계약은 증거의 유효성에 따라 특정 작업을 수행할 수 있습니다. 이러한 맥락에서 가장 인기 있는 NIZK는 zk-SNARK(Zero-Knowledge Succinct Non-Interactive Knowledge Proof)이며, 이는 컴팩트한 증명 크기와 하위 선형 검증 시간을 갖춘 비대화형 영지식 프로토콜 세트입니다. 이러한 프로토콜의 중요성은 두 가지 측면에 반영됩니다. 한편으로는 개인 정보 보호 수준을 높이는 데 도움이 되고, 다른 한편으로는 확장성 문제에 대한 가능한 솔루션이므로 DeGate의 아키텍처에 매우 적합합니다.
대부분의 영지식 증명(ZKP)과 마찬가지로 zk-SNARK는 계산 진술을 증명할 수 있습니다. 예를 들어, 특정 공개 키와 관련된 개인 키에 대한 지식, 트랜잭션의 올바른 계산 또는 특정 해시의 사전 이미지에 대한 지식을 증명할 수 있습니다. 중요한 것은 이러한 진술에 대한 정보를 공개하지 않고도 이러한 작업을 수행할 수 있다는 것입니다. 즉, 개인 키, 거래 내역, 사전 이미지 값에 대한 정보는 공개되지 않습니다. 보다 구체적으로, zk-SNARK를 사용하면 산술 회로로 시뮬레이션할 수 있는 모든 계산 명령문을 증명할 수 있으며, 이러한 회로를 흔히 zk-SNARK 회로라고 합니다. 대부분의 zk-SNARK 프로토콜 구현(예: Pinnochio, GGPR13 및 Groth16)은 타원 곡선 암호화를 사용한다는 점은 언급할 가치가 있습니다.
Groth16에 대한 자세한 소개
Groth16은 산술 회로와 관련된 계산을 효율적으로 검증할 수 있는 타원 곡선을 사용하여 구현된 영지식 증명 시스템입니다. 구성은 다음 구성 요소를 기반으로 합니다.
- 두 점 G1과 G2 집합 사이의 쌍선형 쌍 e: G1은 곱셈 그룹입니다.
- 공통 참조 문자열(CRS)은 사전에 생성되어 증명 생성 및 검증 프로세스 중에 사용되는 공개 매개변수 세트입니다.
- 계산이 증명될 회로 C(x)를 설명하십시오. 여기서 x는 회로에 대한 입력 벡터입니다. Groth16 구성은 키 생성, 증명 생성 및 검증의 세 단계로 구성됩니다.
Groth16 구성에는 타원 곡선, 이중선형 쌍 함수 및 영지식 증명을 포함한 여러 수학 공식과 개념이 포함됩니다.
Groth16: 신뢰할 수 있는 설정
Groth16에서 신뢰할 수 있는 설정 프로세스에는 증명 생성 및 확인 프로세스에 사용되는 CRS(공통 참조 문자열) 생성이 포함됩니다. CRS는 사전에 생성되어 모든 이해관계자에게 배포되는 공통 매개변수 집합입니다. 이 프로세스에는 CRS의 공개 매개변수를 예측하거나 조작할 수 없도록 보장하는 방식으로 생성하는 데 사용되는 무작위 값을 생성하는 작업이 포함됩니다. 공개 매개변수를 생성하는 데 사용된 비공개 값은 시스템 보안을 손상시키는 데 사용되는 것을 방지하기 위해 파기됩니다. 신뢰할 수 있는 설정 프로세스는 시스템의 보안과 무결성을 보장하는 데 중요합니다.
Groth16: QAP 및 FFT
Groth16에서 증명 생성 프로세스에는 증명할 계산을 나타내는 2차 산술 프로그램(QAP)을 만드는 작업이 포함됩니다. 그런 다음 QAP는 FFT(고속 푸리에 변환) 알고리즘을 사용하여 변환되어 증명에 사용할 수 있는 계산의 간결한 표현을 생성합니다.
QAP는 증명할 계산을 2차 방정식의 집합으로 표현하며, 여기서 변수는 계산의 입력값과 중간값입니다. 그런 다음 QAP는 FFT 알고리즘을 사용하여 변환되어 계산을 간결한 형식으로 나타내는 다항식 커밋션을 생성합니다. 이 다항식 확약은 검증 계산의 정확성을 증명하는 데 사용됩니다.
Groth16에서 사용되는 FFT 알고리즘은 시퀀스의 이산 푸리에 변환(DFT)을 계산하는 데 널리 사용되는 알고리즘인 Cooley-Tukey 알고리즘을 기반으로 합니다. Cooley-Tukey 알고리즘은 QAP에서 FFT를 수행하여 이를 원래 QAP보다 훨씬 작은 다항식 약속으로 변환하는 데 사용됩니다.
Groth16에서 QAP 및 FFT를 사용하면 산술 회로와 관련된 계산에 대한 영지식 증명을 효율적으로 생성하고 검증할 수 있습니다. FFT를 사용하면 증명의 크기를 줄여 계산과 검증을 보다 효율적으로 할 수 있으며, QAP를 사용하면 계산을 보다 자연스럽게 표현하여 증명할 수 있습니다.
그로스16:ALT_BN128
곡선 ALT_BN128은 알려진 타원 곡선입니다. 이 곡선에 대해 사전 컴파일된 계약이 이더리움의 EIP196 및 EIP197에 추가되었습니다. 이를 통해 온체인 계산에 이 곡선을 사용하여 더 많은 가스를 절약할 수 있습니다.
ALT_BN128 곡선은 페어링 기반 암호화에 널리 사용되는 선택이며 이더리움에서 지원하는 가장 초기이자 널리 사용되는 페어링 곡선입니다. DeGate는 이를 프로토콜에서 사용하여 거래를 효과적으로 검증합니다. 다음은 블록체인 애플리케이션에서 일반적으로 사용되는 다른 곡선과 ALT_BN128 곡선을 비교한 것입니다.
1. secp256k1: secp256k1 곡선은 비트코인을 포함한 블록체인 애플리케이션에서 널리 사용됩니다. 이는 방정식 y^2=x^3+7(mod p)로 정의됩니다. 여기서 p는 2²⁵⁶-2³²-2⁹-2⁸-27-2⁶-2⁴-1이며 이는 큰 256비트 소수입니다. secp256k1 곡선은 일부 작업에서 ALT_BN128 곡선보다 빠르지만 FFT 계산에는 적합하지 않으므로 zk-SNARK 방식에서는 사용되지 않습니다.
2. BLS12-381: BLS12-381 곡선은 페어링 기반 암호화에 널리 사용되는 또 다른 선택이며 Zcash를 포함한 여러 블록체인 애플리케이션에 사용됩니다. 이는 방정식 y^2=x^3+4(mod p)로 구성됩니다. 여기서 p=2^381-3입니다. BLS12-381 곡선은 일부 작업에서 ALT_BN128 곡선보다 느리지만 안전 강도는 더 높습니다.
DeGate의 Groth16 및 ZK 블록 크기
광범위한 연구와 토론 끝에 DeGate는 마침내 Groth16을 zk-SNARK 프로토콜로 선택했습니다. Groth16은 Zcash와 같은 많은 유명한 프로젝트에서 널리 사용되며 풍부한 프로그램 구현 라이브러리를 갖추고 있어 개발자 친화적입니다. 또한 DeGate는 높은 보안 강도로 빠른 증명 생성과 낮은 ZK-Rollup 비용을 달성할 수 있습니다.
DeGate는 오프체인 거래를 zk 블록으로 패키징하여 블록체인에 제출합니다. zk 블록의 트랜잭션 수는 ALT_BN128 곡선이 지원하는 제약 조건 수와 FFT 계산의 난이도에 따라 배포 전에 결정됩니다. zk 블록의 트랜잭션 수가 많을수록 문제는 더욱 복잡해지고 R1CS 회로 제약 조건도 커집니다. zk 블록의 효율적이고 안전한 처리를 보장하기 위해 DeGate는 특정 수의 트랜잭션으로 여러 zk 블록 크기를 결정합니다. 이러한 크기는 5~355개의 트랜잭션 범위이며 다양한 크기는 다양한 PK 및 VK 세트에 해당합니다. 현재 DeGate에서 생성된 zk 블록의 크기는 355, 300, 250, 200, 150, 100, 50, 25, 10입니다. .
신뢰할 수 있는 설정
DeGate 프로토콜이 이더리움 메인넷에 배포되면 회로와 스마트 계약이 모두 초기화됩니다. 이 프로세스는 신뢰할 수 있는 설정이라고도 하며 무작위 엔트로피를 포함합니다. DeGate 프로토콜의 신뢰 설정은 두 단계로 나뉩니다.
- 초기값은 Power of Tau 구성을 참조하세요.
- 초기 값을 기반으로 먼저 미래의 비트코인 블록 해시를 참조한 다음 5명의 커뮤니티 구성원이 제공하는 무작위 엔트로피를 얻은 다음 다른 미래의 비트코인 블록 해시를 참조합니다. 마지막으로 증명 키와 검증 키가 각각 회로와 스마트 계약에 계산되어 저장됩니다.
Groth16은 다른 솔루션과 비교
증명 크기 및 검증 시간 측면에서 Groth16이 다른 인기 있고 현대적인 zk-SNARK 구성과 비교되는 방법은 다음과 같습니다.
참고자료 : https://www.cth.group/insights/page/zk/
그로스 VS 플론크
Groth16과 PLONK는 모두 효율적인 zk-SNARK 구성이지만 설계 및 구현에 몇 가지 주요 차이점이 있습니다.
- 해석 용이성: Groth16은 관련된 알고리즘 원리가 더 직관적이고 이해 및 감사가 더 쉽기 때문에 PLONK보다 더 투명한 것으로 간주됩니다. PLONK에는 더 복잡한 수학적 연산과 제약 절차가 포함되어 구현의 정확성을 확인하기가 더 어려울 수 있습니다.
- 증명 크기: Groth16의 증명에는 3개의 그룹 요소만 있는 반면, Plonk의 증명 크기는 일반적으로 동일한 조건에서 Groth16의 증명 크기의 약 2.5배입니다.
- 검증 계산량: Groth16은 검증을 위해 PLONK보다 더 많은 페어링 계산이 필요하며, 특히 k개 증명의 일괄 검증을 수행할 때 Groth16은 (k+3)개의 페어링을 수행해야 하지만 PLONK의 검증은 결합 가능하며 항상 2개의 페어링 계산만 수행합니다.
- 유연성: Groth16은 회로가 변경될 때마다 새로운 신뢰할 수 있는 설정이 필요한 CRS를 사용하고, PLONK는 회로 구조가 변경될 때 새로운 설정이 필요하지 않은 SRS를 사용하므로 다양한 작업과 요구 사항에 더 잘 적응할 수 있습니다.
전반적으로 Groth16은 애플리케이션이 동일한 회로(예: 단일 논리 계산)에 대해 여러 증명을 생성해야 하고 스토리지 종속 성능이 중요할 때 및 애플리케이션이 다양한 회로를 처리해야 할 때(예: 비즈니스 로직을 빠르게 업데이트할 수 있고 높은 성능을 유지할 수 있다면 PlonK가 더 적합한 선택입니다.
DeGate의 영지식 증명 솔루션 선택
DeGate는 효율성과 보안 기능 때문에 Groth16을 선택했습니다. 다른 zk-SNARK 구성과 비교하여 Groth16은 상대적으로 작은 증명 크기와 빠른 확인 시간을 가지므로 효율적이고 안전한 거래 처리를 위한 DeGate의 요구 사항에 매우 적합합니다. Groth16은 또한 간단하고 이해하기 쉽다는 장점이 있어 보안 감사 및 테스트를 용이하게 합니다.
따라서 DeGate의 경우 Groth16은 Ethereum 블록체인에서 거래를 처리하는 데 필요한 효율성, 보안 및 단순성을 제공하기 때문에 현재 적합한 zk-SNARK 구성이지만 우리가 선택한 기술은 제품 및 사용자 서비스를 위해 다음과 같습니다. 다음 특성을 기반으로 다양한 고급 ZK 솔루션의 채택과 혁신을 고려하십시오.
- 효율성: DeGate 제품 개요에 따르면 이 프로토콜은 최대 355개의 트랜잭션 블록을 처리하도록 설계되었습니다. Groth16은 페어링 기반 암호화에서 매우 효율적인 것으로 입증되었으며 페어링 작업은 zk-SNARK에서 광범위하게 사용되므로 이 작업에 매우 적합합니다.
- 보안: 앞서 언급했듯이 Groth16은 매우 안전한 것으로 간주되며 블록체인 애플리케이션에서 강력한 사용 기록을 가지고 있습니다. 이는 금융 거래 처리와 관련이 있고 높은 수준의 보안이 필요하기 때문에 DeGate에게 매우 중요합니다.
- 성능: Groth16의 검증 시간은 일반적인 CPU에서 약 10밀리초이며, 이는 다른 zk-SNARK 구성보다 훨씬 빠릅니다. 또한 Groth16의 증명 크기는 상대적으로 작기 때문에 블록체인에서 전송해야 하는 데이터가 적습니다. 이는 이더리움 블록체인에서 거래를 처리하는 데 필요한 가스 비용을 줄이는 데 도움이 되기 때문에 DeGate에게 매우 중요합니다. 또한 검증 및 기타 프로세스의 비용을 더욱 줄이기 위해 PLONK 솔루션을 결합하여 성능을 향상시킬 수 있습니다. 검증 단계.
- 확장성: 더 많은 기능을 지원하고 업데이트 가능한 회로 구조와 빠른 반복을 달성하기 위해 Degate는 Halo2 및 기타 다양한 작업에 대해 더욱 강력하고 진보된 영지식 증명 솔루션을 사용하는 동시에 사용자 개인 정보 보호 및 자산 보안을 보호할 것입니다. 더 많은 요구 사항을 기반으로
요약하다
이 기사에서는 DeGate 프로토콜과 기본 Groth16 증명 시스템에 대한 심층 분석을 제공하고 DeGate가 Groth16 증명 시스템을 사용하여 안전하고 효율적인 분산 교환 플랫폼을 만드는 방법을 설명합니다. DeGate 아키텍처의 다양한 구성 요소를 소개하는 데 중점을 두고 DeGate에서 사용하는 영지식 증명 기술을 명확하게 설명합니다.