999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

智能合約:架構及進展

2019-04-11 12:14:20歐陽麗煒王帥袁勇倪曉春王飛躍
自動化學報 2019年3期
關鍵詞:智能

歐陽麗煒 王帥 袁勇 倪曉春 王飛躍

智能合約的概念最早于1994年由美國計算機科學家Nick Szabo提出并定義為“一套以數字形式指定的承諾,包括合約參與方可以在上面執行這些承諾的協議”[1],其設計初衷是在無需第三方可信權威的情況下,作為執行合約條款的計算機交易協議,嵌入某些由數字形式控制具有價值的物理實體,擔任合約各方共同信任的代理,高效安全履行合約并創建多種智能資產.自動販賣機、銷售點情報管理系統(Point of sales,POS)、電子數據交換系統(Electronic data intercharge,EDI)都可看作是智能合約的雛形.囿于當時計算場景的限制,很長一段時間內智能合約沒有得到廣泛的應用.

直到 2008年,化名為“中本聰”(Satoshi Nakamoto)的學者提出了一種無需信任即可進行點對點交易的加密數字貨幣系統–比特幣[2],人們發現其底層技術區塊鏈與智能合約天然契合:區塊鏈可借助智能合約的可編程性封裝分布式節點的復雜行為;智能合約可借助區塊鏈的去中心化基礎架構在去信任、可執行環境中有效實現.自此,智能合約重煥新生,區塊鏈逐漸成為智能合約最主要的計算場景,智能合約也被賦予了新的含義.

目前業內尚未形成公認的智能合約定義,我們認為:狹義的智能合約可看作是運行在分布式賬本上預置規則、具有狀態、條件響應的,可封裝、驗證、執行分布式節點復雜行為,完成信息交換、價值轉移和資產管理的計算機程序.廣義的智能合約則是無需中介、自我驗證、自動執行合約條款的計算機交易協議.按照其設計目的可分為:旨在作為法律的替代和補充的智能法律合約,旨在作為功能型軟件的智能軟件合約以及旨在引入新型合約關系的智能替代合約(如在物聯網中約定機器對機器商業行為的智能合約)[3].本文主要研究運行在區塊鏈上的智能合約,它們具有區塊鏈數據去中心化、去信任、不可篡改、匿名可溯源等一般特性.

基于比特幣圖靈不完備字節碼語言OPRETURN的比特幣腳本是最早應用于區塊鏈的智能合約,由于OP-RETURN的計算能力非常有限,不支持循環語句,只能實現基本的算術、邏輯運算及驗證加密功能,早期的智能合約通常無法具有復雜邏輯[4].以太坊作為世界上首個內置了圖靈完備編程語言并正式引入智能合約概念的公有區塊鏈,是目前最為流行的智能合約開發平臺.以太坊的核心是可執行任意復雜算法編碼的以太坊虛擬機(Ethereum virtual machine,EVM),所有部署在以太坊上的智能合約都將被編譯成EVM字節碼,在礦工本地隔離的EVM中執行[5].用戶可以按照自身意愿在以太坊平臺上高效快速地開發出包括加密貨幣在內的多種智能合約和建立在智能合約上的去中心化應用(Decentralized applications,DApps).以太坊的出現改變了區塊鏈及智能合約的應用格局,使其不再局限于數字貨幣,開始有機會構建更宏觀的金融系統并應用到其他社會領域.

盡管近年來智能合約發展迅猛,其仍面臨著許多不可忽視的挑戰.以眾所周知的“The DAO”事件為例,2016年6月,攻擊者就通過調用眾籌項目“The DAO”中智能合約的可重入性函數竊取了價值大約6000萬美元的以太幣,由于智能合約不可篡改的特性,以太坊最終被迫執行硬分叉挽回損失,而又因其匿名性,攻擊者目前仍逍遙法外[6].除類似的安全漏洞外,智能合約還存在缺乏可信數據源、隱私問題、性能問題和法律問題等其他挑戰亟待解決.考慮到在智能合約的產業應用如火如荼展開的同時,行業內尚缺乏統一的技術標準和研究框架,本文致力于以區塊鏈智能合約為研究對象,對已有的研究成果進行全面的梳理,首次提出智能合約的基礎架構模型,并以此為基礎概述了智能合約的運行機制、研究挑戰及進展、應用領域和發展趨勢等,以期為智能合約的后續研究提供參考.

本文的組織結構為:第1節系統概述智能合約,包括區塊鏈技術簡介、智能合約運行機制及主流開發平臺總結,首次提出并詳細闡述了智能合約的基礎架構模型;第2節結合智能合約基礎架構模型歸納了智能合約的研究挑戰及進展,包括隱私問題、法律問題、安全問題、機制設計與性能問題和智能合約的形式化驗證等;第3節以金融、管理、醫療、物聯網與供應鏈為例,介紹了智能合約的典型應用領域;第4節展望了智能合約未來可能的發展趨勢;第5節總結了本文內容.

1 智能合約運行機制與基礎模型

1.1 區塊鏈簡介

區塊鏈是一種將數據區塊按照時間順序組合成的鏈式結構,是去中心化系統中各節點共享且共同維護的分布式數據賬本[7],具體的:各節點由P2P組網方式相互連通和交互,受激勵機制激勵貢獻自身算力,根據數據驗證機制及傳播協議,執行、驗證并傳播一段時間內生成的有效交易數據,同時利用Merkle樹、哈希算法、時間戳等技術加密、生成數據區塊,依據共識算法爭奪記賬權,最終獲得記賬權的節點(礦工),將其生成的數據區塊鏈接到區塊鏈主鏈上并獲得相應獎勵,其余節點更新區塊鏈賬本.

區塊鏈具有去信任、去中心化、開放自治、匿名可溯源、信息不可篡改等特性,自問世以來就顯示出廣闊的應用前景,吸引了學術界和工業界的大量關注,目前區塊鏈技術已被應用于醫療、金融、物聯網、能源等諸多領域.一般來說,區塊鏈可按許可權限分為公有區塊鏈、聯盟區塊鏈和私有區塊鏈,其中,公有鏈面向全球所有用戶,任何人都可以在其中讀取數據和發送交易;聯盟鏈由若干業務相關的機構共同參與管理,每個機構都運行著一個或多個節點,讀寫權限僅對聯盟內的節點有限度地開放;私有鏈的讀寫權限由某個組織或機構控制,參與節點的資格被嚴格限制.

基于區塊鏈的分布式架構、共識算法等,智能合約允許相互不信任的用戶在不需要任何第三方可信中介或權威的情況下完成交易,同時,數字形式的智能合約可靈活嵌入各種有形或無形的資產、交易和數據中,實現主動或被動的資產、信息管理與控制,逐步構建可編程的智能資產、系統及社會.

1.2 智能合約的運行機制

圖1 智能合約的運行機制Fig.1 The operating mechanism of smart contracts

智能合約的運行機制如圖1所示,智能合約一般具有值和狀態兩個屬性,代碼中用If-Then和What-If語句預置了合約條款的相應觸發場景和響應規則,智能合約經多方共同協定、各自簽署后隨用戶發起的交易(Transaction,Txn)提交,經P2P網絡傳播、礦工驗證后存儲在區塊鏈特定區塊中,用戶得到返回的合約地址及合約接口等信息后即可通過發起交易來調用合約.礦工受系統預設的激勵機制激勵,將貢獻自身算力來驗證交易,礦工收到合約創建或調用交易后在本地沙箱執行環境(如以太坊虛擬機)中創建合約或執行合約代碼,合約代碼根據可信外部數據源(也稱為預言機,Oracles)和世界狀態的檢查信息自動判斷當前所處場景是否滿足合約觸發條件以嚴格執行響應規則并更新世界狀態.交易驗證有效后被打包進新的數據區塊,新區塊經共識算法認證后鏈接到區塊鏈主鏈,所有更新生效.

由于區塊鏈種類及運行機制的差異,不同平臺上智能合約的運行機制也有所不同,以太坊和超級賬本是目前應用最廣泛的兩種智能合約開發平臺,它們的智能合約運行機制最具代表性,以下將以這兩種平臺為例,闡述智能合約的運行機制.

1)以太坊

以太坊在整體上可看作是一個基于交易的狀態機:起始于一個創世(Genesis)狀態,然后隨著交易的執行,狀態逐步改變一直到最終狀態,這個最終狀態就是以太坊世界的權威版本[5].以太坊中引入了賬戶的概念以取代比特幣未花費交易輸出(Unspent transaction output,UTXO)模型,賬戶分為外部賬戶和合約賬戶兩類,兩類賬戶都具有與之關聯的賬戶狀態和賬戶地址,都可以存儲以太坊專用加密貨幣以太幣,區別在于外部賬戶由用戶私鑰控制,沒有代碼與之關聯,合約賬戶由合約代碼控制,有代碼與之關聯.

用戶只能通過外部賬戶在以太坊中發起交易,交易可以包含二進制交易負載數據(Payload)和以太幣,交易執行過程中可能產生一系列消息調用.當交易或消息調用的接收者為以太坊指定地址?時,創建合約.新合約賬戶地址由合約創建者的地址和該地址發出過的交易數量Nonce計算得到,創建合約交易的Payload被編譯為EVM字節碼執行,執行的輸出作為合約代碼被永久存儲.當接收者為合約賬戶時,合約賬戶內代碼被激發在本地EVM 中執行,Payload作為合約的輸入參數,可信數據源則為合約提供必要外部世界信息.所有執行結束后,返回執行結果,完整交易經礦工廣播驗證后和新的世界狀態一起存入區塊鏈.

考慮到以太坊交易伴隨帶寬消耗,存儲消耗,計算消耗等,為了激勵全球算力的投入和合理分配使用權,避免系統因惡意程序走向失控,以太坊中所有程序的執行都需要支付費用.各種操作費用以Gas為單位計算,任意的程序片段都可以根據規則計算出消耗的燃料數量,完整交易的發起者需支付所有執行費用.交易完成后,剩余的燃料以購買時的價格退回到交易發送者賬戶,未退回的費用作為挖出包含此交易區塊的礦工的獎勵.若交易執行過程中發生燃料不足(Out of gas,OOG)、堆棧溢出、無效指令等異常而中止,交易將成為無效交易,已消耗Gas仍作為礦工貢獻其計算資源的獎勵.

2)超級賬本

超級賬本(Hyperledger fabric)最早是由國際商業機器公司(International business machines corporation,IBM)牽頭發起的致力于打造區塊鏈技術開源規范和標準的聯盟鏈,2015年起成為開源項目并移交給Linux基金會維護.不同于比特幣、以太坊等全球共享的公有鏈,超級賬本只允許獲得許可的相關商業組織參與、共享和維護,由于這些商業組織之間本身就有一定的信任基礎,超級賬本被認為并非完全去中心化.

超級賬本使用模塊化的體系結構,開發者可按需求在平臺上自由組合可插拔的會員服務、共識算法、加密算法等組件組成目標網絡及應用.鏈碼(Chaincode)是超級賬本中的智能合約,開發者利用鏈碼與超級賬本交互以開發業務、定義資產和管理去中心化應用.聯盟鏈中每個組織成員都擁有和維護代表該組織利益的一個或多個Peer節點,聯盟鏈由多個組織的Peer節點共同構成.Peer節點是鏈碼及分布式賬本的宿主,可在Docker容器中運行鏈碼,實現對分布式賬本上鍵–值對或其他狀態數據庫的讀/寫操作,從而更新和維護賬本.

超級賬本的運行過程包含三個階段[8]:

提議(Proposal):應用程序創建一個包含賬本更新的交易提議(Proposal),并將該提議發送給鏈碼中背書策略指定的背書節點集合(Endorsing peers set)作簽名背書.每個背書節點獨立地執行鏈碼并生成各自的交易提議響應后,將響應值、讀/寫集合和簽名等返回給應用程序.當應用程序收集到足夠數量的背書節點響應后,提議階段結束.

打包(Packaging):應用程序驗證背書節點的響應值、讀/寫集合和簽名等,確認所收到的交易提議響應一致后,將交易提交給排序節點(Orderer).排序節點對收到的眾多交易進行排序并分批打包成數據區塊后將數據區塊廣播給所有與之相連接的Peer節點.

驗證(Validation):與排序節點相連接的Peer節點逐一驗證數據區塊中的交易,確保交易嚴格依照事先確定的背書策略由所有對應的組織簽名背書.驗證通過后,所有Peer節點將新的數據區塊添加至當前區塊鏈的末端,更新賬本.需要注意的是,此階段不需要運行鏈碼,鏈碼僅在提議階段運行.

1.3 智能合約的基礎模型

本節將結合區塊鏈上智能合約的設計流程、應用現狀及發展趨勢,歸納智能合約生命周期并提出智能合約基礎模型,該模型一方面囊括智能合約全生命周期中的關鍵技術,另一方面對智能合約技術體系中的關鍵要素進行劃分,體現智能合約核心的研究方向和發展趨勢,為智能合約研究體系的建立與完善提供參考,奠定基礎.

智能合約的生命周期根據其運行機制可概括為協商、開發、部署、運維、學習和自毀六個階段,其中開發階段包括合約上鏈前的合約測試,學習階段包括智能合約的運行反饋與合約更新等.圖2所示為智能合約的基礎架構模型,模型自底向上由基礎設施層、合約層、運維層、智能層、表現層和應用層組成,以下將分層進行闡述.

基礎設施層:封裝了支持智能合約及其衍生應用實現的所有基礎設施,包括分布式賬本及其關鍵技術、開發環境和可信數據源等,這些基礎設施的選擇將在一定程度上影響智能合約的設計模式和合約屬性.

1)分布式賬本及其關鍵技術:智能合約的執行與交互需要依靠共識算法、激勵機制及P2P通信網絡等區塊鏈關鍵技術實現,最終執行結果將記入由全體節點共同維護的分布式賬本.不同的共識算法和激勵機制將影響智能合約的設計模式、執行效率和安全性能.以激勵機制為例,以太坊中智能合約的開發需要額外考慮燃料消耗問題,設計合約時需避免出現燃料耗盡異常(OOG)和死代碼(Dead code)、無用描述、昂貴循環等高耗燃操作.

2)開發環境:狹義的智能合約可看作是運行在區塊鏈上的計算機程序,作為計算機程序,智能合約的開發、部署和調用將涉及到包括編程語言、集成開發環境(IDE)、開發框架、客戶端和錢包等多種專用開發工具.以錢包為例,除作為存儲加密貨幣的電子錢包外,通常還承擔啟動節點,部署合約、調用合約等功能.

3)預言機(Oracles):為保證區塊鏈網絡的安全,智能合約一般運行在隔離的沙箱執行環境中(如以太坊的EVM 及超級賬本的Docker容器等),除交易的附加數據外,預言機可提供可信外部數據源供合約查詢外部世界的世界狀態或觸發合約執行.同時,為保持分布式節點的合約執行結果一致,智能合約也通過查詢預言機實現隨機性.

圖2 智能合約基礎架構模型Fig.2 A basic framework of smart contracts

合約層:封裝了靜態的合約數據,包括合約各方達成一致的合約條款、合約條款代碼化后的情景–應對型規則和合約創建者指定的合約與外界以及合約與合約之間的交互準則等.合約層可看作是智能合約的靜態數據庫,封裝了所有智能合約調用、執行、通信規則.

以智能合約從協商、開發到部署的生命周期為順序,合約各方將首先就合約內容進行協商,合約內容可以是法律條文、商業邏輯和意向協定等.此時的智能合約類似于傳統合約,立契者無需具有專門的技術背景,只需根據法學、商學、經濟學知識對合約內容進行談判與博弈,探討合約的法律效力和經濟效益等合約屬性.隨后,專業的計算機從業者利用算法設計、程序開發等軟件工程技術將以自然語言描述的合約內容編碼為區塊鏈上可運行的“If-Then”或“What-If”式情景–應對型規則,并按照平臺特性和立契者意愿補充必要的智能合約與用戶之間、智能合約與智能合約之間的訪問權限與通信方式等.

運維層:封裝了一系列對合約層中靜態合約數據的動態操作,包括機制設計、形式化驗證、安全性檢查、維護更新、自毀等.智能合約的應用通常關乎真實世界的經濟利益,惡意的、錯誤的、有漏洞的智能合約會帶來巨大的經濟損失,運維層是保證智能合約能夠按照設計者意愿正確、安全、高效運行的關鍵.

以智能合約從協商到自毀的全生命周期為序,機制設計利用信息和激勵理論幫助合約高效實現其功能.形式化驗證與安全性檢查在合約正式部署上鏈前以嚴格的數學方法證明合約代碼的正確性和安全性,保證合約代碼完全按照創建者的本意執行.維護更新在合約部署上鏈后維護合約正常運行并在合約功能難以滿足需求或合約出現可修復漏洞等必要時升級合約.最后,當智能合約生命周期結束或出現不可修復的高危漏洞時,合約可以進行自毀操作以保障網絡安全.需要注意的是,合約的更新與自毀將僅體現在新區塊的區塊數據中,歷史區塊鏈數據始終存在且不可篡改.

智能層:封裝了各類智能算法,包括感知、推理、學習、決策和社交等,為前三層構建的可完全按照創建者意愿在區塊鏈系統中安全高效執行的智能合約增添了智能性.需要指出的是,當前的智能合約并不具備智能性,只能按照預置的規則執行相應的動作.但是,我們認為未來的智能合約將不僅可以按照預定義的“If-Then”式語句自動執行,更可以具備未知場景下“What-If”式智能推演、計算實驗,以及自主決策等功能.

運行在區塊鏈上的各類智能合約可看作是用戶的軟件代理(或稱軟件機器人),由于計算機程序具有強大的可操作性,隨著認知計算、強化學習、生成式對抗網絡(Generative adversarial network,GAN)等人工智能技術的快速發展,這些軟件代理將逐漸具備智能性:一方面,代理個體將從基礎的感知,推理和學習出發逐步實現任務選擇,優先級排序,目標導向行為(Goal-directed behaviors),自主決策等功能:另一方面,代理群體將通過彼此間的交互通信、協調合作、沖突消解等具備一定的社交性.這些自治軟件代理在智能層的學習、協作結果也將反饋到合約層和運維層,優化合約設計和運維方案,最終實現自主自治的多代理系統,從自動化合約轉變為真正意義上的智能化合約.

表現層:封裝了智能合約在實際應用中的各類具體表現形式.包括去中心化應用(Decentralized application,DApp)、去中心化自治組織(Decentralized autonomous organization,DAO)、去中心化自治企業(Decentralized autonomous corporation,DAC)和去中心化自治社會(Decentralized autonomous society,DAS)等.

區塊鏈是具有普適性的去中心化技術架構,可封裝節點復雜行為的智能合約相當于區塊鏈的應用接口,幫助區塊鏈的分布式架構植入不同場景.通過將核心的法律條文、商業邏輯和意向協定存儲在智能合約中,可產生各種各樣的去中心化應用(DApp),而利用前四層構建的多代理系統,又可逐步演化出各類去中心化自治組織(DAO,亦稱去中心化自治企業,DAC)和去中心化自治社會(DAS),這些表現形式有望改進傳統的商業模式和社會生產關系,為可編程社會奠定基礎,并最終促成分布式人工智能的實現.以DAO為例,只需將組織的管理制度和規則以智能合約的形式預先編碼在區塊鏈上,即可實現組織在無中心或權威控制干預下的自主運行.同時,由于DAO中的成員可以通過購買股份、代幣(Token),或提供服務的形式成為股東并分享收益,DAO被認為是一種對傳統“自頂向下”金字塔式層級管理的顛覆性變革,可有效降低組織的運營成本,減少管理摩擦,提高決策民主化.

應用層:封裝了智能合約及其表現形式的具體應用領域.理論上,區塊鏈及智能合約可應用于各行各業,金融、物聯網、醫療、供應鏈等均是其典型應用領域.我們將在第3節詳細討論.

需要特別指出的是,由于智能合約的研究和應用尚處于早期階段,此處提出的智能合約架構模型是一個理想模型.模型中部分要素(特別是智能層中自主自治的多智能體等)仍在探索之中,尚未完全實現.但考慮到他們是智能合約未來重要的發展方向,本文仍將其納入模型中,以提供一定的前瞻性.

2 智能合約的研究挑戰與進展

作為一種快速發展的新興技術,智能合約存在一些可能制約其發展的問題亟待解決.本節將結合上節提出的智能合約基礎架構模型,從隱私、法律、安全、機制設計、性能等問題出發,概述智能合約技術的研究挑戰與最新進展.

2.1 隱私問題

根據智能合約運行機制,智能合約的隱私問題可分為可信數據源隱私問題和合約數據隱私問題兩類,涉及到基礎架構模型中的基礎設施層和合約層.

區塊鏈的匿名性并沒有完全解決智能合約的隱私問題.區塊鏈數據通常是完全公開透明的(尤其是對公有鏈),任何人都可經由公開查詢獲取賬戶余額、交易信息和合約內容等,以金融場景為例,股票交易常被視為機密信息,完全公開的股票交易智能合約將難以保證用戶的隱私.Meiklejohn等曾利用比特幣找零地址推算出部分大宗客戶以及這些客戶間的交易行為[9],Ron等則通過分析比特幣交易圖譜,獲取了某些用戶行為的統計特征[10].另外,某些智能合約在執行時需要向區塊鏈系統請求查詢外部可信數據源,這些請求操作通常是公開的,用戶隱私也將因此受到威脅.這些隱私問題可能導致攻擊者對區塊鏈或智能合約的去匿名攻擊.

為此,Kosba等提出了一個旨在保護用戶隱私的智能合約開發框架Hawk[11].在Hawk中,所有財務交易信息不會被顯式地記錄在區塊鏈上,智能合約分為私密合約和公共合約,私人數據和相關財務信息寫入私密合約后只有合約擁有者可見.Zhang等提出了一種可信數據輸入系統Town Crier[12],Town Crier允許用戶發送私密數據請求,具體地,合約在發送請求之前用Town Crier的公鑰加密請求,Town Crier收到請求后利用私鑰解密,從而保證區塊鏈中其他用戶無法查看請求內容.

2.2 法律問題

智能合約的法律問題主要體現在合約層中傳統合約向智能合約的轉化:傳統合約中法律條文(濕代碼)和智能合約中技術規則(干代碼)間存在巨大的語言鴻溝,前者為了對各種無法精確預見的新案例或邊緣案例實現高度的通用性,常使用一些微妙的、模糊的和靈活的語言在更高的抽象層次起草,而后者為了降低系統的安全風險,須使用嚴格而正式的語言描述定義明確的類別、預先定義的條件和精確規定的方法,兩者在轉化時將不可避免地存在翻譯誤差繼而影響智能合約的法律效力.

常見的智能合約法律問題包括:1)智能合約意思表示真實性不足.智能合約的編碼偏差或立契時的欺詐行為將導致智能合約無法反映立契者真實意愿,我國《合同法》規定基于重大誤解的合同為可撤銷合同,而智能合約一般不可撤銷.2)智能合約存在不可預見情形.現階段智能合約只能處理預定義代碼,無法應對不可預料的情勢變更或邊緣案例.3)智能合約難以追責或事后救濟.智能合約具有匿名性,立契者可能為無行為能力或限制行為能力人,惡意合約或因編碼偏差導致重大誤解時,各方責任難以界定而短時間內難以補救等.針對這些法律問題,更具體的法律條文表述、更全面的技術規則補充、規范的語言轉化方法以及有效的合約法律審計都是可行的解決方案.此外,智能層構建的多代理系統中具備感知、推理、學習、決策和社交能力的軟件代理也有望結合人工智能技術積累法律案例經驗,模仿現實世界的法官和律師,應對未知場景下的辯論和審判[13].

2.3 安全問題

運維層中的安全問題是制約智能合約發展的主要問題:已部署上鏈的智能合約是不可逆轉的,其潛在的安全問題一旦引發就難以被修復,由此造成的經濟損失將難以挽回,同時,區塊鏈的匿名性可能為惡意用戶提供便利,繼而引發現實世界的安全問題.因此,本文將智能合約的安全問題分為漏洞合約安全問題和惡意合約安全問題兩類.

1)漏洞合約.設計一個安全的智能合約的難點在于所有網絡參與者都可能出于自身利益攻擊或欺騙智能合約,設計者必須預見一切可能的惡意行為并設置應對措施,而傳統的程序開發人員很難具備如此完美的編程能力和縝密的經濟思維.

以太坊上智能合約的12種安全漏洞可分為Solidity編程語言漏洞,EVM 虛擬機執行漏洞和區塊鏈系統漏洞三個層次[14].交易順序依賴(Transaction ordering dependence,TOD)、時間戳依賴(Timestamp dependence)、可重入性(Reentrancy vulnerability)和處理異常(Mishandled exceptions)是其中常見的四種漏洞,攻擊者可通過更改交易順序、修改時間戳、調用可重入函數、觸發處理異常等影響智能合約執行結果或竊取資金.為此,Luu等提出了一種可檢查上述4種潛在安全漏洞的符號執行工具Oyente[15],經Oyente檢查發現,在19366個以太坊智能合約中,有8833個存在上述至少一種安全漏洞.

此外,無可信數據源和待優化智能合約也將帶來一定經濟損失,攻擊者可通過向合約輸入虛假數據獲取經濟效益,用戶則需為無用代碼額外付費.Chen等提出了一個名為Gasper的智能合約高耗燃操作檢測工具[16],可自動發現死代碼、無用描述和昂貴的循環操作等.利用Gasper,他們發現在以太坊中部署的超過80%的智能合約(4240個智能合約)至少存在上述一種高耗燃操作,而這些高耗燃操作一旦被大量調用就可能引發拒絕服務攻擊.

2)惡意合約.區塊鏈及智能合約的去中心化、匿名性同樣可能助長惡意合約的產生.違法者可通過發布惡意的智能合約對區塊鏈系統和用戶發起攻擊,也可利用合約實現匿名的犯罪交易,導致機密信息的泄露、密鑰竊取或各種真實世界的犯罪行為.Juels等提出了一種惡意智能合約—PwdTheft,用于盜取用戶密碼并保證立契者和違法者之間的公平交易[17].“絲綢之路”是一個匿名的國際線上市場,它通常作為一個隱藏服務運作,并使用比特幣作為支付媒介[18].絲綢之路上銷售的大部分商品都是現實世界中被控制的商品,如毒品、槍支等.智能合約將使這些地下市場交易更加便捷,最終對社會造成危害.

2.4 機制設計與性能問題

除上述幾種常見的研究挑戰之外,智能合約的機制設計問題和性能問題也不容忽視,完善合理的機制設計和優秀穩定的合約性能是智能合約“殺手級應用”得以落地,智能合約應用范圍得以擴大,智能合約促成的分布式人工智能和可編程社會得以實現的重要支撐.

機制設計:機制設計理論是研究在自由選擇、自愿交換、信息不完全及決策分散化的條件下,通過設計一套機制(規則或制度)來達到既定目標的理論[19].眾所周知,非對稱信息容易造成資源配置的帕累托無效率,這是組織設計中的核心難題.借助于機制設計理論,設計者可以通過設計一組激勵機制來減少或避免效率損失,從而使得參與者的個體利益與組織或社會的整體利益相一致,實現整體系統的激勵相容.對于智能合約而言,機制設計可以決定智能合約實現其目標功能的方式,不同的制度安排和組織結構在交易費用、激勵效果和資源配置效率等方面將產生重要影響,合理的機制設計需充分應用經濟學、商學、法學等多學科交叉知識,對合約立契者專業背景具有極高的要求,有必要對此進行深入研究.

性能問題:智能合約的性能問題可分為合約層設計導致的合約本身性能問題和基礎設施層導致的區塊鏈系統性能問題兩類.待優化的合約機制設計和待優化的智能合約將增加合約執行成本,降低合約執行效率,區塊鏈系統本身存在的吞吐量低、交易延遲、能耗過高、容量和帶寬限制等性能問題也將在一定程度上限制智能合約的性能[20].以區塊鏈系統的吞吐量限制為例,現行的區塊鏈系統中,智能合約是按順序串行執行的,每秒可執行的合約數量非常有限且不能兼容流行的多核和集群架構,難以滿足廣泛應用的需求.Dickerson等針對此提出了一種智能合約并行執行框架[21],允許獨立非沖突的合約同時進行,從而提高系統吞吐量,改善智能合約執行性能.

為使行文清晰,圖3總結了第2.1~2.4節中所述智能合約研究挑戰、典型問題、涉及到的模型要素和要素層次等.

2.5 智能合約的形式化驗證

運維層中的形式化驗證是解決智能合約安全問題的重要手段,也是智能合約的重要研究方向.智能合約的形式化驗證是指利用精確的數學手段和強大的分析工具在合約的設計、開發、測試過程中驗證智能合約是否滿足公平性、正確性、可達性、有界性和無二義性等預期的關鍵性質,以規范合約的生成和執行,提高合約的可靠性和執行力,支持規模化智能合約的高效生成[22].

智能合約的形式化驗證是解決智能合約安全問題的重要思路.在合約上鏈前進行形式化驗證可避免一些常見的安全漏洞,目前已有一些針對合約靜態或動態分析的安全性檢查工具,如Oyente和Mythril[23],他們都是將合約字節碼繪制成控制流圖后分析常見的安全漏洞,美中不足的是,這種方式無法驗證合約的功能正確性,可檢測的安全漏洞有限且可能引發錯誤的警報.Bhargavan等提出了一種針對以太坊Solidity合約功能正確性驗證框架[24],它將Solidity語言和EVM 字節碼轉換為F?語言后驗證代碼的各種屬性,既可排除漏洞也可計算合約消耗Gas限制.類似的智能合約形式化驗證工具還有ZEUS[25]、Manticore[26]、Securify[27]、Solgraph[28]等.目前這些驗證工具大多停留在試驗階段,尚未在真實系統中證明其可靠性,市場中仍亟需完備的、規范的、有指導意義的形式化驗證框架,這將促使形式化驗證成為未來智能合約的重要發展方向.

3 智能合約的應用

隨著區塊鏈技術的逐漸興起,智能合約的應用日益廣泛,本節以金融、管理、醫療、物聯網和供應鏈為例,介紹其應用優勢及應用方向.

3.1 金融

區塊鏈天然的賬本屬性使得智能合約在金融領域有顯著的技術優勢:區塊鏈提供的點對點、去信任交易環境和強大的算力保障可簡化金融交易的流程,確保金融交易的安全,可追溯、不可篡改、公開透明的分布式賬本可便于金融機構對交易行為進行監管[29],在此基礎上,智能合約不僅可以利用自動執行的代碼封裝節點復雜的金融行為以提高自動化交易水平,而且可以將區塊鏈上的任意資產寫入代碼或進行標記以創建智能資產,實現可編程貨幣和可編程金融體系.

圖3 智能合約的研究挑戰Fig.3 The research challenges of smart contracts

基于這些技術優勢,由高盛、摩根大通等財團組成的R3區塊鏈聯盟率先嘗試將智能合約應用于資產清算領域,利用智能合約在區塊鏈平臺Corda上進行點對點清算,以解決傳統清算方式需要涉及大量機構完成復雜審批和對賬所導致的效率低下問題.目前,已有超過200家銀行、金融機構、監管機構和行業協會參與了Corda上的清算結算測試[30?31].此外,智能合約也可為保險行業提供高效、安全、透明的合約保障,提高索賠處理的速度,降低人工處理索賠的成本.Gatteschi等與Bertani等設計了一種旅行保險智能合約,一旦合約檢測到如航班延誤等滿足要求的賠償條件即可自動補償旅客[32?33].智能合約還可應用于電子商務,智能合約降低了合約的簽訂成本,合約雙方無需支付高昂的中介費用,且可利用智能合約自動完成交易.ECoinmerce是一種去中心化的數字資產交易市場,借助智能合約,任何用戶可在ECoinmerce上創建、購買、出售和轉租他們的數字資產[34].類似的應用還有Slock.it,它允許用戶基于區塊鏈出租房地產、汽車、智能設備、路由器等有形資產,這些資產經智能合約編碼獲得身份認證后即可作為智能資產直接完成復雜協議[35].

3.2 管理

傳統的組織管理是自上而下的“金字塔型”架構,容易產生機構臃腫、管理層次多、管理成本高、責任界定不明、信息傳遞不暢、權力集中在上層而下層自主性小、創新潛能難以有效釋放等問題.智能合約和DAO將對管理領域帶來革命性影響.智能合約可以將管理規則代碼化,代碼設定完成后,組織即可按照既定的規則自主運行.組織中的每個個體,包括決策的制定者、執行者、監督者等都可以通過持有組織的股份權益,或提供服務的形式來成為組織的股東和參與者(即前文所述的DAO).DAO使得每個個體均參與到組織的治理,從而充分激發個體的創造性,提高組織決策民主化.此外,編碼在智能合約上的各項管理規則均公開透明,也有助于杜絕各類腐敗和不當行為的產生.

目前,智能合約在管理領域的應用尚處于初級階段,典型應用包括業務流程管理、選舉投票、存證和版權管理等.業務流程管理是指對跨部門/組織的業務流程(如生產流程、各類行政申請流程、財務審批流程、人事處理流程)等進行自動化設計、執行和監控.Beck等和Weber等指出,隨著區塊鏈技術的發展,絕大多數業務流程的控制流以及業務邏輯將會被編碼為智能合約,從而使得業務流程相關的程式/項目/運營管理等愈加去中心化和安全可信[36?37].在選舉投票領域,智能合約通過預先設置好的規則可以低成本、高效率地實現政治選舉、企業股東投票、預測市場[38]等應用,同時區塊鏈保障了投票結果的真實和不可篡改性.McCorry等提出一種運行在以太坊上的E-voting智能合約實施方案[39].Horizon State、Ropsten等DApp亦支持類似應用.在存證和版權管理領域,Rosa等提出應用智能合約來對知識產權進行存在性證明以及著作權認證[40].legalXchain開發的開放式平臺—IP360數據權益保護平臺可以對各類形態電子數據提供確權、云監測、區塊鏈追蹤溯源、云取證、司法通道、維權等服務[41].

3.3 醫療

醫療技術的發展高度依賴歷史病例、臨床試驗等醫療數據的共享,由于醫療數據不可避免地包含大量個人隱私數據,其訪問和共享一直受到嚴格的限制.患者個人難以控制自己的醫療數據訪問權限,隱私性難以保證,醫療工作者需花費大量時間精力向相關部門提交申請進行權限審查并在數據使用前完成數據校驗保證可靠性,工作效率很低,并且存在醫療數據被篡改、泄露以及數據傳輸不安全等風險.

基于區塊鏈的醫療智能合約可有效解決上述問題,在區塊鏈去中心化、不可篡改、可追溯的網絡環境中,醫療數據可被加密存儲在區塊鏈上,患者對其個人數據享有完整的控制權,通過智能合約設置訪問權限,用戶可實現高效安全的點對點數據共享,無需擔心數據泄露與篡改,數據可靠性得到充分保障.三種較為典型的醫療智能合約有:1)醫療信息存儲和共享,例如,MeDShare[42]為共享醫療數據提供溯源及審計服務,其設計采用了智能合約和訪問控制機制,可有效追蹤數據行為,并在違規實體違反數據權限時撤銷訪問;MedRec[43]是一個去中心化的電子病歷管理系統(Electronic medical records management system),可以實現患者、衛生管理當局、醫療研究機構之間高效的數據分享.2)醫學研究型智能合約,Kuo等提出了名為ModelChain的框架[44],該框架基于區塊鏈進行醫療預測建模.每個參與者都可對模型參數估計做出貢獻,而不需要透露任何私人健康信息.3)藥品溯源及打假,如醫療藥品聯盟鏈MediLedger[45],電子處方平臺BlockMedx[46]等可用于加強對處方類藥物的溯源能力.

3.4 物聯網與供應鏈

得益于智能設備、信息技術和傳感技術的快速發展,近年來物聯網技術發展迅猛,傳統的中心化互聯網體系已經難以滿足其發展需求.首先,物聯網將產生海量數據,中心化的存儲方式需要投入并維護大量的基礎設施,成本高昂;其次,將數據匯總至單一的中心控制系統將不可避免地產生數據安全隱患,一旦中心節點被攻擊損失難以估計;最后,由于物聯網應用將涉及諸多領域,不同運營商、自組織網絡的加入將造成多中心、多主體同時存在,只有當各主體間存在互信環境,物聯網才可協調工作.

由此可見,物聯網與去中心化去信任的區塊鏈架構的結合將成為必然的發展趨勢,智能合約將在此過程中實現物聯網復雜流程的自動化,促進資源共享,保證安全與效率,節約成本.Dorri等提出了一種基于區塊鏈及智能合約的智能家居模型[47?48],探討了模型中的各種交互流程,并通過仿真實驗證明了此模型將顯著降低物聯網設備的日常管理費用.Zhang等提出了一種物聯網電子商務模型,利用基于智能合約的點對點交易實現物聯網上智能資產和付費數據的交易[49].Zhang等提出了基于智能合約的物聯網設備訪問控制模型,該模型由多個訪問控制合約、一個決策合約和一個注冊合約組成,可實現對物聯網系統的分布式可信任訪問控制[50].IoTeX則是一個以隱私為中心區塊鏈驅動的去中心化物聯網網絡,支持包括共享經濟、智能家居、身份管理與供應鏈在內的多種物聯網生態系統[51].

與物聯網類似,供應鏈通常包含許多利益相關者,如生產者、加工者、批發商、零售商和消費者等,其相關合約將涉及到復雜的多方動態協調,可見性有限,各方數據難以兼容,商品跟蹤成本高昂且存在盲點.通過將產品從生產到出售的全過程寫入智能合約,供應鏈將具有實時可見性,產品可追溯可驗證,欺詐和盜竊風險降低,且運營成本低廉.其代表性的應用有棉花供應鏈[52],醫療藥品供應鏈[53]等.

4 智能合約的發展趨勢與展望

首先在法律層面,考慮到智能合約意思表示真實性不足、存在不可預見情形、難以追責、缺乏事后救濟等法律問題,在很長一段時間內,智能合約將與傳統合約互為補充,協同進步:對智能合約來說,為充分保障其法律效力,智能合約將逐步深入對法律法規的理解,建立智能合約條款語言的審查和轉化標準,減少語言轉化過程中的翻譯誤差并形成規范的合約法律審計標準;對傳統合約來說,為應對智能合約催生的新型法律應用場景,需對現行法律進行補充、調整,以《民商法》、《合同法》為例,今后需明確在何種情況下可認定智能合約由當事人意思表示一致、合意達成.

其次在性能和隱私層面,目前智能合約受到區塊鏈系統本身性能限制,尚無法處理復雜邏輯和高吞吐量數據,缺乏隱私保護,更無法實現跨鏈,第二層擴展解決方案(Layer 2 scaling solution,Layer 2)[54]是大幅改善區塊鏈及智能合約性能的可行辦法,以Taxa[55]區塊鏈為例,它們的基本思路是通過可信硬件為智能合約創造隔離的鏈下執行環境,公有鏈作為“共識層”記錄最終的通證(Token)支付和合約狀態轉換結果,借此將智能合約的執行與公有鏈的共識機制分離,實現部分鏈上操作的鏈外管理,促成高性能、高隱私、可跨鏈的智能合約.

再次在智能層面,目前的智能合約僅是一系列的“If-Then”式情景–應對型規則,并不具備真正意義上的智能性.我們相信,隨著以深度學習、認知計算為代表的人工智能技術的發展,未來的智能合約將具備感知、學習、推理等傳統意義上智能,即這些智能體可由BDI(信念Belief、愿望Desire和意圖Intention)模型來表述.更進一步,眾多智能合約智能體通過協作和演化形成復雜社會系統,該系統具有高度的社會復雜性和工程復雜性,因此不可避免地具有“默頓系統”不確定性、多樣性和復雜性等特性[56].區塊鏈技術有望實現軟件定義的去中心化社會系統,特別地,可以利用智能合約將各項管理規則、獎懲標準等以程序化代碼的形式部署上鏈,任何組織和個體均需在既定規則下行事,否則將會承擔相應后果.如此一來,就有望將“默頓”社會系統轉化為可全面觀察、可主動控制、可精確預測的“牛頓”社會系統[57].

ACP方法(人工社會Artificial systems、計算實驗Computational experiments和平行執行Parallel execution)方法是迄今為止平行社會管理領域唯一成體系化、完整的研究框架[58].我們認為,ACP方法可以自然地與區塊鏈及其智能合約相結合,實現智能合約驅動的平行組織/社會管理.首先,區塊鏈中的每個節點都是分布式系統中的一個自主、自治的智能體,眾多智能體將通過智能合約構成各類形態的DApp,形成特定組織形式的DAO/DAC,并最終聚合成為DAS[59].其次,智能合約的智能性使其可進行各種“What-If”類型的虛擬實驗設計、智能推演以及結果評估,從而觀察和評估各類參數配置、功能模塊和體系架構在不同實驗場景下的性能表現,并預測其演化規律[60].在該階段,平行學習[61]、知識自動化[56]等將發揮重要作用.最后,區塊鏈與物聯網結合所形成的智能資產使得聯通現實物理世界與虛擬網絡空間成為可能,并通過真實和人工社會系統的虛實互動和平行調諧,實現社會管理和決策的協同優化.袁勇和王飛躍提出了平行區塊鏈的概念框架、基礎理論和研究方法體系,平行區塊鏈致力于通過實際區塊鏈系統與人工區塊鏈系統的平行互動與協同演化,實現描述、預測、引導相結合的區塊鏈系統管理與決策[62].

最后,區塊鏈網絡上大量自治節點的自主運行以及節點間通過智能合約的互動協作,使得該分布式系統健壯的同時兼備較高的靈活性.譬如,未來DAO中的軟件代理將會在得到授權后替代人類經理人負責組織協調和業務決策,并向其他的軟件代理學習并彼此展開競爭.一定周期后,軟件代理還會自動評估收益率并對決策做出調整.這將有助于區塊鏈技術適應各類復雜多變的應用場景,進一步促進分布式人工智能的發展,為未來可編程社會奠定基礎.

5 結論

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

猜你喜歡
智能
智能與自主
讓紙變得智能
一種智能微耕機的研發
智能制造 反思與期望
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來
商周刊(2018年18期)2018-09-21 09:14:46
爭渡智能石化
能源(2018年4期)2018-05-19 01:53:44
主站蜘蛛池模板: 首页亚洲国产丝袜长腿综合| 亚洲精品欧美日本中文字幕| 狼友视频一区二区三区| 亚洲成人一区在线| 爽爽影院十八禁在线观看| 亚洲国产精品无码AV| 超碰91免费人妻| 欧美一级专区免费大片| 中国成人在线视频| 伦精品一区二区三区视频| 在线观看亚洲天堂| 在线免费观看AV| 久久永久免费人妻精品| 18禁影院亚洲专区| 亚洲伦理一区二区| 色偷偷av男人的天堂不卡| 亚洲欧美日韩另类| 日韩欧美国产另类| 激情成人综合网| 中国黄色一级视频| 全部毛片免费看| 久爱午夜精品免费视频| 日本高清免费一本在线观看 | 国产亚洲精久久久久久无码AV| 国产swag在线观看| 国产乱码精品一区二区三区中文 | 免费无码AV片在线观看中文| www.av男人.com| 无码av免费不卡在线观看| 亚洲av日韩av制服丝袜| 不卡无码网| 亚洲精品不卡午夜精品| 欧美一级在线播放| 国产成人免费| 亚洲香蕉伊综合在人在线| 国产成a人片在线播放| 午夜无码一区二区三区在线app| 欧美另类一区| 国产视频一区二区在线观看 | 亚洲国产系列| 久久成人免费| 亚洲国模精品一区| 久久精品电影| 99久久精品免费视频| 在线视频亚洲欧美| 婷婷午夜影院| 久久亚洲高清国产| 国产一线在线| 最近最新中文字幕免费的一页| 一级片一区| 亚洲精品视频在线观看视频| 伊人精品视频免费在线| 欧美成人国产| 亚洲天堂.com| 中文字幕在线日韩91| 成人在线不卡视频| 又大又硬又爽免费视频| 欧美综合中文字幕久久| 亚洲欧洲自拍拍偷午夜色无码| 免费人欧美成又黄又爽的视频| 久久精品国产免费观看频道| 国产精品手机视频| 国产成人超碰无码| 亚洲精品777| 茄子视频毛片免费观看| 亚洲成a人片77777在线播放| 精品国产91爱| 色悠久久久| 成年免费在线观看| 亚洲一区二区约美女探花| 亚洲精品第五页| 亚洲无码视频图片| 亚洲美女久久| 一级毛片在线播放免费| 黄片一区二区三区| 国产高颜值露脸在线观看| 天天综合亚洲| 欧美日韩福利| 亚洲婷婷丁香| 九九精品在线观看| 刘亦菲一区二区在线观看| 久久久国产精品无码专区|