ZK-as-a-Service
原文作者:戈多Godot
原文来源:Twitter@GodotSancho
ZK-as-a-Saas学习 @axiom_xyz 学习笔记:
1/ 需求:
1)区块链与 #AI 结合,利用以太坊历史数据训练 AI 模型,更好地进行策略交易,或其他场景;
2)查询以太坊历史区块数据,并对某区间内数据进行复杂计算、分析;
3)证明某地址历史数据, #DID 需求;
4)跨链数据查询。
2/ 痛点:
1)在以太坊链上进行数据计算,过于昂贵;
2)若将数据计算过程移至链下,正确性需可验证。
3/ 解决思路:
1)采用类似计算机 CPU 与 GPU 设计,将复杂计算从以太坊迁移至链下。CPU 和 GPU 是两种不同的处理器,CPU 是程序控制、顺序执行等操作的最高级通用处理器,而 GPU 是用来做图像处理、特定领域分析的专用型处理器,GPU 受 CPU 的控制。
2)利用 ZK 实现可验证计算,验证计算结果正确性。
将这以上两种思路结合,便有了 ZK 协处理器 Coprocessor。 Axiom 是代表项目之一。
4/ Axiom 工作原理:
1)读取。Axiom 支持对存档节点进行任何 JSON-RPC 查询的读取,可在链上使用,开发者可从以太坊区块中读取区块头、状态、交易等信息,使用 #ZKP 保证数据正确性。
2)计算。计算从 #Ethereum 获得的数据,支持在链上无法完成的大型计算,Axiom 支持的计算包括数据分析(求和、计数、加权平均、最大值、最小值)、加密(签名验证、密钥聚合,包括 Poseidon 和 Keccak 哈希、BLS 和 ECDSA 签名)、机器学习(决策树、线性回归、神经网络推算)等等。计算结果正确性也通过 ZK 保证。
3)验证。为结果附上 ZK 证明,证明读取数据和计算数据的正确性。
Axiom 由两个主要技术部分组成:
1)AxiomV1,从创世块开始的以太坊区块哈希缓存;
2)AxiomV1Query,对 AxiomV1 进行数据查询的智能合约。
目前,Axiom 已上线 Alpha 版主网,可在以太坊主网和 #goerli 测试网体验,(入口:https://demo.axiom.xyz) Demo 可生成、验证内容包括:
1)证明账户年龄:证明地址首次交易区块号;
2)证明 #uniswap v3 TWAP 值:链上证明 $ETH - $USDC Uniswap v3 池,在任意两个历史区块之间的 TWAP 值。TWAP 是 Uniswap 寓言机,相当于证明 $ETH 价格;
3)访问 RanDAO 随机性:访问以太坊共识层,生成并可用于合并后任何区块的 prevRandao 区块头字段中的执行层随机性;
4)进行任意查询:在任意历史区块访问区块头、账户或账户存储中的多达8个历史信息。
5/ Reflection
ETHShanghai 2023 峰会, @axiom_xyz 创始人 Yi Sun 详细解释了 Axiom 实现原理 Reflection 概念。
原文:https://foresightnews.pro/article/detail/38214…
核心原则是,每个区块链上的区块都包含了完整的历史记录,可从当前的以太坊区块开始,向前回溯到早期区块。通过获取过去区块和当前区块之间所有区块头,并验证这些区块头的哈希链,可逆向追溯到当前区块。
通过在 #EVM 中使用 ZK 封装证明,应用 Reflection 操作。因此,无需将所有过去区块头和 Merkle 证明放在链上验证,而是在 ZK 中检查是否存在一系列之前区块头和证明。实际上应用了 ZK 简洁性,使用单个 ZK 证明,验证大量的历史数据访问。
之后,Yi Sun 讲到了 Reflection 的权衡。通过智能合约直接访问数据,可以获得实时性,就像大家在 #uniswap 内交易。而利用 ZK 的话,实时性会受限,也就是无法获取当前状态数据,因为需要生成 ZK 证明。而当前状态是动态的、可变的,相比之下,历史状态是确定的。
事实上,尽管利用 ZK 证明以太坊当前状态数据比较难,但历史状态数据依旧有偏 B 端需求,比如 #Layer2 可基于历史数据预测主网 Gas 情况;利用 #DEX 历史数据,建立或完善 DEX 做市策略等等;数据实际上可供寓言机项目调用,或喂给 AI。