• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    智能合約的安全代碼要求研究★

    2022-11-17 08:13:38賓建偉相里朋包小敏
    關(guān)鍵詞:智能

    賓建偉,相里朋,包小敏

    (工業(yè)和信息化部電子第五研究所,廣東 廣州 511370)

    0 引言

    區(qū)塊鏈作為一種創(chuàng)新技術(shù),顛覆了原有的商業(yè)邏輯和運(yùn)行規(guī)則。區(qū)塊鏈的分布式賬本技術(shù)和共識(shí)機(jī)制,構(gòu)建了低成本的互信機(jī)制,建立了“去中心化”的交易體系,實(shí)現(xiàn)了價(jià)值的直接傳遞,有助于提高運(yùn)營(yíng)效率、實(shí)現(xiàn)業(yè)務(wù)場(chǎng)景的創(chuàng)新[1]。在金融領(lǐng)域,區(qū)塊鏈技術(shù)不僅可以為支付、數(shù)字資產(chǎn)交易和智能合約保險(xiǎn)等新興金融商業(yè)模式提供底層技術(shù)支撐,同時(shí),借助區(qū)塊鏈構(gòu)建低成本的生態(tài)信任體系,可大大地降低金融交易成本、提高金融運(yùn)行效率。故近年來(lái)區(qū)塊鏈的發(fā)展非常迅速[2]。

    區(qū)塊鏈一開始就應(yīng)用于數(shù)字貨幣、金融領(lǐng)域,其安全性要求更高于其他技術(shù)。區(qū)塊鏈的本質(zhì)是一個(gè)去中心化的數(shù)據(jù)庫(kù),將數(shù)據(jù)信息采用分布式方法記錄,在安全性方面,較傳統(tǒng)實(shí)現(xiàn)了質(zhì)的突破;但是區(qū)塊鏈仍面臨著大量的安全風(fēng)險(xiǎn)[3]。

    區(qū)塊鏈的安全風(fēng)險(xiǎn)包括網(wǎng)絡(luò)與存儲(chǔ)層安全風(fēng)險(xiǎn)、數(shù)據(jù)與算法層安全風(fēng)險(xiǎn)、共識(shí)與合約層安全風(fēng)險(xiǎn)和應(yīng)用支撐層安全風(fēng)險(xiǎn)。其中,網(wǎng)絡(luò)與存儲(chǔ)層安全風(fēng)險(xiǎn)等與傳統(tǒng)的安全風(fēng)險(xiǎn)類似;而共識(shí)與合約層安全風(fēng)險(xiǎn)是區(qū)塊鏈獨(dú)有的風(fēng)險(xiǎn),該風(fēng)險(xiǎn)主要是針對(duì)共識(shí)和智能合約(Smart contract)這兩項(xiàng)核心技術(shù)的攻擊,包括“51%”攻擊、女巫攻擊、雙花攻擊和DDoS攻擊,以及針對(duì)共識(shí)和智能合約邏輯漏洞實(shí)施的攻擊等[4]。本文將對(duì)智能合約的安全風(fēng)險(xiǎn)進(jìn)行分析,并提出智能合約的安全代碼要求。

    1 智能合約概述

    區(qū)塊鏈?zhǔn)怯梅植际綌?shù)據(jù)庫(kù)識(shí)別、傳播和記載信息的智能化對(duì)等網(wǎng)絡(luò),也被稱為價(jià)值互聯(lián)網(wǎng)。區(qū)塊鏈技術(shù)作為一種使數(shù)據(jù)庫(kù)安全而不需要行政機(jī)構(gòu)授信的解決方案首先被應(yīng)用于比特幣。自稱日裔美國(guó)黑客的中本聰于2008年在《比特幣白皮書》中提出“區(qū)塊鏈”概念,并在2009年創(chuàng)立了比特幣社會(huì)網(wǎng)絡(luò),開發(fā)出第一個(gè)區(qū)塊,即“創(chuàng)世區(qū)塊”[5]。

    智能合約(Smart contract)的使用是第二代區(qū)塊鏈技術(shù)與第一代的顯著區(qū)別,智能合約這個(gè)術(shù)語(yǔ)在區(qū)塊鏈之前就已出現(xiàn),至少可以追溯到1995年,由多產(chǎn)的跨領(lǐng)域法律學(xué)者、受到廣泛贊譽(yù)的密碼學(xué)家尼克·薩博(Nick Szabo)所提出,他在發(fā)表于自己網(wǎng)站的幾篇文章中提到了智能合約理念,定義如下:“一個(gè)智能合約是一套以數(shù)字形式定義的承諾(Promises),包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議?!?/p>

    智能合約理念幾乎與互聯(lián)網(wǎng)(World Wide Web)同時(shí)出現(xiàn),從本質(zhì)上講,這些自動(dòng)合約的工作原理類似于其他計(jì)算機(jī)程序的if-then語(yǔ)句,是一種旨在以信息化方式傳播、驗(yàn)證或執(zhí)行合同的計(jì)算機(jī)協(xié)議。智能合約允許在沒(méi)有第三方的情況下進(jìn)行可信交易,這些交易可追蹤且不可逆轉(zhuǎn)。當(dāng)一個(gè)預(yù)先編好的條件被觸發(fā)時(shí),智能合約則執(zhí)行相應(yīng)的合同條款。

    在計(jì)算機(jī)上進(jìn)行智能合約的實(shí)際應(yīng)用時(shí),需要控制實(shí)物資產(chǎn)保證其有效地執(zhí)行合約;同時(shí)要做到,執(zhí)行合約條款時(shí)能獲取到第三方審核的合約方信息,即需要解決信息傳遞與信任問(wèn)題。

    在無(wú)法建立信任關(guān)系的互聯(lián)網(wǎng)上,區(qū)塊鏈技術(shù)依靠密碼學(xué)和巧妙的分布式算法,無(wú)需借助任何第三方中心機(jī)構(gòu)的介入,用數(shù)學(xué)的方法使參與者達(dá)成共識(shí),保證交易記錄的存在性、合約的有效性和身份的不可抵賴性,由此解決了互聯(lián)網(wǎng)上的信任和價(jià)值傳遞問(wèn)題,為智能合約的廣泛應(yīng)用提供了絕佳的溫床。第二代區(qū)塊鏈開源項(xiàng)目——以太坊(Ethereum)即使用了智能合約,以太坊提供了圖靈完備的腳本語(yǔ)言Solidity、Serpent與沙盒環(huán)境的以太坊虛擬機(jī)(EVM:Ethereum Virtual Machine),以供用戶編寫和運(yùn)行智能合約。一個(gè)旨在推動(dòng)區(qū)塊鏈跨行業(yè)應(yīng)用的開源項(xiàng)目——Hyperledge,由Linux基金會(huì)在2015年12月主導(dǎo)發(fā)起,它也支持智能合約,Hyperledger Fabric的智能合約被稱為Chaincode,其選用Docker容器作為沙盒環(huán)境,Docker容器中帶有一組經(jīng)過(guò)簽名的基礎(chǔ)磁盤映像及Go與Java語(yǔ)言運(yùn)行所需的SDK,以運(yùn)行Go與Java語(yǔ)言編寫的Chaincode。智能合約使很多不同類型的程序和操作得以自動(dòng)化,最明顯的體現(xiàn)之處在于支付環(huán)節(jié)及付款時(shí)的步驟操作。2016年底由智能合約聯(lián)盟(SCA)與數(shù)字商務(wù)商會(huì)(CDC)聯(lián)合發(fā)布的“Smart Contracts:12 Use Cases for Business & Beyond”(《智能合約:12種商業(yè)及其他使用案例》)白皮書介紹了數(shù)字身份、抵押、供應(yīng)鏈和癌癥研究等12項(xiàng)智能合約的商業(yè)使用案例,而目前智能合約已在金融、醫(yī)療等多個(gè)領(lǐng)域中得以實(shí)際應(yīng)用[6]。

    2 智能合約的安全風(fēng)險(xiǎn)

    區(qū)塊鏈的本質(zhì)是一個(gè)去中心化的數(shù)據(jù)庫(kù)。在運(yùn)行的過(guò)程中,區(qū)塊鏈將數(shù)據(jù)信息采用分布式方式記錄,并且由所有的參與者共同記錄。這些數(shù)據(jù)信息會(huì)被存儲(chǔ)在所有的節(jié)點(diǎn)之中,不是像傳統(tǒng)數(shù)據(jù)庫(kù)一樣,僅僅存在于唯一的中心化機(jī)構(gòu)。因此,在安全性方面,較傳統(tǒng)實(shí)現(xiàn)了質(zhì)的突破。但區(qū)塊鏈仍面臨著大量的安全風(fēng)險(xiǎn)。

    智能合約作為區(qū)塊鏈的核心技術(shù)極大地提升了其應(yīng)用前景。但是,由于區(qū)塊鏈具有不可更改和不可撤銷的特點(diǎn),如果智能合約代碼中存在漏洞,那么這些漏洞將為區(qū)塊鏈的應(yīng)用帶來(lái)極大的安全隱患[7]。Ivica Nikolic等人通過(guò)對(duì)近100萬(wàn)份的智能合約進(jìn)行研究,就發(fā)現(xiàn)其中相當(dāng)多的智能合約存在漏洞。2018年,以太坊也曾因?yàn)橹悄芎霞s安全問(wèn)題而不得不出現(xiàn)了硬分叉,分叉的結(jié)果給以太坊社區(qū)帶來(lái)了極大的爭(zhēng)議和混亂,黑客盜取了價(jià)值約5 000萬(wàn)美元的以太幣,當(dāng)時(shí)為了挽回大部分人的損失,采取了硬分叉的策略,用新的長(zhǎng)的鏈來(lái)代替被攻擊的鏈,這樣黑客的盜取就沒(méi)有價(jià)值(參考上述舉例)。但是,當(dāng)時(shí)社區(qū)的部分支持者認(rèn)為這是一個(gè)去中心化的社區(qū),不應(yīng)該由一個(gè)人來(lái)決定未來(lái)。所以愿意扛下被黑客攻擊后的損失,以保證社區(qū)的去中心化。因此,社區(qū)之間產(chǎn)生了矛盾,就出現(xiàn)了硬分叉之后的兩條鏈:以太經(jīng)典(ETC)和現(xiàn)在的以太坊(ETH)。

    智能合約是一段運(yùn)行在區(qū)塊鏈網(wǎng)絡(luò)中的代碼,它完成用戶所賦予的業(yè)務(wù)邏輯。以以太坊體系的代幣為例,其業(yè)務(wù)邏輯是代幣發(fā)幣和交易。以太坊在設(shè)計(jì)之初,將智能合約設(shè)計(jì)成了一旦部署就不能修改的模式。這種設(shè)計(jì)有可能是為了提高智能合約的可信性。

    然而,只要是由人編寫的程序,就一定會(huì)出現(xiàn)錯(cuò)誤和缺陷。以太坊這種設(shè)計(jì)本身就違背了程序設(shè)計(jì)的一般規(guī)律,在智能合約出現(xiàn)漏洞的時(shí)候可能會(huì)造成無(wú)法彌補(bǔ)的損失。由于智能合約本質(zhì)上是部署和運(yùn)行在區(qū)塊鏈上的程序,在沒(méi)有標(biāo)準(zhǔn)的合約模板或編寫規(guī)范的情況下,很難要求程序員都能夠?qū)懗鲎罴褜?shí)踐的代碼,一些邏輯不嚴(yán)謹(jǐn)?shù)拇a會(huì)造成智能合約的業(yè)務(wù)邏輯存在安全隱患[8]。目前智能合約出現(xiàn)的漏洞有20多種,其中主要的漏洞類型如下所述。

    a)重入攻擊

    重入漏洞是最著名的以太坊智能合約漏洞,曾導(dǎo)致了以太坊的分叉(The DAO hack)。Solidity中的call.value()函數(shù)在被用來(lái)發(fā)送Ether的時(shí)候會(huì)消耗它接收到的所有g(shù)as,當(dāng)調(diào)用call.value()函數(shù)發(fā)送Ether的操作發(fā)生在實(shí)際減少發(fā)送者賬戶的余額之前時(shí),就會(huì)存在重入攻擊的風(fēng)險(xiǎn)。

    b)數(shù)值溢出

    智能合約中的算數(shù)問(wèn)題是指整數(shù)溢出和整數(shù)下溢。Solidity最多能處理256位的數(shù)字(2^256-1),最大數(shù)字增加1會(huì)溢出得到0。同樣,當(dāng)數(shù)字為無(wú)符號(hào)類型時(shí),0減去1會(huì)下溢得到最大數(shù)字值。

    整數(shù)溢出和下溢不是一種新類型的漏洞,但它們?cè)谥悄芎霞s中尤其危險(xiǎn)。溢出情況會(huì)導(dǎo)致不正確的結(jié)果,特別是如果可能性未被預(yù)期,則可能會(huì)影響程序的可靠性和安全性。

    c)訪問(wèn)控制

    訪問(wèn)控制缺陷是所有的程序中都可能存在的安全風(fēng)險(xiǎn),智能合約也同樣會(huì)存在類似問(wèn)題,著名的Parity Wallet智能合約就受到過(guò)該問(wèn)題的影響。

    返回值調(diào)用驗(yàn)證此問(wèn)題多出現(xiàn)在和轉(zhuǎn)幣相關(guān)的智能合約中,故又被稱作為靜默失敗發(fā)送或未經(jīng)檢查發(fā)送。在Solidity中存在transfer()、send()、call.value()等轉(zhuǎn)幣方法,都可以用于向某一地址發(fā)送Ether,其區(qū)別在于:transfer發(fā)送失敗時(shí)會(huì)throw,并且進(jìn)行狀態(tài)回滾;只會(huì)傳遞2 300 gas供調(diào)用,防止重入攻擊;send發(fā)送失敗時(shí)會(huì)返回false;只會(huì)傳遞2 300 gas供調(diào)用,防止重入攻擊;call.value發(fā)送失敗時(shí)會(huì)返回false;傳遞所有的可用gas進(jìn)行調(diào)用(可通過(guò)傳入gas_value參數(shù)進(jìn)行限制),不能有效地防止重入攻擊。

    如果在代碼中沒(méi)有檢查以上send和call.value轉(zhuǎn)幣函數(shù)的返回值,合約會(huì)繼續(xù)執(zhí)行后面的代碼,可能由于Ether發(fā)送失敗而導(dǎo)致意外的結(jié)果。

    d)錯(cuò)誤使用隨機(jī)數(shù)

    智能合約中可能需要使用隨機(jī)數(shù),雖然Solidity提供的函數(shù)和變量可以訪問(wèn)智能合約審計(jì)報(bào)告明顯難以預(yù)測(cè)的值,如block.number和block.timestamp,但是它們通常或者比看起來(lái)更公開,或者受到礦工的影響,即這些隨機(jī)數(shù)在一定程度上是可預(yù)測(cè)的,所以惡意用戶通??梢詮?fù)制它并依靠其不可預(yù)知性來(lái)攻擊該功能。

    e)事務(wù)順序依賴

    由于礦工總是通過(guò)代表外部擁有地址(EOA)的代碼來(lái)獲取gas費(fèi)用,因此用戶可以指定更高的費(fèi)用以便更快地開展交易。由于以太坊區(qū)塊鏈?zhǔn)枪_的,每個(gè)人都可以看到其他人未決交易的內(nèi)容。這就意味著,如果某個(gè)用戶提交了一個(gè)有價(jià)值的解決方案,惡意用戶可以竊取該解決方案并以較高的費(fèi)用復(fù)制其交易,以搶占原始的解決方案。

    f)拒絕服務(wù)攻擊

    在以太坊的世界中,拒絕服務(wù)是致命的,遭受該類型攻擊的智能合約可能永遠(yuǎn)無(wú)法恢復(fù)正常工作狀態(tài)。導(dǎo)致智能合約拒絕服務(wù)的原因可能有很多種,包括在作為交易接收方時(shí)的惡意行為,人為增加計(jì)算功能所需的gas而導(dǎo)致gas耗盡,濫用訪問(wèn)控制訪問(wèn)智能合約的private組件,利用混淆和疏忽等。

    g)邏輯設(shè)計(jì)缺陷

    邏輯設(shè)計(jì)缺陷主要是指與業(yè)務(wù)設(shè)計(jì)相關(guān)的安全問(wèn)題。

    h)假充值漏洞

    在代幣合約的transfer函數(shù)對(duì)轉(zhuǎn)賬發(fā)起人(msg.sender)的余額檢查用的是if判斷方式,當(dāng)balances[msg.sender]<value時(shí)進(jìn)入else邏輯部分并returnfalse,最終沒(méi)有拋出異常,我們認(rèn)為僅if/else這種溫和的判斷方式在transfer這類敏感函數(shù)場(chǎng)景中是一種不嚴(yán)謹(jǐn)?shù)木幋a方式。

    i)增發(fā)代幣漏洞

    主要指初始化代幣總量后,代幣合約中是否存在可能使代幣總量增加的函數(shù)。

    j)凍結(jié)賬戶繞過(guò)

    主要指代幣合約中在轉(zhuǎn)移代幣時(shí),是否存在未校驗(yàn)代幣來(lái)源賬戶、發(fā)起賬戶和目標(biāo)賬戶是否被凍結(jié)的操作。

    在歷次的安全事故中,因智能合約的漏洞引發(fā)了安全問(wèn)題并占了較大的比重。根據(jù)智能合約檢測(cè)結(jié)果,總結(jié)了主要的智能合約的安全漏洞類型,按照占比進(jìn)行排序,如表1所示。

    表1 智能合約安全漏洞分布

    3 智能合約的安全代碼要求

    智能合約的操作對(duì)象大多為數(shù)字資產(chǎn),其主要負(fù)責(zé)將業(yè)務(wù)邏輯以代碼的形式實(shí)現(xiàn)、編譯和部署,并按照既定的規(guī)則或者觸發(fā)條件自動(dòng)地執(zhí)行,所以具有形式多樣性和差異性,因此,與其他區(qū)塊鏈安全問(wèn)題相比,智能合約安全性問(wèn)題往往會(huì)引發(fā)較大的經(jīng)濟(jì)損失且更加不可控[9]。

    除少部分聯(lián)盟鏈中支持智能合約在部署之后進(jìn)行更新外,大多數(shù)智能合約通常具有發(fā)布即生效、不可更改等特點(diǎn),同時(shí),現(xiàn)階段能夠運(yùn)行智能合約的區(qū)塊鏈項(xiàng)目一般都處在早起階段并且具有很強(qiáng)的實(shí)驗(yàn)性質(zhì),智能合約可能存在的安全隱患不斷地被發(fā)現(xiàn),相關(guān)項(xiàng)目面臨的安全威脅也在不斷地變化,因此,要應(yīng)對(duì)智能合約的安全漏洞問(wèn)題,需要在智能合約上線之前,對(duì)其進(jìn)行全面深入的安全驗(yàn)證,從智能合約開發(fā)階段就秉持一個(gè)全新的工程思維,盡可能地對(duì)安全隱患有所準(zhǔn)備,本著一定的安全原則進(jìn)行合約代碼的編寫,如“當(dāng)智能合約出現(xiàn)錯(cuò)誤時(shí),停止合約”“管理賬戶的資金風(fēng)險(xiǎn)(包括限制轉(zhuǎn)賬速率、限制最大轉(zhuǎn)賬額度等)”等。致力于在智能合約開發(fā)階段規(guī)避這些安全隱患,通過(guò)對(duì)智能合約已經(jīng)出現(xiàn)的安全問(wèn)題案例進(jìn)行分析,以以太坊智能合約開發(fā)體系Solidity為例,整理出了智能合約開發(fā)中需要注意的重點(diǎn)內(nèi)容,具體如下所述。

    a)嚴(yán)格控制表征權(quán)限的變量和表示

    訪問(wèn)控制權(quán)限是安全領(lǐng)域的防護(hù)重點(diǎn)之一。在智能合約中,針對(duì)權(quán)限,主要考慮是否為合約所有者、在合約內(nèi)部還是外部、是否滿足用戶添加的權(quán)限要求。其實(shí)現(xiàn)依賴函數(shù)修飾符、判斷語(yǔ)句等,通常會(huì)有變量或標(biāo)識(shí)來(lái)表征。因此,必須對(duì)用于表征權(quán)限的變量和表示進(jìn)行嚴(yán)格的控制,即這些敏感變量也應(yīng)該通過(guò)函數(shù)修飾符進(jìn)行權(quán)限控制,從而保證權(quán)限閉環(huán),讓攻擊者無(wú)機(jī)可乘。具體地說(shuō),對(duì)于標(biāo)識(shí)權(quán)限的變量,往往有對(duì)應(yīng)的函數(shù)對(duì)其進(jìn)行修改以實(shí)現(xiàn)一些預(yù)期功能。對(duì)這些函數(shù),必須控制訪問(wèn)權(quán)限(通過(guò)函數(shù)修飾符或assert、if-else等實(shí)現(xiàn))。

    b)盡量避免外部調(diào)用

    調(diào)用不受信任的外部合約可能會(huì)引發(fā)一系列意外的風(fēng)險(xiǎn)和錯(cuò)誤,外部調(diào)用可能在其合約和它所依賴的其他合約內(nèi)執(zhí)行惡意代碼。因此,在實(shí)現(xiàn)業(yè)務(wù)邏輯中時(shí),多花一些時(shí)間和精力重復(fù)實(shí)現(xiàn)其他合約已經(jīng)實(shí)現(xiàn)的業(yè)務(wù)邏輯,避免直接調(diào)用不受信任的外部合約可以直接規(guī)避相關(guān)的安全風(fēng)險(xiǎn),與合約引入惡意代碼攻擊所造成的損失相比,重復(fù)“造輪子”很有必要。

    c)仔細(xì)權(quán)衡“send()”“transfer()”和“call.value()”

    在以太坊網(wǎng)絡(luò)中進(jìn)行轉(zhuǎn)賬Ether時(shí),需要仔細(xì)權(quán)衡“someAddress.send()”“someAddress.transfer()”和“someAddress.call.value()()”之間的差別。由于觸發(fā)機(jī)制的不同,與someAddress.call.value()()相 比,someAddress.send()和someAddress.transfer()能 保 證 可 重 入 安 全,someAddress.call.value()()將會(huì)發(fā)送指定數(shù)量的Ether并且觸發(fā)對(duì)應(yīng)代碼的執(zhí)行,而被調(diào)用的外部智能合約代碼將享有所有剩余的gas,通過(guò)這種方式轉(zhuǎn)賬是很容易有可重入漏洞的,非常不安全。

    d)使用assert()強(qiáng)制不變性

    當(dāng)斷言條件不滿足時(shí)果斷地觸發(fā)斷言保護(hù),比如不變的屬性發(fā)生了變化。例如:代幣在以太坊上的發(fā)行比例,在代幣的發(fā)行合約里可以通過(guò)這種方式得到解決。斷言保護(hù)經(jīng)常需要和其他技術(shù)組合使用,比如:當(dāng)斷言被觸發(fā)時(shí)先掛起合約然后升級(jí)。

    e)正確使用assert()和require()

    在Solidity0.4.10中assert()和require()被加入。require(condition)被用來(lái)驗(yàn)證用戶的輸入,如果條件不滿足便會(huì)拋出異常,應(yīng)當(dāng)使用它驗(yàn)證所有用戶的輸入。assert(condition)在條件不滿足時(shí)也會(huì)拋出異常,但是最好只用于固定變量:內(nèi)部錯(cuò)誤或你的智能合約陷入無(wú)效的狀態(tài)。遵循這些范例,使用分析工具來(lái)驗(yàn)證永遠(yuǎn)不會(huì)執(zhí)行這些無(wú)效操作碼:意味著代碼中不存在任何不變量,并且代碼已經(jīng)正式驗(yàn)證。

    f)權(quán)衡Abstract合約和Interfaces

    Interfaces和Abstract合約都是用來(lái)使智能合約能更好地被定制和重用。Interfaces是在Solidity0.4.11中被引入的,和Abstract合約很像但是不能定義方法只能申明。Interfaces存在一些限制比如不能夠訪問(wèn)storage或者從其他Interfaces那繼承,通常這些使Abstract合約更實(shí)用。盡管如此,Interfaces在實(shí)現(xiàn)智能合約之前的設(shè)計(jì)智能合約階段仍然有很大的用處。另外,需要注意的是,如果一個(gè)智能合約從另一個(gè)Abstract合約繼承而來(lái),那么它必須實(shí)現(xiàn)所有Abstract合約內(nèi)的申明并未實(shí)現(xiàn)的函數(shù),否則它也會(huì)成為一個(gè)Abstract合約。

    g)使Fallback函數(shù)盡量簡(jiǎn)單明了

    Fallback函數(shù)在合約執(zhí)行消息發(fā)送沒(méi)有攜帶參數(shù)(或當(dāng)沒(méi)有匹配的函數(shù)可供調(diào)用)時(shí)將會(huì)被調(diào)用,一些攻擊隱藏在Fallback函數(shù)中調(diào)用的外部合約,而Fallback函數(shù)邏輯不清導(dǎo)致遞歸時(shí)同樣會(huì)造成gas的大量損失,因此盡量讓Fallback函數(shù)簡(jiǎn)單明了,避免正常業(yè)務(wù)邏輯執(zhí)行受阻而調(diào)用Fallback時(shí)引入安全風(fēng)險(xiǎn)。

    h)明確標(biāo)明函數(shù)和狀態(tài)變量的可見性

    明確標(biāo)明函數(shù)和狀態(tài)變量的可見性。函數(shù)可以聲明為external,public,internal或private。分清楚它們之間的差異。例如:external可能已夠用而不是使用public。對(duì)于狀態(tài)變量,external是不可能的。明確標(biāo)注可見性將使得更容易避免關(guān)于誰(shuí)可以調(diào)用該函數(shù)或訪問(wèn)變量的錯(cuò)誤假設(shè)。

    i)保持智能合約的簡(jiǎn)潔

    在智能合約的開發(fā)中,清晰明了往往比性能提升更重要,復(fù)雜的智能合約往往存在更多的安全隱患,因此,為了提升智能合約的安全性,首先應(yīng)確保智能合約的邏輯簡(jiǎn)潔,堅(jiān)持通過(guò)內(nèi)部模塊化和功能調(diào)用的編碼風(fēng)格實(shí)現(xiàn)合約邏輯,同時(shí)需盡量地使用被廣泛驗(yàn)證過(guò)的合約和工具,如不要自己寫一個(gè)隨機(jī)數(shù)生成器。

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

    智能合約作為以信息化方式傳播、驗(yàn)證和執(zhí)行合同的計(jì)算機(jī)協(xié)議,為區(qū)塊鏈技術(shù)的發(fā)展和落地提供了更靈活的工具,然而,作為一種全新的技術(shù)應(yīng)用,區(qū)塊鏈智能合約面臨的安全問(wèn)題同樣嚴(yán)峻。任何信息系統(tǒng)的安全維護(hù)都不是一勞永逸的,對(duì)智能合約的安全維護(hù)同樣如此,通過(guò)對(duì)已出現(xiàn)的安全事故案例進(jìn)行分析和總結(jié),形成了一套智能合約安全開發(fā)規(guī)范,可以有效地指導(dǎo)開發(fā)人員在進(jìn)行智能合約設(shè)計(jì)時(shí)規(guī)避安全風(fēng)險(xiǎn);同時(shí),鑒于越來(lái)越多的區(qū)塊鏈項(xiàng)目支持合約在部署后進(jìn)行修改和更新,實(shí)時(shí)跟蹤新出現(xiàn)的智能合約漏洞,保持智能合約的動(dòng)態(tài)檢查同樣重要。

    猜你喜歡
    智能
    智能與自主
    讓紙變得智能
    一種智能微耕機(jī)的研發(fā)
    智能制造 反思與期望
    智能前沿
    文苑(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未來(lái)
    商周刊(2018年18期)2018-09-21 09:14:46
    爭(zhēng)渡智能石化
    能源(2018年4期)2018-05-19 01:53:44
    久久亚洲精品不卡| 久久伊人香网站| 免费在线观看影片大全网站| 成人18禁在线播放| 欧美乱妇无乱码| 一夜夜www| 久久久水蜜桃国产精品网| 男女做爰动态图高潮gif福利片| 亚洲精品在线观看二区| 一区二区三区国产精品乱码| 亚洲人成电影免费在线| 国产精品av久久久久免费| 午夜福利欧美成人| 亚洲精品在线美女| 中文字幕高清在线视频| 亚洲精品国产一区二区精华液| 久久人妻福利社区极品人妻图片| 欧美激情 高清一区二区三区| 99国产极品粉嫩在线观看| 黄色 视频免费看| 亚洲在线自拍视频| 热99re8久久精品国产| 亚洲七黄色美女视频| 国产一卡二卡三卡精品| 亚洲专区中文字幕在线| 日韩欧美在线二视频| 国产真实乱freesex| 中文字幕人妻熟女乱码| 18禁裸乳无遮挡免费网站照片 | 12—13女人毛片做爰片一| 又黄又粗又硬又大视频| 一区二区三区国产精品乱码| 久久国产亚洲av麻豆专区| 午夜福利视频1000在线观看| 中文字幕人妻丝袜一区二区| 国产真人三级小视频在线观看| 麻豆久久精品国产亚洲av| 亚洲专区字幕在线| 久久青草综合色| 国产单亲对白刺激| 黄片大片在线免费观看| 亚洲一码二码三码区别大吗| 女人高潮潮喷娇喘18禁视频| 婷婷亚洲欧美| 亚洲在线自拍视频| 狂野欧美激情性xxxx| 十八禁人妻一区二区| 极品教师在线免费播放| 午夜福利欧美成人| 99国产极品粉嫩在线观看| 91字幕亚洲| 少妇的丰满在线观看| 久久午夜亚洲精品久久| 免费观看人在逋| 久久人妻福利社区极品人妻图片| 99国产综合亚洲精品| 淫秽高清视频在线观看| 一二三四在线观看免费中文在| 波多野结衣巨乳人妻| 精品一区二区三区av网在线观看| 首页视频小说图片口味搜索| 亚洲五月婷婷丁香| 高清毛片免费观看视频网站| 国产精华一区二区三区| 女警被强在线播放| 男人的好看免费观看在线视频 | 国产三级在线视频| 自线自在国产av| 久久国产精品影院| 亚洲电影在线观看av| 久久婷婷成人综合色麻豆| 精品国产超薄肉色丝袜足j| 亚洲av成人一区二区三| netflix在线观看网站| 国产精品亚洲美女久久久| 成年版毛片免费区| 天天一区二区日本电影三级| 亚洲av电影不卡..在线观看| 1024手机看黄色片| 国产伦人伦偷精品视频| 亚洲熟妇中文字幕五十中出| av欧美777| 国产精品影院久久| 不卡一级毛片| 精品福利观看| 黑人操中国人逼视频| 亚洲人成网站高清观看| 成人三级做爰电影| av福利片在线| 嫁个100分男人电影在线观看| 日韩欧美免费精品| 亚洲精品国产精品久久久不卡| 国产亚洲精品第一综合不卡| 此物有八面人人有两片| 久久香蕉精品热| 一区二区三区激情视频| 在线观看66精品国产| 国产av一区在线观看免费| 好男人在线观看高清免费视频 | 欧美日本视频| 曰老女人黄片| 色哟哟哟哟哟哟| 久久久久久久久中文| 高清在线国产一区| 老司机午夜福利在线观看视频| 欧美中文日本在线观看视频| 一级作爱视频免费观看| 国产成人欧美在线观看| 国产片内射在线| 日日摸夜夜添夜夜添小说| 国产又黄又爽又无遮挡在线| aaaaa片日本免费| 久久香蕉激情| 禁无遮挡网站| 久久精品91无色码中文字幕| 日本免费a在线| 免费高清在线观看日韩| 99在线人妻在线中文字幕| 欧美午夜高清在线| 国产不卡一卡二| 精品久久久久久,| 日韩精品青青久久久久久| 老司机靠b影院| 老司机在亚洲福利影院| 夜夜看夜夜爽夜夜摸| 久久香蕉精品热| 大型黄色视频在线免费观看| 亚洲三区欧美一区| 黑人操中国人逼视频| 好看av亚洲va欧美ⅴa在| 国产亚洲精品综合一区在线观看 | 两个人看的免费小视频| 国产aⅴ精品一区二区三区波| 非洲黑人性xxxx精品又粗又长| 少妇的丰满在线观看| 九色国产91popny在线| 美国免费a级毛片| 成人永久免费在线观看视频| 国内久久婷婷六月综合欲色啪| 亚洲成国产人片在线观看| 最新美女视频免费是黄的| 人人妻人人看人人澡| 欧美不卡视频在线免费观看 | 欧美丝袜亚洲另类 | 日本成人三级电影网站| 757午夜福利合集在线观看| 国产精品98久久久久久宅男小说| 精品国产亚洲在线| 成人特级黄色片久久久久久久| 在线国产一区二区在线| 人成视频在线观看免费观看| 亚洲av电影在线进入| 十八禁网站免费在线| 中文字幕人成人乱码亚洲影| 嫩草影视91久久| 少妇粗大呻吟视频| 成人特级黄色片久久久久久久| 777久久人妻少妇嫩草av网站| 国产精品亚洲美女久久久| 亚洲 欧美一区二区三区| 黑人欧美特级aaaaaa片| 丰满人妻熟妇乱又伦精品不卡| 性欧美人与动物交配| 国产视频内射| 国产国语露脸激情在线看| 久久性视频一级片| 国产色视频综合| 啪啪无遮挡十八禁网站| 又大又爽又粗| 热99re8久久精品国产| 亚洲第一电影网av| 中文资源天堂在线| 波多野结衣巨乳人妻| 精品久久久久久久人妻蜜臀av| 男男h啪啪无遮挡| 国产免费男女视频| 亚洲一区二区三区色噜噜| 中文字幕人成人乱码亚洲影| 成人亚洲精品一区在线观看| 精品免费久久久久久久清纯| 欧美成人性av电影在线观看| 国产成人精品无人区| 免费人成视频x8x8入口观看| 日韩有码中文字幕| 久久精品国产99精品国产亚洲性色| 久久久久久久久免费视频了| 一本大道久久a久久精品| 12—13女人毛片做爰片一| 午夜免费成人在线视频| 此物有八面人人有两片| 人人妻人人澡欧美一区二区| 美女大奶头视频| 国产精品一区二区三区四区久久 | 亚洲欧美一区二区三区黑人| 成年人黄色毛片网站| 可以在线观看的亚洲视频| 99热这里只有精品一区 | 自线自在国产av| 97人妻精品一区二区三区麻豆 | 国产91精品成人一区二区三区| 午夜免费观看网址| 亚洲熟妇熟女久久| 精品久久久久久久毛片微露脸| 国产亚洲精品久久久久5区| 国产高清有码在线观看视频 | 国产真人三级小视频在线观看| 久热这里只有精品99| 精品国产美女av久久久久小说| 亚洲成av片中文字幕在线观看| videosex国产| 少妇裸体淫交视频免费看高清 | 美女大奶头视频| 国产精品久久久人人做人人爽| 99热只有精品国产| av有码第一页| 亚洲av日韩精品久久久久久密| 欧美日韩乱码在线| 国产成人精品久久二区二区91| 色精品久久人妻99蜜桃| 桃红色精品国产亚洲av| 一级作爱视频免费观看| 免费在线观看亚洲国产| 99久久精品国产亚洲精品| 亚洲在线自拍视频| 黄色成人免费大全| 日韩精品青青久久久久久| 国产野战对白在线观看| 久久99热这里只有精品18| 久久香蕉国产精品| 亚洲欧美一区二区三区黑人| 热99re8久久精品国产| 精品国产乱子伦一区二区三区| 精品不卡国产一区二区三区| 亚洲专区中文字幕在线| 午夜视频精品福利| 精华霜和精华液先用哪个| 国产精品,欧美在线| 欧美日韩乱码在线| 无人区码免费观看不卡| 男女那种视频在线观看| 亚洲欧美精品综合一区二区三区| 亚洲国产精品sss在线观看| 亚洲成av片中文字幕在线观看| 天天添夜夜摸| 免费人成视频x8x8入口观看| 国产av又大| 欧美中文日本在线观看视频| 国产精品永久免费网站| 日日摸夜夜添夜夜添小说| 少妇熟女aⅴ在线视频| 国产又爽黄色视频| 亚洲av电影在线进入| 大型av网站在线播放| 丝袜人妻中文字幕| 无人区码免费观看不卡| 国产成人啪精品午夜网站| 成人一区二区视频在线观看| 欧美绝顶高潮抽搐喷水| 亚洲三区欧美一区| 91成人精品电影| 99热只有精品国产| 91av网站免费观看| 99riav亚洲国产免费| 欧美日韩亚洲国产一区二区在线观看| 免费一级毛片在线播放高清视频| 精品国产超薄肉色丝袜足j| 国产私拍福利视频在线观看| 1024视频免费在线观看| 两个人看的免费小视频| 999久久久精品免费观看国产| 欧美午夜高清在线| 听说在线观看完整版免费高清| 久久性视频一级片| 亚洲天堂国产精品一区在线| 亚洲国产精品合色在线| 巨乳人妻的诱惑在线观看| 精品国产乱码久久久久久男人| 女人被狂操c到高潮| 欧美乱码精品一区二区三区| 国产成人欧美| 婷婷六月久久综合丁香| 成人精品一区二区免费| 亚洲中文字幕日韩| 少妇被粗大的猛进出69影院| 日韩欧美免费精品| 中文字幕人妻熟女乱码| 精品一区二区三区av网在线观看| 黄网站色视频无遮挡免费观看| 久久精品国产亚洲av香蕉五月| 国产伦人伦偷精品视频| 国产视频内射| 窝窝影院91人妻| 国产亚洲精品久久久久久毛片| 巨乳人妻的诱惑在线观看| 美女高潮到喷水免费观看| 免费看十八禁软件| 精品久久久久久成人av| 在线观看舔阴道视频| 久久久久久人人人人人| 亚洲av美国av| 视频在线观看一区二区三区| 中出人妻视频一区二区| 精品卡一卡二卡四卡免费| 99久久久亚洲精品蜜臀av| 亚洲精品国产精品久久久不卡| 真人一进一出gif抽搐免费| √禁漫天堂资源中文www| 久久精品国产综合久久久| 亚洲一区二区三区色噜噜| 日韩欧美一区视频在线观看| 叶爱在线成人免费视频播放| 操出白浆在线播放| 九色国产91popny在线| 国产亚洲av高清不卡| 国产91精品成人一区二区三区| www.www免费av| 观看免费一级毛片| 黑人欧美特级aaaaaa片| 亚洲av片天天在线观看| 亚洲 欧美 日韩 在线 免费| 欧美激情 高清一区二区三区| 极品教师在线免费播放| 成人手机av| 午夜久久久在线观看| 欧美最黄视频在线播放免费| 亚洲国产高清在线一区二区三 | 国产高清激情床上av| 精品国产乱码久久久久久男人| 狂野欧美激情性xxxx| 欧美日本视频| 亚洲成人精品中文字幕电影| 亚洲一码二码三码区别大吗| 久久久久精品国产欧美久久久| 日韩中文字幕欧美一区二区| 天堂√8在线中文| 国产av又大| 国内精品久久久久精免费| 精品国产超薄肉色丝袜足j| av欧美777| 99国产精品一区二区蜜桃av| 熟女少妇亚洲综合色aaa.| 少妇 在线观看| 日韩欧美三级三区| 亚洲成人久久爱视频| netflix在线观看网站| 波多野结衣高清无吗| 午夜福利免费观看在线| 人人妻人人澡人人看| 老司机深夜福利视频在线观看| 精品国产一区二区三区四区第35| 麻豆av在线久日| 人妻丰满熟妇av一区二区三区| 动漫黄色视频在线观看| 色综合亚洲欧美另类图片| 人成视频在线观看免费观看| 国产v大片淫在线免费观看| 女人爽到高潮嗷嗷叫在线视频| 国产爱豆传媒在线观看 | 天天躁狠狠躁夜夜躁狠狠躁| 精品国产乱码久久久久久男人| 十分钟在线观看高清视频www| 99国产精品一区二区三区| 男人舔女人下体高潮全视频| 69av精品久久久久久| 国产97色在线日韩免费| 99久久99久久久精品蜜桃| 亚洲国产精品999在线| 国产精品 国内视频| 一级毛片女人18水好多| 99国产极品粉嫩在线观看| 日本免费a在线| 伦理电影免费视频| 男女视频在线观看网站免费 | 99热6这里只有精品| 免费在线观看日本一区| 丝袜在线中文字幕| 国产三级黄色录像| 一进一出抽搐动态| 美国免费a级毛片| 中文字幕人成人乱码亚洲影| 亚洲精品久久国产高清桃花| 一级毛片精品| 日韩成人在线观看一区二区三区| 午夜福利在线观看吧| 精品国内亚洲2022精品成人| 亚洲美女黄片视频| 欧美成人性av电影在线观看| 熟女少妇亚洲综合色aaa.| 免费无遮挡裸体视频| av在线播放免费不卡| av视频在线观看入口| 精品久久久久久成人av| 国产乱人伦免费视频| 婷婷六月久久综合丁香| 欧美成人一区二区免费高清观看 | av中文乱码字幕在线| 听说在线观看完整版免费高清| 国产亚洲欧美98| 欧美乱色亚洲激情| 国产在线观看jvid| 亚洲av熟女| 高清在线国产一区| 亚洲国产高清在线一区二区三 | 欧美黑人巨大hd| 一本精品99久久精品77| 国产一区二区三区视频了| 女生性感内裤真人,穿戴方法视频| 国产真实乱freesex| 午夜日韩欧美国产| 国产不卡一卡二| 中文字幕人妻熟女乱码| 熟妇人妻久久中文字幕3abv| 亚洲第一青青草原| 国产日本99.免费观看| 老司机深夜福利视频在线观看| 在线视频色国产色| 母亲3免费完整高清在线观看| 九色国产91popny在线| 久久久久久九九精品二区国产 | 91成年电影在线观看| www.精华液| 999久久久国产精品视频| 俄罗斯特黄特色一大片| 一卡2卡三卡四卡精品乱码亚洲| 亚洲熟女毛片儿| 亚洲性夜色夜夜综合| 亚洲欧洲精品一区二区精品久久久| 日韩欧美国产一区二区入口| 啪啪无遮挡十八禁网站| 淫妇啪啪啪对白视频| 黄色 视频免费看| 天天添夜夜摸| 丰满人妻熟妇乱又伦精品不卡| 欧美一区二区精品小视频在线| 黄频高清免费视频| 日韩大尺度精品在线看网址| 欧美在线黄色| 日韩大码丰满熟妇| 国产激情偷乱视频一区二区| av中文乱码字幕在线| 一个人观看的视频www高清免费观看 | 好男人在线观看高清免费视频 | 韩国av一区二区三区四区| 欧美激情久久久久久爽电影| 99热只有精品国产| 精品一区二区三区四区五区乱码| 两性午夜刺激爽爽歪歪视频在线观看 | 国产成+人综合+亚洲专区| 亚洲,欧美精品.| 中出人妻视频一区二区| 精品国产超薄肉色丝袜足j| 国产av不卡久久| 欧美中文日本在线观看视频| 国产精品98久久久久久宅男小说| 天堂动漫精品| 亚洲精品国产一区二区精华液| 男人舔女人的私密视频| 欧美成人一区二区免费高清观看 | 国产av不卡久久| av片东京热男人的天堂| 侵犯人妻中文字幕一二三四区| 国产一区二区激情短视频| www国产在线视频色| 国产99白浆流出| 亚洲精品色激情综合| 欧美丝袜亚洲另类 | 成人特级黄色片久久久久久久| 免费高清在线观看日韩| 国产激情久久老熟女| 亚洲 欧美 日韩 在线 免费| 日韩欧美免费精品| 中文字幕最新亚洲高清| 久久人人精品亚洲av| 久久久国产成人免费| 色老头精品视频在线观看| 露出奶头的视频| 久久人妻av系列| 最好的美女福利视频网| 午夜免费激情av| 国产亚洲精品一区二区www| 国产午夜精品久久久久久| 精品久久蜜臀av无| 欧美又色又爽又黄视频| tocl精华| 亚洲三区欧美一区| 亚洲国产精品成人综合色| 欧美最黄视频在线播放免费| 亚洲国产精品sss在线观看| 制服人妻中文乱码| 国产在线观看jvid| 精品无人区乱码1区二区| 手机成人av网站| 久久久久久国产a免费观看| 法律面前人人平等表现在哪些方面| 999精品在线视频| 满18在线观看网站| 精品国内亚洲2022精品成人| 日韩精品免费视频一区二区三区| 免费在线观看黄色视频的| 国产精品98久久久久久宅男小说| 成人亚洲精品一区在线观看| 黄色丝袜av网址大全| 男女午夜视频在线观看| 国产色视频综合| 色婷婷久久久亚洲欧美| 哪里可以看免费的av片| 午夜成年电影在线免费观看| 波多野结衣高清无吗| 久久久久九九精品影院| www日本在线高清视频| 精品久久久久久久毛片微露脸| 制服人妻中文乱码| 亚洲国产看品久久| 三级毛片av免费| 亚洲三区欧美一区| 男女视频在线观看网站免费 | 久久这里只有精品19| 老司机在亚洲福利影院| 亚洲熟妇熟女久久| 国产精品久久电影中文字幕| 黄色 视频免费看| 亚洲av第一区精品v没综合| 女人爽到高潮嗷嗷叫在线视频| 久久久久久大精品| 国产激情偷乱视频一区二区| 99在线人妻在线中文字幕| 人人澡人人妻人| 日韩精品免费视频一区二区三区| av片东京热男人的天堂| 悠悠久久av| 国产精华一区二区三区| 一二三四在线观看免费中文在| 成在线人永久免费视频| 精品久久久久久久人妻蜜臀av| 久久婷婷人人爽人人干人人爱| 无人区码免费观看不卡| 12—13女人毛片做爰片一| 午夜精品在线福利| 久久香蕉精品热| 十八禁人妻一区二区| 精品少妇一区二区三区视频日本电影| 最近最新中文字幕大全免费视频| 久久精品国产综合久久久| 天堂动漫精品| 精品久久久久久久久久久久久 | 男女床上黄色一级片免费看| 日本三级黄在线观看| 丁香欧美五月| 国产日本99.免费观看| 悠悠久久av| 欧美成狂野欧美在线观看| 亚洲欧美精品综合一区二区三区| 日日干狠狠操夜夜爽| 亚洲va日本ⅴa欧美va伊人久久| 亚洲九九香蕉| 91九色精品人成在线观看| 国产精品爽爽va在线观看网站 | 亚洲五月色婷婷综合| 久久精品国产亚洲av高清一级| 91九色精品人成在线观看| 亚洲精品国产精品久久久不卡| 欧美大码av| 免费电影在线观看免费观看| 成人18禁在线播放| 国产高清激情床上av| 久久伊人香网站| 婷婷六月久久综合丁香| 在线播放国产精品三级| 草草在线视频免费看| 人妻久久中文字幕网| 久久国产乱子伦精品免费另类| 在线av久久热| 成人三级黄色视频| 亚洲欧美精品综合久久99| 亚洲国产看品久久| 午夜福利成人在线免费观看| 久久狼人影院| 国产v大片淫在线免费观看| 日韩成人在线观看一区二区三区| e午夜精品久久久久久久| 97碰自拍视频| 女警被强在线播放| 午夜福利高清视频| 国产成人一区二区三区免费视频网站| 嫩草影视91久久| aaaaa片日本免费| 亚洲精品一区av在线观看| 欧美黄色淫秽网站| 国产亚洲精品第一综合不卡| 亚洲欧美激情综合另类| 国产三级在线视频| 首页视频小说图片口味搜索| 成人三级黄色视频| 精品日产1卡2卡| 中文字幕人成人乱码亚洲影| 久久久久国产一级毛片高清牌| 亚洲第一av免费看| 亚洲欧美精品综合久久99| 午夜a级毛片| 精品久久久久久久久久久久久 | 日本免费a在线| 两性午夜刺激爽爽歪歪视频在线观看 | 久久婷婷成人综合色麻豆| 别揉我奶头~嗯~啊~动态视频| 亚洲 国产 在线| 国产成人一区二区三区免费视频网站| 天天躁夜夜躁狠狠躁躁| 99久久国产精品久久久| 亚洲av成人不卡在线观看播放网| 黑人欧美特级aaaaaa片| www日本黄色视频网| 精品国产一区二区三区四区第35| 一边摸一边抽搐一进一小说| 搞女人的毛片| 国产三级黄色录像|