區(qū)塊鏈智能合約的發(fā)展現(xiàn)狀: 架構、應用與發(fā)展趨勢

論文地址:http://kns.cnki.net/kcms/detail/11.2109.TP.20190218.1353.003.html

摘要:智能合約是一種無需中介、自我驗證、自動執(zhí)行合約條款的計算機交易協(xié)議, 近年來隨著區(qū)塊鏈技術的日益普及而備受關注. 區(qū)塊鏈上的智能合約具有去中心化、去信任、可編程、不可篡改等特性, 可靈活嵌入各種數(shù)據(jù)和資產, 幫助實現(xiàn)安全高效地信息交換、價值轉移和資產管理, 最終有望深入變革傳統(tǒng)商業(yè)模式和社會生產關系, 為構建可編程資產、系統(tǒng)和社會奠定基礎. 本文致力于以區(qū)塊鏈智能合約為研究對象, 對已有的研究成果進行全面的梳理和系統(tǒng)的概述, 提出了智能合約的基礎架構模型并以此為研究框架闡述了智能合約的運行機制與基礎架構, 總結了智能合約的研究挑戰(zhàn)與進展, 介紹了智能合約的技術優(yōu)勢與典型應用領域, 討論了智能合約的發(fā)展趨勢, 以期為智能合約的后續(xù)研究提供參考.

智能合約的運行機制

智能合約的運行機制如圖 1 所示, 智能合約一般具有值和狀態(tài)兩個屬性, 代碼中用 If-Then 和 What-If 語句預置了合約條款的相應觸發(fā)場景和響應規(guī)則, 智能合約經多方共同協(xié)定、各自簽署后隨用戶發(fā)起的交易提交, 經 P2P 網(wǎng)絡傳播、礦工驗證后存儲在區(qū)塊鏈特定區(qū)塊中, 用戶得到返回的合約地址及合約接口等信息后即可通過發(fā)起交易來調用合約. 礦工受系統(tǒng)預設的激勵機制激勵, 將貢獻自身算力來驗證交易, 礦工收到合約創(chuàng)建或調用交易后在本地沙箱執(zhí)行環(huán)境 (如以太坊虛擬機) 中創(chuàng)建合約或執(zhí)行合約代碼, 合約代碼根據(jù)可信外部數(shù)據(jù)源 (也稱為預言機, Oracle) 和世界狀態(tài)的檢查信息自動判斷當前所處場景是否滿足合約觸發(fā)條件以嚴格執(zhí)行響應規(guī)則并更新世界狀態(tài). 交易驗證有效后被打包進新的數(shù)據(jù)區(qū)塊, 新區(qū)塊經共識算法認證后鏈接到區(qū)塊鏈主鏈, 所有更新生效.由于區(qū)塊鏈種類及運行機制的差異, 不同平臺上智能合約的運行機制也有所不同, 以太坊和超級賬本是目前應用最廣泛的兩種智能合約開發(fā)平臺,它們的智能合約運行機制最具代表性, 以下將以這兩種平臺為例, 闡述智能合約的運行機制.


智能合約的運行機制.jpg

1)以太坊以太坊在整體上可看作是一個基于交易的狀態(tài)機: 起始于一個創(chuàng)世塊 (Genesis) 狀態(tài), 然后隨著交易的執(zhí)行狀態(tài)逐步改變一直到最終狀態(tài),這個最終狀態(tài)就是以太坊世界的權威版本. 以太坊中引入了賬戶的概念以取代比特幣 UTXO 模型,賬戶分為外部賬戶和合約賬戶兩類, 兩類賬戶都具有與之關聯(lián)的賬戶狀態(tài)和賬戶地址, 都可以存儲以太坊專用加密貨幣以太幣, 區(qū)別在于外部賬戶由用戶私鑰控制, 沒有代碼與之關聯(lián), 合約賬戶由合約代碼控制, 有代碼與之關聯(lián).用戶只能通過外部賬戶在以太坊中發(fā)起交易,交易可以包含二進制數(shù)據(jù) (Payload) 和以太幣, 交易執(zhí)行過程中可能產生一系列消息調用. 當交易或消息調用的接收者為以太坊指定空集 ? 時, 創(chuàng)建合約. 新合約賬戶地址由合約創(chuàng)建者的地址和該地址發(fā)出過的交易數(shù)量 Nonce 計算得到, 創(chuàng)建合約交易的Payload 被編譯為 EVM 字節(jié)碼執(zhí)行, 執(zhí)行的輸出作為合約代碼被永久存儲. 當接收者為合約賬戶時, 合約賬戶內代碼被激發(fā)在本地 EVM 中執(zhí)行,Payload 作為合約的輸入?yún)?shù), 可信數(shù)據(jù)源則為合約提供必要外部世界信息. 所有執(zhí)行結束后, 返回執(zhí)行結果, 完整交易經礦工廣播驗證后和新的世界狀態(tài)一起存入?yún)^(qū)塊鏈.考慮到以太坊交易伴隨帶寬消耗, 存儲消耗, 計算消耗等, 為了激勵全球算力的投入和合理分配使用權, 避免系統(tǒng)因惡意程序走向失控, 以太坊中所有程序的執(zhí)行都需要支付費用. 各種操作費用以 Gas 為單位計算, 任意的程序片段都可以根據(jù)規(guī)則計算出消耗的燃料數(shù)量, 完整交易的發(fā)起者需支付所有執(zhí)行費用. 交易完成后, 剩余的燃料以購買時的價格退回到交易發(fā)送者賬戶, 未退回的費用作為挖出包含此交易區(qū)塊的礦工的獎勵. 若交易執(zhí)行過程中發(fā)生燃料不足 (Out of gas, OOG)、堆棧溢出、無效指令等異常中止, 交易將成為無效交易, 已消耗 Gas 仍作為礦工貢獻其計算資源的獎勵.
2)超級賬本超級賬本 (Hyperledger fabric) 最早是由 IBM 牽頭發(fā)起的致力于打造區(qū)塊鏈技術開源規(guī)范和標準的聯(lián)盟鏈, 2015 年起成為開源項目并移交給 Linux 基金會維護. 不同于比特幣、以太坊等全球共享的公有鏈, 超級賬本只允許獲得許可的相關商業(yè)組織參與、共享和維護, 由于這些商業(yè)組織之間本身就有一定的信任基礎, 超級賬本被認為并非完全去中心化.超級賬本使用模塊化的體系結構, 開發(fā)者可按需求在平臺上自由組合可插拔的會員服務、共識算法、加密算法等組件組成目標網(wǎng)絡及應用. 鏈碼 (Chaincode) 是超級賬本中的智能合約, 開發(fā)者利用鏈碼與超級賬本交互以開發(fā)業(yè)務, 定義資產和管理去中心化應用. 聯(lián)盟鏈中每個組織成員都擁有和維護代表該組織利益的一個或多個 Peer 節(jié)點, 聯(lián)盟鏈由多個組織的 Peer 節(jié)點共同構成. Peer 節(jié)點是鏈碼及分布式賬本的宿主, 可在 Docker 容器中運行鏈碼, 實現(xiàn)對分布式賬本上鍵―值對或其他狀態(tài)數(shù)據(jù)庫的讀/寫操作, 從而更新和維護賬本.超級賬本的運行過程包含三個階段:提議 (Proposal): 應用程序創(chuàng)建一個包含賬本更新的交易提議 (Proposal), 并將該提議發(fā)送給鏈碼中背書策略指定的背書節(jié)點集合 (Endorsing peers set) 作簽名背書. 每個背書節(jié)點獨立地執(zhí)行鏈碼并生成各自的交易提議響應后, 將響應值、讀/寫集合和簽名等返回給應用程序. 當應用程序收集到足夠數(shù)量的背書節(jié)點響應后, 提議階段結束.打包 (Packaging): 應用程序驗證背書節(jié)點的響應值、讀/寫集合和簽名等, 確認所收到的交易提議響應一致后, 將交易提交給排序節(jié)點 (Orderer). 排序節(jié)點對收到的眾多交易進行排序并分批打包成數(shù)據(jù)區(qū)塊后將數(shù)據(jù)區(qū)塊廣播給所有與之相連接的 Peer節(jié)點.驗證 (Validation): 與排序節(jié)點相連接的 Peer 節(jié)點逐一驗證數(shù)據(jù)區(qū)塊中的交易, 確保交易嚴格依照事先確定的背書策略由所有對應的組織簽名背書.驗證通過后, 所有 Peer 節(jié)點將新的數(shù)據(jù)區(qū)塊添加至當前區(qū)塊鏈的末端, 更新賬本. 需要注意的是, 此階段不需要運行鏈碼, 鏈碼僅在提議階段運行.

智能合約的基礎模型

本節(jié)將結合區(qū)塊鏈上智能合約的設計流程、應用現(xiàn)狀及發(fā)展趨勢, 歸納智能合約生命周期并提出智能合約基礎模型, 該模型一方面囊括智能合約全生命周期中的關鍵技術, 另一方面對智能合約技術體系中的關鍵要素進行劃分, 體現(xiàn)智能合約核心的研究方向和發(fā)展趨勢, 為智能合約研究體系的建立與完善提供參考, 奠定基礎.智能合約的生命周期根據(jù)其運行機制可概括為協(xié)商、開發(fā)、部署、運維、學習和自毀五個階段, 其中開發(fā)階段包括合約上鏈前的合約測試, 學習階段包括智能合約的運行反饋與合約更新等. 圖 2 所示為智能合約的基礎架構模型, 模型自底向上由基礎設施層、合約層、運維層、智能層、表現(xiàn)層和應用層組成, 以下將分層進行闡述.基礎設施層: 封裝了支持智能合約及其衍生應用實現(xiàn)的所有基礎設施, 包括分布式賬本及其關鍵技術、開發(fā)環(huán)境和可信數(shù)據(jù)源等, 這些基礎設施的選擇將在一定程度上影響智能合約的設計模式和合約屬性.


智能合約基礎架構模型.jpg

1)分布式賬本及其關鍵技術: 智能合約的執(zhí)行與交互需要依靠共識算法、激勵機制及 P2P 通信網(wǎng)絡等區(qū)塊鏈關鍵技術實現(xiàn), 最終執(zhí)行結果將記入由全體節(jié)點共同維護的分布式賬本. 不同的共識算法和激勵機制將影響智能合約的設計模式、執(zhí)行效率和安全性能. 以激勵機制為例, 以太坊中智能合約的開發(fā)需要額外考慮燃料消耗問題, 設計合約時需避免出現(xiàn)燃料耗盡異常 (OOG) 和死代碼、無用描述、昂貴循環(huán)等高耗燃操作.2) 開發(fā)環(huán)境: 狹義的智能合約可看作是運行在區(qū)塊鏈上的計算機程序, 作為計算機程序, 智能合約的開發(fā)、部署和調用將涉及到包括編程語言、集成開發(fā)環(huán)境 (IDE)、開發(fā)框架、客戶端和錢包等多種專用開發(fā)工具. 以錢包為例, 除作為存儲加密貨幣的電子錢包外, 通常還承擔啟動節(jié)點, 部署合約、調用合約等功能.3)預言機: 為保證區(qū)塊鏈網(wǎng)絡的安全, 智能合約一般運行在完全隔離的沙箱執(zhí)行環(huán)境中 (如以太坊的EVM 及超級賬本的 Docker 容器等), 除交易的附加數(shù)據(jù)外, 預言機可提供可信外部數(shù)據(jù)源供合約查詢外部世界的世界狀態(tài)或觸發(fā)合約執(zhí)行. 同時, 為保持分布式節(jié)點的合約執(zhí)行結果一致, 智能合約也通過查詢預言機實現(xiàn)隨機性.合約層: 封裝了靜態(tài)的合約數(shù)據(jù), 包括各方達成一致的合約條款、合約條款代碼化后的情景―應對型規(guī)則和創(chuàng)建者指定的合約與外界以及合約與合約之間的交互準則等. 合約層可看作是智能合約的靜態(tài)數(shù)據(jù)庫, 封裝了所有智能合約調用、執(zhí)行、通信規(guī)則.以智能合約從協(xié)商、開發(fā)到部署的生命周期為順序, 合約各方將首先就合約內容進行協(xié)商, 合約內容可以是法律條文、商業(yè)邏輯和意向協(xié)定等. 此時的智能合約類似于傳統(tǒng)合約, 立契者無需具有專門的技術背景, 只需根據(jù)法學、商學、經濟學知識對合約內容進行談判與博弈, 探討合約的法律效力和經濟效益等合約屬性. 隨后, 專業(yè)的計算機從業(yè)者利用算法設計、代碼編寫等軟件工程技術將以自然語言描述的合約內容編碼為區(qū)塊鏈上可運行的"If-Then", "What-If" 式情景―應對型規(guī)則, 并按照平臺特性和立契者意愿補充必要的智能合約與用戶之間、智能合約與智能合約之間的訪問權限與通信方式等.運維層: 封裝了一系列對合約層中靜態(tài)合約數(shù)據(jù)的動態(tài)操作, 包括機制設計、形式化驗證、安全性檢查、維護更新、自毀等. 智能合約的應用通常關乎真實世界的經濟利益, 惡意的、錯誤的、有漏洞的智能合約會帶來巨大的經濟損失, 運維層是保證智能合約能夠按照設計者意愿正確、安全、高效運行的關鍵.以智能合約從協(xié)商到自毀的全生命周期為序,機制設計利用信息和激勵理論幫助合約高效實現(xiàn)其功能. 形式化驗證與安全性檢查在合約正式部署上鏈前以嚴格的數(shù)學方法證明合約代碼的正確性和安全性, 保證合約代碼完全按照創(chuàng)建者的本意執(zhí)行. 維護更新在合約部署上鏈后維護合約正常運行并在合約功能難以滿足需求或合約出現(xiàn)可修復漏洞等必要時升級合約. 最后, 當智能合約生命周期結束或出現(xiàn)不可修復的高危漏洞時, 合約可以進行自毀操作以保障網(wǎng)絡安全. 需要注意的是, 合約的更新與自毀將僅體現(xiàn)在新區(qū)塊的區(qū)塊數(shù)據(jù)中, 歷史區(qū)塊鏈數(shù)據(jù)始終不可篡改.智能層: 封裝了各類智能算法, 包括感知、推理、學習、決策和社交等, 為前三層構建的可完全按照創(chuàng)建者意愿在區(qū)塊鏈系統(tǒng)中安全高效執(zhí)行的智能合約增添了智能性. 需要指出的是, 當前的智能合約并不具備智能性, 只能按照預置的規(guī)則執(zhí)行相應的動作. 但是, 我們認為未來的智能合約將不僅可以按照預定義的"If-Then" 式語句自動執(zhí)行, 更可以具備未知場景下 "What-If" 式智能推演、計算實驗,以及自主決策等功能.運行在區(qū)塊鏈上的各類智能合約可看作是用戶的軟件代理 (或稱軟件機器人), 由于計算機程序具有強大的可操作性, 隨著認知計算, 強化學習、生成式對抗網(wǎng)絡 (Generative adversarial network, GAN) 等人工智能技術的快速發(fā)展, 這些軟件代理將逐漸具備智能性: 一方面, 代理個體將從基礎的感知, 推理和學習出發(fā)逐步實現(xiàn)任務選擇, 優(yōu)先級排序, 目標導向行為 (Goal-directed behaviors), 自主決策等功能: 另一方面, 代理群體將通過彼此間的交互通信、協(xié)調合作、沖突消解等具備一定的社交性.這些自治軟件代理在智能層的學習、協(xié)作結果也將反饋到合約層和運維層, 優(yōu)化合約設計和運維方案,最終實現(xiàn)自主自治的多代理系統(tǒng), 從自動化合約轉變?yōu)檎嬲饬x上的智能化合約.表現(xiàn)層: 封裝了智能合約在實際應用中的各類具體表現(xiàn)形式. 包括去中心化應用 (Decentralized application, DApp)、去中心化自治組織 (Decen-tralized autonomous organization, DAO)、去中心化自治企業(yè) (Decentralized autonomous corpora-tion, DAC) 和去中心化自治社會 (Decentralized autonomous society, DAS) 等.區(qū)塊鏈是具有普適性的去中心化技術架構, 可封裝節(jié)點復雜行為的智能合約相當于區(qū)塊鏈的應用接口, 幫助區(qū)塊鏈的分布式架構植入不同場景.通過將核心的法律條文、商業(yè)邏輯和意向協(xié)定存儲在智能合約中, 可產生各種各樣的去中心化應用 (DApp), 而利用前四層構建的多代理系統(tǒng), 又可逐步演化出各類去中心化自治組織 (DAO, 亦稱去中心化自治企業(yè), DAC) 和去中心化自治社會 (DAS), 這些表現(xiàn)形式有望改進傳統(tǒng)的商業(yè)模式和社會生產關系, 為可編程社會奠定基礎, 并最終促成分布式人工智能的實現(xiàn). 以 DAO 為例, 只需將組織的管理制度和規(guī)則以智能合約的形式預先編碼在區(qū)塊鏈上,即可實現(xiàn)組織在無中心或權威控制干預下的自主運行. 同時, 由于 DAO 中的成員可以通過購買股份、代幣 (Token), 或提供服務的形式成為股東并分享收益, DAO 被認為是一種對傳統(tǒng)"自頂向下" 式層級管理的顛覆性變革, 可有效降低組織的運營成本, 減少管理摩擦, 提高決策民主化.應用層: 封裝了智能合約及其表現(xiàn)形式的具體應用領域. 理論上, 區(qū)塊鏈及智能合約可應用于各行各業(yè), 金融、物聯(lián)網(wǎng)、醫(yī)療、供應鏈等均是其典型應用領域. 我們將在第三節(jié)詳細討論.需要特別指出的是, 由于智能合約的研究和應用尚處于早期階段, 此處提出的智能合約架構模型只是一個理想模型。模型中部分要素 (特別是智能層中自主自治的多智能體等) 仍在探索之中, 尚未完全實現(xiàn). 但考慮到他們是智能合約未來重要的發(fā)展方向, 本文仍將其納入模型中, 以提供一定的前瞻性.

智能合約的研究挑戰(zhàn)與進展

隱私問題

根據(jù)智能合約的運行機制, 智能合約的隱私問題可分為可信數(shù)據(jù)源隱私問題和合約數(shù)據(jù)隱私問題兩類, 涉及到基礎架構模型中的基礎設施層和合約層.區(qū)塊鏈的匿名性并沒有完全解決智能合約的隱私問題. 區(qū)塊鏈數(shù)據(jù)通常是完全公開透明的 (尤其是對公有鏈), 任何人都可經由公開查詢獲取賬戶余額、交易信息和合約內容等, 以金融場景為例, 股票交易常被視為機密信息, 完全公開的股票交易智能合約將難以保證用戶的隱私. Meiklejohn S 等曾利用比特幣找零地址推算出部分大宗客戶以及這些客戶間的交易行為, Ron D 等則通過分析比特幣交易圖譜, 獲取了某些用戶行為的統(tǒng)計特征. 另外,某些智能合約在執(zhí)行時需要向區(qū)塊鏈系統(tǒng)請求查詢外部可信數(shù)據(jù)源, 這些請求操作通常是公開的, 用戶隱私也將因此受到威脅. 這些隱私問題可能導致攻擊者對區(qū)塊鏈或智能合約的去匿名攻擊.為此, Kosba A 等提出了一個旨在保護用戶隱私的智能合約開發(fā)框架 Hawk. 在 Hawk 中, 所有財務交易信息不會被顯式地記錄在區(qū)塊鏈上, 智能合約分為私密合約和公共合約, 私人數(shù)據(jù)和相關財務信息寫入私密合約后只有合約擁有者可見. ZhangF等提出了一種可信數(shù)據(jù)輸入系統(tǒng) Town Crier, Town Crier 允許用戶發(fā)送私密數(shù)據(jù)請求, 具體地,合約在發(fā)送請求之前用 Town Crier 的公鑰加密請求, Town Crier 收到請求后利用私鑰解密, 從而保證區(qū)塊鏈中其他用戶無法查看請求內容.

法律問題

智能合約的法律問題主要體現(xiàn)在合約層中傳統(tǒng)合約向智能合約的轉化: 傳統(tǒng)合約中法律條文 (濕代碼) 和智能合約中技術規(guī)則 (干代碼) 間存在巨大的語言鴻溝, 前者為了對各種無法精確預見的新案例或邊緣案例實現(xiàn)高度的通用性, 常使用一些微妙的、模糊的和靈活的語言在更高的抽象層次起草, 而后者為了降低系統(tǒng)的安全風險, 須使用嚴格而正式的語言描述定義明確的類別、預先定義的條件和精確規(guī)定的方法, 兩者在轉化時將不可避免的存在翻譯誤差繼而影響智能合約的法律效力.
常見的智能合約法律問題包括: 1) 智能合約意思表示真實性不足. 智能合約的編碼偏差或立契時的欺詐行為將導致智能合約無法反映立契者真實意愿, 我國《合同法》規(guī)定基于重大誤解的合同為可撤銷合同, 而智能合約不可撤銷. 2) 智能合約存在不可預見情形. 現(xiàn)階段智能合約只能處理預定義代碼,無法應對不可預料的情勢變更或邊緣案例. 3) 智能合約難以追責或事后救濟. 智能合約具有匿名性, 立契者可能為無行為能力或限制行為能力人, 惡意合約或因編碼偏差導致重大誤解時, 各方責任難以界定而短時間內難以補救等. 針對這些法律問題, 更具體的法律條文表述、更全面的技術規(guī)則補充、規(guī)范的語言轉化方法以及有效的合約法律審計都是可行的解決方案. 此外, 智能層構建的多代理系統(tǒng)中具備感知、推理、學習、決策和社交能力的軟件代理也有望結合人工智能技術積累法律案例經驗, 模仿現(xiàn)實世界的法官和律師, 應對未知場景下的辯論和審判.

安全問題

運維層中的安全問題是制約智能合約發(fā)展的主要問題: 已部署上鏈的智能合約是不可逆轉的, 其潛在的安全問題一旦引發(fā)就難以被修復, 由此造成的經濟損失將難以挽回, 同時, 區(qū)塊鏈的匿名性可能為惡意用戶提供便利, 繼而引發(fā)現(xiàn)實世界的安全問題.因此, 本文將智能合約的安全問題分為漏洞合約安全問題和惡意合約安全問題兩類.1) 漏洞合約. 設計一個安全的智能合約的難點在于所有網(wǎng)絡參與者都可能出于自身利益攻擊或欺騙智能合約, 設計者必須預見一切可能的惡意行為并設置應對措施, 而傳統(tǒng)的程序開發(fā)人員很難具備如此完美的編程能力和縝密的經濟思維.以太坊上智能合約的 12 種安全漏洞可分為Solidity 編程語言漏洞, EVM 虛擬機執(zhí)行漏洞和區(qū)塊鏈系統(tǒng)漏洞三個層次. 交易順序依賴(Transaction ordering dependence, TOD)、時間戳依賴 (Timestamp dependence)、可重入性 (Reentrancy vulnerability) 和處理異常 (Mishandled exceptions) 是其中常見的四種漏洞, 攻擊者可通過更改交易順序、修改時間戳、調用可重入函數(shù)、觸發(fā)處理異常等影響智能合約執(zhí)行結果或竊取資金. 為此, Luu L 等提出了一種可檢查上述 4 種潛在安全漏洞的符號執(zhí)行工具 Oyente, 經 Oyente 檢查發(fā)現(xiàn), 在 19,366 個以太坊智能合約中, 有 8833 個存在上述至少一種安全漏洞.此外, 無可信數(shù)據(jù)源和待優(yōu)化合約智能合約也將帶來一定經濟損失, 攻擊者可通過向合約輸入虛假數(shù)據(jù)獲取經濟效益, 用戶則需為無用代碼額外付費. Chen T 等提出了一個名為 Gasper 的智能合約高耗燃操作檢測工具,可自動發(fā)現(xiàn)死代碼、無用描述和昂貴的循環(huán)操作等. 利用 Gasper, 他們發(fā)現(xiàn)在以太坊中部署的超過 80% 的智能合約 (4240 個智能合約) 至少存在上述一種高耗燃操作, 而這些高耗燃操作一旦被大量調用就可能引發(fā)拒絕服務攻擊.2) 惡意合約. 區(qū)塊鏈及智能合約的去中心化、匿名性同樣可能助長惡意合約的產生. 違法者可通過發(fā)布惡意的智能合約對區(qū)塊鏈系統(tǒng)和用戶發(fā)起攻擊, 也可利用合約實現(xiàn)匿名的犯罪交易, 導致機密信息的泄露、密鑰竊取或各種真實世界的犯罪行為.Juels A 等提出了一種惡意智能合約― PwdTheft用于盜取用戶密碼并保證立契者和違法者之間的公平交易. 絲綢之路"是一個匿名的國際線上市場, 它通常作為一個隱藏服務運作, 并使用比特幣作為支付媒介. 絲綢之路上銷售的大部分商品都是現(xiàn)實世界中被控制的商品, 如毒品、槍支等. 智能合約將使這些地下市場交易更加便捷, 最終對社會造成危害.

機制設計與性能問題

除上述幾種常見的研究挑戰(zhàn)之外, 智能合約的機制設計問題和性能問題也不容忽視, 完善合理的機制設計和優(yōu)秀穩(wěn)定的合約性能是智能合約 殺手級應用" 得以落地, 智能合約應用范圍得以擴大, 智能合約促成的分布式人工智能和可編程社會得以實現(xiàn)的重要支撐.機制設計: 機制設計理論是研究在自由選擇、自愿交換、信息不完全及決策分散化的條件下, 通過設計一套機制 (規(guī)則或制度) 來達到既定目標的理論. 眾所周知, 非對稱信息容易造成資源配置的帕累托無效率, 這是組織設計中的核心難題. 借助于機制設計理論, 設計者可以通過設計一組激勵機制來減少或避免效率損失, 從而使得參與者的個體利益與組織或社會的整體利益相一致, 實現(xiàn)整體系統(tǒng)的激勵相容. 對于智能合約而言, 機制設計可以決定智能合約實現(xiàn)其目標功能的方式, 不同的制度安排和組織結構在交易費用、激勵效果和資源配置效率等方面將產生重要影響, 合理的機制設計需充分應用經濟學、商學、法學等多學科交叉知識, 對合約立契者專業(yè)背景具有極高的要求, 有必要對此進行深入研究.性能問題: 智能合約的性能問題可分為合約層設計導致的合約本身性能問題和基礎設施層導致的區(qū)塊鏈系統(tǒng)性能問題兩類. 待優(yōu)化的合約機制設計和待優(yōu)化的智能合約將增加合約執(zhí)行成本, 降低合約執(zhí)行效率, 區(qū)塊鏈系統(tǒng)本身存在的吞吐量低、交易延遲、能耗過高、容量和帶寬限制等性能問題也將在一定程度上限制智能合約的性能. 以區(qū)塊鏈系統(tǒng)的吞吐量限制為例, 現(xiàn)行的區(qū)塊鏈系統(tǒng)中, 智能合約是按順序串行執(zhí)行的, 每秒可執(zhí)行的合約數(shù)量非常有限且不能兼容流行的多核和集群架構, 難以滿足廣泛應用的需求. Dickerson T 等針對此提出了一種智能合約并行執(zhí)行框架, 允許獨立非沖突的合約同時進行, 從而提高系統(tǒng)吞吐量, 改善智能合約執(zhí)行性能.為使行文清晰, 表 1 總結了 2.1-2.4 中所述智能合約研究挑戰(zhàn)、典型問題、涉及到的模型要素和要素層次等.

智能合約的形式化驗證

運維層中的形式化驗證是解決智能合約安全問題的重要手段, 也是智能合約的重要研究方向. 智能合約的形式化驗證是指利用精確的數(shù)學手段和強大的分析工具在合約的設計、開發(fā)、測試過程中驗證智能合約是否滿足公平性、正確性、可達性、有界性和無二義性等預期的關鍵性質, 以規(guī)范合約的生成和執(zhí)行, 提高合約的可靠性和執(zhí)行力, 支持規(guī)模化智能合約的高效生成.智能合約的形式化驗證是解決智能合約安全問題的重要思路. 在合約上鏈前進行形式化驗證可避免一些常見的安全漏洞, 目前已有一些針對合約靜態(tài)或動態(tài)分析的安全性檢查工具,如 Oyente 和 Porosity, 他們都是將合約字節(jié)碼繪制成控制流圖后分析常見的安全漏洞, 美中不足的是, 這種方式無法驗證合約的功能正確性, 可檢測的安全漏洞有限且可能引發(fā)錯誤的警報. Bhargavan K 等提出了一種針對以太坊 Solidity 合約功能正確性驗證框架, 它將 Solidity 語言和 EVM 字節(jié)碼轉換為F ¤ 語言后驗證代碼的各種屬性, 既可排除漏洞也可計算合約消耗 Gas 限制. 類似的智能合約形式化驗證工具還有ZEUS、Manticore、Mythril、Solgraph等. 目前這些驗證工具大多停留在實驗階段, 尚未在真實系統(tǒng)中證明其可靠性, 市場中仍亟需完備的、規(guī)范的、有指導意義的形式化驗證框架, 這將促使形式化驗證成為未來智能合約的重要發(fā)展方向.

智能合約的應用

金融

區(qū)塊鏈天然的賬本屬性使得智能合約在金融領域有顯著的技術優(yōu)勢: 區(qū)塊鏈提供的點對點、去信任交易環(huán)境和強大的算力保障可簡化金融交易的流程, 確保金融交易的安全, 可追溯、不可篡改、公開透明的分布式賬本可便于金融機構對交易行為進行監(jiān)管, 在此基礎上, 智能合約不僅可以利用自動執(zhí)行的代碼封裝節(jié)點復雜的金融行為以提高自動化交易水平, 而且可以將區(qū)塊鏈上的任意資產寫入代碼或進行標記以創(chuàng)建智能資產, 實現(xiàn)可編程貨幣和可編程金融體系.基于這些技術優(yōu)勢, 由高盛, 摩根大通等財團組成的 R3 區(qū)塊鏈聯(lián)盟率先嘗試將智能合約應用于資產清算領域, 利用智能合約在區(qū)塊鏈平臺 Corda 上進行點對點清算, 以解決傳統(tǒng)清算方式需要涉及大.量機構完成復雜審批和對賬所導致的效率低下問題.目前, 已有超過 200 家銀行、金融機構、監(jiān)管機構和行業(yè)協(xié)會參與了 Corda 上的清算結算測試.此外, 智能合約也可為保險行業(yè)提供高效、安全、透明的合約保障, 提高索賠處理的速度, 降低人工處理索賠的成本. Gatteschi V 與 Bertani T 設計了一種旅行保險智能合約, 一旦合約檢測到如航班延誤等滿足要求的賠償條件即可自動補償旅客. 智能合約還可應用于電子商務, 智能合約降低了合約的簽訂成本, 合約雙方無需支付高昂的中介費用, 且可利用智能合約自動完成交易. ECoinmerce 是一種去中心化的數(shù)字資產交易市場, 借助智能合約, 任何用戶可在 ECoinmerce 上創(chuàng)建、購買、出售和轉租他們的數(shù)字資產. 類似的應用還有 Slock.it, 它允許用戶基于區(qū)塊鏈出租房地產、汽車、智能設備、路由器等有形資產, 這些資產經智能合約編碼獲得身份認證后即可作為智能資產直接完成復雜協(xié)議.

管理

傳統(tǒng)的組織管理是自上而下的"金字塔型" 架構, 容易產生機構臃腫、管理層次多、管理成本高、責任界定不明、信息傳遞不暢、權力集中在上層而下層自主性小、創(chuàng)新潛能難以有效釋放等問題. 智能合約和 DAO 將對管理領域帶來革命性影響. 智能合約可以將管理規(guī)則代碼化, 代碼設定完成后, 組織即可按照既定的規(guī)則自主運行. 組織中的每個個體,包括決策的制定者、執(zhí)行者、監(jiān)督者等都可以通過持有組織的股份權益, 或提供服務的形式來成為組織的股東和參與者 (即前文所述的 DAO). DAO 使得每個個體均參與到組織的治理, 從而充分激發(fā)個體的創(chuàng)造性, 提高組織決策民主化. 此外, 編碼在智能合約上的各項管理規(guī)則均公開透明, 也有助于杜絕各類腐敗和不當行為的產生.
目前, 智能合約在管理領域的應用尚處于初級階段, 典型應用包括業(yè)務流程管理、選舉投票、存證和版權管理等. 業(yè)務流程管理是指對跨部門/組織的業(yè)務流程 (如生產流程、各類行政申請流程、財務審批流程、人事處理流程) 等進行自動化設計、執(zhí)行和監(jiān)控. Beck R 和 Weber I 等指出, 隨著區(qū)塊鏈技術的發(fā)展, 絕大多數(shù)業(yè)務流程的控制流以及業(yè)務邏輯將會被編碼為智能合約, 從而使得業(yè)務流程相關的程式/項目/運營管理等愈加去中心化和安全可信. 在選舉投票領域, 智能合約通過預先設置好的規(guī)則可以低成本、高效率地實現(xiàn)政治選舉、企業(yè)股東投票、預測市場等應用, 同時區(qū)塊鏈保障了投票結果的真實和不可篡改性. McCorry P 等提出一種運行在以太坊上的 E-voting 智能合約實施方案. Horizon State、Ropsten 等 DApp 亦支持.類似應用. 在存證和版權管理領域, Rosa J L 等提出應用智能合約來對知識產權進行存在性證明以及著作權認證. legalXchain 開發(fā)的開放式平臺― IP360 數(shù)據(jù)權益保護平臺可以對各類形態(tài)電子數(shù)據(jù)提供確權、云監(jiān)測、區(qū)塊鏈追蹤溯源、云取證、司法通道、維權等服務.

醫(yī)療

醫(yī)療技術的發(fā)展高度依賴歷史病例、臨床試驗等醫(yī)療數(shù)據(jù)的共享, 由于醫(yī)療數(shù)據(jù)不可避免的包含大量個人隱私數(shù)據(jù), 其訪問和共享一直受到嚴格的限制. 患者個人難以控制自己的醫(yī)療數(shù)據(jù)訪問權限,隱私性難以保證, 醫(yī)療工作者需花費大量時間精力向相關部門提交申請進行權限審查并在數(shù)據(jù)使用前完成數(shù)據(jù)校驗保證可靠性, 工作效率很低, 并且存在醫(yī)療數(shù)據(jù)被篡改、泄露以及數(shù)據(jù)傳輸不安全等風險.基于區(qū)塊鏈的醫(yī)療智能合約可有效解決上述問題, 在區(qū)塊鏈去中心化、不可篡改、可追溯的網(wǎng)絡環(huán)境中, 醫(yī)療數(shù)據(jù)可被加密存儲在區(qū)塊鏈上, 患者對其個人數(shù)據(jù)享有完整的控制權, 通過智能合約設置訪問權限, 用戶可實現(xiàn)高效安全的點對點數(shù)據(jù)共享, 無需擔心數(shù)據(jù)泄露與篡改, 數(shù)據(jù)可靠性得到充分保障. 三種較為典型的醫(yī)療智能合約有: 1) 醫(yī)療信息存儲和共享, 例如, MeDShare為共享醫(yī)療數(shù)據(jù)提供溯源及審計服務, 其設計采用了智能合約和訪問控制機制, 可有效追蹤數(shù)據(jù)行為, 并在違規(guī)實體違反數(shù)據(jù)權限時撤銷訪問; MedRec是一個去中心化的電子病歷管理系統(tǒng) (Electronic medical records management system), 可以實現(xiàn)患者、衛(wèi)生管理當局、醫(yī)療研究機構之間高效的數(shù)據(jù)分享.醫(yī)學研究型智能合約, Kuo T T 等提出了名為 ModelChain 的框架, 該框架基于區(qū)塊鏈進行醫(yī)療預測建模. 每個參與者都可對模型參數(shù)估計做出貢獻, 而不需要透露任何私人健康信息. 3) 藥品溯源及打假, 如醫(yī)療藥品聯(lián)盟鏈 MediLedger, 電子處方平臺 BlockMedx等可用于加強處方類藥物的溯源能力.

物聯(lián)網(wǎng)與供應鏈

得益于智能設備、信息技術和傳感技術的快速發(fā)展, 近年來物聯(lián)網(wǎng)技術發(fā)展迅猛, 傳統(tǒng)的中心化互聯(lián)網(wǎng)體系已經難以滿足其發(fā)展需求. 首先, 物聯(lián)網(wǎng)將產生海量數(shù)據(jù), 中心化的存儲方式需要投入并維護大量的基礎設施, 成本高昂; 其次, 將數(shù)據(jù)匯總至單一的中心控制系統(tǒng)將不可避免的產生數(shù)據(jù)安全隱患,一旦中心節(jié)點被攻擊損失難以估計; 最后, 由于物聯(lián)網(wǎng)應用將涉及諸多領域, 不同運營商、自組織網(wǎng)絡的加入將造成多中心、多主體同時存在, 只有當各主體間存在互信環(huán)境, 物聯(lián)網(wǎng)才可協(xié)調工作.由此可見, 物聯(lián)網(wǎng)與去中心化去信任的區(qū)塊鏈架構的結合將成為必然的發(fā)展趨勢, 智能合約將在此過程中實現(xiàn)物聯(lián)網(wǎng)復雜流程的自動化, 促進資源共享, 保證安全與效率, 節(jié)約成本. Dorri A 等提出了一種基于區(qū)塊鏈及智能合約的智能家居模型, 探討了模型中的各種交互流程, 并通過仿真實驗證明了此模型將顯著降低物聯(lián)網(wǎng)設備的日常管理費用. Zhang Y 等提出了一種物聯(lián)網(wǎng)電子商務模型, 利用基于智能合約的點對點交易實現(xiàn)物聯(lián)網(wǎng)上智能資產和付費數(shù)據(jù)的交易. Zhang Y Y 等提出了基于智能合約的物聯(lián)網(wǎng)設備訪問控制模型, 該模型由多個訪問控制合約、一個決策合約和一個注冊合約組成, 可實現(xiàn)對物聯(lián)網(wǎng)系統(tǒng)的分布式可信任訪問控制. IoTeX 則是一個以隱私為中心區(qū)塊鏈驅動的去中心化物聯(lián)網(wǎng)網(wǎng)絡, 支持包括共享經濟、智能家居、身份管理與供應鏈在內的多種物聯(lián)網(wǎng)生態(tài)系統(tǒng).
與物聯(lián)網(wǎng)類似, 供應鏈通常包含許多利益相關者, 如生產者、加工者、批發(fā)商、零售商和消費者等,其相關合約將涉及到復雜的多方動態(tài)協(xié)調, 可見性有限, 各方數(shù)據(jù)難以兼容, 商品跟蹤成本高昂且存在盲點. 通過將產品從生產到出售的全過程寫入智能合約, 供應鏈將具有實時可見性, 產品可追溯可驗證, 欺詐和盜竊風險降低, 且運營成本低廉. 其代表性的應用有棉花供應鏈, 醫(yī)療藥品供應鏈等.

智能合約的發(fā)展趨勢與展望

首先在法律層面, 考慮到智能合約意思表示真實性不足、存在不可預見情形、難以追責、缺乏事后救濟等法律問題, 在很長一段時間內, 智能合約將與傳統(tǒng)合約互為補充, 協(xié)同進步: 對智能合約來說, 為充分保障其法律效力, 智能合約將逐步深入對法律法規(guī)的理解, 建立智能合約條款語言的審查和轉化標準, 減少語言轉化過程中的翻譯誤差并形成規(guī)范的合約法律審計標準; 對傳統(tǒng)合約來說, 為應對智能合約催生的新型法律應用場景, 需對現(xiàn)行法律進行補充、調整, 以《民商法》、《合同法》為例, 今后需明確在何種情況下可認定智能合約由當事人意思表示一致、合意達成.其次在性能和隱私層面, 目前智能合約受到區(qū)塊鏈系統(tǒng)本身性能限制, 尚無法處理復雜邏輯和高吞吐量數(shù)據(jù), 缺乏隱私保護, 更無法實現(xiàn)跨鏈, 構建"邏輯層" (Layer2)是大幅改善區(qū)塊鏈及智能合約性能的可行解決方案, 其基本思路是通過可信硬件為智能合約創(chuàng)造隔離的鏈下執(zhí)行環(huán)境, 公有鏈作為"共識層" 記錄最終的通證 (Token) 支付和合約狀態(tài)轉換結果, 借此將智能合約的執(zhí)行與公有鏈的共識機制分離, 實現(xiàn)部分鏈上操作的鏈外管理, 促成高性能、高隱私、可跨鏈的智能合約.再次在智能層面, 目前的智能合約僅是一系列的"If-Then" 式情景―應對式規(guī)則, 并不具備真正意義上的智能性. 我們相信, 隨著以深度學習、認知計算為代表的人工智能技術的發(fā)展, 未來的智能合約將具備感知、學習、推理等傳統(tǒng)意義上智能, 即這些智能體可由 BDI (信念 Belief、愿望 Desire 和意圖 Intention) 模型來表述. 更進一步, 眾多智能合約智能體通過協(xié)作和演化形成復雜社會系統(tǒng), 該系統(tǒng)具有高度的社會復雜性和工程復雜性, 因此不可避免地具有 "默頓系統(tǒng)" 不確定性、多樣性和復雜性等特性. 區(qū)塊鏈技術有望實現(xiàn)軟件定義的去中心化社會系統(tǒng), 特別地, 可以利用智能合約將各項管理規(guī)則、獎懲標準等以程序化代碼的形式部署上鏈, 任何組織和個體均需在既定規(guī)則下行事, 否則將會承擔相應后果. 如此一來, 就有望將"默頓" 社會系統(tǒng)轉化為可全面觀察、可主動控制、可精確預測的"牛頓" 社會系統(tǒng).
ACP 方法 (人工社會 Artiˉcial systems、計算實驗 Computational experiments 和平行執(zhí)行 Par-allel execution) 方法是迄今為止平行社會管理領域唯一成體系化、完整的研究框架. 我們認為, ACP 方法可以自然地與區(qū)塊鏈及其智能合約相結合, 實現(xiàn)智能合約驅動的平行組織/社會管理. 首先, 區(qū)塊鏈中的每個節(jié)點都是分布式系統(tǒng)中的一個自主、自治的智能體, 眾多智能體將通過智能合約構成各類形態(tài)的 DApp, 形成特定組織形式的 DAO/DAC, 并最終聚合成為 DAS. 其次, 智能合約的智能性使其可進行各種"What-If" 類型的虛擬實驗設計、智能推演以及結果評估, 從而觀察和評估各類參數(shù)配置、功能模塊和體系架構在不同實驗場景下的性能表現(xiàn), 并預測其演化規(guī)律. 在該階段, 平行學習、知識自動化等將發(fā)揮重要作用. 最后, 區(qū)塊鏈與物聯(lián)網(wǎng)結合所形成的智能資產使得聯(lián)通現(xiàn)實物理世界與虛擬網(wǎng)絡空間成為可能, 并通過真實和人工社會系統(tǒng)的虛實互動和平行調諧, 實現(xiàn)社會管理和決策的協(xié)同優(yōu)化. 袁勇和王飛躍提出了平行區(qū)塊鏈的概念框架、基礎理論和研究方法體系, 平行區(qū)塊鏈致力于通過實際區(qū)塊鏈系統(tǒng)與人工區(qū)塊鏈系統(tǒng)的平行互動與協(xié)同演化, 實現(xiàn)描述、預測、引導相結合的區(qū)塊鏈系統(tǒng)管理與決策.
最后, 區(qū)塊鏈網(wǎng)絡上大量自治節(jié)點的自主運行以及節(jié)點間通過智能合約的互動協(xié)作, 使得該分布式系統(tǒng)健壯的同時兼?zhèn)漭^高的靈活性. 譬如, 未來 DAO 中的軟件代理將會在得到授權后替代人類經理人負責組織協(xié)調和業(yè)務決策, 并向其他的軟件代理學習并彼此展開競爭. 一定周期后, 軟件代理還會自動評估收益率并對決策做出調整. 這將有助于區(qū)塊鏈技術適應各類復雜多變的應用場景, 進一步促進分布式人工智能的發(fā)展, 為未來可編程社會奠定基礎.

結論

隨著區(qū)塊鏈技術的普及和應用不斷深入, 新興的智能合約技術在學術界和產業(yè)界吸引了廣泛的關注. 智能合約去中心化、去信任、自治自足、不可篡改等特性允許合約各方在無需任何信任基礎或第三方可信權威的情況下完成交易, 同時, 其可嵌入的數(shù)字形式有望促成各種可編程的智能資產、系統(tǒng)和社會, 深入變革金融、管理、醫(yī)療、物聯(lián)網(wǎng)等諸多傳統(tǒng)領域. 在大量商業(yè)應用不斷涌現(xiàn)的同時, 相關學術研究特別是基礎理論研究還處于早期階段, 行業(yè)內尚缺乏方向性研究框架和共同的話語體系. 為此, 本文對智能合約技術的運行機制、主流平臺、關鍵技術、應用領域、研究挑戰(zhàn)與進展進行了全面的梳理, 討論了智能合約的發(fā)展趨勢, 特別地, 我們首先歸納了智能合約的生命周期, 并以此為序首次提出了智能合約基礎架構六層模型, 體現(xiàn)了智能合約的核心研究方向. 本文研究工作以期為未來智能合約研究提供有益的啟發(fā)與參考.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容