2014年2月24日,以太坊創始人Vitalik Buterin在Bitcoin Magazine上寫下了這篇文章。可能連V神都沒想到,這篇文章成為以太坊構建之初,自己唯一一篇系統介紹DAO(去中心化自治組織)的傳世文章。
可惜的是,這篇文章不僅是孤本還是殘本,至今國內無人翻譯過,堪稱滄海遺珠!
在完成本文前兩部分後,Vitalik突然投筆,不再繼續本系列的創作。
其間發生了什麼,我們不得而知。然而僅這兩部分文字的價值,足以被奉為圭臬。
不同於後來區塊鏈玩家的探索乃至專家的研究,以太坊創始人的眼光與角度是無可比擬的。
本文中,Vitalik用簡短的幾行代碼揭示了智能合約的本質;以傳統行業的變更預測了自動化技術的應用。甚至,處在以太坊宣傳時期,他竟沒有分門別類地將DAO的優勢一條一條列出。他告訴讀者最本質的東西:降低准入門檻。
Vitalik在字裡行間表露了他最真實的想法。你可以讀到他的期待、他的諷刺和他的擔憂。
讀完本文,你會發現,他就是那個技術宅,他就是那個理想主義者,他就是那個改變世界的人。
「將原有法律去中心化、近乎烏托邦式的追求、創造完全無信任的社會……」
——Vitalik Buterin
作者 | Vitalik Buterin
譯者 | Eli
譯者提示:
本文作於2014年初,其中部分區塊鏈術語目前已不再使用。可能由於該類術語使用時間較短,國內尚無對應翻譯,編譯時處理如下:
例如Factum Law、Factum Money以及Factum Society等,酌情將Factum翻譯為共識。再如Judge,在當時可能直接移用為區塊鏈術語,根據上下文語境翻譯為法官或第三方權威等。
一
智能合約:自我執行合同
宣傳以太坊的許多概念聽起來可能非常魔幻,有時甚至令人恐懼。比如所謂的「智能合約」,它能在沒有任何人為干預或參與的情況下自我執行指令;人類社會組成類似天網的「去中心化自治組織」,完全生活在雲上;然而其控制的強大財力又可以激勵人們在物質世界中做實事;將原有法律去中心化、近乎烏托邦式的追求、創造完全無信任的社會……等等。
對於不知情的用戶,尤其是那些比特幣都沒有聽說過的用戶,很難想像以上這些事物的實現,也無法理解這些想法的價值。本文旨在詳細剖析這些想法,說明每個想法的確切意義,並討論它們的屬性、優點和局限性。
本文的第一部分將討論「智能合約」。
智能合約是一個幾十年前就存在的想法,但是它在2005年才被Nick Szabo命名並引起密碼學領域的注意。智能合約的定義很簡單:智能合約是一種能自我執行的合約。也就是說,普通合約好比是一份PDF文件,其中有要求第三方權威(judge)命令一方在某些條件下向另一方匯款的文字。而智能合約是一種計算機程序,可以在硬體上運行,自動執行這些條件。
Nick Szabo以自動售貨機為例:
「這是一個現實生活中的例子,我們可以認為自動售貨機是智能合約的鼻祖。在有限的潛在金額損失下(即收費金額低於違反機制的成本),該機器接收硬幣,並通過簡單的機制,根據既定價格分配和更改產品。自動售貨機等於是與交易方簽訂的合同:任何擁有硬幣的人都可以與賣家交易。同時,密碼箱和其他安全機制保護存儲的硬幣和內容,使它們免受攻擊者的影響。因此,自動售貨機可以在各地部署並盈利。」
智能合約這個概念可以被應用於很多事物。我們可以制定智能金融合約,根據某些程式和條件自動洗錢;智能域名銷售訂單能以200美元的價格自動銷售域名;控制銀行賬戶的智能保險合約能根據相關信息自動支付……等等。
智能財產
然而,同時我們也面臨一個重要問題:這些合約如何有效實施?就像傳統合約一樣,除非有一個第三方權威,並擁有強制執行合約的法律權力,否則它們沒有價值。智能合約需要被「插入(plug in)」某個系統才能真正有權做任何事情。
最簡單,最老套的解決方案是使用硬體,這個想法也被稱為「智能財產」。Nick Szabo的自動售貨機就是典型的例子。在自動售貨機中,有一種原型智能合約,包含以下計算機代碼:
if button_pressed == “Coca Cola” and money_inserted >= 1.75: release(“Coca Cola”)
return_change(money_inserted – 1.75)
else if button_pressed == “Aquafina Water” and money_inserted >= 1.25: release(“Aquafina Water”)
return_change(money_inserted – 1.25)
else if …
合約有四個「鉤子(hook)」連接外部世界:button_pressed和money_inserted變數作為輸入,release和return_change命令作為輸出。所有這四個「鉤子」都依賴於硬體。我們僅研究最後三個,因為人類輸入通常不成問題。
如果合約在一台2007年的Android機上運行,它將毫無用處。因為該Android機無法獲悉有多少錢被放入投幣口,當然也無法釋放可口可樂或返回更改。而在自動售貨機中,合約能自我執行,並且其物理安全性阻止人們在違約的情況下獲取可口可樂。
智能財產的另一個更具未來感的應用是租賃汽車:想像在未來世界中,每個人的智能手機都有對應的私鑰,當你向某個地址支付100美元後,一輛汽車會自動響應你的私鑰指令一天。
房屋也同理。大部分辦公樓都是智能財產:訪問許可權由訪問卡控制,每扇門的訪問許可權由一段代碼控制並連接到資料庫。如果公司有一個自動處理僱傭合同,並激活新員工訪問卡的人力資源系統,那麼該僱傭合同在某種程度上就是一份智能合約。
智能貨幣與共識社會
然而,智能合約的物理屬性使其作用非常有限。其物理屬性的安全性較低,所以即便你擁有數萬美元,其智能屬性設置也讓你無法完成任何大筆交易。
合約最終涉及轉移資金,但是我們怎樣才能真正做到讓合約轉移資金呢?目前幾乎不可能。
理論上,我們可以將合約的詳細登錄信息提供給我們的銀行賬戶,然後讓合約在某些條件下匯款,但問題在於這種合約並非真正的「自我執行」。簽訂合約的一方總是可以在付款到期之前關閉合約,或者用盡他們的銀行存款,甚至只是更改賬戶密碼。因此,無論合約怎樣與系統結合,總有人有能力將其關閉。
我們如何解決這個問題?該答案在我們目前的社會背景下可能較為激進,但在比特幣領域已經人盡皆知:我們需要一種新的貨幣。
到目前為止,貨幣經歷了三個階段的演變:商品貨幣,商品支持貨幣和法定貨幣。
關於商品貨幣的理解很簡單:該類貨幣本身很有價值,因為它同時也是一種具有某種「內在」使用價值的商品。金銀就是典型的例子。在更傳統的社會中,我們也使用茶,鹽和貝殼等。
接下來是商品支持貨幣,比如銀行簽發的票券很有價值,因為它們可以兌換黃金。
最後是法定貨幣(fiat money),其中的「法定(fiat)」就像「要有光(fiat lux)」一樣。上帝說「讓那裡有光」,聯邦政府就說「讓那裡有錢」(譯者註:Vitalik此處提及此典故顯然有諷刺意味)。法定貨幣的價值主要在於發行它的政府接受了這種貨幣,它也成為支付稅費及其他幾項法律特權的唯一指定貨幣。
然而,比特幣的出現使我們有了一類新的貨幣:共識貨幣。
法定貨幣與共識貨幣之間的區別在於:法定貨幣由政府(或其他類型的代理機構)製造並維護。共識貨幣只是一個資產負債表,其中有一些關於如何更新資產負債表的規則。
比特幣是第一個例子,但還有更多衍生的例子。例如,人們可以有一個替代規則,該規則規定只有來自某個「起源交易(genesis transaction)」的比特幣才算作資產負債表的一部分。這種貨幣被稱為「彩色硬幣」,它也是一種共識貨幣。
事實上,共識貨幣的主要優點恰恰是它與智能合約融合得非常好。智能合約的主要問題在於其執行力:如果合約規定當X發生時就向Bob發送200美元,那麼我們如何確保將200美元發送給Bob?
使用共識貨幣的解決方案非常完美:該貨幣的定義,或者更確切地說是當前資產負債表的定義,是執行所有合約的結果。因此,如果X確實發生了,那麼每個人都會同意Bob獲得額外的200美元。反之,如果X沒有發生,那麼每個人也會同意Bob保有他之前的財產。
這是一個令人難以置信的革命性創造。
事實上,我們為合約甚至法律創造了一種有效的工作方式,卻不需要依賴任何形式的機制。想要罰款亂扔垃圾的人100美元嗎?那麼定義一種貨幣,如果亂扔垃圾就扣除100個貨幣單位,並讓人們接受這個方案。
如果沒有下面討論的一些重要注意事項,這個例子很可能是難以實現的。但它顯示了一般規律,該規律在其他許多領域是適用的。
智能合約有多智能?
智能合約顯然適用於任何類型的金融應用,甚至是兩種不同共識資產之間任何類型的交換。
比如域名銷售,像google.com這樣的域名是一種共識資產,因為它由伺服器上的資料庫支持並被人們接受,而購買它的資金也可以是共識貨幣。目前,銷售域名是一個複雜的過程,往往需要專業化服務。而在未來,你可以將銷售報價打包成智能合約並將之放在區塊鏈上,如果有人接受,交易將自動進行,並且不存在欺詐的可能性。
在貨幣領域,去中心化交易所是另一類應用。此外,我們還可以製作對沖和槓桿交易等金融合約。
然而,在某些領域智能合約並不是那麼適用。
以僱傭合同為例:A同意為B完成某項任務並獲取X單位的貨幣C作為報酬。智能合約可以輕易處理支付環節。但是,有一個環節卻非常困難:確認工作完成。
如果該工作是在物質世界中完成的,就幾乎無法確認,因為區塊鏈沒有任何方式來訪問物質世界。即使工作是在線上完成的,仍然會存在評估質量問題。當然,在某些情況下,計算機程序可以使用機器學習演算法有效地判斷一些特徵。
綜上,很多時候一個完全由演算法運行的社會是存在問題的。
幸運的是,有一個穩健的解決方案可以結合兩個世界的優點:法官(judge)。
法院的法官擁有極大的權力去做他們想做的事情。人們需要提起訴訟,等待相當長的審判時間,最終法官根據法律制度做出判決。整個過程本身並不高效。私人仲裁往往比法院更便宜、更快捷,但仍然存在問題。
然而,共識世界中的法官完全不一樣。一份僱傭智能合約可能如下:
if says(B,”A did the job”) or says(J,”A did the job”): send(200, A)
else if says(A,”A did not do the job”) or says(J,”A did not do the job”): send(200, B)
says是簽名驗證演算法;says(P,T)主要檢查是否有人提交了攜帶文本T的信息和使用p的公鑰驗證的數字簽名。
那麼這份合約是如何運作的呢?首先,僱主會將200個貨幣單位放入合約並讓合約託管。在大多數情況下,僱主和僱員都是誠實的,所以A退出並通過簽署信息說「A沒有完成工作」將資金釋放回B。B驗證A是否完成了工作,並決定合約是否將資金釋放給A。但是,如果A完成了工作,而B不同意,那麼由J來判斷A是否完成了工作。
請注意,這裡將詳細描述J的權力。J有權判決A是否完成了這個工作。更複雜的合同還可能賦予J在兩個極端間作出判決的權力。但J無權判決A應該得到600個貨幣單位、或者J應該得到200個單位貨幣、或者原有定義邊界之外的其他任何東西。
J的權力由包含J的公鑰的合同執行,因此資金根據其邊界自動轉到A或B。合約甚至可以要求來自3名法官中的2名的判決,或者它還可以讓法官各自評判該工作的不同部分,並讓合同基於這些評級自動為B的工作打分。任何合約都可以隨心所欲地與任何法官合作(plug in),判斷特定事實真實與否、提供某些變數的度量、或者成為推進進度的一方。
這比現有系統好多少?簡而言之,這裡引入的是「判決即服務」機制。
當前,為了成為「法官」,你需要在私人仲裁公司或政府法院任職,或者自主創業。在加密的共識法律系統中,做一名法官只需要一個公鑰和一台可以訪問互聯網的計算機。雖然聽起來不太靠譜,但並非所有法官都需要精通法律。例如,一些法官可以專註於核查產品是否正常發貨;其他法官可以核實勞動合同的完成情況;其他人可以評估保險合同的損害賠償金。
這一切需要合約作者在合約的各個部分安置合適的法官,而這一環節又可以完全使用計算機代碼完成。
這一切就是這麼簡單。
二
最終優勢:降低准入門檻
兩個行業的故事
我們可以看到在互聯網時代,特別是在通信領域和商業領域,使用網際網路驅動(internet-driven)技術促進自動化的最大好處是:它提高了工作效率並降低了准入門檻。該技術為傳統世界帶來了許多積極影響,其中一個典型的例子就是出版業。
在20世紀70年代,如果你想寫本書,那麼在書到達消費者手中之前,你需要經過大量不透明的、中心化的中介機構。首先,你需要一家有能力編輯和營銷你的書、並為消費者提供質量保證的出版社。其次,印好的書需要進行分發,最後在每個書店出售。銷售鏈的每個環節都需要大量的支出。最後,幸運的話,你能夠獲得每本書10%以上的收益作為版稅(royalty)。
請注意「版稅」這一術語的用法,這意味著你作為這本書的作者只是銷售鏈中一個無關緊要、消耗幾個百分點收益的部分,而不是決定這本書存在的重要人物。
時至今日,情況有了很大的改善。我們現在擁有分工明確的印刷公司、營銷公司和書店,每個行業都有清晰準確的定位,並且面臨著大量的競爭。此外,如果你不介意僅發行電子書的話,你可以直接在Kindle上出版並獲得其70%的盈利額。
現在,讓我們看一個完全不同的行業中非常相似的例子:消費者保護,更具體地講是託管(escrow)。
託管是商業貿易中非常重要的功能,尤其是在線貿易。
當你從小型網上商店或Ebay上的商家購買商品時,你是在參與雙方都沒有實質聲譽的交易。因此,當你默認發送款項時,你無法確保收到對應的商品。而託管可以提供解決方案:你不是直接將錢匯給商家,而是首先將錢匯給託管代理,然後託管代理會等待你確認收到該商品。如果你確認,那麼託管代理將錢匯給商家;如果商家確認無法發送該商品,則託管代理會退還款項;如果存在爭議,則啟動裁定程序,託管代理會根據具體情況做出裁定。
然而,在當前託管的應用方式中,它由中心化實體控制,並附帶大量其他功能。
例如,在Ebay的在線市場中,Ebay為賣家提供伺服器並託管他們的產品頁面、為產品提供搜索和比價功能、以及為買賣雙方提供評級系統。Ebay還控股Paypal(大型電子支付平台),它實際上是將錢從賣方轉移到買方。從本質上講,這與20世紀70年代的出版業沒有差別。
那麼我們如何利用加密貨幣與智能合約建立一個理想的市場呢?極端一點,我們可以使整個市場去中心化。例如,使用類似Diaspora的模型,允許賣方在專門的網站上、在他們自己的伺服器上、或在去中心化的Dropbox實現上託管他們的產品;使賣家在類似Namecoin的系統中存儲他們的身份,並在區塊鏈上運行信任網路。然而,我們現在有了一個更穩健和簡單的目標:將託管代理功能從支付系統中分離。
比特幣為此提供了一種解決方案:多重簽名交易。
多重簽名交易的介紹
多重簽名交易允許用戶將資金髮送到具有三個私鑰的地址,這樣你需要其中兩個私鑰才能解鎖資金(多重簽名也可以是1-of-3、6-of-9或其他任何類型,但是在實踐中,2-of-3是最有用的)。
將之應用於託管的方式很簡單:在買方、賣方和託管代理之間創建2-of-3託管,讓買方向其匯入資金,當交易完成時,買方和賣方簽署交易完成託管。如果存在爭議,託管代理會進行裁定,並與買賣雙方簽署交易以向他們發送資金。在技術層面上,這有點複雜。但幸運的是,Bitrated創建了一個網站,使普通用戶可以輕鬆完成整個過程。
當然,就目前的形式而言,Bitrated並不完美,也沒有那麼多比特幣貿易使用它。它的操作可能也沒有那麼容易,特別是因為,大多數人不習慣連續幾周存儲每個交易的特定鏈接。
如果將它與一個完全成熟的商業程序結合,它會更加強大。一種設計是與類似KryptoKit的網路應用程序結合,向每個用戶顯示「開放」購買和銷售列表,並為每個用戶提供「完成」、「接受」、「取消」和「爭議」四種按鈕。接著,用戶就可以與多重簽名交易系統進行交互,就好像它是標準的支付處理器一樣,但用戶會在幾周後收到通知以最終確定或返回他們的購買。
但是,如果Bitrated完善它的交互界面,並且該系統被大規模採用,將會帶來什麼樣的變化?答案還是降低准入門檻。
目前,進入消費者託管和仲裁業務很困難。為了做成一個託管服務,你必須構建一個完整的平台和一個生態系統,以便消費者和商家在你的平台上交易。你也不能只託管資金,你首先需要轉移資金。
比如,為了保護消費者權益,Ebay需要擁有並控制Paypal。有了Bitrated,所有這一切都會發生變化。任何人都可以成為託管代理人和仲裁員,而類似Ebay的市場可以為仲裁員以及買賣雙方提供評級系統。
或者,系統可以在後台處理仲裁,類似於Uber處理計程車司機事務:任何人都可以在通過審查後成為仲裁員,系統會自動獎勵評級較高的仲裁員並解僱評級較差的仲裁員。中介手續費會下降,甚至可能大大低於Paypal收取的2.9%。
智能合約
智能合約採用同樣的基本理念,甚至走得更遠。
人們可以使用基於區塊鏈的金融衍生合約與去中心化的訂單簿,而不是依靠像Bitfinex這樣的平台對沖比特幣持股、或者以高槓桿率投機。這樣做不會讓中心化機構收取任何費用。維護交易的持續成本,包括操作安全性、伺服器管理、DDoS保護、營銷和法律費用,都可以替換為一次性編寫的合同,其代碼可能少於100行。此外,一個完美的交互界面也能一次性構建出來。
從那時起,除了網路費用外,整個系統將是免費的。像Dropbox這樣的文件存儲平台同樣會被替換。雖然硬碟需要花錢,並且系統也不免費,它仍會比目前費用便宜得多。智能合約還可以通過簡化供應方參與流程來幫助平衡市場:任何擁有大硬碟、甚至是帶有額外空間的小硬碟的人,都可以輕鬆地安裝應用程序並通過出租多餘的硬碟空間賺錢。
商務關係可以由智能合約管理,而不再需要昂貴的法院系統和私人仲裁服務,當然其中需要人類解釋的合同部分可以分為許多專業化類別。
可能有專門決定是否發運產品的裁判(judge);專門確定網路應用程序設計是否合格的裁判;專門檢查衛星圖像,並以0.75美元的費用裁定某類財產保險索賠的裁判;也會有能串聯以上每一個類別的合同作者。
專業化有其優勢,也是社會進步的原因之一,但其缺點之一是它始終需要中介管理和運作,包括專門管理中介關係的中介。智能合約幾乎可以完全消除這一類別中介,允許更大程度的專業化,同時降低其他類別的准入門檻。
原文鏈接:
【part1】https://bitcoinmagazine.com/articles/daos-scary-part-1-self-enforcing-contracts-factum-law-1393297672/
【part2】https://bitcoinmagazine.com/articles/daos-scary-part-2-reducing-barriers-1393728451/