以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > FIL幣 > Info

SHA:a16z 介紹 ERC-4626 金庫通用屬性測試:讓 DeFi 可組合性更安全

Author:

Time:1900/1/1 0:00:00

隨著DeFi不斷發展并逐漸成熟,開發人員的首要考慮是可擴展的基礎設施和可組合性。用于構建基于以太坊的應用程序的標準化工具包ERC一直發揮著重要作用。例如廣泛使用的代幣標準ERC-20為開發人員提供一致的指導方針,讓他們無需從頭開始就可以為生態系統做出貢獻。今年早些時候,為了鼓勵收益型代幣之間的交叉兼容性,代幣化金庫標準ERC-4626被推出。除此之外,ERC-4626還可以解決緊迫的可組合性問題,使協議集成更容易,減少出錯幾率。

目前已經有一些DeFi項目為了提高其金庫的可組合性,采用了該標準,我們預計整個生態系統將得到更廣泛的采用。然而,調整現有的金庫確實會帶來一些痛苦,至關重要的是某些實施錯誤可能被暴露,成為新的攻擊目標。即使是很小的錯誤也會對安全和用戶體驗產生重大影響,因此還需要更多的安全工具和措施,特別是在更可組合的DeFi生態系統中。

如果在被攻擊之前就檢測到簡單的錯誤,則可以提供相對簡單的解決方案,理想情況下甚至在部署之前就能進行檢查。為此,我們發布了用于模糊測試和符號執行的ERC-4626屬性測試,以幫助金庫構建者檢測可能破壞集成或導致漏洞的標準違規行為。這篇文章解釋了激勵問題,介紹了檢測方法,并在結尾處提到一些可行的建議。

新加坡法院批準加密貨幣交易所Zipmex的重組計劃:金色財經報道,泰國加密貨幣交易所Zipmex的安排計劃或重組計劃已獲得新加坡高等法院的批準,為客戶取回存款鋪平了道路。根據Zipmex網站周四的更新,法院批準為錢包資產不超過5,000美元的債權人設立“行政便利類” 。Zipmex將債權人保護期限延長三周至4月23日的請求也獲得批準。[2023/3/31 13:36:16]

ERC-4626標準的背景

ERC-4626于3月被推出,是一套代幣化金庫的標準,旨在擴展廣泛使用的ERC-20標準,推動跨收益金庫的標準化,并確保需要與其交互的應用程序和協議的可組合性。這意味著為了與任何其他ERC-4626金庫一起使用,在ERC-4626金庫上構建的任何應用程序都可以輕松擴展。

金庫代幣化后,能夠允許用戶自由存入資產來鑄造金庫代幣,然后贖回這些代幣從金庫中提取本金和利息。這些金庫代幣是ERC-20代幣,可以輕松被交易或用作抵押以借入其他資產。例如,用戶可以將他們的資產存入Yearn金庫以鑄造yVault代幣,然后在Uniswap上進行交易、抵押以獲得額外收益,也可以用作貸款協議的抵押品。

Euler Finance的捐贈和清算中存在邏輯缺陷導致被攻擊:金色財經報道,據PeckShield分析,Euler Finance 由于其捐贈和清算的邏輯缺陷,其在以太坊上的一系列交易中被利用(黑客交易地址),導致項目損失約1.97 億美元。具體而言,donateToReserves 需要確保捐贈者仍然有超額抵押,清算需要確保從借款到抵押資產的“正確”轉換率。此外,共有兩名黑客參與了攻擊:0x5F2…8B8c 和 0xBcA…7c5C。[2023/3/13 13:00:50]

產生、分配收益以及確定代幣價格的邏輯可能因實際情況而異。為了覆蓋盡可能多的金庫,ERC-4626標準側重于構建用戶界面,而大部分實現細節未確定。只要金庫滿足接口的特定要求,就能夠允許業務邏輯的變化,實現跨許多不同類型的應用程序和ERC-4626金庫類型的互操作性。

隨著越來越多的代幣化金庫被創建,我們希望看到它們從一開始就按照ERC-4626標準實施。但我們目前處于某種過渡階段,為了符合標準,開發人員將需要以更大可組合性的方式來更新現有的金庫、應用程序和協議,他們也面臨著許多復雜挑戰。

以太坊基金會:即將進行支持提款的Shapella升級,公共測試網Sepolia計劃于2月28日升級:金色財經報道,以太坊基金會在最新發布的一篇文章中表示,Shanghai+Capella(Shapella)主網升級正在進入最后的預發布序列——公共測試網。Shapella包含許多功能,但對質押者和共識層來說最重要的是支持提款。退出的驗證者可以全額取款,而活躍驗證者余額超過32 ETH的可以部分取款。另外,第一個長期存在的公共測試網Sepolia計劃于2月28日進行升級。

2月7日,上海升級首個公共測試網zhejiang到達預定高度后已成功激活上海升級。此前開發人員表示,之后在Sepolia測試網升級后,計劃在2月底或3月初在以太坊Goerli測試網上發布上海升級,過渡成功后,將轉向主網。[2023/2/11 11:59:57]

標準一致性的挑戰

遵循新標準并不總是那么簡單。每個ERC-4626金庫都必須忠實且準確地實現所描述的標準要求,否則為了應對不同的變化,集成會變得越來越復雜。這種復雜性使集成天生容易出錯。并且由于它們沒有足夠安全測試,隨著時間的推移可能會導致系統漏洞。

OpenSea:不會托管用戶NFT,因其限制用戶并損害安全性:7月28日消息,OpenSea表示,近看到很多關于Solana市場托管NFT的討論。對此,OpenSea認為,市場不應要求擁有用戶NFT的所有權才能將其掛單出售。這種做法在Solana NFT中更為常見。雖然一些市場要求賣家托管他們掛單的NFT,但OpenSea沒有這樣做。托管用戶NFT的市場限制了選擇和實用性,并損害了安全性。當用戶必須將NFT托管給市場時,用戶被迫放棄所有權。NFT離開用戶的錢包,即在用戶的物品售出之前,用戶無法再從所有權中受益。這種做法也限制了用戶的安全選擇,NFT離開用戶錢包,由市場的智能合約持有。因此,用戶失去了選擇如何或在何處保護NFT的能力。甚至如果市場出現問題,用戶將再無法訪問其NFT。OpenSea最后表示,因此在其開發Solana NFT市場時,不會托管用戶NFT。[2022/7/28 2:42:12]

為了安全地處理不同的行為,非ERC-20標準代幣需要許多DeFi系統在執行代幣轉移時使用額外的金庫。例如TetherUSD在執行代幣轉移時需要額外用到SafeERC-20。

MakerDao將暫時禁用Aave DAI直接存款模塊 (D3M):6月16日消息,據官方治理網站,MakerDao社區關于暫時禁用Aave DAI直接存款模塊 (D3M)的提案投票已通過,將于北京時間6月18日5:03開始執行。

根據提案內容,暫時禁用Aave DAI直接存款模塊是因為Aave v2上借入的2億枚DAI中,有1億枚DAI是借給了Celsius,并且主要由stETH抵押,因此存在風險。風險核心部門認為,目前由Aave治理投票的提案如果獲得批準,將對Maker協議構成不可接受的風險。該執行提案的明確目的是禁用Aave D3M,直到風險核心部門或Maker社區確信該風險不再存在。執行提案通過后,Aave DAI直接存款模塊 (D3M)目標借款利率將設置為0。[2022/6/16 4:31:09]

這意味著如果系統的設計不能正確處理「丟失退貨」的情況,任何與這些代幣交互的系統都可能變得脆弱。這些場景可能會引入一個常見的安全陷阱,并增加整體開發和維護成本。因此,符合標準不僅對個人至關重要,而且對整個生態系統的安全也至關重要,單個系統或依賴項中的一個漏洞就可能會導致廣泛的問題。

理想情況下,標準將被明確地正式指定,并且每個實現都可以根據標準規范進行正式驗證。然而在實踐中需要社區的努力且需要一定的費用或時間成本,這在短時間內并不容易實現。

通過引入可執行的ERC-4626屬性,識別一致性問題

當我們朝著理想狀態努力,每個金庫都根據嚴格的正式規范進行了正式驗證時,為了捕捉標準要求的微妙、容易遺漏的細節中的差異,我們編寫了ERC-4626標準屬性。

為了檢測其實施中潛在的標準違規行為,代幣化金庫的開發人員可以在部署之前運行測試。金庫集成商可以檢查給定的金庫是否符合標準,然后再將它們集成到他們的系統中。針對已經部署在主網上的實時金庫,也可以通過主網分叉測試的方式進行測試。為了確保所有系統參數都已正確設置,尤其是在最近部署或升級的金庫,測試實時金庫可能會很有用。

為了使屬性可執行,我們用Foundry編寫,并由fuzzer運行。為了正式驗證給定的進金庫是否滿足所有可能的輸入和條件的屬性,將來它們也可能由符號執行或模型檢查工具運行。

在編寫時通用性是首先考慮的,我們希望測試可以應用于實現不同業務邏輯的各種金庫。我們只使用公共接口函數來使它們與實現細節無關。但是由于此限制,某些涉及特定于實現的內部數據的標準要求從屬性中省略了。

例如,以下屬性對應于convertToShares()函數的要求之一,「不得根據調用者顯示任何變化。」

給定兩個賬戶地址和金額,它使每個賬戶以相同的金額調用convertToShares(),并確保兩個返回值相等。此屬性獨立于實現細節convertToShares()。這些細節因金庫的不同而異,并且必須由任何實現ERC-4626的金庫來滿足。在這種情況下可以通過提供特定輸入值、許多用于模糊測試的隨機輸入或用于符號執行和形式驗證的符號值來執行此屬性。它也可以在本地運行或針對主網分叉運行。

用例:測試舍入錯誤的屬性

例如舍入錯誤是一類看似輕微的但很重要的錯誤,它可能會產生一些系列影響。在ERC-4626的基本會計邏輯中,舍入誤差是不可避免的,例如計算要鑄造的資產數量,或要提取的資產數量,等使用定點算法實現的指令。為了安全性考慮,該標準明確指定了每個接口函數的首選舍入方向,同時未指定誤差范圍。具體來說deposit()和redeem()函數應該返回一個低于精確值的近似值,而mint()和withdraw()函數應該返回一個高于精確值的近似值。例如當前股價為2,那么deposit()3wei的資產最多只能鑄造1wei的代幣,而withdraw()3wei的資產應該在至少2wei的代幣。

我們將舍入相關屬性編寫為獨立于基礎會計邏輯,并將其視為「黑匣子」。具體來說我們將它們表述為所謂的「往返」屬性,它描述了兩個相反函數之間的關系。例如以下屬性規定,通過鑄造N股來提取剛剛托管的資產必須燃燒不少于N股。換句話說,沒有人可以通過反復鑄造和提現來反復轉換資產和金庫代幣來獲利。

事實上,我們發現主網上的幾個ERC-4626保險庫由于舍入錯誤而無法滿足上述屬性。這意味著任何人都可以通過簡單的反復鑄造和提取,慢慢地耗盡金庫來賺取satoshiBTC。在低Gas費的鏈如Fantom上可能會實現獲利,或者在價格上漲時也會獲利。

ERC-4626標準的廣泛測試

我們在主網上約100個ERC-4626金庫進行了屬性測試,發現許多金庫未能遵循標準要求。其中的主要原因是舍入錯誤。具體來說mint()函數盡管標準明確要求這樣做,但某些金庫未能鑄造該函數請求的確切份額數量。其中一些還發出了不一致的Deposit事件,其中記錄的數據與實際生成的數據不同,甚至有些金庫根本就沒有進行現場鑄造過。相反他們只是將鑄幣請求放入隊列中,稍后將它們作為單獨的事務分批處理。

盡管這些不同的行為本身是不可利用的,但當它們集成到只執行標準行為的其他系統中時,它們可能會變得容易受到攻擊。這些問題將使金庫集成變得更加困難,可能會抵消一部分努力。

屬性測試和其他可操作的步驟實現標準一致性

在部署之前嚴格遵循標準可以防止出現不同的行為。我們希望我們的屬性和一些額外的操作項對于那些正在開發或集成ERC-4626金庫的人能夠提供幫助:

我們強烈建議對您的金庫運行屬性測試。如果有任何明顯違反標準的行為,問題會很快被發現。我們還建議檢查我們的屬性,以檢查您對標準要求的理解,如果有任何無意的差異,請調整實施方案。如果金庫必須偏離標準,我們建議明確記錄非標準行為,以便其他人在與金庫集成時可以正確處理這些偏差。小結

在可預見的未來,ERC-4626金庫有可能成為DeFi的重要組成部分。為了保持可組合性,新的和現有的金庫都必須遵循該標準。新的標準將出現,因此現在是現有金庫標準化的最佳時機。

當我們朝著不同金庫統一組合的理想狀態努力時,可以運行ERC-4626屬性測試以更輕松地檢測金庫實施中的標準違規行為。屬性測試的文檔和示例都在我們的Github存儲庫中公開可用。

Tags:NFTAVESHAAAVENFTdotMetaverse NetworkSHAH價格Aave MKR

FIL幣
Gemini:Gemini Earn暫停提現,分析GUSD對合作方MakerDAO的影響

GeminiEarn暫停提現,有傳言稱MakerDAO有5億美元的資金被凍結在了GeminiEarn當中,實際并非如此,此事對于GUSD和合作方MakerDAO的影響可能較小.

1900/1/1 0:00:00
NAN:推文:探測Etherscan上錢包4

我會不會需要一個關于Crypto.com冷錢包設置的解釋器?我決定在Etherscan上探測一下錢包4,這是我所看到的情況: 幾乎所有的流入都來自只從交易所或其他進行dex交易的錢包收到的地址.

1900/1/1 0:00:00
馬斯克:馬斯克瘋狂暗示看似不靠譜的狗狗幣,意欲何為?

昨天馬斯克又在推特上發布了一張穿著推特t恤的柴犬的照片,順便推動了狗狗幣價格的最新上漲。他的舉動也喚起了人們對這位億萬富翁過去發帖如何引發狗狗幣瘋狂上漲的回憶.

1900/1/1 0:00:00
WIT:塵埃落定or甚囂塵上?馬斯克將帶領“藍鳥”飛向何方?

“Letthatsinkin”,這只是一個開始。馬斯克27日抱著白色水槽“一語雙關”地進駐了推特舊金山總部,以一種另類詼諧的方式宣告自己最終成為這座頂級社交媒體平臺的主人.

1900/1/1 0:00:00
MEV:事關以太坊后10年,最新路線圖白話解讀版來了

ETH轉POSMerge那會,路線圖已經發布過一次,相信一直關注的老鐵肯定不陌生。最近V神又更新了一版,加了個TheScourge階段,借此正好把這個最新版的做一個超白話解讀,爭取讓不太懂技術的.

1900/1/1 0:00:00
COI:MarsBit日報 | 香港證監會表示支持元宇宙、NFT、GameFi創新;StarkNet將在Goerli上啟動第二個測試網

MarsBitCryptoDaily2022年10月31日 一、今日要聞 香港證監會:支持元宇宙、NFT、GameFi創新.

1900/1/1 0:00:00
ads