我們從零開始探討並實作了輕量級區塊鏈架構。那個微型區塊鏈非常適合用在資源受限的物聯網環境,幫我們解決了資料不可篡改的問題。但是,如果我們想要在區塊鏈上執行更複雜的商業邏輯(例如:條件觸發付款、發行代幣、甚至建立一個去中心化交易所),單純的「交易轉帳」與「資料上鏈」就不夠用了。我們需要一種能在區塊鏈上自動執行的程式碼,這就是我們接下來要探討的核心——智慧合約 (Smart Contract)。從今天開始,我們正式邁入以太坊與 Web3 的應用層世界!
什麼是智慧合約 (Smart Contract)?
雖然名字裡有「智慧」也有「合約」,但它其實既不聰明,也沒有法律效力。智慧合約本質上就是一段部署在區塊鏈上的程式碼。
你可以把它想像成一台「自動販賣機」。
當你投入正確金額的硬幣(發送交易),並按下對應的按鈕(呼叫合約函數),機器就會根據預先寫好的邏輯,吐出你買的飲料(執行結果)。這整個過程不需要任何店員(第三方機構)介入,完全是自動且不可逆的。在 Web3 的世界裡,這些飲料可能是代幣、NFT,或者是某種金融協議的執行權限。
認識 EVM:以太坊的心臟
既然智慧合約是程式碼,那它要在哪裡執行呢?這就要請出以太坊虛擬機(EVM, Ethereum Virtual Machine)了。
為什麼合約資安如此重要?
在 Web2 的世界裡,如果程式碼有 Bug,工程師只要半夜爬起來發個 Patch 更新伺服器就好了。但智慧合約有一個致命的特性:不可篡改性 (Immutability)。
合約一旦部署上鏈,它的程式碼就永遠刻在那裡了。如果合約裡有一個邏輯漏洞,駭客就可以無限制地針對這個漏洞發起攻擊,把合約裡的資金全數掏空。你無法輕易地「關閉伺服器」或「覆寫程式碼」。在 DeFi 的歷史上,因為一行程式碼漏洞而損失幾千萬美金的案例屢見不鮮。
這也是為什麼在本系列賽的後半段,我們會花極大的篇幅在「資安攻防」上。在學會寫合約之前,必須先學會怎麼寫出「安全」的合約。
今天我們認識了智慧合約與 EVM 的基本概念,這將是我們後續開發 DApp 與進行資安稽核的地基。