Axiom 是一个针对丰富数据应用的协处理器,用以给智能合约提供所有的链上数据和任意的计算。计算的结果的正确性可以通过零知识证明验证,
Axiom 主要执行以下三步:
- Read: Axiom 采用ZK 证明读取以太坊历史区块的头数据,状态,交易和收据,即Axiom可以以太坊archive节点的所有数据;
- Compute: 当获取数据后,Axiom可以执行可验证的计算,计算类型包含基本的分析(sum, count,max, min ),密码操作(签名验证,密钥聚合) 和机器学习(decision trees, linear regression, neural network inference), 计算的有效性通过ZK证明验证;
- Verify: Axiom 主要验证:(1) 输入的数据从链上获取的;(2)计算结果是正确的;最终将结果传递给应用者智能合约中。
例如可以获取某个账户第一次发起交易的区块号,获取Uniswap v3 TWAP在某个历史区块的价格, 获取历史区块RanDAO的随机数,以及其它关于区块头,账户,和地址存储的任意查询。
Axiom 主要实现过程有三步:
-
Send an on-chain query: 采用Axiom SDK 构建一个查询,并发送到
AxiomV1Query
合约,交易需要支付手续费和证明费; -
Wait for query fulfilment: 链上的证明检索查询,并生成查询结果,采用ZK证明其有效性。 证明在链上验证,结果以Merkle树的形式写入到
AxiomV1Query
合约; - Read query results: 当结果在链上验证后用户可以采用SDK从合约获取结果,并提交到用户的合约应用中。
一次最多可以批量查询64条链上信息,每个查询主要由三部分组成:
-
blockNumber
: required, 区块号 -
address
: optional, 以太坊地址 -
slot
: optional, 合约存储位置
技术架构
Axiom主要有两个主要的合约:
-
AxiomV1
: 用于缓存从以太坊从创世块以来的区块头hash,其中每1024个块生成一个hash; -
AxiomV1Query
: 智能合约用于满足AxiomV1
的查询;
网友评论