1.前言
由于Arbitrum近期空投活动的火热,随之产生巨量的$ARB链上交易。UniswapV3早早布局Arbitrum,自然是有先发优势。而TraderJoeV2的横空出世,伴随着$ARB的空投活动,一跃成为$ARBTokenUsage榜上的第二大DEX。甚至在3月的最后一个星期,JoeV2池一度占据了近45%的ETH-ARB币对的交易量,超越了UniswapV3的池,成为了该币对交易量占有率最高的单池。而本文并不会花费大量篇幅讨论JoeV2为何能在$ARB交易中获取大量份额,而是着重从JoeV2的AMM机制设计和技术实现入手,试图分析其产品的优势与不足。
2.特性分析
我们都知道UniswapV3构建的一套通过手续费收入和限价流动性博弈而提高资金利用效率的AMM机制。JoeV2在此基础上进行了以下革新,引入了一种新的AMM模型——LiquidityBook:
垂直方向的流动性分布:UniswapV3的限价流动性本质上是水平方向上「平铺」在LP设定的价格区间内;而JoeV2则是在垂直方向上「堆叠」LP提供的限价流动性。「bin」作为流动性分布的单元:如果说UniswapV3中「tick」这一概念,可以形象地理解为流动性价格标尺上的「刻度」;那么JoeV2中的「bin」在这里可以理解成储存流动性的箱子。类ERC1155的LBToken:由于上面提到的流动性分布单元和方式,所以JoeV2基于ERC1155构建了一套流动性凭证体系——LBToken,同一个bin内的流动性是同质化的,而不同的bin中的流动性彼此区别。流动性分布可策略化:正是因为ERC1155这种半同质化的LBToken属性加上垂直的流动性分布方向,使得JoeV2的LP可以按照一定的策略来部署自己的流动性,而不是简单地均分在bin上。动态的手续费定价算法:swap手续费动态定价,这使得LP在市场经历高波动性时可以收取更高的费用,在某种程度上通过手续费来博弈单边行情,从而对冲LP在高波动率行情下的无常损失。
美国众议院金融委员会主席要求SEC撤销对交易所进行定义的提议:金色财经报道,美国众议院金融委员会主席McHenry表示,要求美国证券交易委员会(SEC)撤销对交易所进行定义的提议。[2023/6/14 21:34:43]
接下来本文将进一步讨论上述这些特性的实现机制,以此帮助读者更好地理解JoeV2与其他DEX的异同。
2.1流动性分布与价格曲线
我们知道自动做市商,AMM(AutoMarketMaker)中的流动性分布决定了特定价格下交易对两侧的相对数量,币对的相对数量又决定了池内当下的兑换比例,兑换比例即为大家所理解的「价格」。
JoeV2中所设计的流动性账簿(LiquidityBook)将交易对的流动性安排成离散的「bin」。而注入bin的流动性按照该bin定义的固定汇率进行兑换。换言之,单个bin内的流动性兑换遵循x+y=k的恒定和AMM模型。
如上图,单个bin内的流动性遵循P?x+y=L的线性关系。x是该bin内X资产的数量,y是该bin内Y资产的数量,P是该bin对应的价格,L则为该bin内的流动性数量。
值得注意的是,上图中的「恒定和曲线」与x轴和y轴是有交点的,这意味着X或Y资产在一定交易量下是可以被消耗掉的。在这种情况下,当前价格会移动到下一个bin。
黑山央行与瑞波公司合作开展数字货币试点项目:金色财经报道,黑山总理Dritan Abazovi?在Twitter上宣布,他的国家正在与瑞波公司合作推行一种数字货币,Abazovié 在达沃斯会见了Ripple 首席执行官 Brad Garlinghouse 和副总裁 James Wallis。(Cointelegraph)[2023/1/31 11:37:21]
某一交易对市场是其所有离散的流动性bin的聚合结果,一个市场内只能有一个同时包含X和Y的bin-在Joe中,被命名为ActiveBin(活跃价格区间),我们可以将其理解为该交易对当下的现货兑换比例。而所有在活跃区间右侧的区间都只包含X资产,所有在左侧的区间都只包含Y资产。
举一个简单例子,AVAX/USDC池。资产Y为USDC,资产X为AVAX。价格P由每个AVAX可兑换USDC的数量决定。如果此时ActiveBin为100USDCperAVAX;所有在左侧的区间都只包含USDC,而所有在右侧的区间都只包含AVAX。如果市场内此时交易者大量购买AVAX,那么当100USDC内的AVAX储备被消耗完时,ActiveBin将向右移动。
2.2流动性凭证代币LBToken
如上面所提到的,LiquidityBook聚合流动性的方式与UniswapV3不同:在LiquidityBook中,通过每个bin垂直聚合流动性,在UniswapV3中,流动性则是呈水平聚合。
也正是因为LB垂直聚合流动性这一特性,使得同质化流动性代币成为可能。我们姑且不说同质化流动性代币在gas上的种种优势,其对于协议中手续费计算和整个账务系统复杂度的轻量化也带来了更多可能性。
慢雾:跨链互操作协议Nomad桥攻击事件简析:金色财经消息,据慢雾区消息,跨链互操作协议Nomad桥遭受黑客攻击,导致资金被非预期的取出。慢雾安全团队分析如下:
1. 在Nomad的Replica合约中,用户可以通过send函数发起跨链交易,并在目标链上通过process函数进行执行。在进行process操作时会通过acceptableRoot检查用户提交的消息必须属于是可接受的根,其会在prove中被设置。因此用户必须提交有效的消息才可进行操作。
2. 项目方在进行Replica合约部署初始化时,先将可信根设置为0,随后又通过update函数对可信根设置为正常非0数据。Replica合约中会通过confirmAt映射保存可信根开始生效的时间以便在acceptableRoot中检查消息根是否有效。但在update新根时却并未将旧的根的confirmAt设置为0,这将导致虽然合约中可信根改变了但旧的根仍然在生效状态。
3. 因此攻击者可以直接构造任意消息,由于未经过prove因此此消息映射返回的根是0,而项目方由于在初始化时将0设置为可信根且其并未随着可信根的修改而失效,导致了攻击者任意构造的消息可以正常执行,从而窃取Nomad桥的资产。
综上,本次攻击是由于Nomad桥Replica合约在初始化时可信根被设置为0x0,且在进行可信根修改时并未将旧根失效,导致了攻击可以构造任意消息对桥进行资金窃取。[2022/8/2 2:52:59]
虽然说LBToken合约遵循ERC-1155多代币标准,而参量id即为该流动性所在的bin的索引(index),所以同一bin所对应的LBToken是同质化的。从其合约代码中,我们可以发现:LBToken的实现与ERC1155标准代币大致相似,主要区别在于它不会对接收方合约进行任何调用以防止重入攻击。同时由于其仅用于流动性计数,所以并未实现URI相关的函数。
2.3Binid与Price之间的换算
JoeV2内置的价格区间为,这个价格区间被分割成一个个离散的价格点,每个价格点对应了一个流动性容器Bin,而决定分割精度的离散参数为s,s越小,Bin就越多。
Alameda向FTX转入约5000枚ETH:6月23日消息,据派盾监测数据显示,“Alameda to FTX”钱包地址(0x36...5759)向FTX转入约5000枚ETH,价值约550万美元。[2022/6/23 1:26:58]
JoeV2协议设定Bin的总数量为2*Nb,即价格为1以上的Bin和价格1以下的Bin各有Nb个,则有公式:
Nb=argmaxi((1+s)i<2128)
除了价格的限制,协议还限制了Bin的总数量不得超过224个,也就是说Nb最大为223
通过计算,我们可以得到s的最小值为2(0.5^16)-1,从而我们可以得到Binid范围为,其中b=223。
这里我们举个简单的例子演算一遍:
当s?=?0.0001时,
Nb=argmaxi((1+0.0001)i<2128)=887272
则BinId为一组(223-887272)?~?(223+887272)的连续正整数,即Binid?∈?。
Price与Binid一一对应,符合以下的数学关系:
Price?=?1.0001
所以,Price的范围应该是:
1.0001-887272≤Price≤?1.0001887272
显然,当Binid?=?8388608时,
Price?=?1.0001?=?1
在库合约TreeMath中,为了优化流动性跟踪,Bin通过一个由三个256位数组嵌套创建的数据树来索引。在这棵树中,每个Bin被分配了一个通过嵌套数组的位置路径。当一个Bin内包含流动性,其对应的三个数组会被分配一个非零值。
永续合约协议Drift Protocol公布结算和赎回计划:5月17日消息,Solana 生态永续合约协议 Drift Protocol 公布结算和赎回计划,计划在协议重新上线之前,将此前所有未平仓头寸均按照 UTC 时间 5 月 12 日 19:37(交易暂停时间)进行结算,结算方法根据用户的账户余额和未平仓头寸上未实现损益的处理情况,确定用户可以赎回的抵押品总额。
注,5 月 12 日受 LUNA 价格剧烈波动影响,Drift 用户能够从抵押品库和金库中提取比他们有权获得的更多的抵押品,从而造成 1040 万美元的损失,随即协议被中断以避免进一步损失。[2022/5/17 3:21:36]
2.4流动性策略化部署
还是因为LB垂直聚合流动性这一特性,LP在提供流动性时,可以加入一些策略:Spot/Curve/Bid-Ask,这是UniswapV3这种水平聚合流动性的AMM模型所无法实现的,即便实现也需要进行多个仓位的流动性部署,对于LP用户来说操作成本和学习成本都过高。
以下是用户如何使用Spot策略分布的简单示例:
在这个ETH-USDC池中,流动性提供者可以选择高于当前市场价格的范围,只向池中提供ETH。随着ETH价格上涨,用户将稳步卖出ETH以换取USDC。上图中的范围相对较小,但用户可以选择他们想要的任何目标价格——这是平均成本法(DCA)平仓策略的简单实现。
反之亦然;用户可以通过逆流程并以低于当前市场价格的单方供应USDC的方式,将DCA加仓策略用于LiquidityBook模型中。在这两种Spot策略应用中,用户通过单笔交易成本可控地逐渐退出或进入他们的头寸,并在此过程中赚取隔夜手续费收益。这些流动性策略为LP在部署流动性方面提供了极高的自由和灵活性。bin数越少,流动性越集中;因此,他们在该范围内交易中所占的收入份额就越大。
2.5动态swap手续费
在所有DEX协议中,交易者在执行swap交易时向流动性提供者支付手续费,流动性提供者在获取手续费收益的同时,也承担着无常损失的风险。LiquidityBook中引入了动态swap费用,使得LP在市场经历高波动性时可以收取更高的费用,在某种程度上通过更高的手续费来博弈单边行情,从而对冲LP在高波动率行情下的无常损失。
总swap费用将包含两个部分:基本费用(Basefee)和动态费用(Variablefee)。动态费用是瞬时价格波动的函数。费率将应用于每个bin中的swap金额,并按比例分配给该bin中的流动性提供者。
swap收取的费用由下列公式决定:
其中,fb为Basefee:
fb=B·?s
fv为Variablefee:
fv=A(vk·s)2
其数值取决于市场的波动性。市场的波动性是受交易频率影响的,当交易数额巨大以至于耗尽多个bin内的流动性fv会随之增长。
其中vk代表波动率累加器(volatilityaccumulator)是一种计算最近交易跨bin频率的参数。波动率累加器是市场波动率的参数化表现,该值将在每个计算步骤之间存储在合约内存(memory)中,其数值由两部分计算结果共同决定:
参考波动率和引入波动率:
va(k)=vr+|ir-activeid+k|
参考波动率(volatilityreference,vr)取决于自上次交易以来经过的时间t。我们定义了一个有上限和下限的时间过滤窗口。如果t小于过滤周期定义的下限,则vr保持不变。如果t大于衰减周期定义的上限,则vr将重置为0。如果t在窗口内,则vr等于上一次的va结果乘以衰减因子R:
这意味着高频交易会增加波动率va,而低频交易会慢慢降低波动率va,以至于超过一定时间没有任何交易后将重置波动性va
上面我们计算了参考波动率,接下来我们来计算引入波动率了。在引入波动率的计算中我们引入了另一个变量,即indexreference(ir)。在大多数情况下,ir为该次交易前的ActiveBin的Binid。但在一定的时间窗口内时,ir会保持原来的值。这是为了防止交易者通过进行小批量的小额交易来操纵手续费率:
3.讨论
自UniswapV2在其产品中实现了一套全价格区间分布流动性的方案以来,包括Uniswap自己在内,众多DEX项目都在寻求资金利用效率更优的AMM模型。即便是UniswapV3上线届满2年的此刻,我们仍然无法断言什么是更好的AMM模型。但是忽略产品交互上的种种设计,单论核心业务层面的痛点,我们可以说理想的DEX应该符合如下特征:
对于交易者来说:低gas成本;低手续费;低滑点对于流动性提供者来说:低gas成本;更高的手续费收益率;可控的无常损失
虽然只是简单的几点需求,其中其实存在很多艰难地权衡:
首先,交易者的低交易成本和LP的高手续费收益本质上是冲突的,所以协议需要在一定的手续费率的前提下,将手续费更加合理的分配到LP的手中而更合理的手续费分配机制本身就会增加系统的复杂度,这一点上又需要与gas经济性进行平衡低滑点和可控的无常损失本质都依赖于更好的流动性深度,而在相同行情条件下,流动性深度与流动性分布机制乃至其资金利用效率息息相关。可是在资金规模确定的情况下,更高的资金利用效率必然会要更集中性的流动性分布算法,其带来的无常损失的风险也就越高
我们看到JoeV2,乃至刚刚上线的V2.1在可控的无常损失以及更好的资金利用效率两者之间的平衡中做出了创新;同样的,其在实现合理的手续费分配机制的基础上,也通过垂直流动性分布的方式进一步降低了系统复杂度,从而为降低用户操作的gas成本提供了可能性。
UniswapV3的代码版权即将解禁的此刻,很多DEX项目踌躇满志地要跟着推出他们根据V3改进的新版本,而Joe则继续在一条更具有开创性的道路上不停地做出新的尝试,我们乐见其成,也期待更多更好的原创项目为交易市场带来新的活力。
注:原文来自@Ron_zheng发布长推再次验证了我之前的观点:Crypto项目更需要实名。想一想,如果这次事件发生在一个匿名团队中,而不是Paraspace这种争议双方都实名的项目,用户资金是不是早被心怀恶意的一方处心积虑地掏空,然.
1900/1/1 0:00:00网络的当前状态 加密货币领域中的总锁定价值(TotalValueLocked,简称TVL)并不仅存在于以太坊网络中。如图1所示,虽然大部分TVL位于以太坊上,但其余41%分布在超过179个区块链上,而且开发数量每天都在不断增加.
1900/1/1 0:00:00巴比特讯,7月31日,imToken内置的Tokenlon正式升级为独立的去中心化交易所。据悉,区别于以往imToken直接集成的Kyber协议,本次Tokenlon的升级是基于0x协议,并采用“多做市商价格聚合”的创新机制,以提升交.
1900/1/1 0:00:00当地时间周六,本年度伯克希尔-哈撒韦股东大会在奥马哈召开,“股神”巴菲特与老搭档芒格携伯克希尔-哈撒韦副董事长阿贝尔以及保险业务负责人贾恩一同亮相.
1900/1/1 0:00:00深入研究以太坊经济的复杂性,最大可提取价值供应链的好处呈现出令人着迷的研究。这个复杂的互动网络,特别是在当前PBS方案下的构建者和验证者之间,可以通过下面的桑基图来探讨.
1900/1/1 0:00:00??2019全球数字经济创新峰会于07月01日在中国深圳瑞吉酒店成功召开。此次会议由GlobalDigitaleXchangeAlliance全球数字交易联盟主办,世界自由贸易区联合会、SATOGroup联合主办,KIROBO链安资管.
1900/1/1 0:00:00