01.16 以太坊“智能合約”太天真,比特幣才是真正的智能合約平臺

寫在前面:原文作者是來自斯坦福法學院的Conner Brown,其認為以太坊等平臺的智能合約存在5大根本性問題,因此並不是真正意義上的合同,然後他還解釋了比特幣的閃電網絡如何解決這些問題。其總結稱,簡單性對於智能合約是至關重要的,因為它構成了可預測執行的基礎,因此其預測那些使用率和價值最高的智能合約將以類似的方式構建,並利用比特幣作為載體。

以太坊“智能合约”太天真,比特币才是真正的智能合约平台

原文標題為:《Bitcoin: The Blockchain for Truly Smart Contracts》

智能合約聽起來是很有吸引力的,裁掉律師、減去無休止的文書工作以及高昂的法律費用,這些誘惑正是吸引我去學習加密貨幣的原因。不幸的是,我的夢想很快就破滅了。很明顯,現實中的智能合約並沒有達到炒作宣傳的程度,“智能合約平臺”在合同性質上存在根本問題。

很多人都遇到過這些問題,然後斷定說智能合約是永遠行不通的。事實上,比特幣已經做出了正確的設計選擇,它使得智能合約在其他人失敗的情況下成為可能。

在這篇文章中,我將介紹合同的基本知識,然後解釋天真的“智能合約平臺”存在的問題,最後展示比特幣是如何讓智能合約的夢想繼續存在。

第一部分:合同基礎

首先,讓我們介紹一下合同的基本內容。合同是指同意方之間可執行的協議,下面是一個具體的例子:

愛麗絲(Alice)同意鮑勃(Bob)在接下來的三年裡每月向他購買價值1000美元的咖啡豆。每個月的第一天,愛麗絲(Alice)會把錢付給鮑勃(Bob)。

合同是雙方(愛麗絲和鮑勃)就交易(咖啡豆換美元)達成的協議,它可以是數字化形式的,也可以是書面形式的,甚至只是口頭的形式。

合同與單純的允諾之間的關鍵區別,就在於合同可以由第三方強制執行。該第三方通常是法律的代理人,如法官,但也可以是私人仲裁員、共同的朋友、暴徒頭目等。在違約的情況下(即愛麗絲沒有按時付款),受害方可以將合同和證據交給其執法當局,而後者將利用其能力使受害方在合同條款下得到應有的權益。

合同是一個正常運轉的經濟體的必要組成部分,因為它允許個人依賴他人的行為。因此,企業家可以在知道產品所需組件將按時到達的情況下經營企業。這構成了可預測的交易、計劃和專業化的基礎。從這個意義上說,合同是社會可擴展[1]的,因為它們“克服了人類思維中的缺點……限制誰或多少人能成功參與。”隨著越來越多的人可以依靠他人的努力,而不必相信他們個人,整個可能的經濟互動網絡就呈指數級增長。

使合同具有社會可擴展性的關鍵特徵是,合同可以在沒有監督的情況下訂立和執行

。一個商人可能與他人進行數千筆交易及簽訂合同,而不需要見法官來解決衝突問題。

相反,想象一下這樣一個世界:你簽訂的每一份合同(即每次你在餐廳坐下或從亞馬遜購買東西)都必須有第三方監督整個交易,以確保一切按計劃進行,這太荒謬了!交易成本將如此之高,以至於沒有人會首先使用合同。合同的美妙之處在於,它並不需要第三方總是在場,而是在需要時可以有第三方在場。這種回退選項足以在陌生人之間建立信任。

通過簽訂合同,我們用可執行的保證取代了信任的要素,從而改善了勞動分工,為我們這個經濟發展的基石世界增添了可靠性。

第二部分:天真的“區塊鏈智能合約”方法

最近,關於合同的討論有很多。隨著過去十年區塊鏈的蓬勃發展,“智能合約”一詞的含義,也隨著許多分佈式網絡的湧現而演變。為了本文的目的,我將智能合約定義為雙方在分佈式協議上執行、核查和履行契約。

以太坊“智能合约”太天真,比特币才是真正的智能合约平台

要是真這麼簡單就好了 上面的例子代表了智能合約的天真願景。該理論認為,人們可以簡單地接受現實世界的合同,把它們放到區塊鏈上,並以某種方式最終達成一個更可靠的協議。在這種觀點下,(1)有一個合同會被編碼到網絡中,(2)來自真實世界事件的數據會被網絡處理,(3)最後網絡基於該信息執行一個操作。

然而,這種方法存在著重大問題!

1、預言機(Oracle)問題

如果你的智能合約系統是基於物理世界的信息(即土地所有權、商品價格或商品交付),那麼它必須依賴一個稱為預言機(Oracle)的服務,該服務可以將該信息提供給智能合約系統。這是一個問題,因為無法客觀地知道物理世界是否與內部數據庫對應。因此,服務就要求可信第三方為其合同提供信息,這首先破壞了使用去中心化網絡的目的。

此外,當某部分財產發生問題,但區塊鏈沒有正確更新時,就會出現問題。例如,假設你正在區塊鏈上存儲土地所有權,如果這塊土地本來是要傳給家庭成員的,但土地的私鑰卻丟失或毀壞了,會發生什麼?在這種情況下,就會有兩種可能。一是由於賬本不可變,這塊土地就錯誤地分配給別的人,或者讓第三方(即政府代理或客戶支持)更改這個賬本,以反映發生了什麼。

第一種情況意味著,隨著時間的推移,賬本將變得越來越不正確,而第二種情況,則說明了為什麼從一開始就不需要使用區塊鏈。像這樣的問題對於區塊鏈網絡來說是根本性的,並且說明了為什麼智能合約不適用於物理世界的產權。

2、缺乏靈活性問題

合同從來都不是起草者意志的完美表現。在起草合同時,當事人之間往往會產生混淆和誤解。然而,在用智能合約語言起草時,就沒有出錯的餘地。每個單詞都必須從定義完整的計算機術語中起草,而它們可以由智能合約平臺處理。

Jeremy Sklaroff在一篇題為《Smart Contracts and the Cost of Inflexibility》[2]的奇妙論文中探討了這個問題。智能合約平臺聲稱通過去除傳統語言來降低“效率低下”,然而,Sklaroff證明,去除傳統語言會不利地增加交易成本。硬編碼的合約必須是嚴格的且是純粹的自我參照。這意味著,雙方必須在沒有傳統語言的情況下,全面準確地界定合同的所有預期和可能的未來狀態。即使是一份簡單的咖啡豆交貨合同,其可能性也會令人眼花繚亂。

在起草合同時,提及特定貿易的公約、慣例和術語也是很常見的,這大大縮短了起草合同所需的時間。而這些通常被理解的替代品,也不會被智能合約認可,而且需要對其進行完全定義。

總之,人類活動需要需要人類的組成。自然語言具有豐富的解釋力和靈活性,其不能簡單地被計算機邏輯所取代。

3、違約問題

合同通常是具有各種條款和要求的複雜協議。一項協議的條款是否被違反,很多時候都有待商榷。例如,鮑勃可能相信他是按照合同條款行事的,但愛麗絲可能會對事情有不同的解釋。例如,如果送的咖啡豆大小或類型不對,會發生什麼情況?這是否構成可處罰的違約行為或微不足道的差異?我們自然希望能提前協商,但這些問題往往難以預料。

更糟糕的是,違規行為並不總是故意或有害的。有了標準合同,對方可以對自己的錯誤作出解釋,受害方可以選擇將案件提交法院,或者乾脆睜一隻眼閉一隻眼。這是因為技術違規並不總是有害違規。

為了說明這一點,讓我們回到愛麗絲和鮑勃之間的合同例子上來。可能有一個月,鮑勃給愛麗絲送錯了咖啡豆。他提前打電話給愛麗絲,告知她這件事,並願意給她25%的折扣作為彌補。愛麗絲認為這是個好主意,這可以剩下一筆開支,並在自己的店裡用這些不同的咖啡豆作為“限時優惠”來促進銷售。

像這樣的非正式修改是重要的,也是可能的,因為它們在人類互動的可塑性世界中起著作用。另一方面,一個無需信任的智能合約只會看到錯誤的貨物被交付,並懲罰違規方,而這是一個本可以避免的代價高昂的結果。

這種缺乏選擇性的執行,是智能合約的另一大問題,標準合同的靈活性是一個特徵,而不是一個bug。

4、執行問題

如上所述,合同和允諾的區別在於協議的第三方可以執行合同的條款。那智能合約呢?如果有一個智能合約被用於交付咖啡豆,但實際鮑勃並沒有交付咖啡豆,那誰來強制執行?區塊鏈是去中心化的,其沒有管轄權,也沒有能力影響物理對象,這自然就帶來了問題。

區塊鏈智能合約的捍衛者通常會採取兩種方案:首先,有人可能會說區塊鏈不能強制執行,但可以用它在法庭上作為證據。不過,在這種情況下,你還是要依靠同樣的國家機構來執行合同。一個標準的合同將有同樣的保證和更多的隱私

另一種選擇是staking模型

,若要使用智能合約,用戶就需要進行抵押,以便在發生違約時對其抵押品進行拍賣。這也帶來了它自己的問題,它會是昂貴的!為每個合同提供抵押品,會帶來自身的機會成本,尤其是在處理多個服務的多個合同時。

這兩種解決方案都不具有吸引力,並讓我們回到為什麼要用區塊鏈來執行合同的問題上?

5、可擴展性問題

如上所述,合同的一個關鍵要素是,合同能夠根據需要通過提供第三方監測來擴大規模。然而,以太坊(Ethereum)、Tron和EOS等智能合約平臺已經決定忽略這一基本原則。它們通過允許用戶將合同直接上傳到基礎層,而個人創建的任何合同都必須由網絡的所有其他驗證者進行驗證和持續監控。

這些平臺的結果是令人失望和可預見的。儘管它們沒有捕獲到多少活躍用戶,但主要的智能合約平臺已面臨難以下載、驗證和保持同步的問題。StopAndDecrypt的這篇文章做了一個出色的工作,探索了這種設計選擇的含義,而這種設計選擇適用於基礎層上具有表達性語言的區塊鏈,如以太坊、Tron和EOS[3]

儘管這些平臺被認為與比特幣等協議相比更具創新性,但複雜的基礎層腳本編寫是一種倒退。通過要求所有驗證者驗證這些平臺上的每一個智能合約的完整性,不可避免的結果就是中心化,然後又回到它們聲稱要移除的可信第三方的領域,而合同根本不是這樣工作的

第四部分:法官是獨一無二的

在看到以上這些問題之後,人們很容易會認為,這些問題是無法克服的。雖然“智能合約”一詞的大多數用法,都只是一派胡言,但我們不應完全放棄這一概念。事實上,比特幣已經用閃電網絡解決了這些問題。

閃電網絡是一個基於比特幣協議的點對點支付通道系統。關於這種系統,你可以看這裡。

廣義上講,閃電網絡交互的工作原理如下:雙方相互溝通,希望簽訂開通支付通道的協定。雙方簽署承諾交易,以表示雙方對協定的同意,並將其記錄在比特幣區塊鏈上。雙方遵守閃電網絡協議的規則,形成合作的邊界。交易一段時間後,雙方可以選擇通過簽署和公佈最終的相互交易來終止合同。如果一方試圖違反網絡規則,竊取對方資金,受害方可以向比特幣區塊鏈發佈證據,防止被盜。

這些要素與傳統的合同概念完全吻合,克服了上面提到的幾個問題。

  1. 條款:LN協議本身的規則類似於合同的條款,協議雙方必須相應地採取行動;
  2. 簽署:發佈承諾交易是簽署和同意合同條款的一種方式;
  3. 違約:如果一方違反了閃電網絡合同的條款,那麼該合同就被違約了,受害方可以通過向基本鏈發佈加密證據,使其遭受“法庭”的制裁;
  4. 執行:最後,比特幣協議充當一個虛擬法官,通過邏輯評估其面前的證據,並將資金轉移給適當的一方;

閃電網絡通過將合同系統隔離在一個虛擬的閉環中,完全避開了智能合約的傳統陷阱。

網絡中固有的靈活性也很強,因為協議是對等式的,就像傳統合同一樣。每組partner選擇他們希望受哪些條款約束。雖然有通用的閃電網絡合同(即Eclair或LND的默認版本),但這些條款可以根據雙方的需要進行調整。例如,BitRequill最近通過更改默認通道大小限制,打開了第一個1BTC 的通道。而隨著Schnorr簽名和SIGHASH_NOINPUT等協議升級的實現,合同的靈活性將不斷提高。而eltoo提議只是其中一個例子。

儘管如此,閃電網絡最重要的部分,也許在於它對社會可擴展性的理解。如前所述,使合同如此強大的原因是,法官不是交易所必需的,而只是在違約發生時作為後備。

而其它“智能合約平臺”如以太坊和Tron,則完全忽略了這種對合同的基本見解。相反,他們選擇了這樣一種模式,即“法官”(即區塊鏈)坐在肩上,然後觀察每一筆交易的發生。

閃電網絡的設計完全遵循了這一合同概念。有了閃電網絡,數百萬筆交易可以在兩個人之間進行,而根本不需要法官。這提供了兩個明顯的好處,一是降低了與網絡用戶的交易成本,二是增加了合同簽訂者的隱私。在這一點上,閃電網絡的規模和增長其實有部分是未知的,因為很多通道是私有的。然而,一旦出現問題,仁慈的比特幣法官就可以介入、評估並解決爭議。

最後,值得注意的是,閃電網絡只是許多此類例子中的第一個。Jeremy Rubin的POWSWAP為算力衍生品提供了類似類型的智能合約,Richard Myers的Lot 49為mesh網絡消息提供了類似的合約。這些創新的智能合約,並沒有因為所謂的“表現力”或“圖靈完備性”而建立在其他鏈上,恰恰相反,它們選擇比特幣,正是因為它的簡單性。

區塊鏈領域的人們經常標榜複雜的基礎層腳本是最適合智能合約的,但他們未能認識到,簡單性對於智能合約是至關重要的,因為它構成了可預測執行的基礎。由此看來,比特幣選擇的簡單性和安全性是非常明智的。

展望未來,我預計那些使用率和價值最高的智能合約將以類似的方式構建,並利用比特幣作為它們的虛擬選擇。

結論

閃電網絡是第一個真正意義上的智能合約。通過解決困擾其他網絡的問題,閃電網絡已經成為比特幣可能出現的第一個光輝範例,為網絡智能合約創新描繪了光明的未來。

我要感謝比特幣律師傑里米·斯科拉洛夫(Jeremy Sklaroff)和尼克·薩博(Nick Szabo)的想法,感謝卡託研究所(Cato Institute)邀請我做這項研究。

參考文獻:

1.尼克·薩博(Nick Szabo):《貨幣、區塊鏈和社會可擴展性》,2017年2月9日 unenumerated.blogspot.com/2017/02/money-blockchains-and-social-scalability.html;↵

2.傑里米·斯科拉洛夫(Jeremy Sklaroff):《智能合約和非靈活的成本》 ,2018年賓夕法尼亞大學法律評論第166卷第263-303頁;↵

3.對於SAD關注即將實現的最新證據,我推薦Eric Wall的這條推文內容,它記錄了在以太坊上同步一個全節點的困難;↵


分享到:


相關文章: