宇宙链 宇宙链
Ctrl+D收藏宇宙链

浅学 Uniswap v4

作者:

时间:1900/1/1 0:00:00

网络手续费

我们讲单例模式首先要了解单例着重要解决什么问题。这个问题是网络手续费。不需要太深入到opcode计价表,区分calldata和storage,我们只需要记住一个事实:跨合约调用是昂贵的,写数据是昂贵的。举个例子来说,如果我们观察一个user->A->B->C的uniswapv2的路由交易,我们需要访问几个合约呢?对于用户来说,只想完成A-C的兑换,我们一起来算:

router合约

userA资产减少变更,需要去Atoken合约登记一下,写入新余额

调用pairA->B

pairA->B的B资产转移到用户user地址,需要去Btoken合约登记一下transfer,写新余额

pairB-C的的B资产增加,user的资产减少,去Btoken合约登记一下

调用pairB->C

pairB->C的C资产减少,B资产增加

除了传递兑换信息的router调用外,其他的6次:两次pair调用,token的结算4次。单例要解决的就是这六次的调用。我们有机会减少嘛?

zkSync已开启针对编号、时间戳和哈希值的主网升级计划:9月7日消息,zkSync宣布已于今日18:00对block.number、block.timestamp和blockhash在zkSync Era上的行为方式进行升级,升级后block.number、block.timestamp和blockhash将分别返回L2区块的编号、时间戳和哈希值。升级预计持续40-60天,在此期间出块率和时间戳刷新时间将逐渐增加。

zkSync提醒其生态开发者,若项目具有依赖于block.number、block.timestamp和blockhash返回值的关键逻辑,可能会面临意外行为(例如治理投票时间缩短、奖励激增等)。[2023/9/7 13:24:47]

pool不再是一个地址

我们在v2和v3时,pool是一个通过工厂合约创造的智能合约。里面有流动性的数据和负责交易的接口。而在v4中,多个pool都在poolmanager下面的存储。当我们构造一个新的pool时,并没有构造一个新的智能合约,而是在poolmananger下多了一些数据。

按照传统软件工程的观点,这么设计耦合严重,所有的代码功能塞到一个文件/智能合约里是不太好的。但是对于无情的gas计价程序来说,这么做能省下不少gas,这就是好设计。

NFTpay支持USDT和USDC购买NFT:金色财经报道,NFTpay首席执行官Michael Krilivsky宣布现在支持USDT和USDC购买NFT。NFTpay为有兴趣在其网站上安装USDT / USDC支付网关的组织和个人提供定制解决方案。[2023/2/27 12:30:49]

但是这么做也有一个明显的问题,就是原来一个pool管理两种资产,现在一个poolmanager管理无数个资产。怎么才能算清楚我账上的10个Atoken是属于哪个pool的呢?这和下一个问题也有关系。

从菜市场到

我们回到7次调用的问题,我们只解释了单例为什么能解决pair的调用。对于V2V3的模式来说,更像是菜市场买菜。我们每一次swap都要钱货两清。然后去下一个档口卖不同的菜。但是对于以太坊的ERC20来说,钱货两清这一动作是要支付手续费的。

我们现实生活中有另一种办法管理多个档口的方法,就是筹码。筹码可以出入口清算,至于个别用户是如何亏的、如何赚的,负责兑换的服务员毫不关心,我们只在进门出门清算,中间的输赢并不需要上报银行系统划转资产。而v2v3的菜市场模式中,我们则支付了eth来把每笔的清算都写进区块链了,自然就贵了。当然这也不是什么新鲜的方案,这是我们熟悉的CEX方案。

230名经济学家警告美国政府提议的通胀降低法案将助长通胀:金色财经消息,上周,美国民主党公布了名为“降低通胀法案”的气候和医疗保健立法,关于拟议公共政策措施的名称存在很多争论。立法公布后,230名经济学家致信美国参众两院领导人,警告称,拟议政策实际上会助长通胀。信中强调迫切需要遏制美国的通胀压力,但进一步指出“2022年通胀削减法案”是一个误导性标签,可能会达到完全相反效果的法案。[2022/8/6 12:06:02]

但是相较于CEX,一个智能合约筹码清算方案有额外的优势:如果我们极端一些,如果我们在A档口赢了10U的筹码,但是在你跑步去前台清算的路上,倒闭了,那么我们的钱就没有了。notyourkey,notyourmoney。但是dex不一样,你化身闪电侠,一笔链上交易的结构中跑了很多swap的操作,你会光速但是按照顺序跑完入金,兑换筹码,下场,出场结算。evm落后的单线程保护你跑得赢,跑得快。当然,我们焦虑也是多余的,一个去中心化交易所是不会倒闭的,更为重要的优势是这一笔交易是可以链接其他DeFi的,虽然业务走的多,但是还是Defilego世界的一环。

我们基本讲清楚了单例是如何解决我们说的7次调用的问题。至于筹码是如何记账的,为什么大家还在说复式记账法,这部分就需要深入代码讲了。我们先略过。我们再来复习一下user->A->B->C的uniswapv4的路由交易:

共享房屋租赁平台DTravel完成首个智能合约度假租赁预订:金色财经报道,去中心化共享房屋租赁平台DTravel周四表示,已完成首次成功的智能合约预订。Dtravel的第一个基于智能合约的预订经过数月努力使网站对用户更加友好,同时仍然坚持Web3的原则。由币安支持的旅游预订网站Travala.com于2021年6月首次宣布发布Dtravel平台,并于2021年11月推出初始版本。(coindesk)[2022/8/4 12:02:47]

调用router

outer找poolmanager

兑换筹码

去poolmanager找pool的内部位置

交易

重复2/3步骤两次

兑换筹码

那么我们这次调用了几个合约呢?4个。router、poolmanager、tokenA、tokenC。我们使用了poolmanager来规避了额外的两次pair调用和两次tokenb的记账。

HOOK

一个pool有下面八个时点(v4-core/contracts/interfaces/IHooks.sol):

beforeInitialize/afterInitialize(before/afterthestateofapoolisinitialized).

外媒:美国SEC官员回应称SEC尚未就BNB向币安发出传票:7月22日消息,加密媒体CoinDesk根据《信息自由法》向SEC提交了一份“SEC就调查BNB代币向币安发出的传票”的请求被退回,但一位SEC官员在回复中写道:“根据你在信中提供的信息,我们对SEC的各种记录系统进行了彻底搜索,但没有找到或识别任何响应你请求的信息。”

据悉,彭博社曾于6月份报道,美国SEC正在调查BNB代币是否为未注册的证券,对此赵长鹏回应币安就其产品与当局保持定期联系,并否认该公司已被传唤。[2022/7/22 2:30:59]

beforeModifyPosition/afterModifyPosition(Thehookcalledbefore/afterapositionismodified)

beforeSwap/afterSwap(Thehookcalledbefore/afteraswap)

beforeDonate/afterDonate(Thehookcalledbefore/afterdonate)

在这8个时点,pool的创建者可以插入自己的代码。注意,用户可以在hook规定好的行为中,选择注册自己期待使用的时点和方法。当其他人触发,例如其他用户交易后,用户可以被动的执行代码。注意,hook定义权在pool的构建者,并不是pool的用户能定义的。当然用户可以用脚投票选一个自己喜欢的。

这里我故意先使用了非常抽象而不是非常具体的描述方式,因为过于具体会限制想象力。我们马上会给出具体的例子。

我们进一步学习代码后,需要大家注意的是下面几点:

构造一个pool,需要指定hook。

hook也没有后续修改的方法。pool和hook绑定。当然hook也可以是一个可升级合约。

如果想做一个符合自己需求的hook,那要构造一个新的pool

仅仅是hook不同,同一个交易对可以有多个pool

官方给了几个例子,其中比较有学习意义的是现价单的hook。其实不需要看代码,limitorder做了下面的一些事情

管理用户注册的:

placeorder

kill

withdraw

管理时点的:

afterswap:触发后,查找是否有可执行的limitorder,fill订单。

这就是limitedorderhook的全部功能。

我们认为hook只是一种业务描述思路,如果你想做的业务可以分解成用户行为注册,和时点被动触发行为,那么你的业务就可以迁移到uniswapv4中。可以是限价单,可以是时间加权AMM。

从这个角度出发,我们完全可以处理业务,不能局限于交易场景。借贷、期权、稳定币、NFT都可以用hook重构。swap处理瞬时业务,ModifyPosition处理跨期业务。swap兑换了什么、modifiyposition了什么其实没那么重要。

这里我臆造一个hook作为例子:功能是通过hook,使我把资产留在里面,不着急退出uniswap低手续费平台。

1.管理用户注册

mint/burn会构造单边流动性,把资产以lp形式存进去

2.管理时点

beforeswap时点中创造巨大抢跑优势,或者用高昂的动态手续费,阻止普通用户swa

那么我的pool是没有交易者会来的,这是一个静态的资金池,我的资产通过lp形式暂时存在了uniswap里,后续我可以提取出来处理用于其他交易。减少了清算次数。

用hook重写业务是一个很确定的方向。为了确保长期竞争优势,uni的grant支持也会强很多。

现在已经有一些项目蓄势待发,等待v4上线了。例如下面的借贷协议将和uniswapv4一起上线。

Uniswapv4是什么

对于v4,我们盲人摸象地做两个比较:

univ4和layer2:

?相同点:

低手续费优势

eth生态兼容

?不同点:

v4项目方需要用hook的方式重写

一笔交易内进入低手续费环境再返回eth主网,调用其他主网上服务

不需要跨链桥

univ4和云交易所:

?相同点:

一起开pool,共享低手续费环境

共享流动性

?不同点:

v4不限制业务类型,不一定是交易所

v4共享流动性需要外包给好的路由提供商

v4无准入

我们认为应当以平台的视角来定义uniswapv4。当达到临界点后,在eth手续费的压力下,v4可能是一个比layer2好的方案,会有更多金融业务主动或者被动的从主网迁移到uniswapv4平台。尤其金融业务其实相对不复杂,但是安全性要求更高,可以在eth主网闪电撤出,缓解eth主网的紧急需求。这个角度讲,uniswap已经打赢了dex战争,v4的竞争对手是cex云交易所,matic这种平台级别的竞争对手。

那么代价呢?

流动性代币:没有流动性代币了。或者说这个记账单位不能脱离uniswap范围,项目方要在uniswapv4的生态里解决问题。

流动性碎片化:v3一个资产对有三个不同手续费池,而v4则是完全不同的,这对router和maker的管理要求更高了。这个的解决办法除了市场博弈也要看uniswap社区能不能有一些标准化的方案,URC。

标签:CEX以太坊UniswapCEX币是什么币以太坊币是什么币Uniswap币是什么币

比特币价格今日行情热门资讯
莱特币上升三角形形态预示潜在突破,有望上涨 170%!

LTCUSDT从近期低点上涨150%,如果突破阻力位,有望上涨170%。令人印象深刻的回报和近期的看跌趋势 LTCUSDT,莱特币到Tether的交易对,最近经历了一段值得注意的旅程.

1900/1/1 0:00:00
随着加密货币市场摆脱 SEC 的困境,以太坊瞄准 2,000 美元水平

上周,美国证券交易委员会透露,其发现贝莱德和富达等巨头的比特币现货ETF备案文件不充分,加密市场中的以太坊等资产受到震动。这一消息让比特币价格暴跌。加密货币的数量迅速下降.

1900/1/1 0:00:00
钱包成为第五大 SHIB 鲸鱼

一个钱包在最近一次交易后已在SHIB中积累了约1.76亿美元,成为第五大柴犬。 一个钱包在最近一次交易后已在SHIB中积累了约1.76亿美元,成为第五大柴犬.

1900/1/1 0:00:00
看涨还是看跌?使用艾略特波浪原理分析比特币的未来

通过检查和计算过去的波浪模式,艾略特波浪原理的应用可以为比特币的未来价格行为提供有价值的见解。 每一波都具有独特的相应市场行为,这有助于阐明顶级加密货币所在的市场周期.

1900/1/1 0:00:00
因为 BTC 从最近的底部飙升 2%——现在是购买的好时机吗?

比特币的价格从最近的底部经历了2%的显着飙升,导致人们猜测购买加密货币的最佳时机。 这种上涨趋势引起了投资者和交易员的注意,他们现在正在考虑这是否会带来有利的投资机会.

1900/1/1 0:00:00
莱特币减半事件:LTC 价格大幅下跌的主要原因

莱特币市场在过去两周享有看涨前景后,周末突然转为看跌。值得注意的是,莱特币周线周日收盘低于200移动平均线(MA)和100美元左右的关键支撑/阻力位.

1900/1/1 0:00:00