本文作者: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市場
Com2uS集團區塊鏈主網XPLA宣布與日本區塊鏈主網Oasis簽署業務協議:金色財經報道,韓國游戲開發商Com2uS區塊鏈主網XPLA 29日宣布與日本區塊鏈主網Oasis(OAS)簽署業務協議。通過此次協議,兩家公司將推動聯合生態系統的建立,以搶占日本Web 3.0游戲市場。Com2uS預定上傳至Xpla主網的召喚類角色扮演游戲(RPG)《魔靈召喚:編年史》也將與Oasis Network合作發售。[2023/6/29 22:07:36]
如果未進入,會調用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資不抵債
加密錢包The Easy Company完成1420萬美元種子輪融資:1月10日消息,“社交”加密錢包The Easy Company完成1420萬美元種子輪融資, Lobby Capital、Relay Ventures、6th Man Ventures、Tapestry、Upside 和 Scribble,以及來自傳統社交媒體和 web3 的天使投資人等參投。這筆資金將用于繼續構建社交產品,同時也將用于擴大區塊鏈支持。[2023/1/10 11:04:45]
最后用賬戶B發送liquidateBorrow交易,清算賬戶A的債務,指定以cETH為抵押物
結論是:退出市場的cETH確實可以被清算
問題
問題來了:
問題一:已經退出市場的資產,是否應該被清算?
問題二:如果不應該被清算,那么進入市場和退出市場的邏輯,意義何在?
綜合考慮,我個人覺得Compound原意應該是不允許清算已退出市場的資產;理由如下:
首先,用戶在實際存款前必須單獨發起進入市場的交易,考慮到Compound在以太坊主網運營,交易手續費不可忽視
如果可以被清算,那么進入和退出市場的邏輯沒有什么實際用途,在代碼中也未找到其他用途
其次,在退出市場前,Compound提示如下
但是,從另外一個角度來說,退出市場的資產,確實應該支持被清算,否則有損于系統健康度
反饋
兩個角度都有道理,我沒想明白,于是向Compound發送了郵件,一周后收到了回復:問題已知,已退出市場的資產可以被清算;提示文本看起來是有誤導
電商平臺WooCommerce和Shopify接受ADA付款:在Reddit的一個新帖子中,加密支付網關解決方案NOWPayments發布了一個插件,電商平臺WooCommerce和Shopify商戶接受Cardano (ADA)付款。此外,NOWPayments還透露,他們正在尋求與電子商務平臺Etsy合作,以啟用ADA付款。據其網站介紹,NOWPayments允許商戶接受超過50種貨幣加密貨幣,并可以選擇將這些代幣直接發送到接收者的錢包。[2021/4/25 20:55:04]
不過,我還是沒明白:既然可以被清算,為什么要設計進入退出的功能,用戶專門發起這兩筆交易的手續費呢...
BTW,前兩天AaveV3似乎也引入了資產隔離的概念..
USDC釘住1美元
前面文章中有舉例說明Compound價格預言機的流程,以DAI為例:首先向USDC-WETH交易對查詢WETH價格,然后向DAI-WETH交易對查詢DAI價格,最后將兩者相乘,得到以USDC計價的DAI價格
換句話說,Compound中大部分token的價格是以USDC計價的
這里隱藏了一個假設,USDC價格是恒定不變的,可以作為計價單位
//https://github
}
實現上,Compound對USDC,USDT等做了特殊處理,其priceSource配置為FIXED_USD,釘在1美元
在USDC價格波動時,可能會導致一些問題,比如這個提案描述的例子:
假設USDC因監管或其他原因不斷下跌,比如市場價格為0
ZG.COM于4月16日16:00上線SAND、MATIC:據官方公告,ZG.COM主板區NFT板塊于2021年4月16日16:00上線SAND、MATIC,目前均已開啟充幣和提幣業務。
SAND是基于以太坊的功能型代幣。The Sandbox是一個虛擬游戲世界,玩家可以通過SAND創建和擁有不同的游戲體驗,并從中獲得收益。玩家還可以通過The Sandbox Game Maker,來創建數字資產,將其上傳到商店,并通過簡單的拖拉方式來創建游戲體驗。
MATIC是Matic Network平臺代幣,用于權益押注,參與側鏈網絡的證明共識機制。Matic Network是一個第二層擴展性平臺,實現快速、簡單和安全的鏈下交易,不僅可以支付交易,還可以實現廣義的脫鏈智能合約。[2021/4/16 20:26:11]
}
其中,在計算sumCollateral時,使用的是抵押率collateralFactor
--與之相對的,在Aave中,貸款時按抵押率計算,而清算時健康度按清算閾值計算;因為清算閾值比抵押率大,因此留出了安全墊
引用鏈接中的例子:用戶抵押價值2ETH的資產,借出1.575ETH的債務,此時健康度為1.0476
注意例子中的債務,是按資產的最大抵押率借出的;在這種情況下,可以忍受市場價格小范圍的波動
比如,市場價格短期波動,導致債務上漲3%時,此時健康度仍在1以上,用戶資產不會面臨清算風險
隱患
不在官方倉庫中的代碼
比如價格預言機,還未被合并,見Compound代幣和價格預言
動態 | BHD Community發起攜手共抗冠狀性肺炎募集活動:據BHD Community消息,BHD Community于2020年1月27日在公眾號發起“一方有難,八方支援,支援武漢”募集活動,本次活動面向所有BHD粉絲社群、POC生態商以及所有加密貨幣愛好者,BHD Community將攜手合作伙伴共同抵抗冠狀性肺炎,盡獻綿薄之力。詳情請查看原文鏈接。[2020/1/27]
又如,官方倉庫中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反彈迫在眉睫?
FellowBinancians,BinancewilllistRariGovernanceToken(RGT)andwillopentradingforRGT/BTC,RGT/BNB.
1900/1/1 0:00:00尊敬的XT用戶: 應項目方要求,1NFT將延遲上線,具體時間平臺將另行公告通知。給您帶來的不變,請您諒解!如有問題,請及時聯系在線客服.
1900/1/1 0:00:00親愛的用戶:我們榮幸地宣布,幣安已與葡萄牙知名足球隊波爾圖建立長期合作夥伴關係。幣安將成為波爾圖足球隊的官方粉絲代幣合作夥伴,並同時成為波爾圖足球隊球衣長期贊助夥伴,一同挑戰歐洲足球賽場上的各路.
1900/1/1 0:00:00一、項目介紹 MIM是一群創造虛擬藝術家、NFT和音樂發行的創作者,所有這些都與Metaverse息息相關.
1900/1/1 0:00:00撰文:Footprint分析師Zoni(?) 日期:2021年10月 在上一篇《Footprint:Curve何以在DEX賽道遙遙領先》一文里.
1900/1/1 0:00:001DOSE(DOSE)TokenSaleResultTheGate.ioStartupDOSE(DOSE)saleresultisasfollows:DOSEStartupSaleAmount:.
1900/1/1 0:00:00