這篇文章大概是我看過的對「智能合約」這一概念最好的入門綜述了。

不同於智能合約創造者 Nick Szabo 天馬行空的比喻與思考,這篇文章涉及智能合約的歷史、發展現狀、與法律合約的不同與對抗、未來的落地場景,等等方面。儘管作者可能因爲本身是 TezosCommons 的董事成員,因此在文中少部分地方特意以 Tezos 爲例,但整篇文章對我的啓發性還是挺大的。推薦那些不瞭解智能合約的朋友都讀一讀這篇文章。

本文作者爲 Kate Sills,翻譯 Retric。Orangefans 由一羣真正對區塊鏈感興趣的小夥伴組成,如果你也想加入這個社區、與我們一起翻譯學習國外優質文章,可以在文章下面評論、或者在微信後臺聯繫我們。

他們說,「智能合約不是法律合約」。

這是對的,但他們錯過了真正值得關注的重點。

14 世紀的壁畫,作者 Ambrogio Lorenzetti 把它取名爲「不良治理對城市生活的影響」。

智能合約從未打算成爲法律合約。Nick Szabo 希望創造一種新的數字化機構:通過代碼執行合約條款,而不是通過法院。很顯然,現實世界裏的物理法庭(紙質驅動的低效率的裁決中介)跟不上互聯網發展的腳步。一個快速高效、跨越地理管轄權的交易平臺最終將會取代物理法庭。

中本聰對「讓比特幣的 script 支持人們提交大規模的承諾與約定」這個想法也很感興趣。今天,許多類似 Tezos 的智能合約平臺延續了 Szabo 的工作成果,讓我們可以在互聯網上對陌生人作出承諾與約定——在代碼裏。

音樂家和舞蹈家在合理的治理下愉快地進行合作

爲什麼我們需要合約

在一個沒有貨幣或者合約的世界裏,我們會被限制在「同步交易」的困境裏。

你有一個蘋果,我有一片面包,我可以拿麪包交換你的蘋果。但如果我們不斷地交換更多的東西,就會出現經濟學裏稱之爲 double coincidence of wants (雙重需求偶合)的問題:爲了讓我們雙方進行交易,我想要你的蘋果的同時,你也必須很想要我手裏的麪包。但這種情況並不很經常出現。

貨幣一定程度上解決了這個問題。我可以先把麪包賣出去換來錢,然後過一段時間再用錢去買蘋果。通過錢,我們把原本交易必須具備的「雙重需求」減少到了「單重需求」——我不需要擁有你想要的東西,但我稍後仍然可以獲得我想要的東西。「同步交易」藉助貨幣這一媒介轉換成了「異步交易」,交易本身的限制被減少了。

合約與貨幣運作的原理類似。但它減少了更多的交易限制,讓更多潛在交易的實現成爲了可能。我們甚至不需要同步的價值交換媒介,哪怕是錢。我現在可以把一片面包賣出去,只要有人承諾我下個月他會把麪包的錢付給我就可以。這種能力,一下子爲我們釋放了大量的、更多類型的潛在交易。交易也變得更加「異步」了。

但這裏還有一個問題:你怎麼確定別人遵守自己的諾言?怎麼確定自己得到的承諾會如期實現?

強制履約

Thomas Hobbes 說出了強制履約的問題:

bonds of words are too weak to bridle men’s ambition, avarice, anger, and other passions, without the fear of some coercive power (Leviathan, p. 69).

他指出,政府的主要功能就是確保合約的強制執行。也就是說,我們總是在強制暴力的威脅下,爲他人許下自己的承諾。

「正義」在良好的治理下被分配出去

耶魯法律學教授 Anthony Kronman 也指出,國家可以被看作是一個強制執行機器。而且這臺機器是被私人佔有的,合約的雙方會爲使用這臺機器進行付費。

在 90 年代中期,Nick Szabo 幾乎是完全照着「強制執行機器」的字面意思創造出了「智能合約」的概念——一種在安全設備和硬件上運行的合約,不需要依賴法庭就會強制執行自己合約裏的內容。

智能合約,還是區塊鏈代碼?

然而,在 2013 年,加密經濟的爆發把智能合約的概念推廣擴大了。比如,在以太坊的白皮書裏,「合約」這個詞被用來形容所有通用功能的在區塊鏈上運行的代碼。

這種新的定義,轉換了智能合約原本關注的焦點。不同於強制履約的目的,新的智能合約的目標並不清晰。但這種新定義背後其實也有很多歷史:跟隨着 Nick Szabo 在 90 年代的研究成果,Mark Miller 在 2003 年寫了關於「分割合約」(split contracts)的概念。在互聯網出現之前,甚至就已經有了智能合約平臺,比如 AMIX, the American Information Exchange,世界上第一個專業信息的在線市場,創建於 80 s 年代和 90 s 年代。AMIX 在當時的時代背景下表現得非常傑出,它可以讓用戶把自己的專業知識與經驗安全地出售給他人,以顧問的形式。

中本聰認爲履約將成爲比特幣未來的一大方向。在 2010 年,中本聰說:「比特幣最初的設計支持了多種類型交易的可能性,比如履約交易、擔保合同、第三方仲裁、多方簽名等等。如果比特幣在未來真的發展起來,這些都是未來我們希望能夠探索的方向。」

Tezos 創造了一個原汁原味的智能合約平臺:不是爲了成爲一臺可以運行代碼的世界計算機,而是爲了成爲可以允許多種類型交易的一種新方式。Tezos 的編程語言,Michelson,是圖靈完備同時在形式上明確指定用途的,可以支持一系列大範圍的、不同類型的交易。

不良治理的影響

智能合約會取代合約嗎?

智能合約真的能取代法律合約嗎?答案是可以,但現階段使用場景非常有限。

比如說我想要在網上賣一件東西,但我想要在點對點的交易市場上賣,而不是淘寶。在網上買東西給陌生人,很可能跨地區、跨國界,將會產生很多潛在的信任問題。在這種交易裏,第一方作出行動的人總是要承擔對方不遵守承諾的風險。如果我先把東西發貨出去,你收到了可能不付錢;如果你先付錢了,我收到後可能不發貨。

解決這個問題的方法是使用多重簽名的智能合約。比如這個例子(作者 Milo Davis)。或者這個更高級別的用 Liquidity 編寫的例子(作者 OCamlPro)。在一個針對線上交易的多重簽名的智能合約裏,三方(買家、賣家、第三方)至少需要其中的兩方進行簽名。這個第三方可以是任何人,或者任何事物,買賣雙方如果交易起了爭端將通過這個第三方進行協調。這裏面非常重要的一點是,這個第三方作爲仲裁擁有的權力非常小——它只能決定把錢轉給買方還是賣方,當其中的另一方不遵守承諾的時候。第三方不能把錢自己收走,或者轉給非賣家和非買家的其他人。

細心的讀者應該注意到了,爲了讓這套機制運作起來,交易的錢必須被託管到第三方里暫時保管。目前,智能合約還不能把錢從賬上轉走,或者把未來的收入扣押下來。因此在設計的時候你應該優先考慮使用非託管類型的支付方式。這樣才能獲得更多人使用,擴大範圍。

不良治理的寓言

法律合約與自約束履約

法律合約依賴於國家無可匹敵的強制暴力,但國家的暴力是一個有限資源,缺少定價機制,只能定量供應。因此,法庭必須謹慎地判斷每一個約定是不是值得進行暴力制裁。這樣一來,就會產生一些理論,比如美國法律裏的約因理論(doctrine of consideration)。

在某些場景中應用可靠的智能合約,還需要更多的研究調查結果支持。但是,目前已經有一些類型的智能合約能夠被應用在傳統的法律合約不能應用的地方了。比如,這裏有一個 Michelson 智能合約的例子,它的作者是 Milo Davis。這個合約會在你向合約地址發送 tez 幣之後,把一部分的 tez 幣在某個固定的時間裏進行鎖定。

parameter unit;
storage (pair timestamp (pair tez (contract unit unit)));
return unit;
code { CDR; # Ignore the parameter
DUP; # Duplicate the storage
CAR; # Get the timestamp
NOW; # Push the current timestamp
CMPLT; # Compare to the current time
IF {FAIL} {}; # Fail if it is too soon
DUP; # Duplicate the storage value
this must be on the bottom of the stack for us to call transfer tokens
CDR; # Ignore the timestamp, focusing in on the transfer data
DUP; # Duplicate the transfer information
CAR; # Get the amount of the transfer on top of the stack
DIP{CDR}; # Put the contract underneath itUNIT;
Put the contract’s argument type on top of the stack
TRANSFER_TOKENS; # Make the transfer
PAIR} # Pair up to meet the calling convention

你可能在想,誰會使用這樣的合約?誰會想要在某一段時間裏鎖定自己使用賬上代幣的權限?其實主要是因爲,我們短期的行動往往跟我們長期的目標是相違背的,而自約束的智能合約可以幫助我們克服短期的短視,解決時間貼現的問題。

Jon Elster 曾經描述過類似的問題。在信用卡出現之前,父母藉助聖誕儲蓄(Christmas clubs,爲聖誕節購物而設置的零存整取的存款形式)的方式來確保有足夠的錢可以用來給孩子買聖誕禮物。他們會把每個月的工資拿出一小部分存到這個聖誕儲蓄裏,然後聖誕儲蓄的形式規定了家長們暫時沒有獲取這部分錢的權力,一直到 12 月。

1954 年一則聖誕存蓄的廣告

法律沒有辦法識別這種單方的合約——事實上,單方合約這個詞在現代法律的框架下根本就說不通。但智能合約現在就可以很輕易地應用到這種類型的場景裏。自約束履約可以在交易中發揮很多的用處(諾貝爾經濟學家 Thomas Schelling 的提議),同時也是一種很有爭議的憲政主義機構(當然這一部分還需要更多的研究調查)。

互聯網時代的履約

比特幣讓我們看到了經濟領域新革命的開始,但我們還在等待智能合約成爲現實。不可否認,智能合約還需要更多顯著的有意義的新功能才能和法律合約進行對抗。但是,我們不能忘記一點:大部分人並沒有渠道可以接觸到法律,分歧與爭議有時需要花費高額的代價才能在法庭上解決。

2008 年,聯合國委員會估算,全球大概有 40 億人無法接入使用法律。即使智能合約還處於嬰兒期,它也有可能會先滿足全球貧困人口的法律需求,然後纔會再去考慮顛覆現有法律機構。智能合約強迫我們去解決現有的紛爭與分歧,讓法律通道更具可擴展性、降低裁決前後的成本。同時,作爲一種開源的軟件,智能合約允許人們嘗試更多關於強制履約的實驗與探索,它可以提高公共機構的職能效率,以一種無法預測的速度。