什麼是智能合約?

分享
Copied to clipboard!
什麼是智能合約?
欣賞這篇文章
00:00 / 00:00

早在20世紀90年代Nick Szabo就首次描述了智能合約的概念。當時,他對智能合約定義為:將協議與用戶界面相結合的一種工具,從而對計算機網絡進行規範化和安全加固。 Szabo還探討了涉及到合同協議等各個領域中,智能合約的潛在用途,例如信用體系、支付流程和版權管理。

在加密貨幣領域,我們將智能合約定義為在區塊鏈上運行的應用或程序。通常情況下,它們為一組具有特定規則的數字化協議,且該協議能夠被強制執行。這些規則由計算機源代碼預先定義,所有網絡節點會復制和執行這些計算機源碼。

實質上,區塊鏈智能合約支持創建無需信任的協議。這意味著執行合約的雙方可以通過區塊鏈做出承諾,而無需相互了解或取得相互信任。合約內容經雙方確認後,如果沒達到觸發條件,合約將不會被執行。除此之外,使用智能合約可以消除對中介的需求,從而顯著降低運營成本。

多年來,雖然比特幣協議也一直支持智能合約,但智能合約卻經以太坊聯合創始人Vitalik Buterin之手,從而大受歡迎。但值得注意的是,每個區塊鍊網絡可能會提供完全不同的智能合約。 

本文將重點介紹在以太坊虛擬機(EV)上運行的智能合約,這也是以太坊區塊鏈的重要組成部分。


智能合約是如何運行的?

簡單來說,智能合約就是一個確定性的計劃。當滿足某些條件時,它則執行特定任務。因此,智能合約系統通常遵循“if... then...”語句。但是,即便智能合約成為一種主流的技術,但智能合約既不是法定的也不是智能化的。它們只是在分佈式系統(區塊鏈)上運行的一段代碼。

在以太坊網絡上,當用戶(地址)在區塊鍊網絡中進行交易時,智能合約負責執行和管理這類操作。而非智能合約管理的地址都稱為外部帳戶(EOA)。因此,智能合約由計算機源代碼控制,EOA由用戶自己控制。

基本上,以太坊智能合約通常由合約代碼和兩個公鑰組成。第一個公鑰是合約創建者所提供的公鑰。另一個公鑰由合約自身創建,用於充當每個智能合約獨有的數字標識。

任何智能合約的部署都是通過區塊鏈交易進行的,只有在EOA(或其他智能合約)調用時才能激活。但是, 智能合約首次觸發是由EOA(用戶)引起。


主要特徵

以太坊智能合約通常具有以下特徵:

分佈式。智能合約在以太坊網絡的所有節點中被複製和分發。這種方式與基於中心化服務器的其他解決方案區別顯著。

一致性。在滿足要求的情況下,智能合約僅執行其預先設計的操作。而且,無論任何節點執行,結果都是一致的。

自動化。智能合約可以自動執行各種任務,就像自動執行程序一樣。但是,在大多數情況下,如果未觸發智能合約,它將保持“休眠”狀態,並且不會執行任何操作。

不可篡改。智能合約一經部署,則無法更改。只有預先實現了特定功能,才能執行“刪除”。因此,我們可以說智能合約可以提供防篡改程序。

定制化。在部署之前,智能合約可以通過多種不同方式進行編碼。因此,它們可用於創建許多不同的分佈式應用程序(DApps)。這與以太坊具備圖靈完備的區塊鏈特徵相關。

無需信任。兩方或多方可以通過智能合約進行互動,而無需相互了解或取得信任。此外,區塊鏈技術可確保數據準確無誤。

透明性。由於智能合約基於公有區塊鏈,因此其源代碼不僅是不可變的,而且對任何人都是透明的。


智能合約可以被更改或刪除嗎?

以太坊智能合約一經部署,則無法再繼續添加新功能。但是,如果其合約創建者在代碼中預留了名為SELFDESTRUCT的函數,那麼將來可以“刪除”智能合約,也可以用新的合約替換它。如果未在合約代碼中預留該函數,則它們將無法被刪除。

值得注意的是,所謂的可升級智能合約支持開發人員在不可篡改方面擁有更大的靈活性。有許多方法可以創建可升級的智能合約,每個合約都可具有不同程度的複雜性。

舉一個簡單的例子,我們假設將智能合約分為多個較小的合約。其中一些被設計為不可變更的,而另一些則啟用了“刪除”功能。這意味著可以刪除和替換部分代碼(智能合約),而其他功能保持不變。


優勢和相關案例

作為可編程代碼,智能合約具有高度可定制化,可以通過多種不同方式進行設計,提供不同的服務和解決方案。

作為去中心化和自動執行的程序,智能合約可以提高透明度並降低運營成本。根據不同實施情況,他們還可以提高執行效率並減少商業運營費用。

智能合約在兩方或多方間的轉賬或資金交易時尤為實用。

換句話說,智能合約可以針對各種應用案例進行設計。一些案例包括創建代幣化資產、投票系統、加密錢包、分佈式交易所、遊戲和移動應用程序。它們還可以與其他區塊鏈解決方案一起部署,這些解決方案涉及醫療保健慈善供應鏈政府治理分佈式融資(DeFi)等領域。


ERC-20

在以太坊區塊鏈上發布的代幣遵循ERC-20的標準。該標準描述了所有基於以太坊代幣的核心功能。因此,這些數字資產通常被稱為ERC-20代幣,它們佔據了現有加密貨幣總量的很大一部分。

許多區塊鏈公司和初創公司都部署了智能合約,以便在以太坊網絡上發行數字代幣。發行後,這些公司中的大多數通過初始代幣供應(ICO)活動分發其ERC-20代幣。在大多數情況下,智能合約能夠讓用戶以信任和有效的方式交換資金和分配代幣。


局限性

智能合約由人工編寫的計算機代碼組成。這也帶來了許多風險,代碼容易受到攻擊和漏洞的影響。理想情況下,它們應由經驗豐富的程序員編寫和部署,特別是涉及敏感信息和大量資金時。

除此之外,有人認為集中式系統也可以提供智能合約的大部分解決方案和功能。主要區別在於智能合約在分佈式點對點網絡中運行,而不是運行在中心化服務器上。因為它們基於區塊鏈系統,所以它們往往是不可篡改且很難變更的。

在某些情況下,智能合約的不可篡改性優勢十足,但某些情況下卻很糟糕。例如,由於其智能合約代碼存在缺陷,名為“The DAO”的分佈式自治組織(DAO)在2016年被黑客攻擊時,損失高達數百萬以太幣(ETH)。

由於他們的智能合約是不可變更的,開發人員無法修復代碼。這最終導致出現了硬分叉,誕生了第二個以太坊鏈。簡而言之,一條鏈“回退”了黑客的非法加以,並將資金返還給了合法的所有者(這是當前以太坊區塊鏈的一部分)。而另一條鏈決定不干涉黑客,堅持區塊鏈上發生的事情永遠不可改變(這個鏈現在稱為以太坊經典)。

需要注意的是,造成該問題並不是以太坊區塊鏈的原因。它是由智能合約的錯誤實施所引發的。

智能合約的另一個限制與其不確定的法律地位有關。智能合約在大多數國家仍處於灰色地帶,且不適應當前的法律監管框架。

例如,許多合約都要求交易雙方彼此實名認證且具超過18歲。但區塊鏈技術提供的匿名性,加上缺乏中間人,可能會影響這些要求。雖然有潛在的解決方案,但目前看,智能合約的法律可執行性是一項真正的挑戰,尤其是在沒有邊際的分佈式網絡中。


批判

一些區塊鏈愛好者將智能合約視為一種解決方案,並認為其將以自動化的方式取代我們現有的商業和政府體系。雖然這個想法有可能實現,但實現起來還有很多路要走。

不可否認智能合約是一項非常趣的技術。但是,在某些情況下,分佈式、確定性、透明性和不可篡改會降低它的吸引力。

從本質上講,批判來源於那些智能合約無法解決的現實問題。實際上,某些機構當前最好還是使用傳統的基於服務器的替代方案。

與智能合約相比,中心化服務器的維護更為容易,成本更低,並且在速度和跨網絡通信(互操作性)方面往往具有更大的優勢。


總結

毫無疑問,智能合約對加密貨幣界產生了深遠影響,它的確可以徹底改變區塊鏈領域。雖然終端用戶不會直接與智能合約進行交互,但在不遠的未來,會有更為廣泛的應用範圍,涉及金融服務到供應鏈管理各個領域。

智能合約和區塊鏈會共同顛覆我們社會中幾乎所有領域。但只有時間才能證明這項突破性技術是否足夠強大,能夠克服大規模推廣的諸多壁壘。

Loading