深夜,你点了一份佛跳墙外卖。这道菜价格不菲,后厨里发生了什么你完全看不见。外卖送到时,你既不想花三个小时自己进厨房重做一遍来核对用料,又担心商家偷工减料。这时,如果餐厅随餐附上一张“诚信小票”——上面记录着菜品关键信息,还带着防伪码——你花十秒钟扫一眼,就能确认这道菜确实按标准做了,你会不会放心许多? 这就是可验证计算(Verifiable Computation)在数字世界做的事:当你要把昂贵的计算任务(做菜)外包给算力节点(大厨)时,你不需要自己重算一遍(重新做菜),而是让节点随结果附上一张“计算小票”(证明)。你只需要验证小票(扫一眼),就能以极高的概率确认结果没有被篡改。这张小票背后的核心技术叫 SNARK(简洁非交互式知识论证),它的理论基础则是一整套关于随机抽查与概率校验的数学。
掌握可验证计算,你就掌握了对去中心化 AI 算力进行“信任审计”的能力——这是未来 AI 基础设施中不可替代的核心技能。
目录
可视化演示
动态演示深入理解可验证计算的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
深入理解可验证计算:可验证计 可验证计算基础与信任模型 SNARK证明系统与概率校验 核心机制可视化 深入理解可验证计算整体架构与关键组件
信任困境:点外卖,你敢信吗?
你点了一份佛跳墙,等了四十分钟,外卖终于送到。你打开餐盒,汤色金黄,香气扑鼻,却完全不知道后厨是不是真的用了九头鲍。你想确认,但总不能再自己做一遍吧?这就是委托方在算力外包时的真实窘境:我把计算交给你,你偷懒少算几步,或者干脆给我一个编造的答案——我怎么知道真相?
在 AI 时代,这笔“外卖订单”越来越大。一家创业公司想把大模型的训练任务外包给算力服务商,或者调用一个去中心化节点完成推理请求。这些算力供给方像看不见后厨的大厨,运行在千里之外的数据中心里,你无法亲眼看到显卡上跑的是什么代码。更麻烦的是,算力节点并不总是“诚信大厨”:它们可能是想骗报酬的恶意矿工,也可能是被攻破的僵尸节点,返回随机垃圾结果。
传统防作弊手段只有两种:一是审计日志,但日志可以被伪造;二是重算验证——自己把同样的计算再跑一遍。可这样一来,外包的意义何在?你花了外包的钱,却仍然要付出全量的算力成本。这就是“重算验证局限”:验证成本与原始计算几乎一样高,导致验证本身在经济上不可行。
所以,我们真正需要的是一种“小票机制”:算力方随手附上一张无法伪造的诚信小票,而你只需要花几秒钟扫一眼,就能放心吃下这道菜。这正是可验证计算要解决的问题——让“信任”从一种主观感觉,变成一种可审查、可量化的数学保证。
核心定义:诚信小票长什么样
既然要“小票”,我们先定义合格小票的形态。一张合格的诚信小票必须同时满足三个条件:第一,如果大厨真的按标准做了菜,这张小票一定能通过验票机的检查——这叫完备性,绝不冤枉好人;第二,如果大厨偷工减料,他就算想破头也几乎造不出一张能过关的小票——这叫可靠性,绝不放过坏人;第三,顾客验票的时间应该远远短于自己重做这道菜的时间——这叫成本不对称。
把这套语言翻译到计算机世界:承担计算的一方叫证明者(Prover),想确认结果的一方叫验证者(Verifier)。证明者执行一个计算任务,并额外产出一份证明(小票);验证者检查这份证明,然后决定接受还是拒绝结果。用数学语言刻画这两条基本性质:
一句话总结:一张合格的小票 = 绝不冤枉好人 + 几乎不可能放过坏人。有了这两条,你才敢闭着眼睛把佛跳墙交给一个没见过面的大厨。接下来我们要拆解的是:这张小票到底是怎么造出来的?
- 验证者 \(\mathcal{V}\)拿小票扫码的顾客,它的输出 \(1\) 表示“接受”、\(0\) 表示“拒绝”
- 公共输入 \(x\)外卖订单——计算任务的输入与需求描述
- 诚实证明 \(\pi^*\)大厨按标准做菜后开出的正版小票
- 任意伪证 \(\pi\)大厨偷工减料后妄图伪造的小票
- 完备性不等式正版小票通过验票的概率几乎为 1,诚实者绝不会被冤枉
- 可靠性不等式伪造小票通过的概率不超过 \(\varepsilon_2\),通常小到 \(2^{-128}\)
SNARK原理:防伪小票的核心机密
物理世界的防伪小票靠的是水印、微缩文字和油墨变色;计算世界的防伪小票靠的则是数学。SNARK(简洁非交互式知识论证)是当下最流行的一种“防伪算法”——它把“验证一个计算结果”的问题,转化为“验证一个数学关系成立”的问题。
想象你要大厨证明“我真的放了九头鲍”。直接让他把食材全部倒出来给你看?不行,那会泄露商业秘方。SNARK 的思路是:把做菜过程抽象成一个算术电路——每一道工序都是一个门电路,每份食材是一个数字信号。大厨完成烹饪后,只需提交一份多项式承诺,相当于把整道菜的“味道指纹”压缩成一个很小的数学对象。
SNARK 的证明过程大致是:先把计算任务转换成算术电路 \(\mathbb{C}\),再让证明者提供一个见证 \(w\)(如中间计算结果),使得 \(\mathbb{C}(x, w) = 0\) 成立——表示“在给定输入 \(x\) 和中间步骤 \(w\) 的情况下,计算确实按照规则完成了”。证明者把见证和电路结构编码成多项式,然后生成一个简短的证明:
SNARK 的“小票”本质上是一个数学压缩:一锅佛跳墙的千般滋味,被压成一个几百字节的字符串。顾客不用闻、不用尝、不用重做,只需扫一眼这个字符串,就能对整道菜放心。至于它因何“简洁”、因何“非交互”,我们留到验证效率一节再细说。
- 算术电路 \(\mathbb{C}\)把做菜流程翻译成的电路蓝图,输入是订单和配方,输出是“是否合规”
- 公共输入 \(x\)顾客能看到的订单信息(菜名、规格、价格)
- 私密见证 \(w\)大厨的秘方和中间处理过程,对顾客保密
- 生成证明 \(\text{Prove}\)大厨在小票打印机上“咔哒”一下,完成打印
- 验证判定 \(\text{Ver}\)顾客扫小票上的二维码,机器 0.1 秒后亮绿灯
- 双向等价 \(\iff\)小票通过,当且仅当大厨确实按流程做了菜
概率校验:随机尝一口菜
假如小票机制不存在,退一万步,你还有一个土办法——随机尝一口菜。如果这一口是咸的,你会怀疑整锅都咸;如果 99% 的菜都是咸的,你随便舀一勺,大概率也是咸的。反过来,如果整锅菜只有一颗盐粒大小的瑕疵,你随机尝一口可能根本碰不到它。概率校验的精髓正在于此:用随机抽查,把“大范围错误”变成“高概率抓获”。
把“尝菜”翻译成数学:如果真实计算对应一个低次多项式 \(f\),而伪造结果对应另一个多项式 \(g\),那么只要 \(f \neq g\),它们在绝大多数点上的值都会不同。验证者随机挑一个点 \(r\),检查 \(f(r)\) 和 \(g(r)\) 是否相等——如果不等,立刻识破。“绝大多数点不同”这个特性,由 Schwartz-Zippel 引理精确刻画:
这个引理不仅解释了 PCP(概率可检验证明)的合理性,还催生了 FRI 这样的现代协议。FRI 的做法是:把计算数据编码成一个低次多项式,验证者不断对它做“折叠+抽查”,每一轮都把多项式的次数减半,就像逐层剥开一颗卷心菜。由于 FRI 只依赖哈希和随机抽样,不依赖椭圆曲线配对,它不需要可信设置,且被认为具备抗量子攻击的潜力——这是它在去中心化算力场景中备受青睐的原因。
回到佛跳墙:你永远不必尝完一整锅汤,只需随机舀上几勺,就有把握判断整锅菜是否合格。概率校验把“绝对信任”替换成“可量化的风险”——只要把抽查次数提高到 20 次,欺骗成功的概率就降到百万分之一以下,这比绝大多数食品安全标准的置信度还要高。
- 两个多项式 \(f\) 与 \(g\)标准菜谱的“味道曲线” vs 实际做出来的“味道曲线”,二者几乎处处不同
- 随机抽查点 \(r\)顾客闭眼在锅里舀出的那一勺,位置随机
- 次数 \(d\)菜品的复杂度上限——多项式次数越高,两条曲线相交的机会越多,骗过抽查的概率越高
- 取值域 \(|\mathbb{F}|\)整口锅里“可能舀到的位置”总数——域越大,随机一勺撞上重合点的概率越低
- 概率上界只要次数远小于域大小,随机抽查撞上“伪装重合点”的概率就微乎其微
验证效率:扫一眼 vs 重做一遍
为什么小票机制能成立?因为“扫一眼”和“重做一遍”的成本是数量级的差距。顾客用十秒钟扫完小票上的二维码,而大厨在厨房里耗了三小时才做出这锅佛跳墙。如果验证的成本和做菜一样高,那这套机制就毫无意义。
可验证计算的“效率不对称”可以用复杂度来表达:如果原始计算需要 \(T\) 步(做菜工时),一个理想的验证系统应该让验证时间只跟 \(T\) 的对数(甚至常数)相关:
不过要诚实地说:SNARK 世界里没有免费的午餐。生成证明的一方(证明者)通常要付出比单纯计算高出 10~100 倍的算力开销,就像大厨做菜本来就忙,还要额外腾出手来精心打一张防伪小票。因此,可验证计算的价值在于摊销:一份证明可以被许多验证者反复检查(一次打印、多次扫码),或者把证明生成放在离线阶段、把验证放在实时阶段。在去中心化 AI 推理中,这个权衡通常是这样做的:训练阶段或预处理阶段生成一次证明,推理阶段验证者只扫一眼。
所以,可验证计算的性价比不看单次,而看全局:大厨多做一遍“小票工序”,换来的是千百个顾客不用再进厨房。验证成本不对称,正是这套机制在算力市场上能够运转的底层经济学。
- 原始计算规模 \(T\)做这锅佛跳墙的总工序数,单位为计算步数
- 验证复杂度 \(\mathcal{T}_{\text{verify}}\)顾客扫小票的时间,随菜品的复杂程度呈对数增长
- 重算复杂度 \(\mathcal{T}_{\text{recompute}}\)顾客进厨房自己重做一遍的时间,与原始计算量线性相关
- 远小于号 \(\ll\)验证时间比重算时间低好几个数量级,这正是可验证计算的立身之本
算力市场:共享厨房的信用基石
现在把视野拉大:如果全城的餐厅都搬进一个“共享厨房”园区,你点餐时无法判断哪家靠谱,园区管理者就必须建立一套统一的诚信机制——每一道菜都必须附上可查验的小票,每一张小票都由中立的验票机把关。这个“共享厨房园区”,就是去中心化算力市场。
在去中心化 AI 网络中,算力节点像共享厨房里的大厨,来自五湖四海、身份各异。它们替用户完成大模型训练或推理任务。没有可验证计算,用户只能祈祷节点不偷懒;有了可验证计算,节点交回结果时必须附上 SNARK 证明,链上的智能合约自动“验票”,验过后才把算力奖励打给节点——这就是“代码即信任”的闭环。
这个机制对两种典型场景尤其关键。一是训练结果验证:训练一个大模型往往要数千 GPU 小时,用户不可能自己重训一遍来确认节点真的跑了那么多步。通过把训练过程的关键检查点编码成可验证计算,用户可以用很小的代价确认“模型确实从初始权重出发、按超参数训练了 \(T\) 步”。二是推理可信输出:当模型 API 部署在边缘节点上时,节点可以针对每一次推理结果附上可验证证明,用户或下游智能合约在毫秒级完成验证,避免模型被悄悄替换或输出被篡改。
共享厨房能繁荣,靠的不是大厨的良心,而是每家餐厅都逃不过的验票闸机。去中心化算力市场的繁荣同样如此:可验证计算让“算力即服务”第一次拥有了可审计、可追责的信任底座,也让 AI 伦理与责任界定有了制度层面的抓手——当每笔计算都能被事后验证,谁偷工减料、谁诚实履约,档案上一目了然。
实践挑战:小票也不是万能的
诚信小票如此美好,为什么没有一夜之间取代所有外卖平台?因为打印小票本身需要额外的工序:大厨做菜的间隙要停下来录入数据、盖章、塑封;小票打印机偶尔还会卡纸;有些菜谱根本没法数字化。在现实中,可验证计算同样面临一道道坎。
第一道坎是工程化难度。把任意一段计算转换成算术电路和多项式约束,需要专门的编译器知识,类似“手工把菜谱翻译成机器能读的条形码”。即使有编译器,生成的电路规模也常常比原始程序大上几个数量级。第二道坎是算力权衡:证明生成的额外开销通常是原始计算的 10~100 倍,这意味着对于“本来只需几毫秒”的轻量级推理,附上证明的成本反而得不偿失。
可验证计算在当前更适合“重计算+高价值”的任务——训练大模型、批量数据预处理、链上预言机聚合——而不是每一次像素级图像分类。第三道坎是生态成熟度:标准未统一、库的 bug 可能引入新的安全漏洞、可信设置仪式需要多方协作,这些都在提醒我们技术仍处于早期。
小票不是银弹,但它是目前我们能拿出的最好的信任工具。就像外卖行业一边用评价系统一边用平台抽检,可验证计算也在不断进化:更快的证明系统、更友好的编译器、更低的证明开销。当这些坎被一一迈过,我们才能真正迈进“算力随手可得、结果天然可信”的共享厨房时代。
AI 应用场景
场景一:去中心化 AI 推理验证
阶段:模型推理阶段
解决的问题:传统去中心化推理节点可以静默返回垃圾输出,用户无法低成本确认结果是否真的由指定模型产生。可验证计算(zkML)让节点对每次推理附带一份证明,用户毫秒级验证,无需重跑模型。
具体案例:一个 DePIN 项目部署了全球分布式推理节点,用户支付 token 调用图像分类 API。节点返回结果的同时附上基于 SNARK 的推理证明,链上校验器自动验证后结算。即使某个节点被攻破,它也无法伪造一份能通过验证的推理证明——模型被篡改的概率低于 \(2^{-40}\),比传统 API 的日志审计可靠得多。
场景二:外包大模型训练验收
阶段:模型训练阶段
解决的问题:创业公司把大模型训练外包给算力云,无法确认厂商是否真的训练了承诺的步数、是否使用了指定超参数。可验证计算把训练过程中的关键检查点编码为可验证声明,让验收成本降到重训成本的 0.1%。
具体案例:某公司外包一个 70 亿参数模型的微调任务。算力方在提交最终权重时,附带一份训练轨迹的可验证证明——包含每一步的梯度承诺与随机抽查响应。验收工程师只需在本地运行验证器(约几分钟),就能确认模型确实完成了 10000 步训练,而非直接下载一个预训练权重充数。
场景三:链上智能合约算力结算
阶段:链上应用与自动结算
解决的问题:智能合约无法自行验证外部计算结果,容易被恶意喂价或虚假算力报告欺骗。可验证计算让合约内置证明验证器,实现“验证通过才付款”。
具体案例:一个 DeFi 借贷协议使用去中心化预言机聚合价格,每次价格聚合都附上可验证证明。智能合约内置验证逻辑,收到喂价后先验票再执行清算,杜绝了节点提交任意价格的风险。
Python 演示
"""可验证计算演示:用有限差分实现概率校验(核心思想:错误放大)"""import random def make_polynomial(degree): """随机生成一个低次多项式(算力方的'秘方')""" return [random.randint(1, 9) for _ in range(degree + 1)] def evaluate(coeffs, x): """霍纳法求多项式值(执行真实计算)""" acc = 0 for c in reversed(coeffs): acc = acc * x + c return acc def diff_max(values, order): """计算高阶差分并返回最大绝对值(0 表示低次多项式结构成立)""" seq = list(values) for _ in range(order): seq = [seq[i + 1] - seq[i] for i in range(len(seq) - 1)] return max(abs(v) for v in seq) def main(): random.seed(2024) degree = 3 # 计算真身:3 次多项式 coeffs = make_polynomial(degree) N = 1000 # 外包的全部工作量:算 1000 个点 window = 20 # 验证者只抽查 20 个点的一段 order = degree + 2 # 5 阶差分,4 次多项式的 5 阶差分应为 0 honest = [evaluate(coeffs, x) for x in range(N)] # 恶意节点:篡改第 500 个点的结果 evil = honest[:] evil[500] += 99999 # 验证者随机抽查一段窗口 s = random.randrange(N - window) honest_extreme = diff_max(honest[s:s + window], order) evil_extreme = diff_max(evil[s:s + window], order) print(f"抽查窗口 [{s}, {s + window - 1}]") print(f"诚实结果的差分极值: {honest_extreme}") print(f"被篡改结果的差分极值: {evil_extreme}") # 多次抽查的检测率统计(概率校验的体现) trials = 2000 detected = 0 for _ in range(trials): s = random.randrange(N - window) if diff_max(evil[s:s + window], order) > 1: detected += 1 print(f"单窗口抽查对单点篡改的检测率: {detected / trials:.2%}") print(f"理论值(窗口占比): {window / N:.2%}") # 验证成本 vs 重算成本 verify_ops = window * order # 验证者只算 100 次加减法 recompute_ops = N * degree # 重算要 3000 次乘加 print(f"验证成本: {verify_ops} 次运算 << 重算成本: {recompute_ops} 次运算") if __name__ == "__main__": main()
coeffs = make_polynomial(degree)生成“秘方”:多项式系数是算力方私有的计算真身honest = [evaluate(coeffs, x) for x in range(N)]诚实算力方跑完全部 1000 个点的计算evil[500] += 99999恶意节点悄悄篡改一个输出,模拟偷工减料diff_max(honest[s:s + window], order)验证者只花数十次运算做差分检查,错误信号被放大detected / trials用大样本频率逼近单窗口检测率,验证概率保证的有效性verify_ops` 与 `recompute_ops两者对比直观展示验证与重算的成本不对称
常见误区
误区SNARK 的宣传让我以为验证计算结果几乎不消耗资源,就像扫码一样瞬间完成,所以整个流程的成本可以忽略不计。
正解验证确实很快(毫秒级),但“验证快”不等于“系统零成本”。证明生成通常要付出比原始计算高 10~100 倍的算力,好比你点外卖时,大厨做菜之外还要额外花精力打印防伪小票。可验证计算的真正收益来自“一次证明、多次验证”的摊销,以及验证端成本对委托方而言远低于重算。忽略证明生成成本,会在真实项目里严重低估总开销。
为何常见:各大 ZK 项目都强调验证端性能,“毫秒级验证”的口号深入人心,但很少有人宣传证明端的高昂开销——因为不够炫酷。
误区SNARK 和 zk-SNARK 是一回事,它们的作用都是把数据隐藏起来。
正解SNARK 的全称是“简洁非交互知识论证”,核心是“证明很短、验证很快、无需交互”;零知识(zk)只是它的一个可选增强——额外保证证明过程不泄露见证数据。市面上许多 SNARK(如某些基于 FRI 的系统)并非零知识,同样能完成可验证计算。类比:诚信小票的核心是“验真”,至于小票上是否要抹掉配方(零知识),是另一个可选项。
为何常见:zk-SNARK 在区块链领域过于流行,媒体宣传几乎只提 zk,让公众把“简洁证明”和“零知识”画上了等号。
误区可信设置(trusted setup)就是找一个权威机构来生成密钥,如果它作恶就全完了。
正解现代可信设置通常用“多方安全计算”完成:许多参与者各自贡献随机数共同生成参数,只要有一个参与者诚实并销毁了自己的随机数,最终参数就是可信的。像 Zcash 的 Powers of Tau 仪式,全球几百人轮流参与。类比:不是把保险箱交给一个保安,而是让一群保安每人上一把锁,只要有一把锁是好的,箱子就安全。
为何常见:“可信设置”这个翻译本身就暗示了“要信任某个实体”,让人忽视了 MPC 流程中“信任假设可以非常宽松”的事实。
误区概率校验意味着只要验证通过,结果 100% 正确,和数学定理一样可靠。
正解概率校验提供的是“经过 \(k\) 次抽查后,错误仍能蒙混过关的概率 \(\le 2^{-k}\)”的保证,是概率性的而非确定性的。不过在密码学 SNARK 中,通过精心选择参数(如域大小和抽查次数),这个失败概率可以压到 \(2^{-128}\),远低于硬件故障或宇宙射线造成错误的概率,工程上可以当作绝对可靠。
为何常见:人们习惯把“计算机验证通过”理解为“必然正确”,忽略了底层概率模型的存在。
误区可验证计算是区块链和加密货币专用的技术,普通云计算和 AI 应用用不上。
正解可验证计算起源于 20 世纪 80 年代的理论计算机科学(交互式证明、PCP 定理),区块链只是它最出圈的落地场景。它同样适用于云计算审计、AI 推理验证、医疗数据合规、联邦学习结果校验等“任何需要信任外包计算”的地方。类比:诚信小票最初用在外卖上,不代表它不能用于家政服务。
为何常见:zk-Rollup 和 zkEVM 的爆发让可验证计算在公众认知里与“链”深度绑定。
面试题
Q1. 可验证计算要解决的核心难题是什么?
- A.如何加速大规模计算任务
- B.如何验证外包算力结果← 正确答案
- C.如何加密传输计算数据
- D.如何减少计算存储开销
答案:B。可验证计算的目标是让没有足够算力的委托方,以远低于重算的代价确认外包结果正确。A 是把计算变快,C 是隐私传输,D 是存储优化,都不是信任验证问题。
Q2. 可验证计算中“验证者”指的是?
- A.提供算力的计算节点
- B.检查证明的委托方← 正确答案
- C.存储数据的中间平台
- D.编写算法的开发者
答案:B。验证者相当于扫码验票的顾客,负责检查证明并决定是否接受结果。A 是证明者(算力供给方),C 是存储层,D 是算法开发者,均与验证动作无关。
Q3. SNARK 的“非交互性”指的是?
- A.证明者只需提交一份证明即可← 正确答案
- B.证明内容对验证者完全可见
- C.验证过程不需要任何算力消耗
- D.证明生成过程不需要随机数
答案:A。非交互指证明者一次性提交证明,验证者直接检查,无需来回对话——就像顾客扫一次码就出结果。B 是公开性而非非交互,C 忽略了验证仍需少量算力,D 与随机数使用无关。
Q4. 概率校验中“错误放大”的核心作用是?
- A.让计算错误更容易被抽查发现← 正确答案
- B.提高计算结果的数值精度
- C.放大验证者的重算工作量
- D.扩大恶意节点的攻击范围
答案:A。错误放大通过高阶差分等技术,把单个点的微小篡改放大成显著异常,使随机抽查失效概率极低。B 是精度问题,C 与“放大验证成本”相反,D 与攻击范围无关。
Q5. Schwartz-Zippel 引理给出的概率上界是什么?
- A.多项式次数与取值域大小的比值← 正确答案
- B.多项式系数与输入数据的乘积
- C.验证时间与证明大小的比值
- D.随机抽查次数与错误率的乘积
答案:A。引理指出两个不同的低次多项式在随机点上相等的概率不超过 \(\frac{d}{|\mathbb{F}|}\)。B 是数值关系,C 是性能指标,D 是工程经验式,均非该引理的内容。
Q6. 为何“重算验证”在外包算力场景不可行?
- A.重算会产生更多的存储开销
- B.重算成本接近原始计算成本← 正确答案
- C.重算结果与原始结果不一致
- D.重算违反区块链协议规则
答案:B。重算一遍的成本与原始计算同量级,验证失去经济意义——就像顾客为了确认佛跳墙正宗,自己重新做了一遍。A 存储、C 确定性、D 协议规则均非关键问题。
Q7. FRI 协议相比 Groth16 等传统 SNARK 的优势是?
- A.不需要可信设置且抗量子攻击← 正确答案
- B.证明生成时间减少一个数量级
- C.验证时间不依赖计算规模
- D.支持任意图灵机的执行验证
答案:A。FRI 基于哈希和随机抽样,不依赖椭圆曲线配对,因此无需可信设置并具备量子安全倾向。B 不是 FRI 相对 Groth16 的典型优势,C 是所有 SNARK 的共性,D 是 zkVM 的特性。
Q8. 可验证计算“完备性”的成立条件是?
- A.诚实证明者的证明能被接受← 正确答案
- B.正确结果可以通过验证流程← 正确答案
- C.错误证明会被验证者拒绝
- D.验证成本低于重算成本
答案:AB。完备性 = 诚实者不被冤枉(好人好事总能通过),A 和 B 表达同一件事。C 属于可靠性,D 属于效率要求,都不是完备性的内容。
Q9. 下列哪些属于可验证计算的高价值场景?
- A.大模型训练的外包验收← 正确答案
- B.边缘节点推理结果审计← 正确答案
- C.本地几十次加法运算
- D.智能合约预言机喂价← 正确答案
答案:ABD。可验证计算适合“重计算+高价值”任务:训练验收、推理审计、预言机喂价都是典型场景。本地微型计算附加证明反而更贵,C 不划算。
Q10. 关于 SNARK 可信设置描述正确的是?
- A.一次性生成公共参考字符串← 正确答案
- B.证明者可以随意篡改公共参数
- C.可通过多方计算分散信任← 正确答案
- D.只能由单一中心化机构完成
答案:AC。可信设置一次性生成公共参考字符串,并通过 MPC(如 Powers of Tau)分散信任,只需一名诚实参与者。B 错误:参数公开后证明者不可篡改;D 错误:中心化只是其中一种实现方式,并非唯一。