Ethereum과 같은 합의 프로토콜 기반의 분산 증명 생성 사양
개요
이 사양은 Ethereum(또는 모든 합의 프로토콜)과 통합된 분산 증명 생성 프로토콜을 정의하여 두 가지 뚜렷한 역할을 소개합니다.
- 검증자 : 블록 합의 에 참여하고 제출된 zk-증명을 검증하는 기존 이더리움 검증자입니다.
- 증명자(Prover) : 검증자와는 별개로 GPU를 사용하여 영지식 증명(zk-proof)을 생성하는 새로운 역할입니다. 증명자는 이더리움 검증자와 별도로 예치(stake) 수행해야 합니다.
이 시스템은 인센티브를 제공하는 다단계 프로토콜(T1~T5)을 통해 시기적절하고 중복적이며 검증 가능한 증거 생성을 보장하도록 설계되었습니다.
변수
// Numbers needs to be adjusted, they are just some initial ideas.PROVERS_PER_PROOF = 200PROVERS_PER_AGGPROOF = 5REWARD_FULL_PROOF_PROVER_T1 = 9000 // Reward received by each selected prover in T1 if a valid FullProof is submitted.REWARD_FULL_PROOF_SENDER_T1 = 50 // Reward received by the prover who sends a valid FullProof in T1.REWARD_FULL_PROOF_VALIDATOR_T1 = 1000REWARD_T1_VALIDATOR = 3PENALTY_T1_PROVER = -1REWARD_FULL_PROOF_PROVER_T2 = 8000REWARD_FULL_PROOF_SENDER_T2 = 40REWARD_FULL_PROOF_VALIDATOR_T2 = 900REWARD_T2_VALIDATOR = 3PENALTY_T2_PROVER = -3REWARD_PROVER_REUSING_T3 = 40REWARD_PROVER_REUSED_T3 = 40REWARD_PROVER_T3 = 50REWARD_VALIDATOR_T3 = 1PENALTY_PROVER_T3 = -1PENALTY_PROVER_NOTREUSED_T3 = -1REWARD_PROVER_REUSING_T4 = 30REWARD_PROVER_REUSED_T4 = 30REWARD_PROVER_T4 = 40REWARD_VALIDATOR_T4 = 1PENALTY_PROVER_T4 = -2PENALTY_PROVER_NOTREUSED_T4 = -1REWARD_PROVER_REUSING_T5 = 20REWARD_PROVER_REUSED_T5 = 20REWARD_PROVER_T5 = 40REWARD_VALIDATOR_T5 = 1PENALTY_PROVER_T5 = -4PENALTY_PROVER_NOTREUSED_T5 = -1REWARD_AGG_PROOF_PROVER = 50REWARD_AGG_PROOF_VALIDATOR = 3 검증자 선택 및 할당
- 각각의 새로운 블록 에 대해 RANDAO와 같은 메커니즘을 사용하여 증명자의 결정적으로 무작위적인 하위 집합이 선택됩니다.
- 선택된 증명자의 수는 블록의 가스 사용량에 따라 달라집니다.
num_provers_selected = Min(PROVERS_PER_PROOF, availableProvers / 2 )- 선택된 각 증명자에게는 무작위로 부분 증명 (하위 작업) 세트가 할당되어 생성되며, 이는 중복성 요인과 함께 분포됩니다.
num_airs_assigned = (num_of_partial_proofs / num_provers_selected) * redundancy_factor- 선택된 각 증명자의 할당된
partial_proofs은 계산 및 계획 단계 이후 무작위 결정론적으로 결정됩니다. - 유효한 제출 기록이 많은 증명자는 향후 라운드에서 선택될 확률이 더 높을 수 있습니다(그러나 제한적입니다) .
- 증명자는 한 번에 하나의 증명 에만 할당될 수 있습니다.
다단계 증명 생성
T1: 도전 약속 단계
선택된 모든 증명자는 다음을 수행해야 합니다.
- 서명된 과제를 이행합니다(예: 자신이 구성해야 할 하위 AIR의 다항식 이행).
- 선택적으로 전체 증빙서류를 제출하세요.
증명자당 하나의 거래 만 허용됩니다. 증명에는 증명 도용을 방지하기 위해 증명자의 공개 키가 공개 출력으로 포함되어야 합니다.
인센티브:
T1에 유효한 전체 증명이 제출된 경우:
- 선택한 각 증명자에 대해 REWARD_FULL_PROOF_PROVER_T1을 지정합니다 .
- 검증자를 위한 REWARD_FULL_PROOF_VALIDATOR_T1 .
- 증명자가 제출하면 REWARD_FULL_PROOF_SENDER_T1이 추가로 지급됩니다.
그렇지 않으면:
- REWARD_T1_VALIDATOR × 검증자에 대한 유효한 약속 .
- 커밋에 실패한 증명자에 대한 PENALTY_T1_PROVER .
T2: 부분적 증명 제출 단계
- 선택된 모든 증명자는 다음을 수행해야 합니다.
- T1의 과제를 참조하여 부분적인 증명을 제출하세요.
- 선택적으로 전체 증빙서류를 제출하세요.
인센티브:
유효한 전체 증빙서류가 제출된 경우:
- 선택된 각 증명자에 대해 REWARD_FULL_PROOF_PROVER_T2 .
- 검증자를 위한 REWARD_FULL_PROOF_VALIDATOR_T2 .
- 제출한 증명자에게 REWARD_FULL_PROOF_SENDER_T2 추가 보상이 지급됩니다.
그렇지 않으면:
- 유효한 부분 증명을 제출하는 증명자에게 REWARD_T2_PROVER를 제공합니다 .
- 제출에 실패하면 PENALTY_T2_PROVER가 적용 됩니다.
- REWARD_T2_VALIDATOR × 검증자에 대한 유효한 부분 .
T3: 전체 증명 집계 단계
- 모든 증명자는 재사용된 부분 증명을 요약한 BloomHash를 포함한 전체 증명을 제출할 수 있습니다.
보상:
- REWARD_PROVER_REUSING_T3 × 재사용된 부분
- REWARD_PROVER_REUSED_T3 × 다른 사람이 재사용한 횟수
- PENALTY_PROVER_NOTREUSED_T3 × 다른 사람이 재사용하지 않은 시간
- 유효한 완전 증명이 많이 제출되면 위의 보상은 그 중에서 평균화 됩니다.
- 제출하는 증명자에 대한 REWARD_PROVER_T3입니다 .
- REWARD_VALIDATOR_T3 × 유효한 전체 증명
- 불참 시 PENALTY_PROVER_T3이 적용됩니다 .
T4 / T5: 폴백 집계 단계
- T3가 유효한 증명을 확정하지 못하는 경우:
- T4로 들어간 후 필요하면 T5로 들어가세요.
- 동일하거나 새로운 증명자 세트로 다시 시도합니다(T5가 실패할 경우).
- 보상/벌점은 T3와 동일하지만, 정의된 백분율로 조정(감소/증가)됩니다 .
여러 하위 블록(기가가)에 대한 확장
- 하위 블록의 수는 시스템 상한과 검증자 가용성에 따라 제한됩니다.
- 하위 블록마다 하나의 증명자 세트가 할당됩니다. 위 프로토콜은 하위 블록마다 독립적으로 적용됩니다.
- PROVERS_PER_AGGPROOF 증명자 그룹도 하위 블록을 전체 블록 으로 집계하기 위해 선택됩니다.
T1에서:
- 선택된 증명자는 블록 에 대한 AggProof를 제출할 수 있습니다.
인센티브:
- 집계자 증명자당 REWARD_AGG_PROOF_PROVER .
- AggProof를 포함한 검증기당 REWARD_AGG_PROOF_VALIDATOR .



