早在20世紀90年代Nick Szabo就首次描述了智能合約的概念。當時,他對智能合約定義為:將協(xié)議與用戶界面相結合的一種工具,從而對計算機網(wǎng)絡進行規(guī)范化和安全加固。Szabo還探討了涉及到合同協(xié)議等各個領域中,智能合約的潛在用途,例如信用體系、支付流程和版權管理。
在加密貨幣領域,我們將智能合約定義為在區(qū)塊鏈上運行的應用或程序。通常情況下,它們?yōu)橐唤M具有特定規(guī)則的數(shù)字化協(xié)議,且該協(xié)議能夠被強制執(zhí)行。這些規(guī)則由計算機源代碼預先定義,所有網(wǎng)絡節(jié)點會復制和執(zhí)行這些計算機源碼。
實質上,區(qū)塊鏈智能合約支持創(chuàng)建無需信任的協(xié)議。這意味著執(zhí)行合約的雙方可以通過區(qū)塊鏈做出承諾,而無需相互了解或取得相互信任。合約內容經(jīng)雙方確認后,如果沒達到觸發(fā)條件,合約將不會被執(zhí)行。除此之外,使用智能合約可以消除對中介的需求,從而顯著降低運營成本。
多年來,雖然比特幣協(xié)議也一直支持智能合約,但智能合約卻經(jīng)以太坊聯(lián)合創(chuàng)始人Vitalik Buterin之手,從而大受歡迎。但值得注意的是,每個區(qū)塊鏈網(wǎng)絡可能會提供完全不同的智能合約。
本文將重點介紹在以太坊虛擬機(EV)上運行的智能合約,這也是以太坊區(qū)塊鏈的重要組成部分。
智能合約是如何運行的?
簡單來說,智能合約就是一個確定性的計劃。當滿足某些條件時,它則執(zhí)行特定任務。因此,智能合約系統(tǒng)通常遵循“if 。。. then 。。.”語句。但是,即便智能合約成為一種主流的技術,但智能合約既不是法定的也不是智能化的。它們只是在分布式系統(tǒng)(區(qū)塊鏈)上運行的一段代碼。
在以太坊網(wǎng)絡上,當用戶(地址)在區(qū)塊鏈網(wǎng)絡中進行交易時,智能合約負責執(zhí)行和管理這類操作。而非智能合約管理的地址都稱為外部帳戶(EOA)。因此,智能合約由計算機源代碼控制,EOA由用戶自己控制。
基本上,以太坊智能合約通常由合約代碼和兩個公鑰組成。第一個公鑰是合約創(chuàng)建者所提供的公鑰。另一個公鑰由合約自身創(chuàng)建,用于充當每個智能合約獨有的數(shù)字標識。
任何智能合約的部署都是通過區(qū)塊鏈交易進行的,只有在EOA(或其他智能合約)調用時才能激活。但是,智能合約首次觸發(fā)是由EOA(用戶)引起。
主要特征
以太坊智能合約通常具有以下特征:
分布式。智能合約在以太坊網(wǎng)絡的所有節(jié)點中被復制和分發(fā)。這種方式與基于中心化服務器的其他解決方案區(qū)別顯著。
一致性。在滿足要求的情況下,智能合約僅執(zhí)行其預先設計的操作。而且,無論任何節(jié)點執(zhí)行,結果都是一致的。
自動化。智能合約可以自動執(zhí)行各種任務,就像自動執(zhí)行程序一樣。但是,在大多數(shù)情況下,如果未觸發(fā)智能合約,它將保持“休眠”狀態(tài),并且不會執(zhí)行任何操作。
不可篡改。智能合約一經(jīng)部署,則無法更改。只有預先實現(xiàn)了特定功能,才能執(zhí)行“刪除”。因此,我們可以說智能合約可以提供防篡改程序。
定制化。在部署之前,智能合約可以通過多種不同方式進行編碼。因此,它們可用于創(chuàng)建許多不同的分布式應用程序(DApps)。這與以太坊具備圖靈完備的區(qū)塊鏈特征相關。
無需信任。兩方或多方可以通過智能合約進行互動,而無需相互了解或取得信任。此外,區(qū)塊鏈技術可確保數(shù)據(jù)準確無誤。
透明性。由于智能合約基于公有區(qū)塊鏈,因此其源代碼不僅是不可變的,而且對任何人都是透明的。
智能合約可以被更改或刪除嗎?
以太坊智能合約一經(jīng)部署,則無法再繼續(xù)添加新功能。但是,如果其合約創(chuàng)建者在代碼中預留了名為SELFDESTRUCT的函數(shù),那么將來可以“刪除”智能合約,也可以用新的合約替換它。如果未在合約代碼中預留該函數(shù),則它們將無法被刪除。
值得注意的是,所謂的可升級智能合約支持開發(fā)人員在不可篡改方面擁有更大的靈活性。有許多方法可以創(chuàng)建可升級的智能合約,每個合約都可具有不同程度的復雜性。
舉一個簡單的例子,我們假設將智能合約分為多個較小的合約。其中一些被設計為不可變更的,而另一些則啟用了“刪除”功能。這意味著可以刪除和替換部分代碼(智能合約),而其他功能保持不變。
優(yōu)勢和相關案例
作為可編程代碼,智能合約具有高度可定制化,可以通過多種不同方式進行設計,提供不同的服務和解決方案。
作為去中心化和自動執(zhí)行的程序,智能合約可以提高透明度并降低運營成本。根據(jù)不同實施情況,他們還可以提高執(zhí)行效率并減少商業(yè)運營費用。
智能合約在兩方或多方間的轉賬或資金交易時尤為實用。
換句話說,智能合約可以針對各種應用案例進行設計。一些案例包括創(chuàng)建代幣化資產(chǎn)、投票系統(tǒng)、***、分布式交易所、游戲和移動應用程序。它們還可以與其他區(qū)塊鏈解決方案一起部署,這些解決方案涉及醫(yī)療保健、慈善、供應鏈、政府治理和分布式融資(DeFi)等領域。
ERC-20
在以太坊區(qū)塊鏈上發(fā)布的代幣遵循ERC-20的標準。該標準描述了所有基于以太坊代幣的核心功能。因此,這些數(shù)字資產(chǎn)通常被稱為ERC-20代幣,它們占據(jù)了現(xiàn)有加密貨幣總量的很大一部分。
許多區(qū)塊鏈公司和初創(chuàng)公司都部署了智能合約,以便在以太坊網(wǎng)絡上發(fā)行數(shù)字代幣。發(fā)行后,這些公司中的大多數(shù)通過初始代幣供應(ICO)活動分發(fā)其ERC-20代幣。在大多數(shù)情況下,智能合約能夠讓用戶以信任和有效的方式交換資金和分配代幣。
局限性
智能合約由人工編寫的計算機代碼組成。這也帶來了許多風險,代碼容易受到攻擊和漏洞的影響。理想情況下,它們應由經(jīng)驗豐富的程序員編寫和部署,特別是涉及敏感信息和大量資金時。
除此之外,有人認為集中式系統(tǒng)也可以提供智能合約的大部分解決方案和功能。主要區(qū)別在于智能合約在分布式點對點網(wǎng)絡中運行,而不是運行在中心化服務器上。因為它們基于區(qū)塊鏈系統(tǒng),所以它們往往是不可篡改且很難變更的。
在某些情況下,智能合約的不可篡改性優(yōu)勢十足,但某些情況下卻很糟糕。例如,由于其智能合約代碼存在缺陷,名為“The DAO”的分布式自治組織(DAO)在2016年被黑客攻擊時,損失高達數(shù)百萬以太幣(ETH)。
由于他們的智能合約是不可變更的,開發(fā)人員無法修復代碼。這最終導致出現(xiàn)了硬分叉,誕生了第二個以太坊鏈。簡而言之,一條鏈“回退”了黑客的非法加以,并將資金返還給了合法的所有者(這是當前以太坊區(qū)塊鏈的一部分)。而另一條鏈決定不干涉黑客,堅持區(qū)塊鏈上發(fā)生的事情永遠不可改變(這個鏈現(xiàn)在稱為以太坊經(jīng)典)。
需要注意的是,造成該問題并不是以太坊區(qū)塊鏈的原因。它是由智能合約的錯誤實施所引發(fā)的。
智能合約的另一個限制與其不確定的法律地位有關。智能合約在大多數(shù)國家仍處于灰色地帶,且不適應當前的法律監(jiān)管框架。
例如,許多合約都要求交易雙方彼此實名認證且具超過18歲。但區(qū)塊鏈技術提供的匿名性,加上缺乏中間人,可能會影響這些要求。雖然有潛在的解決方案,但目前看,智能合約的法律可執(zhí)行性是一項真正的挑戰(zhàn),尤其是在沒有邊際的分布式網(wǎng)絡中。
批判
一些區(qū)塊鏈愛好者將智能合約視為一種解決方案,并認為其將以自動化的方式取代我們現(xiàn)有的商業(yè)和政府體系。雖然這個想法有可能實現(xiàn),但實現(xiàn)起來還有很多路要走。
不可否認智能合約是一項非常趣的技術。但是,在某些情況下,分布式、確定性、透明性和不可篡改會降低它的吸引力。
從本質上講,批判來源于那些智能合約無法解決的現(xiàn)實問題。實際上,某些機構當前最好還是使用傳統(tǒng)的基于服務器的替代方案。
與智能合約相比,中心化服務器的維護更為容易,成本更低,并且在速度和跨網(wǎng)絡通信(互操作性)方面往往具有更大的優(yōu)勢。
總結
毫無疑問,智能合約對加密貨幣界產(chǎn)生了深遠影響,它的確可以徹底改變區(qū)塊鏈領域。雖然終端用戶不會直接與智能合約進行交互,但在不遠的未來,會有更為廣泛的應用范圍,涉及金融服務到供應鏈管理各個領域。
智能合約和區(qū)塊鏈會共同顛覆我們社會中幾乎所有領域。但只有時間才能證明這項突破性技術是否足夠強大,能夠克服大規(guī)模推廣的諸多壁壘。
來源: 幣安學院
評論
查看更多