比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

WEB:a16z:給 Web3 項目的智能合約安全指南

Author:

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

通常,黑客會發現并利用軟件開發整個流程鏈條(從設計到部署再到維護)中的缺陷,從而打破區塊鏈項目的安全屏障。如果能夠提前了解到相關經驗,我相信安全事故會少很多。

本文概述了 Web3 開發人員和安全團隊在設計、開發并維護智能合約時必須考慮的安全要素,覆蓋了從威脅建模到應急響應準備的整個周期。

開發一款安全的軟件包括以下五個階段:

設計:開發人員描述系統所需的功能和操作,包括重要的基準和固定屬性;

開發:開發人員編寫系統代碼;

測試和評審:開發人員將所有模塊聚集在一個測試環境中,并評估它們的正確性、規模和其他因素;

部署:開發人員將系統投入生產;

維護:開發人員評估和修改系統,確保其執行預期功能。

 下圖將需要考慮的安全因素與上述階段對應起來。

A16z將前美國CFTC委員Quintenz提升為政策主管:金色財經報道,美國商品期貨交易委員會前委員Brian Quintenz被任命為a16z的新政策主管。Brian Quintenz去年離開該機構,該公司周二表示,Quintenz正擴大他在Andreessen Horowitz(a16z)的作用,從提供咨詢到接管政策主管。

這位前監管者表示,考慮到該行業戲劇性的2022年,他理解一些政策制定者會對數字資產產生懷疑。鑒于市場的情況,他認為把重點放在客戶保護上是非常恰當的。(coindesk)[2022/12/6 21:25:55]

需要注意的是,軟件開發的生命周期并不一定總是遵循線性的路徑:各類別可能重迭或擴展到其他階段。對于每個版本,步驟可能會重復。有些安全任務(如測試和安全審查)可能需要貫徹執行。

上面描述的軟件生命周期步驟和相應的安全考慮為促進智能合約安全性提供了基礎。下面將從三個問題出發,進行更詳細的研究。

1. 設計階段的智能合約安全考慮——考慮威脅建模和安全設計

元宇宙身份平臺Ready Player Me完成5600萬美元B輪融資,a16z領投:8月23日消息,元宇宙身份平臺 Ready Player Me 完成 5600 萬美元融資,此輪融資由 a16z 領投,Roblox 的聯合創始人 David Baszucki、Twitch 聯合創始人 Justin Kan、King Games 聯合創始人 Sebastian Knutsson 和 Riccardo Zacconi、體育和娛樂公司 Endeavour、Kevin Hart 和 Hartbeat Ventures 等參投。(TechCrunch)[2022/8/23 12:43:32]

內容:從項目開發生命周期初期就明確識別系統的潛在威脅,并確定其優先級是關鍵。智能合約開發人員應該識別在開發中要實現的所有安全控制,以及在測試、審計和監控中應該檢查的威脅。所有安全假設,包括攻擊者預期的復雜程度和經濟手段,都應該在設計階段明確定義和闡明。

原因:雖然對開發人員來說,只關注智能合約或協議的預期用途非常吸引人,但這唯一的焦點可能會給他們留下“盲點”,會被攻擊者利用。

a16z:加密仍處于早期階段,相當于互聯網的1995年:5月17日消息,a16z發布2022年加密貨幣概括報告。該報告指出,加密貨幣正處于第四個價格創新(price-innovation)周期之中,加密貨幣的價格可能會不穩定,但對于創業者來說,Web3仍然比Web2好。

2021年,Web3為創作者帶來的人均收益達到174,000美元,遠超Web2平臺(例如Spotify:636美元/藝術家,YouTube:2.47美元/頻道。)

DeFi也提升了金融的包容性。以太坊仍在Web3上占據主導地位,但競爭對手正在增多,包括Solana、Polygon、BNBChain、Avalanche和Fantom等區塊鏈的開發人員正在尋求復制以太坊的成功。

該報告總結部分表示,加密仍處于早期階段,a16z估計目前以太坊擁有700萬到5000萬的活躍用戶,相當于互聯網的1995年。[2022/5/17 3:22:41]

方法:遵循已知的威脅建模實踐。如果一個開發團隊沒有內部的安全專家,那么它應該在設計階段的早期就與安全顧問接觸。在設計系統時要有“攻擊者”的心態,并預先假定任何個人、機器或服務都有可能受到攻擊的情況。

新興音樂初創公司Sound.xyz種子輪融資500萬美元,a16z領投:12月15日消息,新興音樂初創公司Sound.xyz種子輪融資500萬美元,投資方包括a16z、Variant Fund、Atelier Ventures、少數加密天使和藝術家,如Holly Herndon、21 Savage和DJ Drama。通過Sound.xyz發布音樂的藝術家可以提供有限的NFT供應來配合發布。(coindesk)[2021/12/16 7:42:20]

2. 發展階段的保安考慮——管理考慮和訪問控制

內容:實施訪問控制,限制對特權帳戶和智能合約調用執行管理任務(如升級合約和設置特殊參數)的特殊功能的能力。遵循“最小特權原則”——每個參與者應該只擁有所需的最小訪問量。

原因:通過升級和治理流程維護協議,開發人員可以通過添加新功能、修補安全問題和解決不斷變化的條件來改進協議。如果升級能力沒有得到適當的控制,這可能會構成嚴重的安全漏洞。

方法:建立多重簽名錢包或 DAO 合約,以透明的方式代表社區管理變更。變更應該經過徹底的審查過程,并設置一個時間鎖定(故意推遲規定的制定并具有取消的能力),以確保在治理攻擊的情況下可以驗證其正確性并回滾(rolled-back)。確保在自行保管錢包或安全保管服務中可安全存儲和訪問特權密鑰。

Syndicate宣布完成2000萬美元A輪融資,a16z領投:去中心化投資平臺Syndicate宣布完成2000萬美元A輪融資,AndreessenHorowitz(a16z)領投,Coinbase Ventures、AshtonKutcher、Snoop Dogg等超150位投資者參投。Syndicate旨在通過讓人們建立去中心化自治組織(DAO)來實現投資民主化。今年7月,Syndicate曾籌集80萬美元,100位投資者參投,其中包括一些加密領域的大腕——Balaji Srinivasan、Jeremy Allaire、Meltem Demirors等。[2021/8/31 22:50:06]

3. 考慮可重復使用的、經過實戰測試的模板和集成

內容:盡可能利用現有的智能合約標準(如 OpenZeppelin 合約),并評估可能需要與現有協議進行的協議集成的安全性假設。

原因:使用現有的經過實戰檢驗、社區審計的標準和實施降低安全風險方面的措施會有很大的幫助。評估協議集成的風險有助于開發安全檢查,以防止對外部組件(如預言機操縱)的攻擊。

方法:導入經過安全審計的受信任合約庫和接口。Web3 的重點是開源使用、重用性和可組合性。確保在代碼庫中記錄合約依賴項及其版本,盡可能減少代碼占用。例如,導入大型項目的特定子模塊,而不是導入所有內容。了解你的風險敞口,監控供應鏈攻擊。使用官方接口調用外部協議,并確保考慮到潛在的集成風險。監控重復使用的合約的更新和安全披露。

4. 測試和評審階段的安全性考慮——考慮測試和文檔

內容:創建清晰、全面的代碼文檔,并建立一個快速、徹底、易于運行的測試套件。在允許的情況下,在測試網或通過主網模擬建立測試環境,進行更深入的實驗。

原因:寫出對代碼庫預期行為的假設有助于確保威脅模型中的風險得到解決,并且用戶和外部審計員可理解開發團隊的意圖。為代碼創建測試套件有助于證明(或反駁)開發假設,并鼓勵對威脅模型進行更深入的思考。這個測試套件應該包括在極端市場場景下檢查項目代幣經濟的機制設計測試,以及單元測試和集成測試。

方法:實施已知的測試框架和安全檢查器,如 Hardhat、Mythril、Slither、Truffle 等,它們提供不同的測試技術,如模糊化、屬性檢查,甚至正式驗證。使用 NatSpeccomments 大范圍記錄代碼,從而指定預期的副作用、參數和返回值。使用文檔生成工具以及高級設計說明生成實時文檔。

5. 考慮內部審查和安全審計

內容:花時間通過內部和外部代碼檢查來發現漏洞。

原因:從特性開發轉向關注安全問題給了開發人員時間來發現潛在的模糊問題。外部審計在這方面尤其發揮作用,因為它們可以帶來開發團隊不具備的外部視角和專業知識。

方法:在項目開發的適當節點,凍結某功能,從而有時間進行內部審查,然后進行外部審計。這應該在任何實際部署和升級之前進行。

請查看 ConsenSys、Nassent、OpenZeppelin 和 Trail of Bits 的指南,這些指南為開發人員提供了考慮事項清單,包括時間安排,供任何準備審計的人參考。還要確保檢查部署交易,確保它們使用經審核的代碼版本并具有適當的參數,特別是在升級軟件時。

6. 部署和維護階段的安全考慮——激勵白帽社區參與

內容:創建鼓勵社區參與開源代碼庫安全改進的程序。一種方法便是創造漏洞獎勵。另一種方法是鼓勵社區開發協議監控檢測機器人。

原因:開發團隊可以從大范圍的知識和經驗中獲益(這也是開源在加密領域的作用)。這樣的程序可以幫助激發對一個項目的熱情,從本質上把社區和白帽黑客變成布道者。通過為黑客提供成為防御者的途徑,它們還可以幫助將潛在的攻擊者轉變為安全資產。

方法:使用漏洞賞金平臺(如Code4rena、HackenProof、mmunef或Secureum)激勵熟練的黑客安全地披露漏洞。

注:文中的一些作者在 Forta 公司工作,該公司擁有一個網絡,為去中心化創建高質量安全監控機器人提供了一個代幣化激勵結構。開發團隊可以鼓勵他們的協議社區利用傳統和 Web3 原生的兩種方法來激勵漏洞獎勵,并通過增強安全性來讓參與者潛在地獲利,實現雙贏。

7. 實時監控安全考慮

內容:實施監控智能合約和關鍵操作組件(如預言機和跨鏈橋)的系統,并根據已知的威脅模型向開發團隊和社區報告可疑活動。

原因:問題的早期檢測使團隊能夠快速響應漏洞,潛在地阻止或減輕任何損失。

方法:使用監控平臺或分布式節點運行機器人,實時監控智能合約事件。根據需要為開發團隊和更廣泛的社區插入數據儀表板和警報通知。

8. 意外和緊急情況響應操作的安全考慮

內容:使用能夠在發生任何安全問題時立即做出響應的工具和流程。

原因:即使有最好的部署前保障措施,智能合約和關鍵組件(如預言機和跨鏈橋)仍有可能出現實時問題。配備專門的人員、清晰的流程和適當的自動化設備,確保可以快速調查事件,并盡快解決。

方法:為最壞的情況做準備,計劃如何應對事件或緊急情況,并在最大程度上自動化響應能力。包括分配調查和響應的責任,這些人員可以通過分布式安全郵件列表、代碼存儲庫中的指示或智能合約注冊表就安全問題公開聯系。根據協議的威脅模型,開發一組流程,其中可以包括場景演練和采取緊急行動所需的預期響應時間,可以考慮將自動化集成到緊急事件響應中。

安全考慮應該是成功開發的一個組成部分,而不只是事后考慮或補充。雖然這個框架分享了一些構建 Web3 協議和應用程序的快速指南,從而促進整個開發過程中的安全性,但沒有任何簡短的概述可以全方面討論智能合約安全。缺乏內部安全專業知識的團隊應該聯系合格的 Web3 安全專家,他們可以指導并幫助應用于他們的特定情況。

請記住,安全性不是一個簡單的問題。安全性將永遠是一套永無止境、持續不斷的最佳實踐。我們仍然處于建立這些實踐的初期階段,現在是時候為所有開發人員協作創建和共享它們了。

Tags:WEBWEB3ENTICAweb3游戲是什么意思web3域名DocumentchainYieldification

幣贏交易所
WEB3:Web3 游戲:現狀與未來

前言:Web3 游戲往往因為糟糕的游戲圖像和用戶體驗而備受詬病。在本文中,我將從經濟變化、游戲商業模式的變化和勞動力市場的演變等方面分析 Web3 游戲將繼續存在的原因.

1900/1/1 0:00:00
WEB:Paradigm:如何用投資思維評估 Web3 工作機會

假設你是一名剛剛收到了一些初創企業的工作機會 offer 的求職者,這些機會背后的每個公司表面上看起來都很美好:官網設計出眾體驗順滑,創始人及創始團隊擁有光鮮的履歷.

1900/1/1 0:00:00
Uniswap:觀點:Rollup 并沒有破壞可組合性

對 Rollup 最常見的批判之一是它們「破壞了可組合性」,這是大多數單鏈最大化主義者的主要論點。然而,「一條鏈統治世界」是不切實際的,多鏈生態共存是唯一的前進方向.

1900/1/1 0:00:00
ETH:詳解 PoS 經濟格局:質押會推動下一輪牛市嗎?

我們把 PoS 質押分成了三部分:節點供應商、液態質押池、金融衍生品大玩家已經主導了整個質押市場新玩家可以通過支持長尾資產.

1900/1/1 0:00:00
比特幣:金色早報 | 香港證監會提醒投資者注意NFT相關風險

頭條 ▌香港證監會提醒投資者注意NFT相關風險6月6日消息,香港證監會提醒投資者注意非同質化代幣(NFT)的相關風險.

1900/1/1 0:00:00
WEB:搞 Web3.0 的人到底在搞什么?我們找了 5 家典型公司剝開看看

雖然國內的 Web3.0 行業目前風平浪靜,沒有掀起多大的波瀾,但是在國外,Web3.0 早已發展得風生水起,并成為了一個風險投資機構持續關注的賽道.

1900/1/1 0:00:00
ads