



- 在区块链状态中存储额外数据,并使用 EVM 存储读取验证协处理器在链上使用的所有数据。 这种方法相当昂贵,对于海量数据来说成本过高。
- 信任Oracle或签名者网络来验证协处理器的输入数据。 这要求协处理器用户信任Oracle或多重签名提供者,但这样降低了安全性。
- 使用 ZK 证明来检查协处理器中使用的任何链上数据是否在区块链历史中得到了承诺。区块链中的任何区块都会提交所有过去的区块,因此会提交任何历史数据,从而为数据有效性提供加密保证,并且不需要用户提供额外的信任假设。
- 自定义电路: 开发人员为每个应用编写自己的电路。 这种方法具有最大的性能潜力,但需要开发人员投入大量精力。
- 电路的 eDSL / DSL: 开发人员为每个应用编写电路,但要在一个有主见的框架中抽象出 ZK 特有的问题(类似于使用 PyTorch 处理神经网络)。但这样性能就稍微低一些。
- zkVM 开发人员在现有虚拟机中编写电路,并在 ZK 中验证其执行。在使用现有虚拟机时,这为开发人员提供了最简单的体验,但由于虚拟机和 ZK 之间的计算模型不同,这样性能和灵活性都比较低。
- 时间加权平均做市商(TWAMM);
- 基于波动性或其他投入的动态费用;
- 链上限价订单;
- 将超出范围的流动性存入借贷协议;
- 定制化的链上预言机,例如几何平均数预言机;
- 自动复利 LP 手续费到 LP 头寸;
- Uniswap的 MEV 利润分配给 LP;
- LP或者交易员的忠诚度折扣计划;


- 读取:Axiom利用ZK证明,无需信任地从以太坊历史区块的区块头、状态、交易和收据中读取数据。由于所有以太坊链上数据都以这些格式编码,Axiom因此能够访问存档节点能够访问的所有内容。Axiom 通过Merkle-Patricia三元组和区块头哈希链的 ZK 证明来验证 ZK 协处理器的所有输入数据。 虽然这种方法开发起来比较困难,但它能为最终用户提供最佳的安全性和成本,因为它能确保 Axiom 返回的所有结果在密码学上等同于 EVM 中进行的链上计算。
- 计算:数据摄取后,Axiom在其上应用经过验证的计算。开发者可以在JavaScript前端指定他们的计算逻辑,每次计算的有效性都在ZK证明中得到验证。开发者可以访问AxiomREPL或查看文档,了解可用的计算原语。Axiom通过 eDSL 允许用户访问链上数据并指定自己的计算。还允许用户使用ZK电路库编写自己的电路。
- 验证:Axiom为每个查询结果提供ZK有效性证明,这些证明确保(1)输入数据是从链中正确提取的,(2)计算是正确应用的。这些ZK证明在Axiom智能合约中进行链上验证,确保最终结果在用户的智能合约中可靠使用。

- JSON:证明JSON文件中某个条目的内容,同时保持其他数据的私密性。
- Where's Waldo:证明Waldo出现在JPG文件中,同时保持图像的其他部分私密。
- ZK Checkmate:证明你看到一步将军,而不透露获胜的举动。
- ZK Proof of Exploit:证明你可以利用一个以太坊账户,而不透露漏洞。
- ECDSA签名验证:证明ECDSA签名的有效性。

- 源链上任何区块的区块哈希值及相关状态、交易、收据根。
- 源链上任何特定区块、合约、槽的槽值和相关元数据。
- 源链上任何交易的交易收据和相关元数据。
- 源链上任何交易的交易输入和相关元数据。
- 源链上任何实体发送至目标链上任何实体的任意信息。
- 中继器网络:它同步来自不同区块链的区块头和链上信息,并将其转发给验证器网络以生成有效性证明。之后,它会将验证过的信息及其相关证明提交至连接的区块链。
- 证明者网络:为每个区块链的轻客户端协议、区块更新实现电路,并生成所请求的槽值、交易、收据以及集成应用逻辑的证明。为了最小化证明时间、成本和链上验证成本,证明者网络可以汇总同时生成的分布式证明。此外,它还可以利用GPU、FPGA和ASIC等加速器来提高效率。
- 连接区块链上的验证器合约:接收由验证器网络生成的经过zk验证的数据和相关证明,然后将经过验证的信息反馈给dApp合约。


- 这一步是为了获取一个我们可以验证证明的“承诺”。如果累加器还没有包含我们需要证明的最新区块头,我们首先需要证明链的连续性,以确保覆盖到包含我们目标数据的区块范围。例如,如果我们要证明的数据在区块1,000,001中,而区块头储存的智能合约只覆盖到区块1,000,000,那么我们就需要对头存储进行更新。
- 如果目标区块已在累加器中,则可以直接进行下一步。
- 这一步需要从以太坊网络中所有账户构成的状态树(State Trie)中生成包含证明。状态根是推导区块承诺哈希的重要部分,也是头存储的一部分。需要注意的是,累加器中的区块头哈希值可能与区块的实际哈希值不同,因为为了提高效率,可能采用了不同的哈希处理方法。
- 在这一步,可以为诸如nonce、余额、存储根或codeHash等数据生成包含证明。每个以太坊账户都有一个存储三元组(Merkle Patricia Tree),用于保存账户的存储数据。如果我们要证明的数据在账户存储中,那么就需要为该存储中的特定数据点生成额外的包含证明。

- zkPoS:这个组件负责通过零知识(zk)证明获取以太坊区块链的区块头和数据根,以确保以太坊共识的正确性。zkPoS还充当zkWASM的外部电路。
- zkWASM:它使用从zkPoS获取的数据作为运行zkGraphs的关键输入。zkWASM负责运行由zkGraphs定义的定制数据映射,并为这些操作生成零知识证明。zkOracle节点的操作员可以选择他们想要运行的zkGraph数量,这可以是从一个到所有已部署的zkGraph。生成zk证明的过程可以委托给分布式的证明者网络。

- 延迟: 预言机是异步的,因此与ZK coprocessor相比,访问平面数据时的延迟更长。
- 成本: 虽然许多预言机不需要计算证明,因此成本较低,但安全性较低。存储证明成本更高,但安全性更高。
- 安全性: 数据传输的最大安全性以预言机自身的安全级别为上限。相比之下,ZK coprocessor与链的安全性相匹配。此外,由于使用链外证明,预言机容易受到操纵攻击。

- MPC-TLS:TLS是一种安全协议,用于保护互联网通信的隐私和数据完整性。当你访问一个网站,并在URL上看到“锁”图标和“https”时,就意味着你的访问是通过TLS进行保护的。MPC-TLS模仿了TLS客户端的功能,使Pado的验证器能够与TLS客户端协作,执行以下任务:
- 需要注意的是,这些与TLS相关的操作都是在客户端和验证者之间通过双方计算(2PC)协议执行的。MPC-TLS的设计依赖于一些加密技术,如混淆电路(GC)、遗忘传输(OT)、IZK等。
- 建立TLS连接,包括计算主要密钥、会话密钥和验证信息等。
- 在TLS通道中执行查询,包括生成加密请求和解密服务器响应。
- IZK:交互式零知识证明是一种证明者和验证者可以进行交互的零知识证明。在IZK协议中,验证者的结果是接受或拒绝证明者的声明。与简单的NIZKs(如zk-STARKs或zk-SNARKs)相比,IZK协议具有几个优点,如对大型声明的高扩展性、低计算成本、无需可信设置以及最小化内存使用。
