iT邦幫忙

0

[Day 8] 從底層走向應用:智慧合約與 EVM (以太坊虛擬機) 運作原理

  • 分享至 

  • xImage
  •  

我們從零開始探討並實作了輕量級區塊鏈架構。那個微型區塊鏈非常適合用在資源受限的物聯網環境,幫我們解決了資料不可篡改的問題。但是,如果我們想要在區塊鏈上執行更複雜的商業邏輯(例如:條件觸發付款、發行代幣、甚至建立一個去中心化交易所),單純的「交易轉帳」與「資料上鏈」就不夠用了。我們需要一種能在區塊鏈上自動執行的程式碼,這就是我們接下來要探討的核心——智慧合約 (Smart Contract)。從今天開始,我們正式邁入以太坊與 Web3 的應用層世界!

什麼是智慧合約 (Smart Contract)?
雖然名字裡有「智慧」也有「合約」,但它其實既不聰明,也沒有法律效力。智慧合約本質上就是一段部署在區塊鏈上的程式碼。

你可以把它想像成一台「自動販賣機」。
當你投入正確金額的硬幣(發送交易),並按下對應的按鈕(呼叫合約函數),機器就會根據預先寫好的邏輯,吐出你買的飲料(執行結果)。這整個過程不需要任何店員(第三方機構)介入,完全是自動且不可逆的。在 Web3 的世界裡,這些飲料可能是代幣、NFT,或者是某種金融協議的執行權限。

認識 EVM:以太坊的心臟
既然智慧合約是程式碼,那它要在哪裡執行呢?這就要請出以太坊虛擬機(EVM, Ethereum Virtual Machine)了。

  • 世界級的超級電腦:以太坊網路上有成千上萬個節點,每個節點都運行著一個 EVM。當有人呼叫智慧合約時,網路上所有的 EVM 都會執行這段相同的程式碼,並核對彼此的計算結果,確保沒有人作弊。
  • Bytecode (位元組碼):就像用 C 語言寫出來的程式碼要編譯成機器碼才能在硬體上跑一樣,我們通常會用高階語言(如 Solidity)來撰寫智慧合約,然後把它編譯成 EVM 看得懂的 Bytecode,最後才部署到區塊鏈上。
  • Gas 燃料費機制:因為 EVM 是由全球節點共同維護的,如果有人寫了一個「無窮迴圈」的合約放上去跑,整個網路不就當機了嗎?為了防止這種事,EVM 引入了 Gas 機制。合約執行的每一個運算步驟都需要消耗 Gas(由發起交易的人支付以太幣)。一旦 Gas 耗盡,程式就會強制停止並還原狀態,完美解決了阻斷服務攻擊的問題。

為什麼合約資安如此重要?
在 Web2 的世界裡,如果程式碼有 Bug,工程師只要半夜爬起來發個 Patch 更新伺服器就好了。但智慧合約有一個致命的特性:不可篡改性 (Immutability)。

合約一旦部署上鏈,它的程式碼就永遠刻在那裡了。如果合約裡有一個邏輯漏洞,駭客就可以無限制地針對這個漏洞發起攻擊,把合約裡的資金全數掏空。你無法輕易地「關閉伺服器」或「覆寫程式碼」。在 DeFi 的歷史上,因為一行程式碼漏洞而損失幾千萬美金的案例屢見不鮮。

這也是為什麼在本系列賽的後半段,我們會花極大的篇幅在「資安攻防」上。在學會寫合約之前,必須先學會怎麼寫出「安全」的合約。

今天我們認識了智慧合約與 EVM 的基本概念,這將是我們後續開發 DApp 與進行資安稽核的地基。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言