Shima Capital CTO的Curve反思:為什麼我們需要Runtime Proctection和Aspect

原文作者:Carl Hua,Shima Capital 合夥人、CTO

在最近的Curve 可重入漏洞利用之後,我回顧了我在JPL NASA 的經歷,在那裡我學到了開發具備reliable(可靠)和resilient(彈性/韌性)軟件的關鍵原則。對於加密行業,這些見解現在比以往任何時候都更加重要,理由如下:

歸根結底,人們只真正關注兩種類型的軟件:可以殺死你的軟件和可以讓你賠錢的軟件。

任何航天機器的關鍵軟件裡,大部分預算(80%+) 並未分配給開發本身,而是分配給集成和測試。如果軟件出現故障,飛行器就會從天而降——戰鬥機、無人機、航天器等。

航天軟件中的大多數代碼(如果被歸類為關鍵模塊)都遵守極其嚴格的測試/開發標準,例如DO-178B A 級。不僅需要測試每一行代碼,而且如果有嵌套邏輯,則每個邏輯條件都是也經過專門測試。

在JPL NASA,編寫先進的航天軟件的理念不是寫出最漂亮、乾淨的代碼,而是編寫出容易執行單元測試的代碼。為什麼?很簡單:當你將一艘航天器送入太空時,你只有一次機會,沒有人願意在失敗的概率較大的情況下冒險。這與區塊鏈的邏輯相同,因為不可變的代碼是它們的重要特性,我們也只有一次機會在每筆交易中正確使用我們的資金,所以我們為什麼不更認真地對待開發dApp 這個過程呢?

儘管有嚴格的開發、測試和代碼審計流程,但這些手段的顯然不足以緩解所有錯誤和攻擊,因為事實上通過測試和審計消除所有運行時錯誤幾乎是不可能的。那麼我們如何保護我們的軟件免遭失敗呢?

運行時保護(Runtime Protection)

運行時保護是一種安全技術,可保護軟件應用程序在運行時免受惡意攻擊。它的原理是在代碼實際運行時進行實時檢測,分析程序的實際行為以保護程序免受惡意數據和攻擊的影響。

高可靠性軟件的運行時保護需要花費大量的投入和設計,因為它們是確保軟件不會進入未知狀態或故障的最後一道防線。這不僅僅是個論點,而是幾十年來經過驗證的實踐。

今天在Web3 中,我認為DeFi 應用程序需要同樣的高可靠性,並且應該考慮同樣的方法。然而,由於其潛在的限制,EVM 並不是為處理運行時保護等複雜任務而設計的。那麼,我們如何提供運行時保護呢?

一種方式是通過Aspect 編程,Aspects 由Artela 區塊鍊網絡設計的,它能夠在任何智能合約交易的生命週期內切換執行上下文,以對程序的實時狀態進行高級檢查。 Artela 通過Aspect 和兼容EVM 的方式,提供運行時保護的獨特設計,它有機會成為加密智能合約安全的未來基礎。

Total
0
Shares
Related Posts