Uniswap:Uniswap V3给合约审计带来的新挑战

作者 | Fairyproof TechCEO谭粤飞,美国弗吉尼亚理工大学(Virginia Tech, Blacksburg, VA, USA) 工业工程(Industrial Engineering) 硕士(Master)。曾任美国硅谷半导体公司 AIBT Inc(San Jose, CA, USA) 软件工程师,负责半导体设备程序的开发、负责与公司关键客户---台积电的全面技术对接和交流。自2011至今,从事嵌入式,互联网及区块链技术的研究,深圳大学 《区块链概论》 课程教师,中山大学区块链与智能中心客座研究员,广东省金融创新研究会常务理事,拥有4项区块链相关专利四项。

万众期待的Uniswap V3终于面世了,它的白皮书(https://uniswap.org/whitepaper-v3.pdf)及相关源代码(https://github.com/Uniswap/uniswap-v3-core/tree/main/contracts)已经向业界全面公开。

Uniswap发布Uniswap v4代码草稿,并邀请社区提供反馈:金色财经报道,Uniswap宣布发布Uniswap v4代码草稿,以便可以公开构建v4。Uniswap v4的愿景是允许任何人通过引入挂钩(hooks)来做出这些权衡决定。hooks是在池操作生命周期的各个点运行的合约,池可以做出与v3相同的权衡,或者可以添加全新的功能。例如,v4将允许池本身支持动态费用,添加链上限价单,或充当时间加权平均做市商(TWAMM)以随时间分散大订单。此外,v4池将存在于单一合约中,这将使创建矿池的成本降低99%。

Uniswapv4代码将根据Business Source License1.1发布,这将在4年内限制v4源代码在商业或生产环境中的使用,届时它将永久转换为GPL许可证。协议费用机制也将仿照v3。治理层将能够投票决定向任何资金池添加协议费用,但不超过上限金额。[2023/6/13 21:34:27]

这两天各个专业人士发表了对V3的看法,这些看法主要集中在V3所具备的新特点、带来的新体验。作为在安全领域从业的我们则更加关注V3对合约审计尤其是去中心化交易所合约审计带来的新挑战。

数据:Uniswap上USDC流动性达20个月低点:金色财经报道,Glassnode数据显示,Uniswap上USDC流动性达20个月低点,数值为165,767,877.29美元。[2022/8/20 12:37:33]

V3的问世毫无疑问将掀起新一轮DEX的升级大潮,因为它在资金效率、费用消耗、预言机优化等方面所作的改进将再次成为现有项目模仿的范本,也将成为众多正在DEX赛道上创业团队参照的蓝本。

我们相信一批新的DEX合约会用到V3的实现方式,而这些新的DEX合约可能产生安全问题的源头在以下两方面:?

Uniswap Labs以\"不断变化的监管环境\"为由,剔除合成股票和衍生代币:上周五,该去中心化交易所在解释削减时提到了 \"不断变化的监管环境\"。这一消息是对在交易所层面上受到监管的代币的审查加强之后出现的,特别是美国证券交易委员会和商品期货交易委员会。 Uniswap公布的名单包括129种代币。这些产品包括代币化股票、镜像股票、期权和衍生品。例子包括Tether黄金,不同行权价和到期日的ETH的opyn期权,其他代币和股票的合成产品,Zelda和迷你马里奥现金的代币化版本,UMA收益美元,以及 \"镜像亚马逊 \"和 \"镜像特斯拉 \"等股票。

Uniswap Labs强调Uniswap是一套自主的、去中心化的、不可更改的智能合约,Uniswap提供不受限制的访问,这一行动对保持开源的Uniswap接口代码或用于访问Uniswap协议的其他门户或本地运行实例没有影响。(The Block)[2021/7/24 1:13:01]

1.由于V3引入了新的代码许可协议,因此在商业方面将使得一些项目想直接照抄,拷贝变得有所顾忌,而不得不模仿它的实现方式,改写它的源代码。一旦改写代码就会给合约审计带来挑战。

Cook Protocol:尚未上线Uniswap,请用户当心:去中心化资产管理平台Cook Protocol在推特上发布警示称,目前出现了一些假冒Cook Protocol的团体、渠道和流动性池。官方表示,Cook Protocol还没有上线Uniswap,请用户当心。[2021/3/31 19:32:44]

2.在整体安全性上Uniswap的合约还是相当不错的,这其中最重要的一个原因就是它的代码简洁、功能删繁就简。而V3在一系列细节上进行了修改,这在功能及性能上比V2有了极大提高,但在安全性方面就增加了复杂度。如果模仿团队对这些改动不求甚解、完全照搬、甚至和以前的实现方式混用则会引入潜在的风险。

那么具体V3在哪些方面对准备借鉴、参考它实现方式的团队带来了安全性方面的挑战呢?

我们认为有以下四大方面:

一、交易对由单个流动性池变为多个流动性池

V3的这个做法是为了提高资金效率,让用流动性提供者将资金存入到交易量最大的价格区间。然而这就导致流动性池由单个变为多个。那么交易过程就会涉及到交易在多个资金池之间的切换,就会涉及到复杂的合约交互。

此外,每个流动性池现在可以设置不同的费率,这其中的计算逻辑就会比单一流动性池要复杂,这其中稍有不慎就会涉及到逻辑实现和计算过程的错误。

二、LP代币由同质(ERC-20)通证变为非同质通证

在V2中,流动性池的代币都被设计为同质通证,而在V3,它被设计为非同质通证。为了因应这个变化,V3中累积的费用会存在另外的池子中。但凡多了资金池,就多了被黑客攻击的对象、就多了风险隐患,因此对这类新增加的资金池在安全方面的保障和维护就成为团队必须要考虑的问题。

三、 UNI治理权可以转交给其它地址

本质上这种方式如果使用得当、管理周全倒也不会对系统造成严重的风险。但权力是“固定”的、人却是“灵活”的。如果这个治理权被转移到不当地址(比如非DAO社区、非多签钱包等)则后患无穷。

四、预言机的优化

V3对预言机进行了大胆的优化:其最重大的变化在我们看来就是价格计算方式的变化以及由计算方式带来的一系列实现方式、流程逻辑的变化。

V3将价格的计算由算术平均值(arithmetic mean)变为几何平均值(geometric mean)。用通俗的话说就是由加法运算变为对数运算。理论上,这极大拓展了价格的覆盖区间,使得传统上利用外在因素在极短时间引发价格剧烈波动从而操控交易的方式进一步失效。

但“福兮祸也”,这会不会在看上去一片大好的情况下引发新的问题?现在还不得而知,只能有待时间来证明。

此外,在V3白皮书中提到,这种方式让其它合约调用预言机时能从某个交易对的多个流动性池中得到更可靠的数据。对此我们的担心在于,如果某个池子被攻击时,这个预言机所报的数据会不会不仅无效,而且误差被更加放大?

对此,我们依然建议项目方在处理预言机喂价方面要谨慎又谨慎,尽量从多个数据源取数据,而不要依赖单一数据源,无论这个单一的数据源在理论计算上看上去多么美好、多么健壮。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:0ms0-1:471ms