问题
DeFi协议无法在不需要信任假设的情况下优化其参数。他们要么每年向像Gauntlet这样的咨询公司支付数百万美元,要么使用静态参数,导致资金利用不充分。这些数字相当可观——Uniswap V3的流动性提供者因糟糕的范围管理损失了数亿美元,借贷协议维持了不必要的保守参数。
显而易见的解决方案是在链上运行优化算法,但这是不可行的。大语言模型和神经网络需要浮点矩阵运算、数千兆字节的内存和非确定性采样。即使是简单的模型也会产生数百万的gas费用。
不同的路径:零知识遗传编程
我正在构建一个用于PUSH3的zkVM,这是一种专为遗传编程设计的基于栈的语言。其思路很直接:
- 优化器使用标准遗传编程技术在链下进化算法
- 当协议需要优化时,算法在zkVM中运行
- 协议通过正确执行的STARK证明获得结果
遗传算法在这里适用,因为它们只是对栈进行算术运算——没有矩阵,没有浮点复杂性,只有可以清晰映射到算术电路的整数数学运算。
技术方法
PUSH3语言
PUSH3是一种简单的栈语言,对不同类型有独立的栈(整数、浮点数、布尔值、代码、执行、名称)。程序只是操作和文字的序列。如果一个操作没有足够的参数在栈上,它会变成空操作而不是崩溃。
示例程序:
( 价格 波动性 浮点数.* 2.0 浮点数./范围.最小 浮点数.- 范围.最大 浮点数.+ )
zkVM实现
该实现获取PUSH3程序并使用OpenVM生成其执行的STARK证明:
PUSH3程序 → 轨迹记录 → OpenVM芯片 → STARK证明
证明生成大约需要2分钟,并产生约500KB的证明。这些证明可以被卷入STARK并在链上提交。
当前状态
已完成:
- 整数/浮点数/布尔值栈上的基本算术运算(加、减、乘、除)
- 馈送到OpenVM的轨迹记录
- 使用Plonky3的STARK证明生成
尚未实现:
- 代码/执行/名称栈(实际遗传编程所需)
- 大多数栈操作(复制、移动、推送)
- 控制流操作
愿景
如果这被建设成一个Rollup,以太坊将获得一些有趣的东西:任何可以定义适应度函数的协议都可以进化自己的优化算法。
我设想以下效果:
- AMM进化费用层和集中流动性范围
- 借贷协议进化风险参数和利率曲线
- 期权协议进化定价模型
- MEV保护进化对抗策略
所有这些都无需信任任何人——只需证明算法正确运行的数学证明。
一个可能的发展路径:完成zkVM,然后探索作为基础Rollup部署。其想法是建立一个注册表,协议使用适应度函数请求优化,任何人都可以提交解决方案,根据适应度函数最佳的方案被注册,并在链上证明和验证其执行。
这不是为了取代人类判断或构建通用人工智能。而是为以太坊提供原生优化能力,且不需要信任。其他链正在添加人工智能协处理器和大语言模型预言机——以太坊可以拥有真正在链上工作的东西。
未解决问题选集
- 进化的PUSH3程序是否足够表达复杂的DeFi优化? 遗传编程可以发现令人惊讶的解决方案,但基于栈的语言是否真的能编码诸如集中流动性定位或多资产风险管理等复杂策略所需的内容?
- 这里的实际成本效益是什么? 为每次优化运行生成STARK证明会增加开销。对于频繁更新的参数,验证的gas成本是否值得无需信任?尤其是当算法本身可能很平庸时?
- 如何处理算法输入? DeFi优化需要价格馈送、总锁仓量数据、历史波动性——每个数据源是否都需要自己的zkVM适配器?
- 如何防止过度拟合? 在历史数据上进化的算法可能看起来完美,但在新的市场条件下可能会灾难性地失败。
- 如果仍然需要信任适应度函数设计,无需信任的优化是否真的有价值? 糟糕的适应度函数可能比静态参数更糟。
- 是否可以使用更容易验证的确定性优化算法获得类似结果?