題目:An Overview of Smart Contract: Architecture, Applications, and Future Trends
關鍵詞:
smart contract
摘要:
智能合約在金融服務、預測市場、IoT(Internet of Things物聯網)等領域存在廣泛應用的同時,還存在安全和隱私等問題。本文全面介紹區塊鏈支持的智能合約。
- 系統地介紹了智能合約的基本框架、操作機制、平臺以及編程語言;
- 討論應用場景和存在挑戰;
- 描述智能合約的最新進展和未來的發展趨勢(e.g.平行區塊鏈-parallel blockchain)。
介紹:
智能合約是按照協議條款自動執行(self-executing)的合同。bitcoin等加密貨幣代表的區塊鏈技術稱爲blockchain 1.0 時代,具有去中心(decentralization)、防篡改(tamper-resistant)、匿名性(anonymity)和可審計(auditability)。但由於比特幣腳本語言的限制,無法編寫複雜的智能合約。以太坊(Ethereum)等平臺的出現使得用戶能夠在區塊鏈上運行自定義的程序,且編程語言滿足圖靈完備(Turing-complete)。以此被稱爲blockchain2.0。
智能合約存在安全挑戰。2016年6月,遞歸調用攻擊(Recursive calls attack)利用DAO( decentralized autonomous organization)造成經濟損失,以太坊不得不通過應分叉來解決。
智能合約
區塊鏈的基本框架:
區塊鏈系統通常分爲六層,分別是數據層、網絡層、共識層、激勵層、合約層和應用層。
-
數據層:數據塊、信息加密、時間戳
-
網絡層:P2P協議、單點故障容忍SPoF(tolerate single point of failures)
-
共識層:PoW、PoS、PBFT
-
激勵層:去中心化系統中的所有節點都是利己的(self-interested),因此需要經濟獎勵
-
合約層:該層封裝了腳本代碼、算法和複雜的智能合約
-
應用層:Bitcoin系統的主要應用是數字貨幣;Ethereum支持數字貨幣和Decentralized Applications(Dapp);Hyperledger Fabric主要針對企業級應用,其中的Dapp可以通過Go, Java, Python, and Node.js在SDKs上構建。
智能合約的運作機制:
區塊鏈監控智能合約的實時狀態,並在某些條件被觸發後執行智能合約。
平臺和編程語言: -
Ethereum:運行環境,以太坊虛擬機EVM(Ethereum Virtual Machine);編程語言,Solidity;數字貨幣,Ether,Ethereum官網
-
Hyperledger Fabric:運行環境,Linux;優勢,不同組件可插拔,使用容器技術來管理智能合約(Fabric中的智能合約叫做chaincode);編程語言,Go和Java;官網,Fabric官網
特徵與意義:
智能合約具有三個特徵,分別爲自治性(autonomy)、自足性(self-sufficiency)和分散性(decentralization)。
智能合約的應用場景
- 金融交易:股本集資、P2P借貸和、互聯網保險。
- 預測市場:兩個預測工具Augur和Gnosis,還可以用於投票和賭博。
- 物聯網:促進設備之間的信息共享,以加密的方式自動化工作流。實現公寓、自行車、汽車等租賃,智能合約還可用於智能電網(smart grid)
- 其他應用場景:數字版權管理、雲存儲、供應鏈、社交媒體平臺、智能交通等
挑戰
- 可重入漏洞Reentrancy vulnerability:函數在執行結束前被調用多次;
- 交易排序依賴Transaction-Ordering Dependence AKA Front-Running:當一個塊中包含多個調用相同智能合約的事務時,易發生此攻擊。因爲不同的礦工打包交易的順序不一,因此智能合約的最終狀態取決於礦工將交易按照什麼順序進行打包;
- 時間戳依賴Timestamp Dependence:時間戳需要通過礦工本地系統的時間來設置,礦工可以改變這個值。這樣一來,當時間戳作爲觸發條件時就可能存在安全隱患;
- 缺乏可靠的數據輸入Lacking of trustworthy data feeds:智能合約需要外部有信息資源的輸入,然而信息的可靠性無法保證;
- 隱私問題Privacy issues:攻擊者通過歷史數據推測出私人信息,稱此爲去匿名化攻擊deanonymization attack。
研究進展及未來趨勢
研究現狀
- 使用Ethereum-based功能強制交易順序來避免TOD;
- 使用Oyente工具來檢測潛在安全漏洞;
- 通過增強Ethereum操作語義來減少合約的脆弱性;
- Town Crier通過可信web服務器來提供可信數據;
- Hawk模型在保證用戶隱私的前提下使用區塊鏈記錄金融交易。
未來趨勢:平行區塊鏈與智能合約
- 未來社會的發展趨勢是從信息物理系統CPS,Cyber-physical
systems(與物聯網相比更強調控制)到社會物理信息系統CPSS,Cyber-physical-social
systems(在CPS基礎上,進一步納入社會信息、虛擬空間的人工系統信息)。 - ACP方法是目前並行管理領域目前唯一的系統完整的研究框架。ACP可與智能合約相結合。
- 提出並行區塊鏈的概念,其最終目標是實現區塊鏈生態系統的知識自動化。
原文鏈接:https://ieeexplore.ieee.org/document/8500488