一文看懂智慧合約的現狀與未來
導讀:毫無疑問,智慧合約可謂是分散式賬本(區塊鏈)技術帶來的最具革命性的創新。在分散式賬本上部署和執行可靠的、自執行的、防篡改的數字協議的能力,在幾乎所有行業和垂直領域中都有大量的潛在用例,從金融和保險一直到零售業務與和公民政府系統。那麼,它們為什麼還沒有被廣泛使用呢?
在分散式賬本上執行智慧合約的概念受到大肆吹捧,被稱為是解決與傳統合同和數字金融協議相關的許多問題的良方,而這些問題根本就沒有為數字時代做好準備。這是因為智慧合約是高度安全的、防篡改的數字協議,以無信任的方式提供有保證的執行和處理。這是當今數字協議工作方式的巨大轉變,數字協議通常依賴於不信任的第三方、資料重複和高成本的業務流程。
問題
智慧合約並非什麼新事物。它是由傳奇密碼學家 Nick Szabo 於 1997 年首次提出,第一個真正的實現是在 2015 年的以太坊區塊鏈平臺上進行的,那是三年前的事兒了。從那時起,這個概念已經擴充套件到其他各種區塊鏈平臺,主要是其他加密貨幣平臺,如 NEO 和 EOS,還有非加密貨幣區塊鏈平臺,如 Hyperledger。既然它們在流程改進和成本節約方面有如此巨大的潛力,那為什麼自首次實現三年後還沒有得到廣泛的使用呢?答案很簡單:
“因為我們還沒有達到智慧合約的臨界點”。
要理解這個答案究竟意味著什麼,我們需要結合這些問題來理解這個答案:智慧合約將取代什麼?在今天它將會如何發生?現在的系統和流程有什麼問題?基於這個新的功能和特性,以及所帶來的價值,將會如何發生?
現狀
在當今的大多數系統中,如果公司或個人希望簽訂交易的合同,多數情況下他們使用的是集中式服務。交易可以是任何事物,從證劵、交易、保險到全球貿易等等。它們之間的數字合同由一家公司運營。但各方並不一定百分之百地信任第三方公司,合同可能會出現無法正常執行或根本不執行的情況,或者由於其他因素導致合同執行的結果可能不正確。因此,各方所做的就是在各自部門之間保留合同的冗餘副本。此外,他們還需要讓合同與各種資料輸入保持同步,因為他們可能不相信自己或他方能做到這一點。然後,合同一旦執行,他們就需要處理付款,並更新各自部門所有相關係統。最後,他們需要記錄所有事項,因為對於大多數合同來說,政府和監管機構要求清晰的可審計交易記錄。這就是我們當前的現狀,情況非常複雜,成本非常高昂。
例如,澳大利亞證券交易所(ASX)估計,在澳大利亞股票市場,端到端的成本大約有 40~50 億澳元,而這一成本由發行人和最終投資者埋單。
明日世界:智慧合約
智慧合約所要做的就是,締造一個新世界,比當今世界更加簡化。因此,像如上圖所示的示例,完全可以使用智慧合約。智慧合約是一種具有防篡改性的數字協議,在一切需要智慧化的地方上,它具有簡單、智慧的特點。它通曉與合同有關的所有資料,它清楚作為合同的一部分發生的所有付款,因為它執行了這些資料,而且,它還是一個所有相關各方都可以完全信任的信任機制,即使他們之間互不信任。合同中的每個參與者也無需保留冗餘副本,因為區塊鏈為每個人提供了一個單一的、最終的、不可改變的原始檔,包括監管機構和政府機構。
這個新世界做了兩件非常有趣的事情:一是大大降低了執行協議的成本,二是提高了協議的安全性和透明度。
目前,加密貨幣標記化是智慧合約的主要用途,但這些並非複雜的智慧合約,超過 80% 的數字協議超出了簡單的所有權。在未來,智慧合約將會超越代幣和所有權。這類複雜的智慧合約將基於觸發的事件和輸入執行邏輯,並在合同結束時產生某種形式的自動付款。這類複雜的智慧合約將為數字協議帶來新的標準,並最終將用於處理全球行業數萬億計的美元,這些行業為銀行、保險、貿易融資等提供了動力。
現在,我們瞭解了這一即將到來的新世界,需要評估都有哪些困難和障礙,以及解決和處理這些問題將如何導致臨界點並引發大規模採用。最好的辦法是檢視軟體和 IT 平臺交付的最後一次重大轉變,即 SaaS(軟體即服務)。
達到軟體交付的臨界點
通常情況下,企業和公司都有內部部署軟體,他們會購買軟體,並在地下室或機房安裝伺服器。由於最初的支出,加上運維這些伺服器的持續成本,因此這一做法很昂貴。後來 SaaS 出現了,為使用者軟體提供了一種完全不同的模式,即軟體是在訂閱的基礎上獲得許可並集中託管,而不是在本地安裝。起初有很大的阻力,有很多人說他們永遠不會去使用 SaaS,永遠不會把他們的資料提供給一個不在實際內部或者網路中的應用程式。但最終,SaaS 取得了勝利。SaaS 應用和平臺在世界各地廣泛應用於會計(Xero)等業務的各個方面,甚至在客戶關係管理 / CRM(Salesforce)等資料極其敏感的情況下也能見到 SaaS 的身影。
“我們一次又一次地聽到同樣的擔憂:放棄控制權帶來的恐慌。” ——Marc Beinoff(Salesforce 創始人)
因此對於 SaaS 來說,人們最大的不滿是他們失去了控制權。那麼是什麼讓每個人最終改變主意並心甘情願地放棄控制權呢?答案就是價值。SaaS 不僅提供了以前沒有的功能,而且在成本、使用、實施速度等方面也有了顯著的節省,為了獲得更好的產品,以至於因初始成本和持續成本的降低,放棄控制權的的風險就沒有那麼顯著了。而這就是 SaaS 的臨界點,當它成為現實時,大規模的應用開始了,並引領我們進入了今天的世界。
現在,既然我們知道了 SaaS 的臨界點是如何來臨的,那我們就可以將它與智慧合約聯絡起來,並提出同樣的問題。我們如何到達智慧合約的臨界點,為了採用我們需要的一系列的功能,從 “這確實是一個有趣的想法,但我不想放棄控制”,到 “是的,我希望將我的公司轉型為一個智慧合約驅動的業務”。
通向智慧合約臨界點的途徑
要做到這一點,通常有 5 件主要的事情要麼是缺失的,要麼是需要正確處理的:
- 與關鍵資源的連線。智慧合約需要能夠獲取資料,需要能夠提供有意義的輸出,無論是以支付形式還是以輸出資料的形式,並且還需要在合同相關或要求的背景下知曉區塊鏈之外所發生的事情。
- 合同條款和參與者的安全性和隱私性,因為很多時候,參與數字協議的各方希望條款只能在他們之間看到。
- 智慧合約執行的系統的可擴充套件性。執行合同的平臺需要能夠在合同執行過程中表現良好,但也需要能夠擴充套件以適應大量同時執行多個智慧合約的場景。
- 法律和監管框架。技術常常超過監管框架和法律的步伐,這同樣也適用於智慧合約。智慧合約需要從法律角度來處理,幷包含在將使用這些合同的各個行業中的許多法規中。
- 智慧合約的可訪問性。目前只有區塊鏈程式設計師可以編寫智慧合約,許多平臺不允許他們使用廣泛流行的程式語言,如 Java 或 C++。例如,以太坊平臺要求程式設計師學習一種全新的程式語言(Solodity)。
連線
在目前分散式賬本技術的智慧合約的實施中,合同無法連線到外部資源。它不能獲取外部資料,也不能與它們所在的區塊鏈之外的 API 進行互動,這是一個很大的限制因素。這是由以下兩點決定的:由於分散式賬本技術的性質以及在區塊鏈上執行合同的小型虛擬機器非常基礎,只能做有限的事情。根據設計要求,如果你想它能很好地擴充套件,就需要小巧、快速及非常精簡。
那麼,如何讓智慧合約與資料來源進行通訊、如何獲得智慧合約來進行支付、以及如何獲得智慧合約來對其獲得的資料進行鏈下計算呢?因為沒有所有這些輸入和輸出,智慧合約的範圍將僅限於其執行的區塊鏈上的資料,或者在加密貨幣平臺的情況下,token 的所有權(標記化)。要讓智慧合約成為對現實世界事件有用的數字協議形式,它就需要了解那些現實世界的事件。它需要了解市場資料、貿易融資的 GPS 資料、用於保險的物聯網資料,它需要可靠地接收這些輸入,才能對現實世界的事件作出有意義反應的數字協議。最後,它需要能夠以使用者想要的格式付費和結算。
實現這一目標的方法多種多樣,通常有兩種方法:
方法 1:Oracle 服務:
在這種方法中,集中式服務或應用程式將從某處獲得資料(如 API),並將其傳遞給區塊鏈上的智慧合約,因為智慧合約自己無法獲得這些資料。這一解決方案完全可行,但確實存在一些缺陷。智慧合約的價值在於,它在分散式賬本上的防篡改性,但它現在從單個節點或伺服器上獲取資料。這就破壞了智慧合約的 “防篡改性”,因為如果這個 Oracle 節點遭到入侵,那麼整個智慧合約都可以被駭客操作,因此不是完全安全的防篡改性。如果進入合同的資料不可靠,那麼它就不再是一種優秀的數字協議形式。儘管如此,對於某些用例來說,使用可信的 Oracle 已經足夠了。
這種方法已經有多種實現,如 Oracalize(ofollow,noindex" target="_blank">http://www.oraclize.it/ )。
方法 2:去中心化的 Oracle 網路
在這種方法中,去中心化的 Oracle 網路位於智慧合約和外部世界之間,充當 “中介軟體” 層。這樣做的目的是允許智慧合約以分散的方式獲取其輸入(或流程輸出),從而將智慧合約的安全性和防篡改性擴充套件到它也可以獲取和傳送資料的程度。例如,你可以有一個節點從三個不同資料來源來獲取資料,然後通過聚合結果傳遞給智慧合約,或者完全分散多個 Oracle 節點獲得來自多個數據源的資料,將結果進行聚合,然後一旦它們就結果達成共識,就將其傳遞給智慧合約。這個例子是端到端真正的去中心化,並且是擁有數萬億美元的大型企業(如證劵、貿易融資、衍生品和保險等)採用智慧合約所需要的,因為他們將會看到這個過程的端到端,並希望儘可能多的安全性和不變性。
這種方法的第一個真正實現是 Chainlink,目前由一家名為 smartcontract.com 的初創公司構建。一旦 Chainlink 上線(有望在 2019 年第一或第二季度),屆時,這種連線問題將不再是一個問題。
安全性和隱私性
2016 年 6 月 17 日,乙太網公共區塊鏈上一份名為 DAO 的智慧合約被駭客入侵,接近 5000 萬美元的投資者資金被轉移到駭客控制的分包合同中。儘管由於合同中的檢查駭客無法獲得這些資金,但這一事件產生了深遠的影響。雖然許可式 / 私有區塊鏈中不太可能發生這種攻擊,但這起事件已經為智慧合約從業者提供了一個經驗教訓,並強調了強有力的治理的重要性。例如:
參與方的角色:在一個智慧合約平臺上合作的各方必須明確定義角色和職責,並確保與智慧合約的建立、執行和廢止相關的所有流程都有明確的定義。
制約與平衡:由於以太坊智慧合約的安全特性,駭客在 27 天內無法轉移被黑的資金,因此,社群才有時間採取行動,重寫規則並回滾攻擊(硬分叉)。應積極評估故障對經濟的影響,並需要內建特徵以確保官方能夠採取糾正措施以避免或限制交易各方的損失。這件檢查必須在設計時要考慮到無縫執行的需要。
資料和合同的隱私性對於企業相關的智慧合約來說可能是一個挑戰,具體取決於區塊鏈的訪問型別。由於交易記錄可能對所有參與者都可見,如果不考慮資料的安全性和隱私性,銀行將不會願意在通用的智慧合約平臺上進行協作。加密金鑰管理對於向未知方隱藏交易細節至關重要,需要解決的問題是應該與所有參與者共享哪些資料。Oracle 提供了鏈下計算功能,可以幫助確保區塊鏈無需儲存或訪問各方希望保密的資料。
與常規的合同不同,一旦部署合同,就無法停止或者修改合同。正因為如此,智慧合約需要 100% 的防彈和無 Bug。沒有人會把數百萬美元投入到一個自動執行的程式中,除非他們確信程式會按預期執行,並且觸發機制是正確的、有效的。在過去的一年裡,這個行業迅速發展起來,現在已經有許多智慧合約審計 / 測試組織和軟體平臺解決了這個問題。
可擴充套件性和效能
對於不存在的高事務處理速度問題的貸款或抵押貸款等交易,從效能角度來看,無需許可(任何人都可以加入並參與區塊的生成)區塊鏈是合適的。然而,其他交易,如貿易融資和證劵,將需要比通常無需許可區塊鏈更好的效能。不管情況如何,出於幾個原因,許多企業可能會使用許可式區塊鏈(限制檢視、新增賬本的許可權),而不是無需許可區塊鏈。首先,許可式區塊鏈可以更容易地實現法規遵從性。其次,他們提供了更強大的共識和治理機制。最後,對許多應用程式來說,高吞吐量是必不可少的,私有 / 許可式區塊鏈的效能和可擴充套件性通常都會更好。雖然需要新的技術來將許可式和無需許可的區塊鏈擴充套件到許多應用程式所需的吞吐量,但現在許可式區塊鏈已經具備了相當大的效能優勢。另一個常見的需求是零停機時間,由於其去中心化設計和共識機制,區塊鏈可以很好地處理這種情況。
Oracle 還可以提供可擴充套件性和效能,因為它們具有鏈下計算功能,可以 “減輕” 在區塊鏈上執行的智慧合約的負載。雖然當前許多智慧合約平臺在效能和可擴充套件性方面各不相同,但它們都在不斷改進,並朝著高效能和可擴充套件性的共同目標邁進。
法律及監管框架
為了使智慧合約與現有的法律系統相互作用,智慧合約系統的設計者正積極地從法律角度來研究幾個細微差別:
不變性:如上所述,分散式賬本上的智慧合約具備防篡改的特性。這在許多現實場景中會造成實際問題,人們正在探索一旦合同生效後如何修改合同條款。《合同法》對合同的修改或者解除作了規定,如果需要,可以在智慧合約中實現這一點。其中一種方法通常被稱為 “應急出口”,是一種通過預先程式設計的方式,用來改變智慧合約的條款。但是,確保正確的許可權到位是很棘手的麻煩事。此外,它還消除了智慧合約的一些主要特性和優勢,因此需要仔細考慮這樣的實現。
合同保密:通常,在區塊鏈上執行的智慧合約副本或許可式賬本與鏈上的成員共享。各方的匿名性可以得到保障,但合同執行的保密性卻不一定能夠得到保障。這是一個受到關注並正在取得進展的領域。如前所述,Oracle 可以通過確保私有資料和資訊保持鏈下狀態來提供幫助。還有一些初創公司試圖通過使用先進的加密結構來解決隱私問題,以及組織內部和組織之間的資料共享問題。同樣,人們正在探索被稱為 “零知識證明” 的概念,以找到一種方法,能夠將驗證交易的過程與檢視交易的內容分離開來。
法律可執行性和裁決性:許多行業(如金融服務)都受到高度監管,並向這些公司盤發特定許可和批准以允許在該行業內運營。然而,金融智慧合約的合法性尚有待確立。美國和其他一些國家已採取初步措施,在法律體系中承認分散式賬本。要使合同具有可執行性,必須在法律體系和監管機構認為合適的程度上確認雙方的身份,並將電子簽名視為有效。另外,將法律條款和條件準確的翻譯成軟體邏輯也是另一個需要考慮的關鍵方面。像 CommonAccord 和 OpenLaw 這樣的初創公司正致力於解決這個問題的平臺。
監管:律師、立法者、監管機構和政府已經開始意識到分散式賬本在提高透明度和易於遵守和報告方面的潛力。這些當局的推動將有助於克服法律和行政障礙。
可訪問性
在今天,要編寫一個智慧合約,你需要成為從技術角度瞭解區塊鏈知識的程式設計師。此外,根據平臺的不同,你可能需要了解定製 / 定做的程式語言,比如 Solidity 或 Golang。如果你想寫一份合法的智慧合約,你除了需要具備上述的技能外,還需要具備法律知識,並且身邊沒有多少程式設計師或律師。
展望未來,智慧合約需要能夠以更廣泛的語言來編寫。企業更願意使用可以利用現有 IT 技能的平臺,而不必使用新的定製語言來提升團隊水平。像 NEO 這樣的平臺已經解決了這一問題,為開發人員提供了 Java 和 C# 等語言,許多其他平臺都有類似的需求。
隨著智慧合約的使用量增加,未來很有可能會出現各種用例的行業標準或模板版本的合同,例如衍生品和貿易融資協議。這些智慧合約程式碼的標準化模板將在社群的反饋基礎上繼續改進,社群之所以希望改進它們,可能是出於各種原因(如滿足一些法律要求)。這意味著並非每個新的智慧合約都將從頭開始構建,很多都是基於標準和模板,並根據需求進行修改。他們表示,今天有 80% 的合同法都是剽竊,智慧合約最終會遵循這一先例。
何時能被主流採用
一旦技術和監管成熟,上述問題得到妥善解決的時候,更復雜的智慧合約才能得以實現,並開始在現實世界中取代如今的去許多數字協議。
智慧合約的臨界點什麼時候才能到來呢?考慮到上述幾點以及這種數字化轉型的規模,智慧合約在開始進入主流之前還需一兩年。預計 2020 年開始才會被主流採用。
雖然主流採用可能還需要幾年的時間,但它終究會到來。因此,公司不應停滯不前,他們應該立即行動,從確定 IT 系統、流程和變更管理政策所需的變更開始。他們還應該開始精心構建外埠生態系統,並選擇關鍵的新參與者來參與他們未來的智慧合約生態系統。
結語
智慧合約為數字時代帶來了激動人心的革命性機遇。主流採用將降低風險、降低管理和服務成本,並提高許多行業的業務流程效率。這些好處將來自於技術、業務流程重新設計以及運營模式的根本變化。消費者將受益於更具競爭力的產品,以及更為簡單的流程,這些流程不受當今客戶體驗中的諸多困擾。然而,正如所有突破性創新一樣,組織需要謹慎區分什麼是炒作,什麼是現實。通過將時間和精力集中在理解智慧合約的潛力上,並建立一個長期的、健壯的和實用的策略,組織可以實現重新發明數字協議的潛力。
組織現在就開始理解並規劃,這一點很重要,因為 “臨界點” 即將到來…… 機會只青睞於有準備的人。
感謝杜小芳對本文的審校。