二、智能合約的三要素

薩博關於智能合約如何工作的理論,到目前為止在實踐中還沒有實現,因為直到今天,還沒有天生能夠支持可編程交易的數字金融系統。因為,如果銀行仍然需要手動批准資金的轉移,那麼智能合約的目標就無法實現。所以,可以認為,實現智能合約的一大障礙是現在的計算機程序不能真正地觸發支付。

而比特幣的出現及廣泛應用,正在改變阻礙智能合約實現的現狀,從而讓薩博的理論有了重生的機會。智能合約技術現在正建立在比特幣和其他數字貨幣——有些人將它們稱為區塊鏈2.0平台之上。因為大多數基於區塊鏈技術的數字貨幣本身就是一個計算機程序,智能合約能夠與之進行交互,就像它能與其他程序進行交互一樣。所以,隨著區塊鏈技術的誕生,這些問題正逐步被解決,已經可以通過計算機程序來觸發支付。

類似於比特幣基於區塊鏈技術的密碼學數字貨幣已經準備就緒,能夠幫助智能合約成為現實,而最終將可能會實現數字貨幣和智能合約的雙贏。智能合約能夠向人們說明數字貨幣獨特的益處,而這將為數字貨幣吸引更多的用戶。從這一點來看,也許智能合約就是數字貨幣的真正「殺手級應用」。

在區塊鏈的環境下,合約或者智能合約意味著區塊鏈交易將會遠不只簡單的買賣貨幣這種交易,還將會有更加廣泛的指令可以嵌入區塊鏈中。在更正式的定義中,一個合約就是通過區塊鏈使用比特幣和某人形成某種協議。

傳統意義上的合約,就是雙方或者多方協議做或不做某事來換取某些東西。合同中的任何一方必須信任彼此並履行義務。智能合約的特點是,同樣是彼此之間同意做或者不同意做某事,但是無須再信任彼此。這是因為智能合約不但是由代碼進行定義的,也是由代碼(強制)執行的,完全自動而無法干預。

事實上,首先,智能合約之所以如此是因為三個要素:自治、自足和去中心化。自治表示合約一旦啟動就會自動運行,而不需要它的發起者進行任何的干預。其次,智能合約能夠自足以獲取資源,也就是說,通過提供服務或者發行資產來獲取資金,當需要時也會使用這些資金。最後,智能合約是去中心化的,這也就是說它們並不依賴單個中心化的服務器,而是分佈式的,通過網絡節點來自動運行。

用一個形象的說法來比喻智能合約,即可以把它看成由代碼編寫的且能自動運行的自動售賣機。不同於人的行為,一台自動售賣機的行為是可以計算的;相同的指令行為總是會得到相同的結果。當你塞入一些錢並做出選擇後,你選擇的物品就會掉出。機器絕不可能違反預定程序來執行,也不會僅僅執行一部分(只要它沒有被損壞)。一個智能合約也同樣是如此,一定會按照預先設定的代碼來制定。在區塊鏈和智能合約的世界中,「代碼即法律」,無論怎麼編寫,它都會被執行。在某些情況下,這可能是好事也可能不是;無論是與不是,都將會是一種全新的情況,我們的社會在智能合約普及之前還有一段較為漫長的適應階段。

圖2.1 智能合約三要素

基於加密算法的智能合約及其相關體系,如果要能夠激活資產還有許多細節需要考慮。也許我們還需要全新的法律和相關規定,來區別於那些通過代碼來建立的合約與通過人來建立的具有司法約束力的合同之間的異同。只有基於通過人來約定建立的合同才會有遵守或者違反合同的情況,而基於區塊鏈以及任何基於代碼的合同都不存在這樣的問題。此外,智能合約將不僅僅會影響到合同法,而且可能會影響整個社會中的其他社會性契約。

需要確定和界定何種社會契約會更需要「代碼法律」,即根據代碼來自動執行且無法阻止運行。因為基於目前所頒佈施行的法律,幾乎不可能讓智能合約強制執行(例如,一個去中心化的代碼樣本在事後是難以控制、監管或者要求賠償損失),在現有法律框架本質上要把這種行為下降到人為合同的水平。最終的目標將不是沒有法律或者是無政府狀態,而是讓法律框架變得根據具體情況而更加精細化和個性化。各方可以通過協商來選擇某個法律框架來建立一個合同然後將它寫入代碼中。這樣根據大家都已經知道的、審核過的且「陳舊」的法律框架,類似於創作共用許可證(Creative Commons Licenses),這樣用戶可以選擇某個法律框架作為智能合約的框架。因此,可能會有許多類型的法律框架,就像會有許多貨幣一樣。

智能合約並不是意味著能夠實現一切所不能做到的事情,事實上,它們能夠以最大限度地減少信任的方式來解決一些普通事情。最小化信任能夠讓事情變得更加便捷,因為其通過全自動執行替代了人的自主判斷。

《區塊鏈社會:解碼區塊鏈全球應用與投資案例》