\mathtt{证明器}Provers生成\mathsf{Merkle~ Tree}Merkle Tree承诺并将其发送给\mathtt{主证明器}Master Prover(这个功能可以由一个证明器执行,为简单起见,我们假设这是一个单独的实体)。\mathtt{主证明器}Master Prover从\mathtt{验证器}Verifier那里获得一个随机挑战\thetaθ,并将其广播给所有\mathtt{证明器}Provers。现在每个\mathtt{证明器}ProverP_iPi,知道它的编号ii,可以生成它的"部分线性组合",并将其发送给\mathtt{主证明器}Master Prover。
\mathtt{主证明器}Master Prover运行\mathtt{FRI}FRI的常规版本,用于多项式\sum_{i=1}^{M}F_i∑Mi=1Fi。但是,它无法在协议的查询阶段提供多项式评估和Merkle认证路径进行一致性检查,因此它要求相应的\mathtt{证明器}Prover提供每个多项式的这些信息。
\mathtt{主证明器}Master prover可以轻松检测个别\mathtt{证明器}Provers的恶意行为。这是由于部分线性组合F_iFi属于\mathsf{RS}RS码。这个属性在分布式SNARK生成过程中特别有用,因为它允许实施经济措施来惩罚参与者的不当行为。
很容易看出,\mathtt{证明器}Provers的时间复杂度是O(d\log d)O(dlogd)。通信成本(这是证明器和主证明器之间的通信)主要由发送部分线性组合决定,其大小为O(d)O(d)个来自\mathbb{F}_pFp的元素。此外,验证最终证明所需的哈希调用次数明显少于验证MM个独立证明所需的次数。
您可以在这里2找到更详细的描述。欢迎分享您的评论!
'ETH'必须翻译为'ETH'。 'DOT'必须翻译为'DOT'。 'SOL'必须翻译为'SOL'。 'UNI'必须翻译为'UNI'。 'CRO'必须翻译为'CRO'。 'HT'必须翻译为'HT'。 'THETA'必须翻译为'THETA'。 'XEC'必须翻译为'XEC'。 'MINA'必须翻译为'MINA'。 'BAT'必须翻译为'BAT'。 'OP'必须翻译为'OP'。 'COMP'必须翻译为'COMP'。 'ENS'必须翻译为'ENS'。 'AR'必须翻译为'AR'。 'XCH'必须翻译为'XCH'。 'AMP'必须翻译为'AMP'。 'ACH'必须翻译为'ACH'。 'PLA'必须翻译为'PLA'。 'RON'必须翻译为'RON'。 'REQ'必须翻译为'REQ'。 'ONG'必须翻译为'ONG'。 'ATH'必须翻译为'历史高点'。 'TRON'必须翻译为'TRON'。 'Mina'必须翻译为'Mina'。 'Amp'必须翻译为'Amp'。 'Dent'必须翻译为'Dent'。 'Ren'必须翻译为'Ren'。 'long'必须翻译为'做多'。 'ETH'必须翻译为'姨太'。 'ETH'必须翻译为'E太'。 'ETH'必须翻译为'以太'。 'Prover'必须翻译为'证明器'。