什么是智能合約?它有哪些應用?又有哪些問題?
所謂智能合約,指的是“一套以數字形式指定的承諾,包括合約參與方可以在上面執行這些承諾的協議”。早在1994年,美國計算機科學家尼克·薩博(Nick Szabo)就提出了智能合約的概念。不過,在當時的技術條件之下,這個概念并沒有引起人們的太多重視。直到2008年,中本聰那篇關于比特幣的奠基性論文發表之后,人們才發現作為比特幣底層技術的區塊鏈與智能合約存在著天然的契合,區塊鏈可借助智能合約的可編程性封裝分布式節點的復雜行為,而智能合約則可借助區塊鏈的去中心化基礎架構在去信任、可執行環境中有效實現。自此,智能合約才開始被人們重新重視,而區塊鏈也逐漸成為智能合約最主要的計算場景。

圖1 智能合約的運行機制
資料來源:歐陽麗煒、王帥、袁勇、倪曉春、王飛躍:《智能合約:架構及進展》,《自動化學報》2019年第3期,第447頁。
智能合約的運行機制如圖10所示。它一般具有“值”和“狀態”兩個屬性,代碼中用If-Then和What-If語句預置了合約條款的相應觸發場景和響應規則。智能合約經多方共同協定、各自簽署后隨用戶發起的交易(transaction,Txn)提交,經P2P網絡傳播、礦工驗證后存儲在區塊鏈特定區塊中。用戶得到返回的合約地址及合約接口等信息后即可通過發起交易來調用合約。“礦工”受系統預設的激勵機制激勵,將貢獻自身算力來驗證交易。
“礦工”收到合約創建或調用交易后在本地沙箱執行環境(如以太坊虛擬機)中創建合約或執行合約代碼,合約代碼根據可信外部數據源[也稱為預言機(Oracle Machines)]和世界狀態的檢查信息自動判斷當前所處場景是否滿足合約觸發條件以嚴格執行響應規則并更新世界狀態。交易驗證有效后被打包進新的數據區塊。新區塊經共識算法認證后鏈接到區塊鏈主鏈,所有更新生效。
隨著區塊鏈技術的逐漸興起,智能合約的應用日益廣泛。目前,它在金融、管理、醫療、物聯網和供應鏈等領域都有了應用。
1.金融領域的應用
智能合約在金融領域的應用十分廣泛。首先,它可以被用于資產清算。例如,由高盛、摩根大通等財團組成的R3區塊鏈聯盟率先嘗試將智能合約應用于資產清算領域,利用智能合約在區塊鏈平臺Corda上進行點對點清算。目前,已有超過200家銀行、金融機構、監管機構和行業協會參與了Corda上的清算結算測試。其次,它可以被用于保險理賠。Gatteschi等設計了一種旅行保險智能合約,一旦合約檢測到如航班延誤等滿足要求的賠償條件即可自動補償旅客。最后,它可以用于資產交易環節。
例如,ECoinmerce是一種去中心化的數字資產交易市場,借助智能合約,任何用戶都可在ECoinmerce上創建、購買、出售和轉租其數字資產。類似的應用還有Slock.it,它允許用戶基于區塊鏈出租房地產、汽車、智能設備、路由器等有形資產,這些資產經智能合約編碼獲得身份認證后即可作為智能資產直接完成復雜協議。
2.管理領域的應用
傳統的組織管理是自上而下的“金字塔型”架構,容易產生機構臃腫、管理層次多、管理成本高、責任界定不明、信息傳遞不暢、權力集中在上層而下層自主性小、創新潛能難以有效釋放等問題。智能合約和DAO將對管理領域帶來革命性影響。智能合約可以將管理規則代碼化,代碼設定完成后,組織即可按照既定的規則自主運行。組織中的每個個體,包括決策的制定者、執行者、監督者等都可以通過持有組織的股份權益或提供服務的形式來成為組織的股東和參與者(即前文所述的DAO)。DAO使得每個個體均參與到組織的治理中,從而充分激發個體的創造性,提高組織決策的民主化。此外,編碼在智能合約上的各項管理規則均公開透明,也有助于杜絕各類不當行為。
3.醫療領域的應用
醫療技術的發展高度依賴歷史病例、臨床試驗等醫療數據的共享,由于醫療數據不可避免地包含大量個人隱私數據,其訪問和共享一直受到嚴格的限制。患者個人難以控制自己的醫療數據訪問權限,隱私性難以保證,醫療工作者需花費大量時間和精力向相關部門提交申請進行權限審查并在數據使用前完成數據校驗以保證可靠性,這樣不僅工作效率很低,而且存在醫療數據被篡改、泄露以及數據傳輸不安全等風險。對于以上問題,醫療智能合約可以比較有效地加以解決。醫療數據可被加密存儲在區塊鏈上,患者對其個人數據享有完整的控制權,通過智能合約設置訪問權限,用戶可實現高效安全的點對點數據共享,無需擔心數據泄露與篡改,數據可靠性得到充分保障。
目前該應用領域有三種比較典型的智能合約。一是醫療信息存儲和共享合約。例如,MedShare為共享醫療數據提供溯源及審計服務,其設計采用了智能合約和訪問控制機制,可有效追蹤數據行為,并在違規實體違反數據權限時撤銷訪問。二是醫學研究型智能合約。例如Kuo等提出了名為ModelChain的框架。該框架基于區塊鏈進行醫療預測建模,每個參與者都可對模型參數估計作出貢獻,而不需要透露任何私人健康信息。三是藥品溯源及打假合約。例如,醫療藥品聯盟鏈MediLedger、電子處方平臺BlockMedx等可用于加強對處方類藥物的溯源能力。
4.物聯網與供應鏈領域的應用
物聯網與去中心化、去信任的區塊鏈架構的結合將成為必然的發展趨勢。智能合約將在此過程中實現物聯網復雜流程的自動化、促進資源共享、保證安全與效率、節約成本。例如,Dorri等提出了一種基于區塊鏈及智能合約的智能家居模型,探討了模型中的各種交互流程,并通過仿真實驗證明了此模型將顯著降低物聯網設備的日常管理費用。Zhang等提出了一種物聯網電子商務模型,利用基于智能合約的點對點交易實現物聯網上智能資產和付費數據的交易。Zhang等提出了基于智能合約的物聯網設備訪問控制模型,該模型由多個訪問控制合約、一個決策合約和一個注冊合約組成,可實現對物聯網系統的分布式可信任訪問控制。IoTeX則是一個以隱私為中心區塊鏈驅動的去中心化物聯網網絡,支持包括共享經濟、智能家居、身份管理與供應鏈在內的多種物聯網生態系統。
與物聯網類似,供應鏈通常包含許多利益相關者,如生產者、加工者、批發商、零售商和消費者等,其相關合約將涉及復雜的多方動態協調,可見性有限,各方數據難以兼容,商品跟蹤成本高昂且存在盲點。通過將產品從生產到出售的全過程寫入智能合約,供應鏈將具有實時可見性,產品可追溯、可驗證,欺詐和盜竊風險降低,且運營成本低廉。其代表性的應用有棉花供應鏈、醫療藥品供應鏈等。
盡管已經有了廣泛的應用,但總體來說智能合約目前還處于發展的初期,仍有很多問題亟待解決:
(1)安全問題。
雖然智能合約擁有很高的效率,但其安全性依然是有待檢驗的。例如,2016年5月,以太坊最大的眾籌項目The DAO被攻擊者利用程序中的遞歸調用漏洞獲取了大量以太幣(Ether,ETH),這個問題引發了大眾對于智能合約安全性和法律問題的思考。Luu等提出了檢查智能合約漏洞的工具,文中利用工具檢查了以太坊中包含3068654以太幣、價值3萬美金的19366個合約,其中有8833個合約至少包含一種安全漏洞。
(2)法律問題。
The DAO事件也對法律提出了巨大挑戰:首先,界定“漏洞”困難,智能合約與實際合約無法顯示轉換;其次,由于區塊鏈不可更改,智能合約難以撤銷。目前也有一些研究從法律角度討論智能合約的模板與標準化格式,法律與參數、代碼聯系以及數據標準與合約特點。
(3)效率問題。
區塊鏈系統本身存在的吞吐量低、交易延遲、能耗過高、容量和帶寬限制等性能問題極大地限制了智能合約的執行效率。同時由于智能合約按順序執行,隨著交易增多,交易確認將變很慢,且交易費會變高。
總之,要想揚長避短,發揮好智能合約的優勢、減少使用中出現的各種問題,我們還有很多工作需要做。




























