iT邦幫忙

30天區塊鏈安全基礎—常見漏洞與防護相關文章
共有 29 則文章

技術 Day 29:實作 2(修補)— 改用 Checks-Effects-Interactions 或 ReentrancyGuard

昨天,我們成功展示了如何利用 VulnerableVault 合約中狀態更新順序錯誤(Interactions 在 Effects 之前)導致的重入漏洞,耗盡合...

技術 Day 28:實作 1 — 示範漏洞合約(Withdraw 漏洞版)與重入攻擊演示

今天實作示範一個經典漏洞:重入攻擊(Reentrancy) 的實際演練。流程很簡單:在 Remix 貼上「脆弱合約」(VulnerableVault)並部署到...

技術 Day 27:輕量實作準備 — Remix 與 MetaMask 基本操作(教學)

接下來幾天我們會做實作(漏洞示範與修補)。在開始前請先準備好兩個工具:Remix IDE(線上 Solidity playground)與 MetaMask(瀏...

技術 Day 26:安全開發最佳實務總結(Coding Style / Patterns)

前面 25 天我們介紹了區塊鏈與智能合約安全的理論、案例與漏洞。今天要回到開發者最實際的角度——如何在日常開發中就降低風險? 這篇會彙整 Solidity 開發...

技術 Day 25:形式化驗證(Formal Verification)入門與思考

在智慧合約世界裡,一個小小的邏輯錯誤可能讓數億資金瞬間蒸發。傳統的測試與審計雖然能發現許多問題,但仍屬於「取樣驗證」——我們只能驗證發生過的情況。而**形式化驗...

技術 Day 24:安全審計與檢查流程(理論)

在區塊鏈世界,部署後的合約往往不可變;因此「上線前的審計」比任何時候都重要。今天我們把安全審計(Security Audit)流程拆成可執行的步驟:從需求理解到...

技術 Day 23:著名案例三 — 其他值得學習的攻擊(Oracle 操控、Flash Loan 攻擊)

除了 The DAO、跨鏈橋事件之外,還有另一類非常值得學習的攻擊:利用外部價格來源(oracle)或瞬時借貸(flash loan)做出的經濟性攻擊。這類攻擊...

技術 Day 22:著名案例二 — 跨鏈橋與私鑰管理失誤(Poly Network、Ronin 攻擊事件)

如果說 DAO 攻擊揭露了「智能合約邏輯漏洞」的危險,那跨鏈橋事件,則揭示了鏈與鏈之間信任機制的脆弱。在這篇,我們會一起看兩個經典案例:🌉 Poly Netwo...

技術 Day 21:著名案例一 — The DAO 攻擊(概要與學到的教訓)

在區塊鏈安全史上,The DAO 攻擊(2016) 是最具代表性的事件之一。它不僅導致超過 360 萬枚 ETH(當時約 5000 萬美元) 被盜,也改變了整個...

技術 Day 20:合約升級與不可變性 — Proxy 模式的安全考量

在區塊鏈上,智能合約一旦部署後就不可修改。這帶來兩種結果:1. ✅ 安全性與信任提升(沒人能偷偷改合約)2. ❌ 靈活性降低(發現錯誤或要新增功能時無法更新)...

技術 Day 19:經濟設計錯誤(Incentive Mismatch / Game Theory 問題)

智能合約不僅要邏輯正確,還要經濟誘因設計合理。若激勵機制錯誤,即使程式沒漏洞,也可能被「合理利用」造成損失。這類問題屬於「經濟層面的安全漏洞(Economic...

技術 Day 18:錯誤處理與回退(require / assert / revert)

在 Solidity 智能合約中,「錯誤處理」不只是 debug 的工具,更是安全設計的關鍵。因為在鏈上,每一次交易都要付 Gas,而錯誤會讓交易中斷、狀態回退...

技術 Day 17: Denial-of-Service(DoS)與資源耗盡的攻擊

在傳統網路安全裡,DoS(Denial-of-Service,拒絕服務)代表「讓系統忙到無法服務他人」。在區塊鏈上,同樣有這類攻擊,只是形式不同——攻擊者不一定...

技術 Day 16:不安全的隨機數(為什麼 block.timestamp 不可信)

許多 DApp(抽獎、NFT mint、遊戲)會需要隨機數。但在區塊鏈上「看起來隨機」的值(像 block.timestamp、blockhash)其實並非真隨...

技術 Day 15:delegatecall 與代理模式的風險(storage 被覆寫)

為了讓智能合約「可升級」,常見作法是把邏輯(Logic/Implementation)與資料(Proxy / Storage)分離,利用 delegatecal...

技術 Day 14:存取控制錯誤(身份驗證與授權)

到目前為止,我們學了多種技術漏洞(像重入、溢位等),今天要談的是「最常被忽略」但最危險的一種——權限錯誤(Access Control Bug)。這類錯誤不是因...

技術 Day 13:整數溢位/下溢(原理與影響)

看起來最基本的「算術」在智能合約也會變成致命漏洞。今天我們把整數溢位(overflow)與下溢(underflow)拆解清楚:為什麼會發生、會造成什麼後果,以及...

技術 Day 12:重入攻擊(概念與流程圖)

重入攻擊(Reentrancy)是智能合約最經典也最危險的漏洞之一。它的本質不是複雜的密碼學,而是執行順序的問題──當合約在跟外部合約互動時,如果還沒把狀態更新...

技術 Day 11:智能合約常見設計錯誤概觀

進入智能合約安全的實作細節前,先把常見的設計錯誤一次列出來,能幫你在寫合約、審查或測試時有「雷區清單」。今天我們用最精簡的一句話來說明每類錯誤,並附上簡短防護提...

技術 Day 10:安全分類 — 鏈上(On-Chain) vs 鏈下(Off-Chain)

上一章我們聊到「區塊鏈的不可逆性」讓錯誤代價更高,那麼今天要進一步思考一個問題: 區塊鏈的安全問題,到底發生在哪裡? 許多人以為「安全問題=智能合約漏洞」,但實...

技術 Day 9:為什麼「不可逆」會讓錯誤代價更高?

在區塊鏈的世界中,我們常聽到一句話: 「區塊鏈的交易是不可逆的。」 這句話聽起來像是一種「保證安全」的特性,但從安全工程的角度來看,它其實是一把「雙面刃」。因為...

技術 Day 8:區塊鏈安全的基本觀念(威脅模型)

在了解了區塊鏈的基本結構與應用之後,我們要開始探討「安全」這件事。區塊鏈的特性是公開、分散、不可逆,但這並不代表它就「絕對安全」。事實上,每一層都有可能出現攻擊...

技術 Day 7:交易流程從發起到上鏈

今天把「交易」拆成具體步驟:從使用者在錢包按下送出,到區塊被打包並確認入住鏈上。理解每一步能幫助你看出哪些地方會被攔截、被操控或遭遇攻擊,進而採取對應防護。 交...

技術 Day 6:錢包、私鑰、公鑰與簽章原理

在前幾天我們聊到了智能合約,今天要回到區塊鏈最基礎卻也最關鍵的一環:錢包(Wallet)、私鑰(Private Key)、公鑰(Public Key)與數位簽章...

技術 Day 5:什麼是智能合約?它怎麼改變應用程式的邏輯

在前幾天我們認識了區塊鏈的基礎結構,今天要介紹的是區塊鏈最具革命性的應用之一——智能合約(Smart Contract)。它不只是技術名詞,而是一種能夠改變應用...

技術 Day 4:去中心化應用 vs 傳統系統的差異

傳統系統的運作模式在我們日常使用的應用服務(如銀行系統、社群平台、電商網站),大多採用 中心化架構:單一伺服器或資料庫:所有交易與資料由一個中心實體管理。使...

技術 Day 3:共識機制簡介(PoW / PoS 概念差異)

為什麼需要共識機制? 在區塊鏈系統中,沒有中心化的伺服器來決定「哪一筆交易是正確的」。每個節點都可能有不同版本的交易紀錄,因此需要一種「協議」來讓大家達成一...

技術 Day 2:區塊是怎麼組成的?

昨天我們聊了「區塊鏈是什麼」,知道區塊會存放交易、並透過 hash 串接成不可篡改的鏈。但問題來了:一個區塊裡可能有上千筆交易,節點要怎麼快速驗證資料正確?答案...

技術 Day 1:什麼是區塊鏈?

很多人聽過「區塊鏈」,但對它的本質常是模糊印象:是比特幣?是 NFT?其實區塊鏈是一種資料結構 + 共識機制的組合,讓多方在沒有完全信任的情況下仍能達成一致。今...