以太坊:智能合約如何運作?

智能合約是使以太坊如此成功的主要特徵。 

什麼是智能合約以及它們的用途

比特幣協議沒有提供以下可能性 創建真正複雜的智能合約,因為它基本上只是為了啟用事務而設計的。 

相比之下,比比特幣晚 6 年誕生的以太坊從一開始就被設計成基本上是一個能夠 託管和執行智能合約

2014年,以太坊聯合創始人 Vitalik Buterin 明確寫在 白皮書 他設計的網絡是一個 基於智能合約的下一代平台並且基於區塊鏈技術的比特幣替代應用還包括使用數字資產來代表定制貨幣和金融工具、不可替代資產和更複雜的應用。 

特別是後者,即智能合約,被定義為涉及通過執行任意規則的代碼直接控制數字資產的應用程序,或基於區塊鏈的去中心化自治組織,即所謂的 的DAO.  

維塔利克寫道: 

“以太坊打算提供的是一個帶有內置圖靈完備編程語言的區塊鏈,可用於創建可用於編碼任意狀態轉換函數的‘合約’,允許用戶創建上述任何系統——以及我們還沒有想像到的許多其他東西——只需用幾行代碼編寫邏輯”。

因此,以太坊上的智能合約是代碼行,通過它可以 編程指令的自動執行 通過網絡, 當滿足某些條件時,而不必將其執行委託給中間人。

事實上,Buterin 自己將“合同”一詞放在引號中,因為它們不是當事人之間的真實合同,而是 由分散執行的計算機程序 網絡。 

因此,從一般的角度來看,它們的操作並不是很複雜。 

聰明的合同
一旦其中包含的條件得到驗證,就會執行智能合約

在以太坊區塊鏈上部署智能合約

首先,一個或多個開發人員顯然必須通過編寫適當的代碼行來創建智能合約,然後他們必須 將其發送到以太坊網絡。 

從技術上講,在以太坊區塊鏈上發布它意味著讓網絡中的所有節點都接收並執行它。 一旦發布,其中的所有指令將始終由所有節點以完全相同的方式執行。 

因此,不僅出版,而且 指令的執行是不可逆的 一旦發佈在區塊鏈上。 

因此,真正重要的是它包含的說明——可能是最多樣化的——以及有多少人使用它。 事實上,為了讓智能合約的指令真正被執行,必須有 一個或多個調用它們的事務

還值得記住的是,這些指令通常涉及資源的使用,例如數據或令牌,因此要真正執行它們, 必須滿足所有必要的條件。 

有時這些數據來自外部,這要歸功於所謂的預言機,而有時它只是來自區塊鏈上的交易。 

通常,觸發執行包含在智能合約中的指令的交易 涉及支付 以 ETH 計費,並且在許多情況下,為了實際觸發執行還涉及支付或發送特定於智能合約本身或其他智能合約的代幣。 

從技術上講,智能合約是一種賬戶類型 以太坊區塊鏈,由網絡而不是中央實體“控制”。 他們可以存儲 ETH 或代幣,也可以 自動在網絡上發送交易。

如何與代碼交互,更一般地與 dApp 交互

用戶可以通過發送交易與智能合約進行交互 觸發在其代碼中定義的功能之一。 

因此,以太坊上智能合約的運作一般很簡單:只需將某種類型的交易發送給智能合約,這將觸發節點執行智能合約調用的函數中包含的所有指令。交易本身。 

顯然,根據調用的函數中包含哪些指令,可以產生非常不同的結果,不僅因智能合約而異,而且因函數而異。 

因此,智能合約的巨大復雜性恰恰源於各個智能合約的功能,而不是以太坊網絡支持和執行它們的事實。 此外,絕對不可能列出網絡上所有類型的智能合約實際上是如何工作的。 


資料來源:https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/