月亮链 月亮链
Ctrl+D收藏月亮链
首页 > BNB > 正文

COM:Compound 的潜在风险和改进_CompliFi

作者:

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

本文作者:ripwu

之前在看Compound代码时,感觉存在一些疑问和改进

其中有个疑问昨天得到了回复,趁着这个机会简单整理下笔记

退出市场的资产,仍可被清算

背景

//compound-protocol/contracts/Comptroller

//itshouldbeimpossibletobreaktheimportantinvariantassert(markets

}functionaddToMarketInternal(CTokencToken,addressborrower)internalreturns(Error){MarketstoragemarketToJoin=markets;if(!marketToJoin

if(marketToJoin

//survivedthegauntlet,addtolist//NOTE:westorethesesomewhatredundantlyasasignificantoptimization//thisavoidshavingtoiteratethroughthelistforthemostcommonusecases//thatis,onlywhenweneedtoperformliquiditychecks//andnotwheneverwewanttocheckifanaccountisinaparticularmarketmarketToJoin

Compound在借款时会通过borrowAllowed()检查用户是否已经进入cToken市场

Compound创始人披露持有COMP、ETH等12种加密货币:DeFi借贷协议Compound创始人Leshner表示,其是加密风险基金的有限合伙人,是Robot Ventures的投资者,并拥有广泛的加密风险投资组合。Leshner披露了部分其持有的加密货币:COMP、ETH、BTC、DPI、SRM、UNI、MKR、MIR、ESD、AMP、NFTX和INDEX。[2021/2/20 17:33:52]

如果未进入,会调用addToMarketInternal()将cToken添加到用户接触的资产列表accountAssets中

我查了下accountAssets,似乎只在存款,借款,和计算用户健康度时使用

其中前面两个操作(存款,借款)更多是类似声明的逻辑,没有什么疑点

//compound-protocol/contracts/Comptroller

/*Wecalculatethenumberofcollateraltokensthatwillbeseized*/(uintamountSeizeError,uintseizeTokens)=comptroller

else{seizeError=cTokenCollateral

return(uint(Error

测试

我担心存在理解偏差,于是在Ropsten网络上进行了测试:

首先用账户A发送exitMarket交易,将存入的cETH退出市场

然后用账户A发送setUnderlyingPrice交易,操纵预言机,模拟市场价格波动,使得账户A资不抵债

ZG.COM于1月22日16:00上线杠杆代币SUSHIUP、SUHIDOWN:据ZG.COM官方公告,ZG.COM将于2021年1月22日16:00上线杠杆代币ETF交易——SUSHIUP(做多SUSHI)、SUHIDOWN(做空SUSHI),并开通SUSHIUP/USDT、SUSHIDOWN/USDT 交易市场。

ZG.COM杠杆代币是由ZG.COM发行的一种带有杠杆功能的代币(非链上代币),该杠杆代币具有浮动杠杆、智能调仓机制、低费率等特点,并且每个杠杆代币的背后都对应了一篮子的ZG.COM合约持仓,杠杆代币价格将跟踪ZG.COM合约市场的价格变化,并随之产生杠杆水平的涨跌。[2021/1/21 16:41:56]

最后用账户B发送liquidateBorrow交易,清算账户A的债务,指定以cETH为抵押物

结论是:退出市场的cETH确实可以被清算

问题

问题来了:

问题一:已经退出市场的资产,是否应该被清算?

问题二:如果不应该被清算,那么进入市场和退出市场的逻辑,意义何在?

综合考虑,我个人觉得Compound原意应该是不允许清算已退出市场的资产;理由如下:

首先,用户在实际存款前必须单独发起进入市场的交易,考虑到Compound在以太坊主网运营,交易手续费不可忽视

如果可以被清算,那么进入和退出市场的逻辑没有什么实际用途,在代码中也未找到其他用途

其次,在退出市场前,Compound提示如下

但是,从另外一个角度来说,退出市场的资产,确实应该支持被清算,否则有损于系统健康度

BiKi ETF专区COMP3L/USDT 24H最高涨幅35.67%:据BiKi平台ETF专区行情显示,截至今日15:30,ETF3L专区COMP3L/USDT 24H最高涨幅35.67%,现净值0.0189USDT; QTUM3L/USDT 24H最高涨幅21.5%,现净值0.8825USDT; ?ETF5L专区QTUM5L/USDT 24H最高涨幅35.11%,现净值0.1948USDT。

ETF交易免手续费活动正在进行中,ETF5L/5S和ETF3L/3S是一种锚定标的5倍做多、5倍做空和3倍做多、3倍做空某种数字资产的指数基金,目前平台已上线BTC5L/5S,ETH5L/5S,XRP5L/5S,SHISHI3L/3S,UNI3L/3S,YFI3L/3S等主流币和Defi热门币种,相比合约有操作简单、永不爆仓、无保证金等特点,BiKi ETF管理费为0.1%。[2020/12/3 22:59:54]

反馈

两个角度都有道理,我没想明白,于是向Compound发送了邮件,一周后收到了回复:问题已知,已退出市场的资产可以被清算;提示文本看起来是有误导

不过,我还是没明白:既然可以被清算,为什么要设计进入退出的功能,用户专门发起这两笔交易的手续费呢...

BTW,前两天AaveV3似乎也引入了资产隔离的概念..

USDC钉住1美元

前面文章中有举例说明Compound价格预言机的流程,以DAI为例:首先向USDC-WETH交易对查询WETH价格,然后向DAI-WETH交易对查询DAI价格,最后将两者相乘,得到以USDC计价的DAI价格

Compound总法律顾问:比特币和以太坊应联合起来,防止加密社区集中化:Compound总法律顾问Jake Chervinsky近期在播客节目中对“只使用比特币”的世界的可能性提出了一些担忧。Chervinsky担心,一个只使用比特币的世界可能最终会变成传统银行体系的翻版:“我希望避免一个我们需要将所有比特币集中存入银行的世界。我认为这和我们在传统体系中遇到的问题是一样的,我们现在正在努力解决这些问题。”然而,必须指出的是,比特币的主导地位在未来几天可能会下降,因为市场上的大多数主流币已经站稳了脚跟,显示出3月12日市场崩盘后的快速复苏。Chervinsky进一步表示,以太坊试图取代的不仅仅是货币,而是金融体系的更多部分。它试图创建尽可能多的去中心化协议,这样我们就不再需要遵从那些类型的金融机构了。这就是为什么我认为BTC和ETH都有优点,两者都很有趣,值得追寻。(AMBCrypto)[2020/4/19]

换句话说,Compound中大部分token的价格是以USDC计价的

这里隐藏了一个假设,USDC价格是恒定不变的,可以作为计价单位

//https://github

}

实现上,Compound对USDC,USDT等做了特殊处理,其priceSource配置为FIXED_USD,钉在1美元

在USDC价格波动时,可能会导致一些问题,比如这个提案描述的例子:

假设USDC因监管或其他原因不断下跌,比如市场价格为0

}

其中,在计算sumCollateral时,使用的是抵押率collateralFactor

COMEX黄金期货站上1700美元关口,报1708.50美元/盎司,涨幅逾3.8%:COMEX黄金期货站上1700美元关口,报1708.50美元/盎司,涨幅逾3.8%。(金十)[2020/4/7]

--与之相对的,在Aave中,贷款时按抵押率计算,而清算时健康度按清算阈值计算;因为清算阈值比抵押率大,因此留出了安全垫

引用链接中的例子:用户抵押价值2ETH的资产,借出1.575ETH的债务,此时健康度为1.0476

注意例子中的债务,是按资产的最大抵押率借出的;在这种情况下,可以忍受市场价格小范围的波动

比如,市场价格短期波动,导致债务上涨3%时,此时健康度仍在1以上,用户资产不会面临清算风险

隐患

不在官方仓库中的代码

比如价格预言机,还未被合并,见Compound代币和价格预言

又如,官方仓库中Comptroller,似乎也是较老的版本;而主网实际使用的合约,是修复了9月底COMP安全事件的版本

--对于新入手Compound的开发者而言,要找到正确的代码,只能求助于EtherScan和搜索引擎,体验有点糟糕

更重要的是,会导致接下来的问题:

不同步的主网与测试网络

考虑到链下数据不好维护,为了便于测试,可以在测试网使用模拟预言机作为mock

除此之外,应该尽可能保证其他合约在主网和测试网一致,但在Compound中并非如此:

比如,最核心的Unitroller,在主网与测试网络上部署的代码版本不同

又如CErc20Immutable是旧代码,会导致cToken无法支持社区治理。主网中这个合约已被废弃,但在测试中仍在使用,比如Ropsten中的cUSDC

--主网与测试网络之间的不同步,除了削弱测试网络的意义,也增加了新开发者的理解成本

要解决这个问题,首先要解决前面的问题,确保官方仓库与主网部署的合约代码一致

这也就引出了更关键的问题:

测试网络似乎没有发生作用

COMP安全事件暴露的问题比较严重:考虑到除了公开的测试网络之外,社区中还有不少开发者搭建着私人测试网络,而理论上,这个问题是必现的;

我们似乎可以得出一个结论:Compound的测试网络和测试代码,没有起到作用

那么,Compound协议安全如何保证呢?社区成员似乎也在担心,比如最近几天出现的提案AuditingCompoundProtocol,ContinuousFormalVerification

--另外,还有代码与文档/产品之间的不同步,原始的升级模式等;限于个人视野未知全貌,某些理解可能存在局限,因此不做展开

以上,一家之言,欢迎指正~

参考资料

ripwu:https://learnblockchain.cn/people/3911

exitMarket:https://ropsten.etherscan.io/tx/0x7b71d5cf083eca8ab436126953f87573fb9d047dced373394ba2d6ae4621e0a2

setUnderlyingPrice:https://ropsten.etherscan.io/tx/0xbb4691fdf1f81b9634375658862d7b7ec6ff7253e81f3896a6025bba11b1e54c

liquidateBorrow:https://ropsten.etherscan.io/tx/0xa38099eb44664169e41e36d06ef0d72c241ddd0a4349e3f36f46506667c4c975

资产隔离:https://governance.aave.com/t/introducing-aave-v3/6035

这个提案:https://www.comp.xyz/t/floating-stablecoin-prices/2005

Aave清算阈值(LiquidationThreshold):http://godorz.info/2021/10/aave-v2/#i-19

Compound代币和价格预言:https://godorz.info/2021/11/compound_comp_and_price_oracles/#i-8

较老的版本:https://github.com/compound-finance/compound-protocol/blob/master/contracts/ComptrollerStorage.sol

版本:https://etherscan.io/address/0xbafe01ff935c7305907c33bf824352ee5979b526#code

主网:https://etherscan.io/address/0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B#readProxyContract

测试网络:https://ropsten.etherscan.io/address/0xcfa7b0e37f5AC60f3ae25226F5e39ec59AD26152#readProxyContract

无法支持社区治理:https://www.comp.xyz/t/legacy-market-migration-wbtc/1333

cUSDC:https://ropsten.etherscan.io/address/0x2973e69b20563bcc66dC63Bde153072c33eF37fe#code

COMP安全事件:https://github.com/rebase-network/Dapp-Learning/blob/main/defi/Compound/contract/9月29日Compound62号提案所引发的可怕Bug.md

测试代码:https://github.com/compound-finance/compound-protocol/tree/master/spec

AuditingCompoundProtocol:https://www.comp.xyz/t/auditing-compound-protocol/2543

ContinuousFormalVerification:https://www.comp.xyz/t/continuous-formal-verification/2557

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10478099.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

比特币进入牛市交叉点,BTC反弹迫在眉睫?

标签:COMOMPCOMPUNDCompliFicomp币价格COMP价格RUNDOGE币

BNB热门资讯
COM:中币关于上线Immutable X(IMX)的公告_ABLE

尊敬的中币用户:????中币将于香港时间2021年11月6日上线ImmutableX。具体安排如下:????1、2021年11月6日16:00开放IMX充值;????2、2021年11月6日20.

1900/1/1 0:00:00
GATE:Gate.io ALGO/USDT、NEAR/ETH、NFT/USDT流动性挖矿奖励池新增7日限时奖励_Gate.io

Gate.io已于2021年8月1日上线新版流动性池,今日ALGO/USDT、NEAR/ETH、NFT/USDT流动性挖矿奖励池新增7日限时奖励;Gate.io现已上线SOL/USDT、XLM/.

1900/1/1 0:00:00
ITA:基于 Solana 的游戏 Nyan Heroes 完成 250 万美元融资,Three Arrows 等领投_xEarn Capital

链闻消息,基于Solana的射击类游戏NyanHeroes宣布完成250万美元种子轮融资,由ThreeArrowsCapital、MechanismCapital和DeFianceCapital.

1900/1/1 0:00:00
HOO:虎符创新产品 HooPool 升级 HOO 单月涨超 77%_WEB3价格

2021年11月4日,据虎符官方消息,虎符HooPool于11月3号18:45(UTC+8)升级优化已完成.

1900/1/1 0:00:00
GAT:Gate.io “今天,我直播”主播挑战赛火热来袭 高比例返佣、周边等你拿_mooo币上线gate

竞技趣味主播PK赛“今天,我直播”即将火热开赛,11月8号至27日,新老主播均可参与。“今天,我直播”挑战赛,赢取周边福利、高折扣现货/合约返佣特权等!本次挑战赛将按照主播的总直播点赞数、单场最.

1900/1/1 0:00:00
KEX:欧易OKEx上线TerraUSD (UST) 的公告_EVAL DEFI

尊敬的欧易OKEx用户:为支持Terra生态和社区发展,欧易OKEx即将上线TerraUSD(UST),并将陆续推出赚币产品.

1900/1/1 0:00:00