Foresight Ventures: Crypto-Native预言机的基础TWAP

原文作者:ForesightVentures

0.Oracle原理与问题

区块链的数据来源有两个:一个是链上数据(如地址持有的ETH的数量),另一个是链下数据(如ETH现在在交易所的价格).要获取后者,就需要预言机将这个数据告诉给合约.

为什么互联网也需要有“网下”数据,但没有预言机问题呢?因为区块链上的数据需要经过共识,因此预言机上传上来的数据也需要是可信的,而互联网(Web2)上的数据其实本身都是中心化的.

预言机所需要解决的是从数据源到处理到喂价的信任问题,通常不是数据本身的问题.

a)数据源:可信联盟/去中心化网络

我认为数据源可信是预言机信任问题最重要的一个点,但是这些数据很多都是链下的,链下的数据其实是无法证明是完全可信的,就像你无法证明ETH的价格一定是某个值一样.无论是采用可信联盟还是去中心化预言机网络,都无法生成一个完全没有套利空间或者OEV的价格.

艺电创始人将担任Web3游戏公司Games for a living首席战略官:金色财经报道,游戏巨头艺电(Electronic Arts)创始人William Murray “Trip” Hawkins III将担任巴塞罗那Web3游戏初创公司Games for a living的首席战略官(CSO)。(CoinDesk)[2023/2/25 12:28:10]

唯一能解决数据源可信问题的就是在未来如果流动性和经济活动大部分都聚集在链上,而不是交易所的时候,去完全采用链上预言机(UniswapTWAP),这样可以保证数据源是“Crypto-native”和完全可信可验证的.

智能合约让任何人都可以成为数据处理者,且使用Arweave存储价格数据从而保证数据可信和可以在事后被验证;Chainlink使用Chainlink网络的链上聚合合约来计算出数据结果,再发送到区块链上.

任何应该上链的应用最终都会被上链,这样才能满足区块链透明化,可验证,无需准入门槛,去中心化的特点.

Ampleforth发布应用于Aave平台借贷协议的进度更新:据官方消息,Ampleforth此次公布的最新开发进度是应用于Aave平台的代码更新(如非行为变化、函数库、初始化设置等)以及对借款、还款和基数调整(Rebase)功能的完整测试,内测环节是在与主网相同的分叉网络环境下完成的。[2021/7/15 0:55:32]

完全链上化的价格预言机会彻底解决数据源和数据获取与喂价问题,让DeFi应用给所有人带来经济活动上的自由.

开发者也可以直接在链上使用UniswapTWAP进行代币价格计算.

TWAP的原理是基于每个区块的最后一笔tx时的代币价格,结合区块时间,计算出协议整个历史中一个代币的价格总和,从而使用时可以重新计算出一个平均价格.

使用最后一笔tx时的价格,是为了让攻击者的攻击成本不可预测,从而增加预言机安全性.因为就算攻击者在一个区块的最后一笔交易中控制了价格,他也无法预知下一个区块中的相关活动的排序等信息.根据链上分析,这种跨区块的攻击还没有发生过.(剧透一下,PoS好像就不一定,后文会说).

dForce在以太坊和BSC应计费用总额在第一个月录得5万美元:官方消息,dForce表示,dForce在以太坊和BSC应计费用总额在第一个月录得5万美元,取的费用将用于促进DF回购。[2021/7/6 0:31:39]

加入时间的变量,是为了进一步增加攻击成本,通过牺牲对即时价格的反映,保持价格的整体稳定性和安全性.

3.UniswapV2TWAP

V2TWAP的使用可以是直接拿到一个时间段内的总价变化,除以设定的时间段t,就可以得出一个平均价格,作为代币的价格.每隔一段时间(不一定是t,可以用滑动窗口算法,延迟就更小),则重新获取最新时间段内的价格.

对于TWAP来说,时间参数越长,更新越慢,但安全性越高,因为价格操纵的成本基本上就是时间区间内在每个区块上套利和发送交易的开销.

V3?是时间段内的总tick(tick*time).

V2中我们提到了要每隔一段时间去重新获取价格,这可能就需要Keeper的参与,UniswapV3解决了这个问题.

ForUsAll 允许客户将投资组合的 5% 投资于加密货币:美国的退休计划提供商 ForUsAll 正在与 Coinbase 合作,允许客户将其投资组合资产的 5% 投资于加密货币。据悉,ForUsAll 管理着 17 亿美元的退休计划资产。(cointelegraph)[2021/6/15 23:37:22]

V3直接通过一个可定义长度(视需求和网络时间戳行为不同而定)的数组来存储区块时间戳和总tick,当合约产生Swap等交互时,这个数组就会被更新,无需Keeper的主动触发.

除此之外,使用时还需要把tick转换成价格,稍微比V2难用一点.

5.TWAP的限制

既然TWAP那么好用,那么可信且可验证,完全去中心化,那为什么Chainlink被如此广泛采用呢?

写本文的动机其实就是看到了推特上有人说,EulerFinance从TWAP切换到Chainlink是一种升级(注意此人ID…==).

dForce公布第七周激励方案,DF奖励总量降至37.5万枚:据官方消息,去中心化金融协议dForce公布dForce流动性挖矿第七周激励方案。本期香槟塔池(1号池支持dToken)和淘金池(2号池针对GOLDx/USDx)截止于9月21日,奇点池截止于9月24日。三池的每周DF奖励总量由40万枚DF降至37.5万枚DF。具体内容如下:

1.香槟塔池DF奖励总量保持不变为26万枚DF;

2.淘金池DF奖励总量由3万枚DF降至2.5万枚DF;

3.奇点池DF奖励总量由11万枚DF将为9万枚DF。[2020/9/14]

他称TWAP是非常不安全的,因为PoS之后可以进行多区块的预言机操控,这个其实是可以完全被解决的.

相比之下,我认为TWAP完全去中心化和完全链上操作的优点会比Chainlink好很多,在长期看来,如果没有显著的需求上的差别(比如你要把天气数据搬到链上),那么最好的选择还是TWAP.

TWAP和Chainlink的对比如下:

TWAP被全面碾压,但我个人认为,去中心化和安全性是1,而其他的因素是0,完全链上化是一种趋势.任何人都可以做一条比以太坊快非常多,便宜非常多,支持更多语言的智能合约平台,但却无法杀死以太坊.

6.PoS后TWAP的风险

ChainLinkGod所说的PoS网络中对TWAP预言机的攻击问题,EulerFinance的工程师自己就知道潜在解决方案,Uniswap的工程师也考虑到了.

PoS后,因为出块者可预测了,所以更容易结合以下方式进行多区块攻击:

大Validator可能被连续分配区块

通过Flashbot来发送Privatetx

Multi-blockbundle

PoW和PoS的不同情况下,针对V3ETH/USDC交易对的30分钟时间窗口(144个区块)的TWAP,要操纵价格造成30%的波动,需要以下成本:

PoW:23.7万亿美元

PoS(连续控制窗口内2个区块情况下):23.7万亿美元

PoS(连续控制窗口内3个区块情况下):95亿美元

PoS(连续控制窗口内5个区块情况下):1.03亿美元

控制越多区块,操纵的成本就显著地越低,那么解决方案是啥呢?

暂时性解决PoS后TWAP的操纵风险的方法是:

选择更大的时间窗口

选择流动性更好的池子.

完全解决PoS后TWAP的操纵风险的方法是:

用Median而不是Average.

这样操纵者就需要控制超过半数的区块,才能操纵价格,对比上面的情况,就需要控制73个区块,这个数字应该大到无法表述了.

7.未来的预言机

我认为在未来,一个完美的“预言机”需要:

完全来自链上的可验证数据源(那么就是基于TWAP),且支持多链.

通过ZK或完全链上可信计算进行数据获取和处理.

但是这些可能就需要处理以下几个现存或将会出现的小问题:

满足种类,精度,时效性需求的链上数据(当然Chainlink等一样有价格延迟的问题,而且本身就是为了数据安全性而牺牲时效性)

彻底解决TWAP数据源价格操纵(更深的池子,更大的窗口,使用中位数而不是平均数)

整个预言机信任短板的消除(多签?网络去中心化程度?不靠谱的Fisherman机制?)

数据的跨链获取与喂价,多链场景中链上数据的可信传输

数据源多样性(比如只用UniswapV2或者V3不太好)

可信环境下执行的Keeper(如果需要的话)

我相信在未来,越来越多的经济活动会发生在链上,越来越多的价格数据和交易对会存在于DEX上,Uniswap也就可以提供更好的TWAP,也就会有其他方案能基于TWAP实现我设想中的完美预言机,最终达成一个100%去中心化的金融系统.

关于ForesightVentures

ForesightVentures押注加密货币未来几十年的创新历程,旗下管理多支基金:VC基金、二级主动管理基金、多策略FOF、特殊目的S基金「ForesightSecondaryFundl」,总资产管理规模超过4亿美元。ForesightVentures坚持“Unique,Independent,Aggressive,Long-term”的理念,通过强大的生态力量为项目提供广泛的支持。其团队来自包括红杉中国,中金公司,谷歌,比特大陆等顶级金融和技术公司的资深人士。

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

金智博客

[0:15ms0-6:966ms