摘? ?要:區(qū)塊鏈技術(shù)作為金融領(lǐng)域甚至整個(gè)互聯(lián)網(wǎng)領(lǐng)域技術(shù)上的重大創(chuàng)新,因其具有去中心化、公開透明、不可篡改等特點(diǎn),除應(yīng)用于加密貨幣外,還被廣泛用于解決各個(gè)領(lǐng)域的發(fā)展難題。為保障各領(lǐng)域應(yīng)用區(qū)塊鏈技術(shù)系統(tǒng)的質(zhì)量,區(qū)塊鏈測(cè)試技術(shù)受到各國(guó)政府、科研機(jī)構(gòu)和企業(yè)公司的高度重視。文章從區(qū)塊鏈的架構(gòu)、特點(diǎn)、安全角度進(jìn)行分析,以區(qū)塊鏈測(cè)試為研究方向,目的是研究區(qū)塊鏈測(cè)試的難點(diǎn),尋求有效的區(qū)塊鏈測(cè)試方法,希望能為區(qū)塊鏈測(cè)試技術(shù)的發(fā)展提供參考。
關(guān)鍵詞:區(qū)塊鏈;安全;測(cè)試
中圖分類號(hào): TP399? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:J
Abstract: Block chain technology, as a major technology innovation in the financial field and even the entire internet field. Because of its characteristics of decentralization, openness, transparency and non-tampering, it is widely used to solve problems in various fields besides cryptocurrency.In order to ensure the quality of the system that blockchain applied in various fields, blockchain testing technology has been highly valued by governments, research institutions and enterprises. The paper analyzes the block chain from the perspective of architecture, characteristics and security. Taking block chain testing as the research direction and the purpose is to study the difficulties of block chain testing and seek for effective block chain testing methods, hoping to provide reference for the development of block chain testing technology.
Key words: block chain; safety; testing
1 引言
2008年10月31日,Satoshi Nakamoto(中本聰)在一個(gè)密碼學(xué)郵件組上發(fā)表了一篇研究報(bào)告《Bitcoin:A Peer-to-Peer Electronic Cash System》,報(bào)告表明他對(duì)電子貨幣的新想法,闡述創(chuàng)建一種去中心化、Peer-to-Peer(P2P)新型交易系統(tǒng)的方法[1]。2009年1月比特幣誕生。此后,作為比特幣底層基礎(chǔ)架構(gòu)和數(shù)據(jù)加密傳輸?shù)暮诵募夹g(shù)—區(qū)塊鏈技術(shù),因其具有去中心化、集體維護(hù)、信息不可篡改、高度透明和匿名等特點(diǎn)得到各國(guó)政府、大型企業(yè)及金融集團(tuán)的密切關(guān)注,目前已應(yīng)用于物聯(lián)網(wǎng)、金融等多個(gè)領(lǐng)域,未來將成為被廣泛使用的底層核心技術(shù)。
區(qū)塊鏈技術(shù)作為隨著比特幣及其他加密數(shù)字貨幣的日益普及而逐漸興起的重要技術(shù),在給世界帶來新機(jī)遇的同時(shí),也帶來了嚴(yán)峻挑戰(zhàn)。全球區(qū)塊鏈安全事件時(shí)有發(fā)生,區(qū)塊鏈技術(shù)相關(guān)的系統(tǒng)性能、安全和質(zhì)量等問題引發(fā)了熱議,成為學(xué)術(shù)界和產(chǎn)業(yè)界所關(guān)注的焦點(diǎn)。因此,對(duì)區(qū)塊鏈測(cè)試技術(shù)的研究,具有非常重要的實(shí)際意義,能夠進(jìn)一步推動(dòng)區(qū)塊鏈技術(shù)在各行業(yè)的應(yīng)用,并為區(qū)塊鏈測(cè)評(píng)實(shí)施提供參考。
2 區(qū)塊鏈
區(qū)塊鏈?zhǔn)且环N分布式、去中心化的計(jì)算與存儲(chǔ)架構(gòu)[2],一種由共識(shí)機(jī)制、P2P的傳輸技術(shù)、分布式技術(shù)及密碼學(xué)等信息技術(shù)組成的創(chuàng)新型應(yīng)用模式。
狹義定義:區(qū)塊鏈?zhǔn)且环N多個(gè)由密碼學(xué)技術(shù)產(chǎn)生的數(shù)據(jù)區(qū)塊按照一定的時(shí)間順序組合連接成的鏈狀數(shù)據(jù)結(jié)構(gòu),是一種不可偽造、不可修改的分布式數(shù)據(jù)賬本。
廣義定義:區(qū)塊鏈?zhǔn)抢脡K鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)驗(yàn)證與存儲(chǔ)數(shù)據(jù),利用分布式節(jié)點(diǎn)共識(shí)算法生成和更新數(shù)據(jù),利用密碼學(xué)技術(shù)保證數(shù)據(jù)傳輸和訪問安全,利用由自動(dòng)化腳本代碼組成的智能合約編程來操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計(jì)算范式[3]。
區(qū)塊鏈按照準(zhǔn)入規(guī)則可分為公有鏈、私有鏈和聯(lián)盟鏈;根據(jù)權(quán)限可分為許可鏈和非許可鏈,其中公有鏈屬于非許可鏈,私有鏈和聯(lián)盟鏈屬于許可鏈。
區(qū)塊鏈的架構(gòu)可以分六層,從下至上依次是數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層,架構(gòu)模型[4]如圖1所示。
區(qū)塊鏈本質(zhì)上是一種分布式數(shù)據(jù)存儲(chǔ)技術(shù),它的核心部分是數(shù)據(jù)層,數(shù)據(jù)層封裝了數(shù)據(jù)區(qū)塊、Merkle樹、密碼學(xué)、Hash函數(shù)、時(shí)間戳和數(shù)字簽名技術(shù)。區(qū)塊頭和區(qū)塊體組成一個(gè)數(shù)據(jù)區(qū)塊,其中區(qū)塊頭中包含前一個(gè)區(qū)塊的Hash值,可用于唯一標(biāo)識(shí)該區(qū)塊,同時(shí)還包含Merkle根和時(shí)間戳等,而相關(guān)交易信息則包含在區(qū)塊體部分。Merkle樹數(shù)據(jù)結(jié)構(gòu)是區(qū)塊體中交易信息的存儲(chǔ)方式。密碼學(xué)技術(shù)可以確保區(qū)塊鏈中數(shù)據(jù)傳輸?shù)陌踩?。Hash函數(shù)在區(qū)塊鏈中可用于快速驗(yàn)證、防止篡改和用于POW共識(shí)算法工作量證明等。時(shí)間戳保證了區(qū)塊鏈中數(shù)據(jù)的不可篡改。數(shù)字簽名使用了數(shù)字摘要和密碼學(xué)技術(shù),確保了傳輸過程中數(shù)據(jù)的完整性和交易雙方身份的真實(shí)性。
區(qū)塊鏈中數(shù)據(jù)傳輸?shù)幕A(chǔ)——網(wǎng)絡(luò)層,該層使用P2P網(wǎng)絡(luò)架構(gòu),通過特定的傳輸機(jī)制和驗(yàn)證機(jī)制,使鏈上每個(gè)節(jié)點(diǎn)都可公平參與記賬和共識(shí)。共識(shí)層是通過共識(shí)算法使區(qū)塊鏈中各個(gè)節(jié)點(diǎn)快速達(dá)成共識(shí)。激勵(lì)層是將經(jīng)濟(jì)因素引入到區(qū)塊鏈中的一層,該層主要作用是獎(jiǎng)勵(lì)記賬節(jié)點(diǎn),懲罰破環(huán)活動(dòng)的節(jié)點(diǎn),使整個(gè)鏈健康的運(yùn)轉(zhuǎn)下去。合約層體現(xiàn)了區(qū)塊鏈的可編程性,包括封裝腳本代碼、智能合約和編程算法。應(yīng)用層則主要用于部署區(qū)塊鏈的各種應(yīng)用。
區(qū)塊鏈技術(shù)作為互聯(lián)網(wǎng)行業(yè)的一個(gè)重大創(chuàng)新,在功能、性能、可靠性和安全性等各個(gè)方面都需要得到保障,目前區(qū)塊鏈安全問題在業(yè)界備受關(guān)注。
3 區(qū)塊鏈安全問題分析
區(qū)塊鏈安全事件時(shí)有發(fā)生,根據(jù)PeckShield提供的數(shù)據(jù)和BCSEC網(wǎng)站數(shù)據(jù)的統(tǒng)計(jì),2018年因區(qū)塊鏈安全事件導(dǎo)致的經(jīng)濟(jì)損失高達(dá)22.38億美元;據(jù)Odaily 星球日?qǐng)?bào)與 PeckShield 聯(lián)合發(fā)布研報(bào)顯示僅2019年就發(fā)生了177件區(qū)塊鏈安全事件,造成的經(jīng)濟(jì)損失為76.79億美元。因此,區(qū)塊鏈安全問題需得到高度重視。從業(yè)界研究來看,區(qū)塊鏈安全問題主要包括五個(gè)方面。
(1)代碼安全問題
區(qū)塊鏈項(xiàng)目為了使更多對(duì)區(qū)塊鏈感興趣的開發(fā)者參與,其代碼均具有開源特性,但這會(huì)降低黑客攻擊區(qū)塊鏈的難度。例如,XVG因其代碼層面的漏洞,在很短的時(shí)間內(nèi)被黑客攻擊損失175萬(wàn)美元數(shù)字貨幣[5]。EOS因?yàn)楹霞s代碼安全性薄弱,導(dǎo)致黑客多次發(fā)起DAPP攻擊[6]。
(2)密碼技術(shù)安全問題
區(qū)塊鏈技術(shù)離不開密碼學(xué),但隨著量子計(jì)算技術(shù)[7]的發(fā)展,在理論上,該技術(shù)可以攻克使用ECDSA、DSA、RSA等加密算法保存的信息,將會(huì)使區(qū)塊鏈面臨著很大的安全風(fēng)險(xiǎn)。
(3)智能合約安全問題
對(duì)于智能合約[8]人工干預(yù)的可能性很小,但如果編寫的智能合約本身就存在問題,則受到黑客攻擊的概率就會(huì)增加,可能造成不可估量的損失。此外,智能合約運(yùn)行環(huán)境的安全性也會(huì)對(duì)區(qū)塊鏈安全產(chǎn)生影響。由于智能合約安全問題造成重大損失的事件有很多,例如2018年4~5月,發(fā)生了BEC/SMT/EDU智能合約安全漏洞事件[9],原因是某些以太坊ERC-20智能合約存在BUG(溢出或必要校驗(yàn)),黑客利用該缺陷對(duì)智能合約發(fā)起攻擊,導(dǎo)致某互聯(lián)網(wǎng)公司損失了近9億美元,使得BEC代幣的價(jià)值幾乎歸零。
(4)協(xié)議安全問題
協(xié)議安全問題主要包括共識(shí)機(jī)制、區(qū)塊鏈網(wǎng)絡(luò)等方面的安全問題,目前常用的共識(shí)機(jī)制有PoW、PoS、DPoS及PBFT等。對(duì)于PoW當(dāng)攻擊者擁有全網(wǎng)51%以上的算力時(shí),就可以撤銷自己的交易記錄,進(jìn)行雙重支付。對(duì)于PoS共識(shí)機(jī)制,當(dāng)攻擊者擁有全網(wǎng)51%以上的Token時(shí),便可發(fā)生攻擊,對(duì)區(qū)塊鏈造成破環(huán)。對(duì)于PBFT,正常節(jié)點(diǎn)占全網(wǎng)2/3以上時(shí),整個(gè)鏈才是安全的。由此可見,任何共識(shí)機(jī)制的安全性都是有條件的。由于協(xié)議安全問題也發(fā)生過安全事件,例如Ethereum Classic,作為全球市值最大的分叉鏈。分叉后ETC使用的算法一直是POW,但是全網(wǎng)的算力水平一直比較低,由此導(dǎo)致2019年1月6日出現(xiàn)了51%的雙花攻擊,共損失219500ETC,約110萬(wàn)美元[10]。
(5)使用時(shí)的安全問題
使用時(shí)的安全問題主要是指數(shù)字錢包及軟件等可能存在的安全問題。區(qū)塊鏈服務(wù)器也可能存在一些成為黑客攻擊點(diǎn)的安全漏洞。例如,2018年10月26日,EosRoyale錢包遭到黑客攻擊,被黑客盜取了約11000個(gè)EOS(約6萬(wàn)美金)[11]。
區(qū)塊鏈安全問題可能存在于各個(gè)方面,因此對(duì)于區(qū)塊鏈測(cè)試技術(shù)的研究迫在眉睫。
4 區(qū)塊鏈測(cè)試
區(qū)塊鏈在金融、物聯(lián)網(wǎng)、供應(yīng)鏈等領(lǐng)域有廣闊的應(yīng)用前景,但是在技術(shù)實(shí)現(xiàn)、標(biāo)準(zhǔn)規(guī)范等方面還存在一些不完善的地方,需進(jìn)行深度研究和探索。區(qū)塊鏈安全問題可能是目前業(yè)界最為關(guān)注的問題,但在實(shí)際各種應(yīng)用場(chǎng)景中,區(qū)塊鏈的功能、性能及可靠性等方面也都需得到保障,因此需加快對(duì)區(qū)塊鏈測(cè)試技術(shù)的研究。
4.1 區(qū)塊鏈測(cè)試的難點(diǎn)
區(qū)塊鏈測(cè)試與普通系統(tǒng)或軟件測(cè)試有很大差別,在對(duì)其研究中發(fā)現(xiàn)區(qū)塊鏈測(cè)試存在三方面測(cè)試難點(diǎn)。
4.1.1不同類型區(qū)塊鏈測(cè)試考慮的重點(diǎn)不同
區(qū)塊鏈按準(zhǔn)入規(guī)則目前可分為公有鏈、私有鏈和聯(lián)盟鏈。鑒于不同類型區(qū)塊鏈具有不同的特性,因此測(cè)試重點(diǎn)會(huì)有所不同。
公有鏈?zhǔn)侨魏斡脩舳伎山尤耄瑳]有任何限制,可能包含一些具有破壞性的節(jié)點(diǎn),公有鏈對(duì)用戶身份也沒有任何限制,因此測(cè)試時(shí)不必考慮對(duì)用戶身份的驗(yàn)證。對(duì)于共識(shí)機(jī)制,不同的公有鏈共識(shí)機(jī)制不同,且均為多塊確認(rèn),交易處理時(shí)間可能會(huì)比較長(zhǎng)。測(cè)試時(shí)要考慮共識(shí)機(jī)制的效率和安全性,以及在某些特定的應(yīng)用場(chǎng)景下,交易確認(rèn)時(shí)間是否能夠滿足需求。
而對(duì)于聯(lián)盟鏈和私有鏈,鏈上用戶身份均經(jīng)過認(rèn)證,因此不存在惡意成員節(jié)點(diǎn)。在測(cè)試時(shí)需考慮對(duì)用戶身份及權(quán)限的驗(yàn)證。對(duì)于聯(lián)盟鏈和私有鏈,共識(shí)機(jī)制也會(huì)根據(jù)鏈的不同而不同,但是確認(rèn)時(shí)間都會(huì)比較短,有的幾秒就可以完成確認(rèn)。一般應(yīng)用于銀行轉(zhuǎn)賬、證券交易等場(chǎng)景。在對(duì)其測(cè)試時(shí)需考慮共識(shí)機(jī)制的安全性,同時(shí)還需要考慮交易確認(rèn)時(shí)間是否能夠滿足實(shí)際業(yè)務(wù)需求,私有鏈和聯(lián)盟鏈一般是由單個(gè)或多個(gè)機(jī)構(gòu)組成的鏈來完成某些特定業(yè)務(wù),對(duì)交易確認(rèn)時(shí)間要求較高。
由此可見,不同類型的區(qū)塊鏈測(cè)試的重點(diǎn)不同,因此測(cè)試方案的復(fù)雜性會(huì)比較高。
4.1.2區(qū)塊鏈故障種類多且復(fù)雜
(1)節(jié)點(diǎn)宕機(jī)故障
節(jié)點(diǎn)宕機(jī)故障區(qū)塊鏈節(jié)點(diǎn)位于不同的物理環(huán)境中,可能會(huì)出現(xiàn)一個(gè)或幾個(gè)節(jié)點(diǎn)宕機(jī)的情況,這種情況下需測(cè)試節(jié)點(diǎn)宕機(jī)對(duì)整條鏈的影響及其恢復(fù)后再加入到鏈中信息同步的問題。而普通的系統(tǒng)或軟件節(jié)點(diǎn)宕機(jī)故障測(cè)試則考慮的是備機(jī)能否及時(shí)替換的問題。
(2)共識(shí)機(jī)制故障
共識(shí)機(jī)制故障問題是傳統(tǒng)系統(tǒng)測(cè)試不會(huì)出現(xiàn)的問題。在區(qū)塊鏈中不同的鏈會(huì)采用不同的共識(shí)機(jī)制,而針對(duì)不同的共識(shí)機(jī)制需要制定不同的測(cè)試方案。例如,POW當(dāng)算力超過全網(wǎng)50%時(shí),就會(huì)對(duì)鏈造成破壞。大部分的共識(shí)機(jī)制不出現(xiàn)故障都是有條件的。而共識(shí)機(jī)制故障,會(huì)導(dǎo)致鏈的服務(wù)失效,嚴(yán)重的將造成重大經(jīng)濟(jì)損失。因此測(cè)試時(shí),需根據(jù)不同的共識(shí)機(jī)制設(shè)計(jì)不同的測(cè)試方案。
(3)安全方面的故障
安全方面的故障是最為嚴(yán)重,也是最為復(fù)雜的故障,有和普通系統(tǒng)相一致的底層代碼安全性、密碼算法安全性,也有普通系統(tǒng)測(cè)試未涉及到的共識(shí)機(jī)制安全性、智能合約安全性、數(shù)字錢包安全性等。
4.1.3 系統(tǒng)邊界不明確
普通軟件,不論是客戶端/服務(wù)器模式的系統(tǒng),還是獨(dú)立的應(yīng)用程序,系統(tǒng)邊界都很明確。可通過瀏覽器直接測(cè)試。然而,區(qū)塊鏈完全是一個(gè)去中心化的分布式網(wǎng)絡(luò),可能會(huì)跨越多個(gè)不同國(guó)家、數(shù)據(jù)中心、運(yùn)營(yíng)商,無(wú)明確系統(tǒng)邊界。因此,區(qū)塊鏈測(cè)試不僅要測(cè)試某個(gè)API、某個(gè)DAPP,還需考慮節(jié)點(diǎn)間的測(cè)試,在實(shí)施測(cè)試時(shí)難度系數(shù)增加。
4.2 區(qū)塊鏈測(cè)試類型的選擇
在實(shí)際測(cè)試中,可根據(jù)對(duì)區(qū)塊鏈產(chǎn)品測(cè)試目的不同,選擇不同類型的區(qū)塊鏈測(cè)試。
(1)若目的是對(duì)區(qū)塊鏈產(chǎn)品進(jìn)行評(píng)估、檢測(cè),則需進(jìn)行系統(tǒng)測(cè)試。
(2)若目的是對(duì)區(qū)塊鏈產(chǎn)品進(jìn)行成果鑒定、基金申請(qǐng),做鑒定測(cè)試即可。
(3)若目的通過對(duì)比,選出一條各方面指標(biāo)都比較好的區(qū)塊鏈產(chǎn)品,則需做對(duì)比測(cè)試。
(4)若目的是為檢測(cè)區(qū)塊鏈產(chǎn)品是否達(dá)成某種預(yù)期的效果則需進(jìn)行驗(yàn)收測(cè)試。
4.3 區(qū)塊鏈測(cè)試重點(diǎn)
區(qū)塊鏈測(cè)試點(diǎn)較多,經(jīng)調(diào)研分析,測(cè)試重點(diǎn)主要包括八個(gè)部分。
(1)數(shù)據(jù)處理基本功能測(cè)試:查詢總區(qū)塊數(shù)、區(qū)塊的平均生成時(shí)間、對(duì)某個(gè)區(qū)塊的業(yè)務(wù)數(shù)量進(jìn)行查詢、某個(gè)區(qū)塊上業(yè)務(wù)的詳細(xì)信息及業(yè)務(wù)溯源等信息的查詢。
(2)節(jié)點(diǎn)管理功能測(cè)試:節(jié)點(diǎn)的增加、刪除、節(jié)點(diǎn)間數(shù)據(jù)同步、節(jié)點(diǎn)及其接口的訪問權(quán)限管理。
(3)用戶的身份認(rèn)證:注冊(cè)、修改及凍結(jié)等。
(4)共識(shí)機(jī)制有效性測(cè)試:是否會(huì)發(fā)生雙花、是否達(dá)成相互信任的共識(shí)等。
(5)加密算法的測(cè)試:區(qū)塊鏈對(duì)加密算法的支持,以及鏈上信息的存儲(chǔ)和加密傳輸。
(6)容錯(cuò)性的測(cè)試:新增節(jié)點(diǎn)對(duì)整條區(qū)塊鏈的影響,某個(gè)節(jié)點(diǎn)宕機(jī)對(duì)整條區(qū)塊鏈的影響或者調(diào)整某個(gè)節(jié)點(diǎn)對(duì)整條區(qū)塊鏈的影響。
(7)對(duì)于支持智能合約的區(qū)塊鏈,需要對(duì)其智能合約進(jìn)行測(cè)試:測(cè)試智能合約對(duì)查詢、更新、凍結(jié)等功能的支持,
(8)性能方面的測(cè)試:包括吞吐率的測(cè)試、TPS、交易確認(rèn)時(shí)延、節(jié)點(diǎn)宕機(jī)恢復(fù)效率等。
4.4 區(qū)塊鏈測(cè)試工具
4.4.1 Caliper性能測(cè)試工具
Caliper是一款區(qū)塊鏈性能測(cè)試工具,可實(shí)現(xiàn)對(duì)不同區(qū)塊鏈性能的實(shí)時(shí)跟蹤,得到一系列的測(cè)試結(jié)果,并生成測(cè)試報(bào)告。目前,支持的測(cè)試指標(biāo)有交易成功率、交易吞吐量TPS、交易延遲及CPU、內(nèi)存、網(wǎng)絡(luò)IO的資源消耗。用戶可使用事先定義好的測(cè)試用例測(cè)試不同區(qū)塊鏈的性能,包括交易成功率以及在進(jìn)行一些操作時(shí)CPU等資源的消耗情況。該測(cè)試工具的應(yīng)用層(Application Layer)中包含對(duì)典型區(qū)塊鏈方案實(shí)施的測(cè)試,對(duì)于測(cè)試的配置文件,用來對(duì)后端區(qū)塊鏈網(wǎng)絡(luò)和測(cè)試參數(shù)進(jìn)行定義,這些可直接用于對(duì)區(qū)塊鏈系統(tǒng)性能進(jìn)行測(cè)試。適配層(Adaptation Layer)可實(shí)現(xiàn)和不同區(qū)塊鏈的集成,將區(qū)塊鏈系統(tǒng)集成到Caliper框架中,每個(gè)適配器都可通過相應(yīng)的區(qū)塊鏈SDK或RESTful API實(shí)現(xiàn)相應(yīng)的‘Caliper Blockchain NBIs。接口和核心層(Interface & Core Layer)包括了Caliper核心函數(shù),并為Up-applications提供了NBI(North Bound Interfaces),包括四種NBIs:區(qū)塊鏈操作接口、資源監(jiān)控器、性能分析器、報(bào)告生成器。
目前,Caliper支持對(duì) Hyperledger Iroha、Hylerledger Sawtooth和Hyperleger Fabric的分析,后續(xù)會(huì)提供對(duì)更多區(qū)塊鏈測(cè)試分析的支持。
4.4.2 JMeter壓力測(cè)試工具
JMeter是由Apache組織開發(fā)的壓力測(cè)試工具,最初只是用于對(duì)Web應(yīng)用測(cè)試,之后逐漸擴(kuò)展到其他測(cè)試領(lǐng)域,可用來測(cè)試動(dòng)態(tài)和靜態(tài)資源,例如數(shù)據(jù)庫(kù)、服務(wù)器、CGI腳本和小程序等。此外,還可對(duì)網(wǎng)絡(luò)、服務(wù)器或模擬高負(fù)載的情況。對(duì)于區(qū)塊鏈的壓力測(cè)試,可以利用JMeter測(cè)試不同壓力下,區(qū)塊鏈TPS、節(jié)點(diǎn)故障恢復(fù)效率、交易確認(rèn)時(shí)延等性能。另外,JMeter還可以做功能或回歸測(cè)試,通過創(chuàng)建設(shè)有斷言的腳本,返回期望的結(jié)果。
JMeter組件主要由測(cè)試計(jì)劃、模擬并發(fā)請(qǐng)求的線程組、收集測(cè)試結(jié)果的監(jiān)聽器、定義JMeter發(fā)送請(qǐng)求行為邏輯的邏輯控制器、判斷請(qǐng)求結(jié)果是否為所期望結(jié)果的斷言、維護(hù)Sampler的配置原件、處理生成請(qǐng)求之前和之后工作的前置處理器和后置處理器、定義請(qǐng)求延時(shí)間隔的定時(shí)器組成。
Jmeter支持的腳本生成方式有直接導(dǎo)入通過Badboy錄制的腳本、手動(dòng)編寫測(cè)試用例和直接使用JMeter錄制腳本。
4.4.3 NMap端口掃描工具
NMap即Network Mapper,是一款Linux下的網(wǎng)絡(luò)嗅探和掃描工具包。NMap通常用于掃描開放端口、發(fā)現(xiàn)網(wǎng)絡(luò)服務(wù)、探測(cè)主機(jī)是否在線、管理服務(wù)升級(jí)計(jì)劃等。Nmap作為使用原始IP數(shù)據(jù)包工具,能夠快速地準(zhǔn)確檢測(cè)網(wǎng)絡(luò)中有哪些主機(jī),主機(jī)上有哪些服務(wù),什么版本的包過濾防火墻正在被使用等。在區(qū)塊鏈網(wǎng)絡(luò)中,NMap用于檢測(cè)鏈上節(jié)點(diǎn)是否正常運(yùn)行,所在網(wǎng)絡(luò)是否安全,敏感端口是關(guān)閉等問題,一旦出現(xiàn)安全問題,可通過路由進(jìn)行故障排查。
4.4.4 Wireshark抓包分析工具
Wireshark是一款跨平臺(tái)的網(wǎng)絡(luò)封包分析工具,主要用于分析、排查網(wǎng)絡(luò)問題和網(wǎng)絡(luò)入侵。Wireshark利用WinPCAP作為接口,直接與網(wǎng)卡數(shù)據(jù)報(bào)文交互。一般用于解析網(wǎng)絡(luò)鏈接、數(shù)據(jù)發(fā)送結(jié)果、流量統(tǒng)統(tǒng)計(jì)和一些常見的應(yīng)用層問題。在區(qū)塊鏈測(cè)試中可用于對(duì)共識(shí)算法分析測(cè)試、交易分析測(cè)試等數(shù)據(jù)包分析。如在某個(gè)節(jié)點(diǎn)發(fā)起交易,形成區(qū)塊,使用Wireshark對(duì)其他節(jié)點(diǎn)的IP地址進(jìn)行抓包,通過分析數(shù)據(jù)包,分析交易過程與使用的共識(shí)算法對(duì)比,以檢測(cè)其實(shí)際流程與共識(shí)算法流程是否相一致。
5 結(jié)束語(yǔ)
本文首先介紹了區(qū)塊鏈相關(guān)概念,分析了區(qū)塊鏈目前存在的問題,研究了區(qū)塊鏈測(cè)試的難點(diǎn)、重點(diǎn)、測(cè)試類型的選擇及目前可用的幾款區(qū)塊鏈測(cè)試工具,希望能為區(qū)塊鏈測(cè)評(píng)技術(shù)的發(fā)展提供參考。區(qū)塊鏈技術(shù)目前仍處在發(fā)展初期,區(qū)塊鏈測(cè)試技術(shù)也是在探索中發(fā)展,測(cè)試方法及測(cè)試工具還需不斷完善,以提高區(qū)塊鏈產(chǎn)品質(zhì)量,進(jìn)而推動(dòng)區(qū)塊鏈行業(yè)的健康快速發(fā)展。
參考文獻(xiàn)
[1] 楊保華,陳昌.區(qū)塊鏈原理、設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2018.5-7.
[2] 閆鶯,鄭凱,郭眾鑫.以太坊技術(shù)詳解與實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2018.
[3] 工信部.中國(guó)區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書(2016)[EB/OL]. https://www.jianshu.com/p/6ac84516a4c5 2018.05.22/2019.05.20
[4] 袁勇,王飛躍.區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J].自動(dòng)化學(xué)報(bào),2016.42(4):481-494.
[5] 超級(jí)盾.Verge再遭黑客攻擊,損失近175萬(wàn)美元[EL/OB]. https://kuaibao.qq.com/s/20180528A1KGTC00?refer=cp_1026 2018.05.28/2019.05.30
[6] 火星財(cái)經(jīng).2019年區(qū)塊鏈安全時(shí)間總結(jié),全球損失超60億美元[EL/OB]. https://baijiahao.baidu.com/s?id=1653256084343427367&wfr=spider&for=pc.2019.12.28/2020.02.10
[7] 楊保華,陳昌.區(qū)塊鏈原理、設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2018.70-71.
[8] 黃連金,等.區(qū)塊鏈安全技術(shù)指南[M]. 北京:機(jī)械工業(yè)出版社,2018.52-90.
[9] 區(qū)塊鏈兄弟.ERC20合約整數(shù)溢出安全流動(dòng)案例技術(shù)分析[EL/OB]. https://baijiahao.baidu.com/s?id=1598863813860238774&wfr=spider&for=pc.2018.04.27/2019.05.30
[10] 星球日?qǐng)?bào).一二月區(qū)塊鏈安全事件盤點(diǎn)[EL/OB]. https://baijiahao.baidu.com/s?id=1626069087170114827&wfr=spider&for=pc 2019.02.21/2019.05.30.
[11] Apatheticco.基于EOS的dApp EosRoyale遭到攻擊,被盜1.1萬(wàn)枚EOS[EL/OB]. https://www.8btc.com/article/300799 2018.10.31/2019.06.04
[12] 王繼輝.區(qū)塊鏈與智能合約圖譜分析[J].網(wǎng)絡(luò)空間安全, 2019,10(11):1-6+25.
作者簡(jiǎn)介:
周鳴愛(1988-),女,漢族,河北張家口人,河北工程大學(xué),碩士,賽迪研究院網(wǎng)絡(luò)安全研究所,工程師;主要研究方向和關(guān)注領(lǐng)域:區(qū)塊鏈、計(jì)算機(jī)軟件、網(wǎng)絡(luò)安全。