介紹
智能合約最初由 Nick Szabo 在 20 世紀 90 年代描述。他將智能合約定義爲一種通過將協議與用戶界面相結合來形式化和保護計算機網絡的工具。
薩博研究了智能合約在各個領域的使用,例如合同協議、信用系統、支付處理和內容所有權。
在加密貨幣的世界中,智慧合約是在區塊鏈上運行的應用程式。它充當由一組規則支援的數位協定。這些規則由電腦程式碼決定,並由網路上的所有節點複製和處理。
智能合約可讓您建立不需要信任的協定。這意味著雙方可以透過區塊鏈進行交互,而不必相互信任。該過程的參與者可以確信,不遵守合約條款將導致合約被取消。此外,智能合約的使用消除了對中介機構的需求,顯著降低了交易成本。
儘管比特幣協議多年來一直支持智能合約,但它們的受歡迎程度要歸功於以太坊的創建者和聯合創始人 Vitalik Buterin。此外,每個區塊鏈都可以使用自己的方式來實現智能合約。
本文的重點是在以太坊虛擬機器(EVM)上運行的智慧合約,它是以太坊區塊鏈的關鍵部分。
怎麼運作的?
簡而言之,智能合約的工作原理就像一個確定性程序。當滿足指定條件時,它會執行某些操作。基於此,智能合約系統常使用「if...then...」的表達方式。儘管有普遍接受的術語,智能合約既不是法律意義上的合約,也不是「智能」。這些只是在分散式系統(在區塊鏈上)上運行的程式碼片段。
在以太坊網路上,智能合約負責執行用戶(地址)之間的交易。任何非智能合約的地址都稱為個人帳戶(EOA)。因此,智慧合約由程式碼管理,個人帳戶由使用者管理。
本質上,以太坊智能合約由合約程式碼(包含執行條件)和兩個公鑰組成。第一個公鑰由合約創建者提供。另一個密鑰代表合約本身,是每個智能合約唯一的數字識別碼。
任何智能合約的執行都發生在區塊鏈交易期間,並且可以在由個人帳戶(或另一個智能合約)啟動時啟動。然而,智慧合約序列始終是從個人帳戶(即使用者)啟動的。
主要特徵
以太坊智能合約通常具有以下特徵:
分配。智慧合約在以太坊網路的所有節點上複製和分佈。這是它們與使用集中式伺服器的其他解決方案的主要區別之一。
決定論。當滿足指定要求時,智能合約執行其設計執行的操作。此外,無論誰完成要求,結果總是相同的。
自治。智能合約可以自動執行各種任務,作為自動執行的程式運行。在大多數情況下,如果智能合約沒有啟動,它就處於「休眠」狀態,不執行任何操作。
不變性。智能合約開發並啟動後,您無法變更其流程。僅當開發人員之前已實現特定功能時才能進行更改。因此,我們可以說智能合約可以透過真實性證明來提供對程式碼駭客攻擊的保護。
個性化。智慧合約可以透過多種方式進行編碼,例如創建不同類型的去中心化應用程式(DApp)。這是因為以太坊被設計為圖靈完整的。
缺乏信任。兩方或多方可以使用智能合約進行交互,而無需相互了解或信任。此外,區塊鏈技術確保所有數據都是準確且可解釋的。
透明度。由於智能合約是基於公共區塊鏈,因此每個人都可以使用其原始碼。
我可以更改或刪除智能合約嗎?
一旦智能合約激活,以太坊用戶就無法添加新功能。然而,如果開發人員在合約程式碼中包含一個名為 SELFDESTRUCT 的函數,他可以稍後將其刪除並用新函數替換。如果沒有這個功能,就無法刪除智能合約。
值得注意的是,所謂的可升級智慧合約為開發人員提供了程式碼變更的存取權限,從而與不可變合約相比提供了更大的靈活性。創建此類複雜程度不同的智能合約的方法有很多。
讓我們來看一個簡單的例子。我們想像一下,一個智能合約被分成了幾個小合約。其中一些無法更改,而另一些則可以透過上述功能刪除。這意味著部分程式碼(一定數量的智慧合約)可以被刪除並替換為其他程式碼,而其餘功能保持不變。
優點和用例
由於智能合約是可程式碼,因此具有高度可自訂性,並且可以透過多種方式進行開發,從而提供不同類型的服務和解決方案。
作為一種去中心化和自我執行的程序,智慧合約可以提高透明度並降低營運成本。根據業務範圍,它們還可以提高效率並降低官僚成本。
當涉及兩方或多方之間的資金轉移或資金交換時,智能合約的好處尤其明顯。
換句話說,智能合約可以設計成適合各種用例,包括創建代幣化資產、投票系統、加密錢包、去中心化交易所、遊戲和行動應用程式。它們還可以與醫療保健、慈善事業、供應鏈、治理和去中心化金融(DeFi)領域的其他區塊鏈解決方案一起部署。
ERC-20
以太坊區塊鏈上發行的代幣符合 ERC-20 標準,該標準描述了其主要功能。它們通常被稱為 ERC-20 代幣,構成了現有加密貨幣的大部分。
許多公司和新創公司正在開發智能合約,以在以太坊網路上發行自己的數位代幣。一旦發行,大多數人都會透過首次代幣發行(ICO)來分發 ERC-20 代幣。智能合約使您能夠可靠、有效率地交換和分配資金。
缺陷
智能合約由人們編寫的電腦程式碼組成。這會導致許多風險,因為程式碼容易出現漏洞和錯誤。理想情況下,開發應該由經驗豐富的程式設計師進行,特別是當涉及機密資訊或大量資金時。
人們相信中心化系統可以提供智慧合約的大部分解決方案和功能。主要區別在於智慧合約在分散式點對點 P2P 網路上執行,而不是在集中式伺服器上執行。由於智能合約是基於區塊鏈,因此它們通常是不可變的或太複雜而無法進行更改。
有時不變性很有用,但並非總是如此。例如,2016年,駭客入侵了去中心化自治組織The DAO,並利用智慧合約程式碼中的漏洞竊取了數百萬美元的以太幣(ETH)。
由於 DAO 的智能合約是不可變的,因此開發人員無法修復程式碼。這最終導致了硬分叉和第二個以太坊鏈的出現。簡而言之,一條鏈逆轉了駭客攻擊,並將資金返還給合法所有者(該鍊是當前以太坊區塊鏈的一部分),而另一條鏈則沒有對駭客攻擊做出反應,因為區塊鏈中的事件永遠不應該被洩漏。
需要注意的是,該問題並不是由於以太坊區塊鏈的運作而出現的。相反,該錯誤是由智能合約的錯誤執行引起的。
智能合約的另一個缺點與其法律地位的不確定性有關。這不僅是因為在大多數國家,這項技術處於“灰色地帶”,還因為智能合約不符合其當前的監管框架。
例如,許多協議和合約的主要要求是參與者的嚴格身分和18歲的年齡。區塊鏈技術提供的匿名性,加上沒有中介機構,可能會成為遵守此類要求的障礙。雖然這個問題有潛在的解決方案,但智慧合約的法律方面是一個主要問題,特別是在涉及全球規模和分散式網路時。
批評
一些區塊鏈愛好者將智慧合約視為一種解決方案,可以取代和自動化大部分現有的商業和官僚系統。雖然這是可以實現的,但智能合約遠未成為該領域的常態。
智能合約無疑是一項有趣的技術。但其分佈式和確定性的性質,以及其透明性和部分不變性,使其在某些情況下的使用吸引力降低。
本質上,所有批評都基於這樣一個事實:智能合約並不是解決許多現實問題的合適解決方案。事實上,對於某些組織來說,使用傳統的替代伺服器更容易、更好。
與智慧合約相比,中心化伺服器的維護更容易、更便宜。此外,它們還可以在速度和與其他網路的互通性方面提供更高的效率。
概括
毫無疑問,智能合約對加密貨幣世界產生了巨大影響,也徹底改變了區塊鏈技術領域。由於最終用戶可能不會直接與智能合約交互,因此它們可能成為未來從金融服務到供應鏈管理等廣泛應用的基礎。
智慧合約和區塊鏈的綜合潛力可以對社會的幾乎所有領域產生重大影響。但只有時間才能證明這些創新技術是否能克服廣泛採用的障礙。

