市值: $2.6906T 0.59%
體積(24小時): $84.6845B 15.37%
恐懼與貪婪指數:

72 - 貪婪

  • 市值: $2.6906T 0.59%
  • 體積(24小時): $84.6845B 15.37%
  • 恐懼與貪婪指數:
  • 市值: $2.6906T 0.59%
加密
主題
加密植物
資訊
加密術
影片
頂級加密植物

選擇語言

選擇語言

選擇貨幣

加密
主題
加密植物
資訊
加密術
影片

如何審計智能合約? (安全基礎知識)

Smart contract security requires combining static analyzers (Slither, MythX), manual review for reentrancy/access control, and rigorous testing—automated tools alone can’t catch logic flaws or novel attacks.

2026/02/25 19:00

了解智能合約漏洞

1. 當惡意合約在狀態變更完成之前反覆回呼易受攻擊的合約時,就會發生重入攻擊,從而意外耗盡資金。

2. 當算術運算超過 uint256 的最大值或最小值時,會發生整數上溢和下溢,導致不正確的平衡或邏輯旁路。

3. 如果傳回值未經驗證,未經檢查的外部呼叫可能會導致靜默失敗,從而允許執行在傳輸或函數呼叫失敗的情況下繼續進行。

4. 不當的存取控制使未經授權的使用者能夠呼叫特權功能,例如僅限所有者的升級或代幣鑄造。

5. 當關鍵狀態轉換依賴可預測的交易順序時,搶先交易就成為可能,從而暴露了拍賣或閃電貸套利等敏感操作。

靜態分析工具及其作用

1. Slither 無需執行合約即可分析 Solidity 原始碼中的常見反模式和漏洞,從而提供快速且可擴展的檢測。

2. MythX 與 IDE 和 CI/CD 管道集成,以執行符號執行和基於模糊測試的分析,識別更深層的邏輯缺陷。

3. Solhint 透過標記不一致的可見性說明符、缺少 require 語句和不安全的低階呼叫來強制執行編碼標準和最佳實務。

4. Crytic 的 Echidna 使用以 Solidity 編寫的自訂斷言進行基於屬性的測試,驗證數千個產生輸入的不變量。

5.並行使用多個靜態分析器可以顯著增加覆蓋範圍-沒有一個工具可以捕捉所有類別的錯誤。

手動程式碼審查要點

1. 追蹤所有外部呼叫並驗證它們是否發生在狀態更新之後,特別是在提現或轉帳功能中。

2. 確認所有使用者提供的輸入在影響儲存或發出事件之前都經過 require 或 revert 語句。

3. 檢查回退和接收函數是否有意外行為,特別是在處理 ETH 傳輸以及複雜邏輯時。

4. 檢查硬編碼地址、幻數或未版本化的庫鏈接,這些鏈接可能會影響再現性或引入隱藏的依賴項。

5.每個修飾符都必須經過可重入安全性、副作用以及與其他修飾符的可組合性審核。

單元檢查以外的測試方法

1. 整合測試模擬多個已部署合約之間的交互,以暴露介面不匹配和意外的 Gas 消耗模式。

2. 模糊測試將隨機輸入註入公共函數,以觸發單元測試經常遺漏的邊緣情況行為。

3. 基於屬性的測試定義了高級不變量,例如“總供應量永遠不會減少”或“餘額不能為負”,並在不同的場景中驗證它們。

4.像Sepolia和Arbitrum Goerli這樣的測試網提供了真實的環境,可以觀察現實世界的氣體動態和網路擁塞。

5. 必須在模擬區塊時間戳記操作下測試與時間相關的邏輯,以確保延遲或未來調度期間的正確性。

常見問題解答

Q:我可以只依靠自動化工具進行智慧合約審計嗎?答:不能。自動化工具可以偵測已知的模式,但無法評估業務邏輯的正確性、經濟誘因或需要人類直覺和領域知識的新穎攻擊向量。

Q:在零知識證明合約的背景下,「可信設定」意味著什麼? A:指初始產生zk-SNARK驗證所需的密碼參數;如果受到損害,它就會破壞健全性保證並允許偽造的證明通過驗證。

Q:為什麼我應該避免使用 tx.origin 進行授權檢查?答:因為 tx.origin 傳回啟動交易鏈的原始 EOA,因此很容易透過中間合約進行網路釣魚,這些合約在保留原點的同時轉送呼叫。

Q:委託呼叫漏洞與常規呼叫漏洞有何不同?答:Delegatecall 在呼叫合約的上下文中執行程式碼,這表示目標中的儲存佈局不符或未初始化的變數可能會直接破壞呼叫者的狀態。

免責聲明:info@kdj.com

所提供的資訊並非交易建議。 kDJ.com對任何基於本文提供的資訊進行的投資不承擔任何責任。加密貨幣波動性較大,建議您充分研究後謹慎投資!

如果您認為本網站使用的內容侵犯了您的版權,請立即聯絡我們(info@kdj.com),我們將及時刪除。

相關知識

什麼是 DAI?它與 USDT 有何不同?

什麼是 DAI?它與 USDT 有何不同?

2026-09-08 17:00:22

市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...

為什麼穩定幣會失去 1 美元的掛鉤?

為什麼穩定幣會失去 1 美元的掛鉤?

2026-09-08 02:00:03

儲備組成和透明度差距1. 許多穩定幣聲稱完全由現金或短期美國國債支持,但儲備揭露往往缺乏即時驗證機制。 2. 第三方證明可能僅每季進行一次,從而留下較長的窗口,使不匹配的資產負債結構仍未被發現。 3. 一些發行人持有的商業票據或逆回購協議存在未反映在公共資產負債表中的交易對手風險。 4. 鏈下銀行關...

什麼是加密貨幣中的自我託管以及為什麼它很重要?

什麼是加密貨幣中的自我託管以及為什麼它很重要?

2026-09-10 04:19:32

定義和核心機制1. 自我保管是指個人保留對其私鑰的完全控制權,而不將該權力委託給任何第三方服務的做法。 2. 自我託管錢包的伺服器上不持有資產;相反,它提供了一個使用本地儲存的加密金鑰與區塊鏈網路互動的介面。 3. 使用者的裝置(無論是智慧型手機、桌上型電腦或硬體模組)託管種子短語和私鑰,並且在正常...

什麼是閃電網路? Bitcoin 交易如何變得更快?

什麼是閃電網路? Bitcoin 交易如何變得更快?

2026-09-08 07:00:16

閃電網路核心架構1. 閃電網路作為直接建構在 Bitcoin 區塊鏈之上的第二層協定運行,完全依賴 Bitcoin 的加密安全模型,無需引入新的共識規則。 2. 使用2-of-2多重簽名地址在參與者之間建立雙向支付通道,雙方必須共同簽名才能將資金移出通道。 3. 每個通道都透過鏈上融資交易進行初始化...

什麼是加密預言機?區塊鏈如何取得真實世界的數據?

什麼是加密預言機?區塊鏈如何取得真實世界的數據?

2026-09-08 19:20:07

定義和核心功能1. 加密預言機是一種可信任的第三方服務,可作為區塊鏈網路和外部資料來源之間的橋樑。 2. 它獲取、驗證鏈下訊息,並將其傳遞給部署在鏈上的智能合約,例如價格、體育比分、天氣狀況或 API 響應。 3. 如果沒有預言機,智能合約將與現實世界的事件隔離,無法執行依賴外部觸發器的邏輯。 4....

Bitcoin 與萊特幣:主要區別是什麼?

Bitcoin 與萊特幣:主要區別是什麼?

2026-09-08 20:20:11

起源和基礎架構1. Bitcoin 於 2009 年出現,作為首個去中心化加密貨幣,建立在使用 SHA-256 雜湊演算法的工作量證明共識機制之上。 2. 萊特幣於 2011 年作為 Bitcoin 開源程式碼庫的直接分支推出,但用 Scrypt 取代了 SHA-256,有意提高了早期 ASIC 主...

什麼是 DAI?它與 USDT 有何不同?

什麼是 DAI?它與 USDT 有何不同?

2026-09-08 17:00:22

市場波動模式1. 自2021年以來,Bitcoin超過68%的交易日在24小時窗口內價格波動超過15%。 2. 在流動性較低的時期,尤其是在 02:00 至 06:00 UTC 期間,以太坊表現出比 Bitcoin 更高的日內波動性。 3. 穩定幣脫鉤事件(例如 2023 年 3 月的 USDC 事...

為什麼穩定幣會失去 1 美元的掛鉤?

為什麼穩定幣會失去 1 美元的掛鉤?

2026-09-08 02:00:03

儲備組成和透明度差距1. 許多穩定幣聲稱完全由現金或短期美國國債支持,但儲備揭露往往缺乏即時驗證機制。 2. 第三方證明可能僅每季進行一次,從而留下較長的窗口,使不匹配的資產負債結構仍未被發現。 3. 一些發行人持有的商業票據或逆回購協議存在未反映在公共資產負債表中的交易對手風險。 4. 鏈下銀行關...

什麼是加密貨幣中的自我託管以及為什麼它很重要?

什麼是加密貨幣中的自我託管以及為什麼它很重要?

2026-09-10 04:19:32

定義和核心機制1. 自我保管是指個人保留對其私鑰的完全控制權,而不將該權力委託給任何第三方服務的做法。 2. 自我託管錢包的伺服器上不持有資產;相反,它提供了一個使用本地儲存的加密金鑰與區塊鏈網路互動的介面。 3. 使用者的裝置(無論是智慧型手機、桌上型電腦或硬體模組)託管種子短語和私鑰,並且在正常...

什麼是閃電網路? Bitcoin 交易如何變得更快?

什麼是閃電網路? Bitcoin 交易如何變得更快?

2026-09-08 07:00:16

閃電網路核心架構1. 閃電網路作為直接建構在 Bitcoin 區塊鏈之上的第二層協定運行,完全依賴 Bitcoin 的加密安全模型,無需引入新的共識規則。 2. 使用2-of-2多重簽名地址在參與者之間建立雙向支付通道,雙方必須共同簽名才能將資金移出通道。 3. 每個通道都透過鏈上融資交易進行初始化...

什麼是加密預言機?區塊鏈如何取得真實世界的數據?

什麼是加密預言機?區塊鏈如何取得真實世界的數據?

2026-09-08 19:20:07

定義和核心功能1. 加密預言機是一種可信任的第三方服務,可作為區塊鏈網路和外部資料來源之間的橋樑。 2. 它獲取、驗證鏈下訊息,並將其傳遞給部署在鏈上的智能合約,例如價格、體育比分、天氣狀況或 API 響應。 3. 如果沒有預言機,智能合約將與現實世界的事件隔離,無法執行依賴外部觸發器的邏輯。 4....

Bitcoin 與萊特幣:主要區別是什麼?

Bitcoin 與萊特幣:主要區別是什麼?

2026-09-08 20:20:11

起源和基礎架構1. Bitcoin 於 2009 年出現,作為首個去中心化加密貨幣,建立在使用 SHA-256 雜湊演算法的工作量證明共識機制之上。 2. 萊特幣於 2011 年作為 Bitcoin 開源程式碼庫的直接分支推出,但用 Scrypt 取代了 SHA-256,有意提高了早期 ASIC 主...

看所有文章

User not found or password invalid

Your input is correct