STARKs工作原理(第四部分)

elibensasson 发布于 2026-05-07 阅读 149

本文继续解释STARK证明的工作原理。在前几步(注册交易步骤、扩展数据放大错误)之后,本文讨论对扩展后的数据(检查数字)施加更多约束。通过数学检查,如总和约束,可以验证大量交易的整体一致性。如果存在任何错误,错误会通过检查数字的约束传播并放大,使作弊者难以修改所有相关数据来保持一致。文章还提到了Reed-Solomon纠错码和信息论的应用。

检查校验数字

正如我们之前对交易步骤施加约束一样,现在我们可以应用额外的数学检查来验证附加的值(这些复杂的校验数字)也满足某些约束。例如,我们可以检查代表所有数字之和的条目(即校验数字)是否等于所有数字前半部分之和的条目加上后半部分之和的条目。它们应该对应且对齐,如果不满足此约束,我们就知道证明中某处存在错误。我们可以对放大数据的不同部分以各种模式应用此类约束。

在此阶段可以检查的另一个例子:回顾我们检查 Alice 向 Bob 转账 1 STRK 的例子。那次转账包括验证 Alice 和 Bob 初始余额、转账金额、更新后余额等的执行步骤。

Image

现在,假设我们正在处理 100 万笔交易,全部都是不同方之间、不同金额的转账。对于 100 万笔转账,我们将对正在注册的每个执行步骤有 100 万个条目:

  • 发送方初始余额的 100 万个条目(我们称它们为 a1、a2、a3 等)
  • 接收方初始余额的 100 万个条目(我们称它们为 b1、b2、b3 等)
  • 转账金额的 100 万个条目(我们称它们为 c1、c2、c3 等)
  • 发送方更新后余额的 100 万个条目(d1、d2、d3 等)
  • 接收方更新后余额的 100 万个条目(e1、e2、e3 等)
  • 等等。

每笔转账必须满足与我们最初检查的 Alice 向 Bob 转账 1 STRK 时相同的约束条件。例如:

  • 发送方和接收方的初始余额总和 (A+B) 必须等于他们最终余额的总和 (D+E)。
  • 发送方的初始余额减去转账金额 (A-C) 必须等于他们的最终余额 (D)。
  • 等等。

这些约束条件将适用于转账 1、转账 2、转账 3,以此类推,应用于所有 100 万笔转账。

此外,在处理完每笔转账的所有步骤并附加其校验数字后,我们现在可以将相同的约束条件应用于这些校验数字。如果某些约束条件可以单独验证每一笔转账的有效性,那么它们也可以验证 100 万笔转账总额的有效性。我们首先汇总执行步骤的所有条目。例如:

  • a' 将是所有发送账户初始余额的总和 (a1+a2+ a3+…)
  • b' 将是所有接收账户初始余额的总和 (b1+b2+ b3+…)
  • d' 将是所有发送账户更新后余额的总和 (d1+d2+ d3+…)
  • e' 将是所有接收账户更新后余额的总和 (e1+e2+ e3+…)

现在,所有转账中所有发送方和接收方的总余额之和必须等于转账后他们最终余额的总和,用数学公式表示就是:a'+b'=d'+e'!

与我们之前对单笔交易步骤施加约束的方式相同,我们可以对附加的校验数字本身施加更多约束。如果任何步骤在任何交易中与约束条件不符,那么它将导致每个步骤类别(发送方初始余额、发送方最终余额等)的总和出现不一致。

Image

让长序列变得更长

此时,STARK 证明包含了我们正在证明的所有交易的数据,以及我们对其应用所有数学计算后得到的额外校验数字。Prover 在每一笔交易的处理上付出了极大的努力;实际上,比我们在链上执行这些交易所需付出的努力还要多。为什么要费这么大的劲呢?

记住,我们的目标是提交新交易,同时以尽可能少的链上计算工作来验证其有效性。记住,我们希望省去每位老师批改所有试卷的麻烦,以及每个节点重新执行所有交易的麻烦。我们的目标是让公众能以相当于处理 6 笔交易的计算工作量来验证 100 万笔交易。

添加的冗余信息,会将原始序列中的一个微小错误(例如无效的转账金额)反复地与大量后续计算和条目以各种模式混合。结果,一个小错误会扩散到整个证明中,被放大而无法忽视。

如果 Prover 想要作弊而不被发现,它就需要开始更改更多的条目,并且做出所有这些更改的同时保持生成的条目一致,这将变得越来越困难。当我们完成时,“所有数字之和”的条目是否仍然等于“前半部分之和”和“后半部分之和”?

对于我们所使用的特定校验数字(对于工程师来说,我们使用基于低度多项式的 Reed-Solomon 码),我们可以从数学上证明,即使在一个条目上作弊,也会使得各项无法对应。我们所检查的几乎每一个校验数字组合都会对不上。

我们还没完成

所以现在我们的证明是一个极其长的数字序列,是时候缩小它了。请阅读下一部分了解如何以及为什么这样做。

这种检查校验数字一致性的过程最早在 20 世纪 40 年代被发现并使用,当时电子通信蓬勃发展,像 Claude Shannon 这样的数学家正在寻找方法,以确保无线电信息即使在存在大量噪声的情况下也能在另一端被正确接收。涵盖这一领域的数学和工程学分支称为信息论,用于对抗噪声的对象是“纠错码”,我们在 STARK 构建中使用了它们。

  • 原文链接: x.com/elibensasson/statu...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论