분산 증명 생성

이 기사는 기계로 번역되었습니다
원문 표시

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 .

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트