文章介绍了 Uniswap v4 hooks 的局限性,即无法获取历史链上数据。Space and Time 通过其数据区块链和零知识证明技术,允许 Uniswap hooks 查询并验证历史链上数据,从而解锁了更强大、更动态的 DeFi 应用,例如基于历史行为的动态费用和 LP 声誉管理。

Uniswap v4 hooks 让开发者能够将自定义逻辑附加到流动性池中的每一次兑换、铸造和销毁操作中。它们是 DeFi 历史上 AMM 设计空间最重要的扩展之一。但 Hooks 始终有一个硬性上限。它们的逻辑仅限于执行时可用的数据:当前的池状态、区块级别数据以及作为参数传入的任何内容。历史活动、跨钱包行为和多池聚合都无法触及,这意味着即使是最复杂的 Hook 也无法获取当前交易之前发生的任何上下文信息。
Space and Time 现在提供了 Uniswap hook 模板,完全消除了这一限制。
在 v4 之前,Uniswap 池本质上是静态的:固定的费用层级、固定的曲线逻辑,无法响应兑换本身之外的条件。Hooks 通过允许开发者注册在池生命周期特定点执行的合约来改变这一点,这些点包括兑换之前或之后,以及添加或移除流动性之前或之后。Hook 可以在交易中调整费用、控制访问、触发外部调用或更新状态,所有这些都在链上进行。
这为 DeFi 开发者提供了一些他们以前没有的东西:可以根据上下文表现出不同行为的池。问题在于,“上下文”一直意味着当前时态的上下文:池中现在有什么,区块中现在有什么。一个构建动态费用逻辑的 Hook 无法知道一个钱包的交易历史是怎样的,或者某个 LP 是否有提取价值后立即离开的模式。可编程性是存在的,但使其有意义的数据却缺失。
Space and Time 是一个数据区块链,它允许智能合约查询链上数据,并随每个结果接收一个加密证明。该证明由 Proof of SQL 生成,这是一个 ZK proof 系统,用于验证真实区块链数据上的 SQL 计算。简而言之:你的 Hook 可以询问“这个钱包在过去 30 天内交易了多少?”并获得一个它可以信任的答案,而无需依赖 API 或任何受信任的第三方。
你的 Hook 向 Space and Time 发送一个 SQL 查询,SXT 对索引的区块链数据执行该查询,结果会返回一个加密证明,证明计算是正确的。Hook 在兑换、铸造或销毁过程中使用这个经过验证的结果作为业务逻辑,而你无需任何链下基础设施。
一旦 Hooks 可以读取经过验证的历史数据,设计空间就会大大扩展。以下是一些例子:
Space and Time app 上提供了三个可定制的 Hook 模板,而不是从头开始构建查询管道,每个模板都涵盖了折扣资格如何计算、缓存和在兑换时应用的不同模式。
忠诚度折扣模板是最直接的:用户检查其资格,SXT 证明其链上历史,Hook 缓存一个折扣层级,并在他们兑换时调整费用。它最容易审计,并且适用于不需要在每次交易时刷新的折扣。
一键意图模板将资格检查和兑换合并到单个交易中。SXT 在后台处理查询,并在验证结果返回时执行兑换。
折扣券模板允许用户根据已证明的活动赚取 NFT 优惠券,并将其兑换为折扣兑换,这在你希望折扣可组合或可转让时非常有用。
每个模板都作为一个完整的 Foundry 项目提供,包含 Solidity、SQL 示例、文档和安全检查表。你唯一需要替换的是 SQL 查询本身,其他一切都已连接好。
前往 chain.spaceandtime.io 并打开 Query Workbench,这是一个链上 SQL 编辑器,你可以在其中针对实时索引的区块链数据编写和测试查询。一旦你的查询正常工作,导出你的 Hook 合约验证结果所需的证明计划,将其放入模板中,并将 Hook 连接到你的池的 beforeSwap 函数中。每个模板包中的文档涵盖了所需的替换、访问控制模式以及在部署前要运行的对抗性测试场景。
SQL 是唯一需要你定义的部分。其他一切都已构建完成。
- 原文链接: x.com/spaceandtime/statu...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!