分布式证明生成

本文为机器翻译
展示原文

基于以太坊等共识协议的分布式证明生成规范

概述

本规范定义了一个与以太坊(或任何共识协议)集成的分布式证明生成协议,引入了两个不同的角色:

  • 验证者:现有的以太坊验证者,参与区块共识并验证提交的零知识证明。
  • 证明者:一个新角色,独立于验证者,负责使用GPU生成零知识证明。证明者需要与以太坊验证者分开进行质押。

该系统旨在通过激励性的多阶段协议(T1–T5)确保及时、冗余和可验证的证明生成。

变量

// 数字需要调整,这只是一些初步想法。 PROVERS_PER_PROOF = 200 PROVERS_PER_AGGPROOF = 5 REWARD_FULL_PROOF_PROVER_T1 = 9000 // 如果在T1阶段提交有效的完整证明,每个选定的证明者获得的奖励。 REWARD_FULL_PROOF_SENDER_T1 = 50 // 在T1阶段提交有效完整证明的证明者获得的额外奖励。 REWARD_FULL_PROOF_VALIDATOR_T1 = 1000 REWARD_T1_VALIDATOR = 3 PENALTY_T1_PROVER = -1 REWARD_FULL_PROOF_PROVER_T2 = 8000 REWARD_FULL_PROOF_SENDER_T2 = 40 REWARD_FULL_PROOF_VALIDATOR_T2 = 900 REWARD_T2_VALIDATOR = 3 PENALTY_T2_PROVER = -3 REWARD_PROVER_REUSING_T3 = 40 REWARD_PROVER_REUSED_T3 = 40 REWARD_PROVER_T3 = 50 REWARD_VALIDATOR_T3 = 1 PENALTY_PROVER_T3 = -1 PENALTY_PROVER_NOTREUSED_T3 = -1 REWARD_PROVER_REUSING_T4 = 30 REWARD_PROVER_REUSED_T4 = 30 REWARD_PROVER_T4 = 40 REWARD_VALIDATOR_T4 = 1 PENALTY_PROVER_T4 = -2 PENALTY_PROVER_NOTREUSED_T4 = -1 REWARD_PROVER_REUSING_T5 = 20 REWARD_PROVER_REUSED_T5 = 20 REWARD_PROVER_T5 = 40 REWARD_VALIDATOR_T5 = 1 PENALTY_PROVER_T5 = -4 PENALTY_PROVER_NOTREUSED_T5 = -1 REWARD_AGG_PROOF_PROVER = 50 REWARD_AGG_PROOF_VALIDATOR = 3

证明者选择和分配

  • 对于每个新区块,使用如RANDAO等机制选择一个确定性随机的证明者子集
  • 选定的证明者数量取决于区块的gas使用情况:
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:完整证明聚合阶段

  • 任何证明者可以提交完整证明,包括总结重用部分证明的布隆哈希

奖励:

  • 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相同,但按定义的百分比调整(降低/提高)

多子区块扩展(Gigagas)

  • 子区块数量受系统上限和证明者可用性限制。
  • 每个子区块分配一个证明者集。上述协议独立应用于每个子区块。
  • 选择一组PROVERS_PER_AGGPROOF证明者将子区块聚合成完整区块。

在T1阶段:

  • 选定的证明者可以提交区块的聚合证明

激励:

  • 每个聚合器证明者获得REWARD_AGG_PROOF_PROVER
  • 包含聚合证明的每个验证者获得REWARD_AGG_PROOF_VALIDATOR

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论