Opside ZK-PoW V2.0: 다중 체인 및 다중 롤업 ZKP 채굴 지원

1. Opside ZK-PoW 소개
Opside는 분산형 ZK-RaaS(ZK-Rollup as a Service) 플랫폼이자 업계 최고의 ZKP(Zero-Knowledge Proof) 채굴 네트워크입니다. ZK-RaaS(ZK-Rollup as a Service)는 누구에게나 원클릭 서비스를 제공하여 ZK-Rollup을 생성할 수 있습니다. Opside는 개발자가 다양한 유형의 ZK-Rollup을 다양한 기본 체인에 쉽게 배포할 수 있는 일반적인 ZK-Rollup 출시 기반을 제공합니다.
이더리움/옵사이드 체인/BNB 체인/폴리곤 PoS 및 기타 퍼블릭 체인을 포함한 기본 체인.
zkSync, Polygon zkEVM, Scroll, StarkNet 및 기타 종류의 ZK-Rollup과 같은 zkEVM을 포함한 ZK-Rollup 유형.

Opside ZK-PoW 클라우드는 Ethereum, BNB 체인, Polygon PoS 및 Opside Chain 자체를 포함하되 이에 국한되지 않는 여러 체인에 배포됩니다. Opside의 설계에서 개발자는 위에서 언급한 다양한 기본 체인에 ZK-Rollup을 배포할 수 있습니다. ZK-롤업 기술이 점진적으로 성숙해짐에 따라 앞으로 수백 개의 ZK-롤업이 탄생할 수 있으며, 이는 ZKP 컴퓨팅 성능에 대한 엄청난 수요를 가져올 것입니다. Opside는 ZK-PoW 메커니즘을 사용하여 채굴자가 ZKP 컴퓨팅 성능을 제공하도록 동기를 부여하여 ZK-Rollup을 위한 완전한 하드웨어 시설을 제공합니다.
2. ZK-PoW V 2.0의 전체 아키텍처
ZK-PoW V 2.0의 전체 아키텍처에는 몇 가지 주요 구성 요소가 포함되어 있습니다.
ZK-PoW 클라우드: ZKP 계산을 위해 Opside에서 제공하는 클라우드 인프라입니다. Ethereum, BNB Chain, Polygon PoS 및 Opside Chain을 포함한 여러 체인에 배포됩니다. ZK-PoW 클라우드는 ZKP 컴퓨팅 작업을 조정하고 관리하는 역할을 담당합니다.
채굴자 노드: ZKP 계산을 수행하기 위해 컴퓨팅 성능을 제공하는 채굴자가 운영하는 노드입니다. 채굴자는 채굴 하드웨어에서 특수 소프트웨어를 실행하여 ZK-PoW 네트워크에 참여할 수 있습니다.
ZKP 작업 분배: ZK-PoW Cloud는 ZKP 컴퓨팅 작업을 채굴자 노드에 분배합니다. 배포는 공정성과 효율성을 보장하기 위해 분산된 방식으로 이루어집니다. ZKP 작업에는 다양한 ZK-롤업에 대한 영지식 증명 생성 및 확인이 포함됩니다.
ZKP 계산: 채굴자 노드는 ZKP 계산 작업을 받고 필요한 증명을 생성하기 위해 필요한 계산을 수행합니다. 여기에는 암호화 알고리즘을 수행하고 복잡한 계산을 수행하는 작업이 포함됩니다.
증명 제출 및 검증: ZKP 계산이 완료되면 채굴자 노드는 생성된 증명을 ZK-PoW 클라우드에 제출하여 검증합니다. 클라우드 인프라는 증명의 정확성을 검증하여 유효성과 무결성을 보장합니다.
인센티브 메커니즘: 채굴자는 컴퓨팅 기여에 대한 보상을 받아 ZK-PoW 네트워크에 참여하도록 인센티브를 받습니다. 보상 시스템은 채굴자에게 동기를 부여하고 네트워크의 보안과 안정성을 유지하도록 설계되었습니다.
일반적으로 ZK-PoW V 2.0은 채굴자의 컴퓨팅 리소스를 클라우드 인프라와 결합하여 다양한 ZK-롤업에 효율적이고 확장 가능한 ZKP 컴퓨팅 성능을 제공합니다.
Aggregator는 Prover의 중요한 구성 요소 모듈로, ZKP 증명 작업을 배포하고 작업 결과, 즉 ZKP 증명을 수신하고, ZKP 증명을 관리하며, ZKP 증명을 베이스 체인에 제출하여 보상을 받는 역할을 담당합니다. 따라서 새 버전의 Aggregator는 기능에 따라 Proof Generator, Proof Manager 및 Proof Sender의 세 가지 하위 모듈로 나뉩니다.

위 그림의 점선 상자에 있는 증명 생성기 모듈은 증명자(PoW 채굴기)에 증명 작업을 발행하고 작업 결과인 ZKP 증명을 수락한 다음 ZKP 증명을 DB 데이터베이스에 저장하는 역할을 합니다. 증명 관리자는 ZKP 증명 완료를 관리하고, 전송 작업에 업로드할 ZKP 증명을 패키징하고, 이를 증명 발신자 모듈에 전달하는 일을 담당합니다. Proof Sender 모듈은 ZKP 증명 체인을 완성합니다. 즉, 기본 체인에 배포된 zkevm 계약에 증명을 제출합니다.
세 가지 모듈은 아래에 설명되어 있습니다.
Proof generator
롤업 체인은 일정 개수의 트랜잭션을 하나의 배치로 묶은 다음 여러 배치(트랜잭션 빈도 등 여러 요소에 따라)를 순서대로 묶은 다음 베이스 체인에 제출하므로 데이터가 나올 때마다 다음과 같이 말할 수 있습니다. on the chain 단위는 시퀀스입니다. 각 시퀀스에는 하나 이상의 배치가 포함되어 있으며 ZKP 증명은 제출된 시퀀스의 적법성을 입증하는 것이므로 배치는 증명 작업의 가장 작은 단위입니다.
시퀀스에 포함된 배치에 따라 완료해야 할 교정 작업도 다음과 같이 다릅니다.
배치 수는 1이고, 증명 프로세스 BatchProofTask ----> FinalProofTask는 BatchProofTask 및 FinalProofTask 증명 작업을 순서대로 완료해야 합니다.
시퀀스에는 1보다 큰 배치 번호가 포함되어 있고 증명 프로세스에는 여러 BatchProofTask ---->AggregatorproofTask ---> FinalProofTask가 있습니다. 여러 BatchProofTask, AggregatorproofTask 및 FinalProofTask 증명 작업을 순서대로 완료해야 합니다.
증명 생성의 효율성을 최대한 높이고 PoW 채굴자의 수입을 늘리기 위해 최대한 병렬로 증명을 생성합니다. 특히 다음 두 가지 측면에서:
각 시퀀스는 생성에 컨텍스트 또는 상태 종속성이 없으며 동시에 수행될 수 있음을 증명합니다.
동일한 순서로 여러 BatchProofTask를 동시에 수행할 수 있습니다.
이러한 방식으로 증명자의 컴퓨팅 파워 리소스를 더 잘 활용하여 증명을 보다 효율적으로 생성할 수 있습니다.
Proof manager
이 모듈은 주로 ZKP 인증서를 관리하고 ZKP 인증서의 체인 검증을 제어하는 일을 담당합니다. 크게 3개의 모듈로 구분
submitPendingProof: 이 모듈은 마지막 Aggregator 서비스가 중지되기 전에 완료되지 않은 ZKP 증명을 제출할 목적으로 Aggregator가 시작될 때마다 한 번만 실행됩니다. 다음은 ProofHash를 제출하고 다른 채굴자들이 증거를 제출하는 경우입니다. ProofHash에 있어서 증명의 도입은 Proof Sender를 의미합니다.
tryFetchProofToSend: 코루틴 실행 중에 가장 최근에 생성된 ZKP 증명과 해당 증명에 해당하는 시퀀스가 검증되지 않은 증명 발신자의 캐시에 추가하고 체인을 기다립니다.
processResend: 코루틴에서 실행되며, 시간이 지나도 성공적으로 확인되지 않은 시퀀스를 다시 제출하는 것이 목적입니다.
Proof sender
Opside증명자의 탈중앙화를 실현하기 위해 ZKP 2단계 제출 알고리즘을 제안합니다. 이 알고리즘은 ZKP 선행 공격을 방지할 수 있을 뿐만 아니라 더 많은 채굴자가 보상을 받을 수 있도록 하여 더 많은 채굴자가 온라인 상태가 되도록 장려하고 안정적이고 지속적인 ZKP 컴퓨팅 성능을 제공합니다.
1단계: 증거로 기록된 PoW 증명을 생성하기 위한 특정 시퀀스에 대해 먼저 해시(증명/주소)를 계산하고 이를 ProofHash로 기록한 후 컨트랙트에 제출합니다. 이전에 ProofHash를 제출하지 않은 시퀀스인 경우에는 ProofHash를 엽니다. 제출 시간 창 T 1. 다음 T 1 블록의 채굴자는 시퀀스를 제출할 수 있으며 증명은 T 1 블록 이후에만 제출할 수 있습니다.
2단계: 증거 제출 T 1 블록 이후 증거 제출을 활성화하고 T 2 블록 내로 제출을 제한합니다. T 2 블록 이후 증거를 제출한 모든 광부가 검증을 통과하지 못하면 이전에 증거 해시를 제출한 모든 광부가 처벌됩니다. T 1 시간 창에서 ProofHash를 성공적으로 제출할 수 있지만 T 2 시간 창에서 증명을 성공적으로 제출할 수 없고, 다른 채굴자가 T 2 창에서 증명을 성공적으로 제출한 경우에도 계속해서 증명을 제출할 수 있습니다. 위의 시나리오 외에도 2단계 제출 프로세스를 다시 수행하세요.
아래 그림에서 볼 수 있듯이 Proof Sender는 3개의 스레드 안전 및 우선 순위 정렬 캐시를 기반으로 2단계 제출을 구현합니다. 이 3개의 캐시는 시퀀스의 초기 높이를 기준으로 정렬되어 다음에서 얻은 요소에 해당하는 시퀀스 높이를 보장합니다. 이 세 캐시는 매번 가장 낮으며 이 세 캐시의 요소는 중복 제거됩니다. 해당 시퀀스의 높이가 낮을수록 우선순위가 높아집니다.
finalProofMsgCahce: ZKP 증명을 완료하기 위해 Proof Manager가 보낸 finalProof 메시지를 저장합니다.
monitPHTxCache: ProofHash를 모니터링하기 위해 트랜잭션을 저장합니다.
ProofHashCache: 온체인 증명을 위해 증명 메시지를 저장합니다.
아래 그림과 같이:

Proof Sender 모듈이 시작된 후 3개의 코루틴이 각각 3개의 캐시된 데이터를 사용하기 위해 시작됩니다.
간단한 과정은 다음과 같습니다:
코루틴 1은 finalProofMsgCahce에서 finalProof 메시지를 소비하고 ProofHash를 계산하는 역할을 담당하며, 온체인 조건(T 1 조건 내)을 충족하면 ProofHash를 체인에 배치하고 ProofHash 트랜잭션을 monitPHTxCache에 배치합니다.
코루틴 2는 monitPHTxCache의 ProofHash 트랜잭션 메시지를 소비하며, T 2 시간 범위 내에서 온체인 증명 조건이 충족되면 증명 메시지를 구성하여 ProofHashCache에 저장합니다.
코루틴 3은 증명 메시지를 소비하고 증명은 체인에 업로드됩니다.
이전 모듈과 비교하여 구조가 더 명확해지고 리소스 오버헤드가 절약됩니다.
3. 요약
버전 1.0과 비교
V 2.0은 원래 서비스를 3개의 하위 모듈로 분할합니다. 3개의 모듈은 각각 인증서 생성, 인증서 관리 및 인증서 체인을 담당합니다. 구조가 더 명확하며, 3개의 모듈은 낮은 결합도와 강력한 견고성을 갖습니다.
이전 버전과 비교하여 Proof Generator는 새로운 채굴자가 채굴 진행 상황을 더 빠르게 따라잡을 수 있도록 startBatch 매개변수를 추가했습니다.
증명 관리 모듈 Proof Manager는 이전 버전보다 더 좋고 개선되었습니다. 채굴자가 서비스를 다시 시작하거나 기타 이유로 증명이 제출되지 않거나 제출이 실패하는 경우, 증명은 최대한 빨리 재전송되어 채굴자의 이익을 보장합니다. 동시에 재전송 메커니즘은 증거 제출 실패뿐만 아니라 모든 증거 제출이 실패하거나 제출되지 않은 경우에도 롤업 체인의 보안을 보장하기 위해 시간 창이 다시 시작됩니다.
증명 전송 모듈인 Proof Sender는 3개의 스레드 안전 우선순위 캐시를 기반으로 2단계 트랜잭션 제출을 구현합니다. 이는 이전 버전에 비해 전역 잠금 사용을 줄이고 낮은 수준의 증명을 가능한 한 빨리 제출할 수 있도록 보장합니다. 광부의 이익. 동시에 전체 서비스 프로세스가 더 명확해지고 스레드 수가 줄어들며 프로그램 실행 중 리소스 소비가 줄어듭니다.
압력 테스트 결과:
버전 2.0은 10개의 64코어 머신을 사용하여 566개의 배치 교정을 완료합니다. 이는 7시간 38분 40초가 소요되며 교정을 완료하는 데 평균 48.62초가 소요됩니다. 다중 채굴자 시나리오에서 V 1.0에 비해 V 2.0의 zk 증명 생성 효율성은 전체적으로 50% 증가했습니다.
즉, Opside ZK-PoW V 2.0은 ZKP 계산에 참여하는 다중 채굴자의 프로세스를 최적화하고, 하드웨어 활용도를 향상시키며, 서비스 가용성을 향상시키며, 채굴자에게 더욱 친숙합니다. 더 중요한 것은 다중 채굴자 시나리오에서 ZKP 계산이 1분 미만으로 단축되어 ZK-Rollup 확인 시간이 크게 단축된다는 점입니다.


