• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于區(qū)塊鏈的智能合約技術(shù)研究進(jìn)展

      2020-09-26 09:32:33朱巖王靜郭倩劉國(guó)偉
      網(wǎng)絡(luò)空間安全 2020年9期
      關(guān)鍵詞:智能合約運(yùn)行機(jī)制部署

      朱巖 王靜 郭倩 劉國(guó)偉

      摘 ? 要:智能合約被認(rèn)為是第二代區(qū)塊鏈的技術(shù)核心,它是區(qū)塊鏈從虛擬貨幣、金融交易協(xié)議到通用工具發(fā)展的必然結(jié)果。然而,目前智能合約技術(shù)尚不完善,對(duì)智能合約概念及內(nèi)涵缺乏較為系統(tǒng)的分析,對(duì)基于區(qū)塊鏈的智能合約軟件系統(tǒng)也缺少體系上的歸納與總結(jié)。有鑒于此,文章從智能合約的基本定義入手,介紹了智能合約的發(fā)展歷史、分類、規(guī)范等概念,進(jìn)而從抽象計(jì)算模型角度出發(fā)給出了智能合約的通用架構(gòu),并對(duì)智能合約語(yǔ)言與編譯機(jī)制、合約部署機(jī)制與合約運(yùn)行過程予以詳盡分析,上述結(jié)果將有利于把握智能合約未來研究方向。

      關(guān)鍵詞:智能合約;語(yǔ)言;框架;部署;運(yùn)行機(jī)制

      中圖分類號(hào): TP312 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

      Abstract: Smart contracts are considered to be the technical core of the second-generation blockchain, which is the inevitable result of the development of blockchain from virtual currency, financial transaction protocols to general tools. However, the current smart contract technology is not perfect, and there is a lack of a systematic analysis of the concept and connotation of smart contracts, as well as a systematic induction and summary of the smart contract software system based on blockchain. In view of this, this paper starts with the basic definition of smart contract, introduces the development history, classification, specification and other concepts of smart contract, and then gives the general framework of smart contract from the perspective of abstract computing model. Moreover, we provided a detailed analysis of the smart contract language and compilation mechanism, contract deployment mechanism and contract operation process. The above results will help to grasp the future research direction of smart contracts.

      Key words: smart contracts; language; frame; disposition; operating mechanism

      1 引言

      智能合約(Smart Contract)被認(rèn)為是第二代區(qū)塊鏈的技術(shù)核心,它是區(qū)塊鏈從虛擬貨幣、金融交易協(xié)議到通用工具發(fā)展的必然結(jié)果。目前幾乎所有的區(qū)塊鏈技術(shù)公司都已在其產(chǎn)品中支持智能合約產(chǎn)品,例如,以太坊基于虛擬機(jī)的智能合約平臺(tái)、基于Bitcoin區(qū)塊鏈的RSK平臺(tái)、IBM公司提出的企業(yè)級(jí)HyperLeger Fabric平臺(tái)等,這些產(chǎn)品的推出極大的豐富了智能合約技術(shù)的內(nèi)涵和范圍,為區(qū)塊鏈技術(shù)在不同領(lǐng)域的現(xiàn)實(shí)應(yīng)用奠定了基礎(chǔ),也代表了區(qū)塊鏈未來發(fā)展的方向。

      目前智能合約技術(shù)尚不完善,對(duì)智能合約概念及其內(nèi)涵缺乏較為系統(tǒng)的介紹,對(duì)基于區(qū)塊鏈的智能合約軟件系統(tǒng)也缺少體系上的歸納與總結(jié)。有鑒于此,本文從智能合約的基本概念入手,介紹智能合約的歷史、分類、規(guī)范等基本概念,進(jìn)而對(duì)智能合約的框架、語(yǔ)言與編譯、部署與運(yùn)行進(jìn)行闡述。本文研究結(jié)果將為相關(guān)領(lǐng)域研究提供系統(tǒng)的指導(dǎo),有利于更好地把握智能合約未來研究方向。

      2 智能合約概念

      合約是特定人之間簽訂的契約,在生活中隨處可見,是一個(gè)使未取得彼此信任的各參與方具有安排權(quán)利與義務(wù)的商定框架。而智能合約在廣義上講是指任何符合多方之間約定的計(jì)算機(jī)協(xié)議。首先,智能合約是一種可由計(jì)算機(jī)處理的協(xié)議,與通常由單臺(tái)計(jì)算機(jī)執(zhí)行的算法不同,它需要兩名或多名參與者共同協(xié)作來完成計(jì)算任務(wù);其次,計(jì)算機(jī)協(xié)議的運(yùn)行必須滿足參與者事先的約定,這既體現(xiàn)了協(xié)議遵循的可信性與合規(guī)性(或合法性),又體現(xiàn)了為了保證協(xié)議合規(guī)性所必需的技術(shù)手段,包括協(xié)議驗(yàn)證、存證、爭(zhēng)議解決等[1]。此外,與傳統(tǒng)紙質(zhì)協(xié)議相比較,多方協(xié)議的計(jì)算機(jī)化以及相應(yīng)保障技術(shù)的采納間接體現(xiàn)了智能合約的智能化。

      上述定義較為廣泛,幾乎能夠?qū)⑺械挠?jì)算機(jī)協(xié)議囊括其中。據(jù)此,維基百科中給出了另一個(gè)針對(duì)法律合約的智能合約定義:“一種旨在以數(shù)字方式促進(jìn)、驗(yàn)證、加強(qiáng)合約協(xié)商和履行的計(jì)算機(jī)協(xié)議(Smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract)”。這一定義體現(xiàn)了智能合約的對(duì)象是法律合約,計(jì)算機(jī)協(xié)議是保障合約協(xié)商和履行的手段,該手段的目的是促進(jìn)、驗(yàn)證、加強(qiáng)合約協(xié)商和履行,而數(shù)字方式是手段的表現(xiàn)形式。

      (3)智能合約運(yùn)行環(huán)境

      提供一種可信運(yùn)行環(huán)境來運(yùn)行智能合約代碼,包括接收外部發(fā)來的可信事件或內(nèi)部交易,建立可信智能合約運(yùn)行虛擬機(jī)或沙箱,下載相關(guān)區(qū)塊鏈交易中的合約代碼,觸發(fā)通過執(zhí)行機(jī)構(gòu)和指令系統(tǒng)執(zhí)行合約代碼對(duì)事件或交易進(jìn)行響應(yīng),并將輸出結(jié)果以交易方式寫入?yún)^(qū)塊鏈。

      隨著智能合約技術(shù)的發(fā)展,已經(jīng)出現(xiàn)越來越多的工具輔助智能合約完成程序設(shè)計(jì)、代碼生成、部署與執(zhí)行等功能,也使得智能合約構(gòu)架日趨完善。

      5 智能合約運(yùn)行機(jī)理

      為了更好地理解智能合約的原理,下面將分別對(duì)智能合約語(yǔ)言與編譯、智能合約的區(qū)塊鏈部署、以及合約代碼運(yùn)行的機(jī)理分別加以介紹。

      5.1 智能合約語(yǔ)言與編譯機(jī)制

      智能合約語(yǔ)言是現(xiàn)實(shí)應(yīng)用中各種業(yè)務(wù)與智能合約平臺(tái)之間的中介,也是幫助智能合約的使用者快速生成智能合約程序和代碼的重要工具[9]。各智能合約平臺(tái)都已推出自己的智能合約語(yǔ)言,例如,比特幣使用較為底層的棧式腳本語(yǔ)言、以太坊的智能合約目前支持Serpent和Solidity兩種編程語(yǔ)言(Serpent類似于Python語(yǔ)言,而Solidity類似于JavaScript語(yǔ)言)、超級(jí)賬本支持如Go、Java等語(yǔ)言直接編寫;此外,其它平臺(tái)也以傳統(tǒng)編程語(yǔ)言(如C、C++、Java)基礎(chǔ)上給出了智能合約開發(fā)工具。從語(yǔ)言形式和運(yùn)行環(huán)境上講,目前的智能合約可分為三類。

      (1)腳本型智能合約:通過區(qū)塊鏈中定義好的腳本指令和棧式類Forth語(yǔ)言完成基本的計(jì)算與條件控制,例如,比特幣腳本系統(tǒng)。

      (2)通用型智能合約:其語(yǔ)言直接采用傳統(tǒng)程序語(yǔ)言,部署在虛擬機(jī)(VM)或容器(Docker)里,通過規(guī)定好的接口與區(qū)塊鏈進(jìn)行交互。例如,超級(jí)賬本平臺(tái)中的鏈碼采用Java、Go等語(yǔ)言,Neo平臺(tái)支持將C#、Java和Python等多種語(yǔ)言編譯為NeoVM支持的指令集。

      (3)專用型智能合約:模仿傳統(tǒng)程序語(yǔ)言并添加了與區(qū)塊鏈交互的特殊元素,如以太坊的Solidity語(yǔ)言,同時(shí)該語(yǔ)言含有g(shù)as計(jì)費(fèi)等特殊功能。

      智能合約是一個(gè)跨學(xué)科的概念,涉及商業(yè)、金融、合同法和信息技術(shù),設(shè)計(jì)和開發(fā)智能合約也需要來自不同領(lǐng)域的專家的密切合作。然而,上述三種智能合約仍然建立在計(jì)算機(jī)編程語(yǔ)言基礎(chǔ)上,對(duì)于非計(jì)算機(jī)專業(yè)人員依然難以理解和掌握。

      針對(duì)這一問題,近年來一種被稱為高級(jí)智能合約語(yǔ)言已引起學(xué)術(shù)界的廣泛關(guān)注,例如,面向現(xiàn)實(shí)合約的智能合約描述語(yǔ)言(SPESC)[10]。這種語(yǔ)言以現(xiàn)實(shí)合約的語(yǔ)法結(jié)構(gòu)為基礎(chǔ),采用近似自然語(yǔ)言的形式進(jìn)行編寫,明確定義了當(dāng)事人的義務(wù)和權(quán)利,以及加密貨幣的交易規(guī)則,便于法律人士與計(jì)算機(jī)人員協(xié)作合約開發(fā),對(duì)于促進(jìn)智能合約的專業(yè)性、易用性、可理解性,以及協(xié)作開發(fā)等方面能力有重要意義。

      5.2 智能合約的區(qū)塊鏈部署

      區(qū)塊鏈?zhǔn)侵悄芎霞s得以實(shí)施的基礎(chǔ),智能合約的自動(dòng)化執(zhí)行、運(yùn)行結(jié)果的有效性,以及合約代碼的安全都依賴于區(qū)塊鏈[11],因此智能合約與區(qū)塊鏈的有效結(jié)合與部署成為智能合約實(shí)施的關(guān)鍵[12~13]。為了便于被理解和掌握,智能合約通常將區(qū)塊鏈轉(zhuǎn)化為幾個(gè)抽象概念:共享數(shù)據(jù)庫(kù)、交易和區(qū)塊。下面將分別對(duì)其進(jìn)行介紹。

      首先,區(qū)塊鏈對(duì)智能合約而言可被視為全球共享的交易數(shù)據(jù)庫(kù),其中,交易被用來描述每一次通過智能合約語(yǔ)言接口執(zhí)行的行為。全球共享則意味著每個(gè)人都可以通過智能合約網(wǎng)絡(luò)接口來讀取交易數(shù)據(jù)庫(kù)中存儲(chǔ)的條目。

      其次,交易可理解為更改共享數(shù)據(jù)庫(kù)中某些內(nèi)容的行為,而且保證該行為必須被數(shù)據(jù)庫(kù)網(wǎng)絡(luò)中其它參與方所接受。后者也被稱為“all-or-nothing”原則,如果交易要同時(shí)更改兩個(gè)值,要么根本沒有完成,要么完成所有修改。此外,在將交易完成后,沒有其它交易可以更改這一過程。

      再次,交易從安全性來看始終需要由發(fā)起方(創(chuàng)建者)進(jìn)行簽名,這可保護(hù)訪問共享數(shù)據(jù)庫(kù)的特定修改必須經(jīng)過授權(quán)。從已有的數(shù)字貨幣交易可知,簽名機(jī)制可保證簡(jiǎn)單的檢查即可確保只有持有該賬戶密鑰的人才能從該賬戶中轉(zhuǎn)移資金。

      此外,智能合約所生成的交易將被捆綁到一個(gè)所謂的“區(qū)塊”中,然后將它被分發(fā)到共享數(shù)據(jù)庫(kù)的所有參與節(jié)點(diǎn)。如果兩筆交易相互矛盾,那么最后一筆交易將被拒絕,并且不會(huì)成為交易的一部分,因此,區(qū)塊被理解在時(shí)間上形成線性關(guān)系的存儲(chǔ)單元,并為智能合約選擇一個(gè)全球公認(rèn)的交易順序,以解決沖突??傊瑓^(qū)塊鏈為智能合約提供了一種安全和一致性的共享交易數(shù)據(jù)庫(kù)。

      最后,對(duì)于智能合約的使用者和編程人員而言,當(dāng)前智能合約平臺(tái)已經(jīng)能夠屏蔽掉區(qū)塊鏈中的很多技術(shù)細(xì)節(jié),使得區(qū)塊鏈中的各種復(fù)雜機(jī)制(哈希、對(duì)等網(wǎng)絡(luò)、共識(shí)、挖礦等)變成了智能合約平臺(tái)提供的承諾。因此,開發(fā)和使用人員只需要關(guān)注自己的業(yè)務(wù)需求,充分利用智能合約平臺(tái)提供的部署工具,而不需要考慮如何將智能合約執(zhí)行代碼轉(zhuǎn)化為區(qū)塊鏈數(shù)據(jù)的具體實(shí)現(xiàn)。

      5.3 合約代碼運(yùn)行

      當(dāng)滿足觸發(fā)條件時(shí),被部署在區(qū)塊鏈上的智能合約代碼將被區(qū)塊鏈系統(tǒng)自動(dòng)執(zhí)行,并依照合約規(guī)定完成各種資產(chǎn)的轉(zhuǎn)移。這一過程需要貨幣激勵(lì)、執(zhí)行機(jī)構(gòu)、指令系統(tǒng)和觸發(fā)條件等機(jī)制相互協(xié)調(diào),才能保證合約代碼自動(dòng)和無(wú)差錯(cuò)地被執(zhí)行。

      首先,獎(jiǎng)勵(lì)機(jī)制是合約代碼執(zhí)行的必備條件,原因在于智能合約代碼是在區(qū)塊鏈節(jié)點(diǎn)內(nèi)(虛擬機(jī)、容器等)被執(zhí)行的,必然帶來存儲(chǔ)、計(jì)算、帶寬等方面的開銷,因此需要智能合約發(fā)布者預(yù)付一定量的貨幣(如以太網(wǎng)gas)作為獎(jiǎng)勵(lì)。如果預(yù)付金額太小了,不足以執(zhí)行所有的操作,那么操作就會(huì)失敗,狀態(tài)將會(huì)回滾。

      其次,執(zhí)行機(jī)構(gòu)是指智能合約代碼運(yùn)行的環(huán)境,目前主要有腳本、容器、虛擬機(jī)等三種運(yùn)行方式,具體特征為:

      (1)腳本(Script)方式

      最早在比特幣系統(tǒng)中被采用,是一種類似Forth語(yǔ)言的指令體系,由腳本解釋器解釋執(zhí)行,用于驗(yàn)證該筆交易的合法性。交易一般會(huì)包括輸入腳本和輸出腳本兩個(gè)部分,分別用于解鎖上一筆交易的輸出以及設(shè)置該筆交易金額的解鎖條件。

      (2)容器(Docker)方式

      是不同于虛擬機(jī)的一種新型虛擬化技術(shù),它只需要將智能合約所需要的依賴軟件打包即可獨(dú)立運(yùn)行,而不需要一個(gè)附加的虛擬操作系統(tǒng)環(huán)境。它比虛擬機(jī)方式更為獨(dú)立和靈活,可調(diào)用的資源也更多。Hyperledger Fabric是典型使用容器方式的智能合約平臺(tái)。

      (3)虛擬機(jī)(VM)方式

      它通過在用戶程序和底層環(huán)境中增加的一層中間環(huán)境,提供一個(gè)完全對(duì)底層透明的執(zhí)行環(huán)境:屏蔽區(qū)塊鏈節(jié)點(diǎn)自身執(zhí)行環(huán)境的區(qū)別,在所有節(jié)點(diǎn)上運(yùn)行均一致。它按照?qǐng)?zhí)行方式分為兩種:基于棧(Stack)和基于寄存器(Register)的虛擬機(jī),其中,基于棧的虛擬機(jī)是目前實(shí)現(xiàn)智能合約最多的方式,也演化出多種智能合約運(yùn)行方法。

      此外,指令系統(tǒng)在智能合約中也是較重要的概念。指令是智能合約發(fā)給運(yùn)行環(huán)境的命令,智能合約的執(zhí)行代碼是由一系列的指令組成的,而指令系統(tǒng)是智能合約運(yùn)行環(huán)境提供的語(yǔ)言系統(tǒng),是全部指令的集合,反映了運(yùn)行環(huán)境所擁有的基本功能。因此,智能合約指令系統(tǒng)是由所采用的運(yùn)行方式?jīng)Q定的。

      最后,智能合約代碼中預(yù)置了合約條款的相應(yīng)觸發(fā)場(chǎng)景和響應(yīng)規(guī)則,運(yùn)行環(huán)境需要根據(jù)可信外部事件和內(nèi)部交易狀態(tài),自動(dòng)地判斷當(dāng)前所處場(chǎng)景是否滿足合約觸發(fā)條件,嚴(yán)格執(zhí)行響應(yīng)規(guī)則并向區(qū)塊鏈發(fā)送更新合約狀態(tài)的交易,經(jīng)共識(shí)算法認(rèn)證后鏈接到區(qū)塊鏈中,使更新生效。

      6 結(jié)束語(yǔ)

      智能合約作為普遍認(rèn)為的“第二代區(qū)塊鏈技術(shù)”,任何人都可接入其中,不需要事先審查或者預(yù)付成本,又可以移除經(jīng)濟(jì)交易中對(duì)第三方機(jī)構(gòu)的信任必要。本文對(duì)智能合約的研究進(jìn)展進(jìn)行了歸納總結(jié),介紹了智能合約的發(fā)展歷史以及基本概念、并詳細(xì)闡述了智能合約語(yǔ)言現(xiàn)有的分類和不同的編譯機(jī)制、智能合約在區(qū)塊鏈上的部署方式以及運(yùn)行機(jī)制。

      目前幾乎所有的區(qū)塊鏈技術(shù)公司都已在其產(chǎn)品中支持智能合約產(chǎn)品,例如,以太坊基于虛擬機(jī)的智能合約平臺(tái)、基于Bitcoin區(qū)塊鏈的RSK平臺(tái)、IBM公司提出的企業(yè)級(jí)HyperLeger Fabric平臺(tái)等。這些產(chǎn)品的推出極大的豐富了智能合約技術(shù)的內(nèi)涵和范圍,為區(qū)塊鏈技術(shù)在不同領(lǐng)域的現(xiàn)實(shí)應(yīng)用奠定了基礎(chǔ),也代表了區(qū)塊鏈未來發(fā)展的方向。但同時(shí)智能合約跨領(lǐng)域合作、標(biāo)準(zhǔn)統(tǒng)一、法律化結(jié)合等多個(gè)研究方向都尚不完善,這些問題的存在囿限著智能合約的市場(chǎng)普及和應(yīng)用廣度,是現(xiàn)在智能合約研究極具挑戰(zhàn)性的方向。

      基金項(xiàng)目:

      1.國(guó)家科技部重點(diǎn)研發(fā)計(jì)劃(項(xiàng)目編號(hào):2018YFB1402702);

      2.國(guó)家自然科學(xué)基金(項(xiàng)目編號(hào):61972032)。

      參考文獻(xiàn)

      [1] Bartoletti M, Pompianu L. An empirical analysis of smart contracts: platforms, applications, and design patterns[C]// International conference on financial cryptography and data security. Springer, Cham, 2017: 494-509.

      [2] Szabo, Nick. "Smart contracts: Building blocks for digital markets[N]. 1996." (2001).

      [3] Szabo N. Smart contracts in essays on smart contracts, commercial controls and security (1994)[EB/OL].http://www. fon. hum. uva. nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best. vwh. net/smart. contracts. html.

      [4] Beaumont P H. Fixed-income Synthetic Assets: Packaging, Pricing, and Trading Strategies for Financial Professionals[M]. John Wiley & Sons, 1992.

      [5] 賀海武, 延安, 陳澤華. 基于區(qū)塊鏈的智能合約技術(shù)與應(yīng)用綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2018, 55(11): 2452-2466.

      [6] Christidis K, Devetsikiotis M. Blockchains and smart contracts for the internet of things[J]. Ieee Access, 2016, 4: 2292-2303.

      [7] 朱巖, 甘國(guó)華, 鄧迪, 等. 區(qū)塊鏈關(guān)鍵技術(shù)中的安全性研究[J]. 信息安全研究, 2016, 2(12): 1090-1097.

      [8] Frantz C K, Nowostawski M. From institutions to code: Towards automated generation of smart contracts[C]//2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems (FAS* W). IEEE, 2016: 210-215.

      [9] 何小東, 易積政, 陳愛斌. 區(qū)塊鏈技術(shù)的應(yīng)用進(jìn)展與發(fā)展趨勢(shì)[J]. 世界科技研究與發(fā)展, 2018, 40(6): 615-626.

      [10] He X, Qin B, Zhu Y, et al. Spesc: A specification language for smart contracts[C]//2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC). IEEE, 2018, 1: 132-137.

      [11] Sklaroff J M. Smart contracts and the cost of inflexibility[J]. U. Pa. L. Rev., 2017, 166: 263.

      [12] Watanabe H, Fujimura S, Nakadaira A, et al. Blockchain contract: Securing a blockchain applied to smart contracts[C]//2016 IEEE international conference on consumer electronics (ICCE). IEEE, 2016: 467-468.

      [13] 王繼輝.區(qū)塊鏈與智能合約圖譜分析[J].網(wǎng)絡(luò)空間安全, 2019,10(11):1-6+25.

      猜你喜歡
      智能合約運(yùn)行機(jī)制部署
      一種基于Kubernetes的Web應(yīng)用部署與配置系統(tǒng)
      晉城:安排部署 統(tǒng)防統(tǒng)治
      部署
      網(wǎng)上公共服務(wù)平臺(tái)運(yùn)行機(jī)制評(píng)析
      減刑、假釋工作運(yùn)行機(jī)制之重構(gòu)
      區(qū)塊鏈技術(shù)在互聯(lián)網(wǎng)保險(xiǎn)行業(yè)的應(yīng)用探討
      校企合作運(yùn)行機(jī)制初探
      新課程研究(2016年1期)2016-12-01 05:52:15
      區(qū)塊鏈技術(shù)在會(huì)計(jì)中的應(yīng)用展望
      部署“薩德”意欲何為?
      太空探索(2016年9期)2016-07-12 10:00:02
      智能合約與金融合約
      商(2016年6期)2016-04-20 17:50:36
      麦盖提县| 昭通市| 江阴市| 青田县| 华池县| 大方县| 田阳县| 灌云县| 阿拉善右旗| 尚志市| 察哈| 楚雄市| 浦北县| 邵武市| 马关县| 全州县| 德惠市| 南澳县| 皋兰县| 武城县| 新津县| 乐陵市| 乳源| 大冶市| 东源县| 六枝特区| 兴宁市| 涡阳县| 元江| 特克斯县| 霍邱县| 略阳县| 东乡县| 呼玛县| 民丰县| 青冈县| 达拉特旗| 鹤峰县| 太仆寺旗| 修文县| 靖西县|