肖堯 閆帥 蔣遂平
摘 要:區(qū)塊鏈技術(shù)在物聯(lián)網(wǎng)等大交易量場(chǎng)景中的應(yīng)用面臨的突出問題之一是可擴(kuò)展性。文中分析了區(qū)塊鏈可擴(kuò)展性問題的來源、影響與主要解決方案。針對(duì)區(qū)塊鏈的可擴(kuò)展性,引入?yún)^(qū)塊指針和狀態(tài)更新池的概念,提出了區(qū)塊數(shù)據(jù)的雙子鏈模型,并對(duì)雙子鏈模型解決可擴(kuò)展性問題的可能性和安全性進(jìn)行了討論。
關(guān)鍵詞:區(qū)塊鏈;可擴(kuò)展性;數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)庫(kù)
中圖分類號(hào):TP39文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)02-00-04
0 引 言
近年來,區(qū)塊鏈作為從比特幣[1]中提煉出來的技術(shù),引起了科技企業(yè)、資本市場(chǎng)、金融機(jī)構(gòu)及政府部門的巨大關(guān)
注[2]。作為最成功的區(qū)塊鏈應(yīng)用,比特幣在資本領(lǐng)域獲得了巨大成功,截至2018年8月,比特幣市場(chǎng)已達(dá)千億美元。目前,區(qū)塊鏈已經(jīng)從單純的數(shù)字貨幣應(yīng)用擴(kuò)展到物聯(lián)網(wǎng)、金融、醫(yī)療、保險(xiǎn)等領(lǐng)域。
作為一種去中心化的分布式存儲(chǔ)技術(shù),區(qū)塊鏈擁有巨大的發(fā)展前景,但仍面臨著眾多挑戰(zhàn)[3-4]。其中一個(gè)突出問題是可擴(kuò)展性,尤其是在物聯(lián)網(wǎng)背景下,存在海量存儲(chǔ)和計(jì)算資源受限的小型節(jié)點(diǎn),當(dāng)把感知數(shù)據(jù)作為一種資產(chǎn)進(jìn)行交易時(shí),這些節(jié)點(diǎn)需要處理巨大的交易量,以區(qū)塊鏈規(guī)模為中心的可擴(kuò)展性問題尤其嚴(yán)峻。
本文首先分析了可擴(kuò)展性問題的原因及影響,介紹現(xiàn)有的相關(guān)工作,然后提出了新的解決方案模型,最后就模型的相關(guān)問題進(jìn)行討論。
1 可擴(kuò)展性問題分析
1.1 存在原因
可擴(kuò)展性問題的關(guān)鍵在于區(qū)塊鏈規(guī)模的不斷增長(zhǎng),區(qū)塊鏈規(guī)模不斷增長(zhǎng)的根本原因在于區(qū)塊數(shù)據(jù)結(jié)構(gòu)和組鏈的方式。
區(qū)塊鏈中的數(shù)據(jù)以一個(gè)個(gè)區(qū)塊的形式存在,每個(gè)區(qū)塊包含區(qū)塊頭和區(qū)塊體兩部分。區(qū)塊頭封裝了前塊Hash、時(shí)間戳、隨機(jī)數(shù)、Merkle樹根值等信息,區(qū)塊體中則主要包含交易事務(wù)的完整信息。前塊Hash字段為前一區(qū)塊的摘要信息,可以防止前一區(qū)塊被任意篡改,并唯一指向了前一個(gè)區(qū)塊。通過前塊Hash字段,一個(gè)個(gè)獨(dú)立的區(qū)塊從邏輯上串聯(lián)成一條鏈,任何中間區(qū)塊的缺失或被篡改都會(huì)使后續(xù)區(qū)塊失效。
取得記賬權(quán)的節(jié)點(diǎn)需要利用所有歷史區(qū)塊的信息確認(rèn)收到的交易信息,以構(gòu)建新區(qū)塊,并通過前塊Hash字段鏈接到時(shí)間上最近的區(qū)塊,其他節(jié)點(diǎn)通過本地保有的完整區(qū)塊鏈對(duì)新區(qū)塊加以驗(yàn)證,如果驗(yàn)證成功就將其加入本地區(qū)塊鏈,形成新的區(qū)塊主鏈。從創(chuàng)世區(qū)塊(區(qū)塊鏈的第一個(gè)區(qū)塊)到當(dāng)前區(qū)塊形成的一條最長(zhǎng)主鏈記錄了區(qū)塊鏈的完整歷史。作為一種分布式數(shù)據(jù)庫(kù),區(qū)塊鏈網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都保留一份完整的區(qū)塊鏈,并以此作為新區(qū)塊的接收依據(jù)。
由此,區(qū)塊鏈的規(guī)模不斷增長(zhǎng),越來越龐大。對(duì)區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)而言,如果丟失中間任意區(qū)塊,就難以進(jìn)行工作。由于節(jié)點(diǎn)需要保存完整的不斷增長(zhǎng)的區(qū)塊鏈,因此導(dǎo)致了可擴(kuò)展性問題的出現(xiàn)。
1.2 可擴(kuò)展性問題影響
區(qū)塊鏈規(guī)模的增長(zhǎng)速度與交易量密切相關(guān),在比特幣每秒只記錄7筆交易的小交易量條件下,目前完整的比特幣區(qū)塊鏈占用存儲(chǔ)空間已達(dá)到180 GB,并且還在不斷增長(zhǎng)。在物聯(lián)網(wǎng)、證券、發(fā)電權(quán)管理、智慧城市等大交易量場(chǎng)景下,單個(gè)節(jié)點(diǎn)的區(qū)塊數(shù)據(jù)存儲(chǔ)量將很快達(dá)到TB級(jí)。
區(qū)塊鏈規(guī)模的不斷增長(zhǎng)使得節(jié)點(diǎn)初始化下載數(shù)據(jù)耗時(shí)較長(zhǎng),新節(jié)點(diǎn)的加入極為困難。此外,節(jié)點(diǎn)在挖礦和執(zhí)行共識(shí)算法時(shí)也需要較多的算力與存儲(chǔ)能力,挖礦節(jié)點(diǎn)資源越來越多,導(dǎo)致算力分布愈加集中,威脅到系統(tǒng)的安全。對(duì)于大部分節(jié)點(diǎn)來說,保存業(yè)務(wù)上不需要的交易記錄會(huì)造成大量資源浪費(fèi)[5]。物聯(lián)網(wǎng)區(qū)塊鏈網(wǎng)絡(luò)中大部分節(jié)點(diǎn)的存儲(chǔ)、算力及能源受到較大限制,即使作為輕型節(jié)點(diǎn),只處理傳統(tǒng)區(qū)塊鏈的一小部分工作都難以完成。
由于可擴(kuò)展性問題極大地影響了區(qū)塊鏈技術(shù)的應(yīng)用與發(fā)展,因此迫切需要一種切實(shí)可行的解決方案。
2 相關(guān)工作
目前針對(duì)可擴(kuò)展性問題,主要采用區(qū)塊鏈存儲(chǔ)優(yōu)化和重新設(shè)計(jì)區(qū)塊鏈等方法。
2.1 區(qū)塊鏈存儲(chǔ)優(yōu)化
2.1.1 全網(wǎng)節(jié)點(diǎn)放棄對(duì)全部歷史信息的保留
鑒于節(jié)點(diǎn)執(zhí)行完整賬本相關(guān)功能的難度不斷加大,Bruce提出一個(gè)小型鏈(mini-blockchain)加密貨幣體系[6],結(jié)點(diǎn)可以不斷移除或遺忘舊的交易記錄,并通過一個(gè)名為“賬戶樹”的本地?cái)?shù)據(jù)庫(kù)保存所有非空賬戶的余額。這樣,交易無需永遠(yuǎn)存儲(chǔ)在區(qū)塊鏈中,只需要存儲(chǔ)最近的交易事務(wù)和賬戶樹即可。這種方法大大減少了區(qū)塊鏈網(wǎng)絡(luò)的存儲(chǔ)規(guī)模,大幅提高了可擴(kuò)展性,并在氪石幣中得到應(yīng)用。但是賬戶樹的更新較為復(fù)雜,節(jié)點(diǎn)間賬戶樹的同步同樣需要耗費(fèi)資源。
2.1.2 通過輕量級(jí)節(jié)點(diǎn)減輕部分節(jié)點(diǎn)的存儲(chǔ)、計(jì)算壓力
中本聰在比特幣白皮書中指出:輕型節(jié)點(diǎn)可以只保留區(qū)塊頭,通過簡(jiǎn)單支付驗(yàn)證(SPV)的方式工作。每個(gè)比特幣區(qū)塊頭部固定為80 B,一年總增長(zhǎng)為4.2 MB,需要時(shí)再向完整節(jié)點(diǎn)獲取相應(yīng)的數(shù)據(jù),極大地降低了節(jié)點(diǎn)存儲(chǔ)要求。
Hooff等人提出一種名為VerSUM的輕量級(jí)客戶端[7]。VerSUM允許輕量級(jí)客戶端將過大的計(jì)算量外包給其他服務(wù)器,通過比較多個(gè)服務(wù)器返回的結(jié)果以保證計(jì)算結(jié)果的正確性。
這類方法的本質(zhì)是通過存儲(chǔ)或算力的外包,把負(fù)載轉(zhuǎn)移至其他節(jié)點(diǎn)。在這種模式下,擁有更多資源的節(jié)點(diǎn)會(huì)擁有更多話語(yǔ)權(quán),強(qiáng)化了區(qū)塊鏈網(wǎng)絡(luò)的中心化程度,背離了去中心化的初衷,增加了系統(tǒng)風(fēng)險(xiǎn)。
2.1.3 通過鏈下離線交易來減輕網(wǎng)絡(luò)壓力
Lombrozo,Lau和Wuille提出見證隔離技術(shù)[8],將簽名數(shù)據(jù)從交易中分離出來,組成新的結(jié)構(gòu)另行存儲(chǔ)。Poon和Dryja提出閃電網(wǎng)絡(luò)方案[9],通過離鏈進(jìn)行頻繁的小額支付,以避免區(qū)塊鏈容量被大量小額交易占用。在此基礎(chǔ)上,文獻(xiàn)[10]提出雙向小額支付的通道協(xié)議,在保證安全的前提下,節(jié)點(diǎn)可以利用自建的離線通道實(shí)現(xiàn)無延遲實(shí)時(shí)支付。
以上利用鏈下離線交易來擴(kuò)容的主要思路是盡可能把更多的信息放到鏈下存儲(chǔ),緩解單個(gè)區(qū)塊數(shù)據(jù)量不夠、數(shù)據(jù)冗余以及鏈上數(shù)據(jù)過多的問題。
2.2 重新設(shè)計(jì)區(qū)塊鏈
文獻(xiàn)[11]提出下一代比特幣(比特幣NG)的思想。比特幣NG將傳統(tǒng)區(qū)塊分解為兩部分:領(lǐng)導(dǎo)者選舉的關(guān)鍵區(qū)塊和存儲(chǔ)交易的微區(qū)塊。該協(xié)議將時(shí)間劃分為不同時(shí)段。 在每個(gè)時(shí)段,節(jié)點(diǎn)必須散列以生成關(guān)鍵區(qū)塊。一旦生成關(guān)鍵區(qū)塊,該節(jié)點(diǎn)就成為負(fù)責(zé)生成微區(qū)塊的領(lǐng)導(dǎo)者。比特幣NG還擴(kuò)展了最長(zhǎng)鏈條策略,在這個(gè)策略中微區(qū)塊沒有權(quán)值。通過這種方式重新設(shè)計(jì)區(qū)塊鏈,并且已經(jīng)解決了塊大小和網(wǎng)絡(luò)安全性之間的權(quán)衡問題。
對(duì)于大交易量的場(chǎng)景,以上多數(shù)方案并不能很好地解決區(qū)塊鏈規(guī)模不斷增大的問題,沒有從根本上解決可擴(kuò)展性問題。文獻(xiàn)[6]把傳統(tǒng)的區(qū)塊鏈分為三個(gè)部分,但在更新賬戶樹時(shí)操作較為復(fù)雜,不易整體實(shí)現(xiàn)。
本文從數(shù)據(jù)層著手,改進(jìn)區(qū)塊數(shù)據(jù)結(jié)構(gòu),引入狀態(tài)更新池的概念,提出新的區(qū)塊鏈數(shù)據(jù)模型,提供一種能使區(qū)塊鏈系統(tǒng)保持特定規(guī)模的解決方案。
3 雙子鏈模型
3.1 區(qū)塊指針
區(qū)塊鏈規(guī)模不斷增長(zhǎng)的根本原因在于數(shù)據(jù)層的區(qū)塊數(shù)據(jù)結(jié)構(gòu)和組鏈方式。僅有的前塊Hash字段使得區(qū)塊的組鏈方式較單一,只能抽象地組成一條拓?fù)浣Y(jié)構(gòu)簡(jiǎn)單的區(qū)塊鏈,無法對(duì)區(qū)塊鏈本身進(jìn)行操作,區(qū)塊鏈系統(tǒng)只能不斷增大規(guī)模,最多以鏈下存儲(chǔ)和只保留區(qū)塊頭的方式緩解這一問題。
為解決這一問題,本文將前塊Hash字段改進(jìn)為區(qū)塊指針,如圖1所示。區(qū)塊指針包括指向區(qū)塊高度和指向區(qū)塊摘要兩個(gè)字段,分別表示區(qū)塊指針指向區(qū)塊的高度序號(hào)和哈希摘要。與傳統(tǒng)區(qū)塊鏈中的前塊Hash字段不同,區(qū)塊指針并不固定指向前一區(qū)塊,而是可以根據(jù)需要指向任意已存在的區(qū)塊。通過一個(gè)或多個(gè)區(qū)塊指針,區(qū)塊可組成更復(fù)雜的拓?fù)浣Y(jié)構(gòu),使得區(qū)塊鏈的結(jié)構(gòu)更加豐富、靈活。
3.2 狀態(tài)更新池
除了引入?yún)^(qū)塊指針外,還需要在區(qū)塊體中引入狀態(tài)更新池的概念,以便在業(yè)務(wù)邏輯上支持對(duì)新的區(qū)塊鏈結(jié)構(gòu)進(jìn)行相關(guān)操作,滿足新功能。
目前大部分區(qū)塊鏈系統(tǒng)的核心為交易數(shù)據(jù),每個(gè)區(qū)塊中包含了以地址賬戶為主體的交易信息,節(jié)點(diǎn)依靠所有歷史信息判斷每筆新的交易是否合法,是否存在雙花等問題。這種檢查實(shí)質(zhì)上是對(duì)輸出地址賬戶所持有通證(token)狀態(tài)的判定,即在時(shí)刻t相關(guān)賬戶的余額狀態(tài),在區(qū)塊鏈中,就是截至前一區(qū)塊該賬戶的余額狀態(tài)。只要能安全得到這一條件,該賬戶的歷史交易信息便可丟棄,達(dá)到減少區(qū)塊鏈數(shù)據(jù)量的目的。
為此,本文引入狀態(tài)更新池的相關(guān)概念,如圖2所示。區(qū)塊體內(nèi)加入?yún)^(qū)塊狀態(tài)更新子池,區(qū)塊頭部增加子池摘要,每份子池內(nèi)包含一定數(shù)量的賬戶狀態(tài)信息,一份完整的狀態(tài)更新池由若干個(gè)存在于連續(xù)不間斷區(qū)塊中的狀態(tài)更新子池組成。
如在區(qū)塊Bm至區(qū)塊Bn這一串連續(xù)有限區(qū)塊中,包含一份狀態(tài)更新池,每個(gè)區(qū)塊內(nèi)的子池均包含部分賬戶截至區(qū)塊Bm之前的狀態(tài)信息,整個(gè)狀態(tài)更新池中包含截至區(qū)塊Bm之前所有余額不為空的賬戶信息。這樣,區(qū)塊Bn之后節(jié)點(diǎn)驗(yàn)證賬戶的余額只需要該狀態(tài)更新池和Bm到當(dāng)前的區(qū)塊即可,Bm之前的區(qū)塊可以丟棄。
3.3 雙子鏈模型工作原理
利用區(qū)塊指針和狀態(tài)更新池的概念,本文提出一種雙子鏈模型。
雙子鏈模型的區(qū)塊結(jié)構(gòu)如圖3(a)所示,區(qū)塊頭中加入兩個(gè)區(qū)塊指針和子池摘要,區(qū)塊體中加入狀態(tài)更新子池。簡(jiǎn)單表示如圖3(b)所示。
雙子鏈模型的鏈結(jié)構(gòu)如圖4所示。
圖4中,每個(gè)區(qū)塊的區(qū)塊指針1同傳統(tǒng)區(qū)塊鏈中的前塊Hash字段一致,唯一標(biāo)定節(jié)點(diǎn)承認(rèn)的前一個(gè)區(qū)塊,通過指針1各區(qū)塊在邏輯上依然構(gòu)成一條傳統(tǒng)的不斷增長(zhǎng)的鏈,如圖5所示。
通過區(qū)塊指針2,組成并維持雙子鏈結(jié)構(gòu)。每條子鏈第一個(gè)區(qū)塊的區(qū)塊指針2固定指向創(chuàng)世區(qū)塊,后面的區(qū)塊同指針1依次指向前一區(qū)塊,形成一條子鏈。當(dāng)子鏈達(dá)到約定長(zhǎng)度后,則停止生長(zhǎng),新的區(qū)塊作為新子鏈第一個(gè)區(qū)塊連接向創(chuàng)世區(qū)塊,同時(shí),丟棄最舊的子鏈,如圖6(a)所示。然后新的區(qū)塊在新子鏈上生長(zhǎng),如圖6(b)所示,直到新的子鏈到達(dá)最大高度,開始生成下一條子鏈。
這樣,區(qū)塊鏈網(wǎng)絡(luò)共同維護(hù)的數(shù)據(jù)規(guī)模不會(huì)超過創(chuàng)世區(qū)塊加兩條子鏈,從區(qū)塊拓?fù)浣Y(jié)構(gòu)上達(dá)到了控制總長(zhǎng)度以及數(shù)據(jù)規(guī)模的目的。
為保證區(qū)塊鏈網(wǎng)絡(luò)的正常運(yùn)行,丟棄部分區(qū)塊前需要把必需的歷史信息留下來。在雙子鏈模型中,通過每條子鏈包含的狀態(tài)更新池來完成。狀態(tài)更新池中記錄所在子鏈之前所有非空賬戶的狀態(tài)結(jié)果。其生成過程如下:
假定當(dāng)前所在子鏈為C鏈,前一條子鏈為B鏈。遍歷B鏈中更新池信息交易信息,得到截至B鏈結(jié)束時(shí)存在的所有n個(gè)非空賬戶,即C鏈狀態(tài)更新池待記錄賬戶。約定C鏈長(zhǎng)度為m,已存在t個(gè)有效區(qū)塊,其中已記錄更新s個(gè)非空賬戶的狀態(tài)。
節(jié)點(diǎn)生成新區(qū)塊,即C鏈上第t+1個(gè)、倒數(shù)第m-t個(gè),B鏈中有n-s個(gè)賬戶需要被記錄。節(jié)點(diǎn)只需遍歷B鏈,從中找出未被記錄的前[(t-s)/(m-t)]個(gè)賬戶,計(jì)算得出B鏈結(jié)束時(shí)的狀態(tài),記錄在區(qū)塊子池中并計(jì)算子池摘要即可。
這樣,每條子鏈的狀態(tài)更新池可包括上一條子鏈所有賬戶的結(jié)果狀態(tài),子鏈上的交易信息則是本子鏈生成時(shí)間內(nèi)產(chǎn)生的新的交易。每筆交易在驗(yàn)證時(shí)無需對(duì)歷史上所有區(qū)塊遍歷,只需遍歷上一條子鏈的狀態(tài)更新池和交易信息,以及當(dāng)前子鏈已產(chǎn)生的交易即可判斷賬戶的當(dāng)前狀態(tài)。另外,若當(dāng)前子鏈的狀態(tài)更新池中已更新賬戶狀態(tài),又可省去遍歷上一子鏈的過程。
4 討 論
4.1 雙子鏈模型的數(shù)據(jù)規(guī)模
雙子鏈模型為可擴(kuò)展性問題提供了一種解決方案,通過對(duì)數(shù)據(jù)結(jié)構(gòu)的改進(jìn)使得鏈上冗余信息被安全丟棄,將超過一定時(shí)間的歷史交易信息轉(zhuǎn)化為賬戶余額狀態(tài),最終達(dá)到最大限度控制數(shù)據(jù)規(guī)模的目的。
以比特幣為例,當(dāng)前的數(shù)據(jù)規(guī)模已達(dá)180 GB,共有3億多筆交易,而獨(dú)立地址賬戶只有40萬(wàn)。因此,特定地址的所有歷史交易信息量遠(yuǎn)大于只記錄地址和余額。丟棄歷史信息可極大地降低節(jié)點(diǎn)的存儲(chǔ)負(fù)載,進(jìn)而解決區(qū)塊鏈的可擴(kuò)展性問題。
4.2 分叉、安全性
對(duì)雙子鏈結(jié)構(gòu)的組織和舊鏈的丟棄是節(jié)點(diǎn)基于區(qū)塊指針2視角的操作。從區(qū)塊指針1視角看,依然是傳統(tǒng)的單鏈結(jié)構(gòu),因此繼承了傳統(tǒng)區(qū)塊鏈結(jié)構(gòu)的相關(guān)特性。分叉時(shí)主鏈的選擇方法、安全性分析等可以繼續(xù)使用現(xiàn)有方法[12]?,F(xiàn)行區(qū)塊鏈應(yīng)用中區(qū)塊確認(rèn)長(zhǎng)度[1]通常不超過100,只要雙子鏈模型中子鏈的長(zhǎng)度超過該確認(rèn)長(zhǎng)度,即可認(rèn)為本模型擁有不低于普通區(qū)塊鏈的安全性。
5 結(jié) 語(yǔ)
本文從區(qū)塊鏈的數(shù)據(jù)層著手,引入?yún)^(qū)塊指針和狀態(tài)更新池的概念,提出區(qū)塊數(shù)據(jù)的雙子鏈模型,形成新的區(qū)塊數(shù)據(jù)結(jié)構(gòu)和組鏈形式,支持新的區(qū)塊間拓?fù)浣Y(jié)構(gòu),使得區(qū)塊鏈系統(tǒng)對(duì)區(qū)塊鏈的操作變得可行。由于雙子鏈模型限制了區(qū)塊鏈的規(guī)模,并允許安全丟棄歷史區(qū)塊,可以有效緩解區(qū)塊鏈的可擴(kuò)展性問題。
當(dāng)然,本文提出的模型也有其適用范圍,要求使用場(chǎng)景對(duì)歷史數(shù)據(jù)不全部保存,只需明確相關(guān)賬戶當(dāng)前狀態(tài),對(duì)于嚴(yán)格要求完整歷史信息的業(yè)務(wù)場(chǎng)景還需進(jìn)一步尋找可擴(kuò)展性問題的解決方案。
參 考 文 獻(xiàn)
[1] NAKAMOTO S. Bitcoin: A peer-to-peer electronic cash system[Z].Consulted,2008.
[2]何蒲,于戈,張巖峰,等.區(qū)塊鏈技術(shù)與應(yīng)用前瞻綜述[J].計(jì)算機(jī)科學(xué),2017,44(4):1-7.
[3] ZHENG Z,XIE S,DAI H,et al. An overview of blockchain technology: architecture,consensus,and future trends[C]// IEEE International Congress on Big Data.IEEE,2017.
[4]邵奇峰,金澈清,張召,等.區(qū)塊鏈技術(shù):架構(gòu)及進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào),2018,41(5):969-988.
[5] FERN?NDEZ-CARAM?S T M,F(xiàn)RAGA-LAMAS P. A review on the use of blockchain for the internet of things[J].IEEE access,2018(99):1.
[6] BRUCE J.The mini-blockchain scheme[EB/OL]. http://cryptonite.info/files/mbc-scheme-rev3.pdf.
[7] VAN DEN HOOFF J,KAASHOEK M F,ZELDOVICH N. Versum:verifiable computations over large public logs[C]// In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security New York,NY,USA,2014:1304-1316.
[8] LOMBROZO E,LAU J,WUILLE P. BIP141:segregated witness(Consensus layer)[OL]. [2016-11-15]. https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki.
[9] POON J,DRYJA T. The bitcoin lightning network:scalable off-chain instant payments[OL].[2016-12-17]. https://lightning.network/lightning-network-paper.pdf.
[10] DECKER C,WATTENHOFER R. A fast and scalable payment network with bitcoin duplex micropayment channels[M].Stabilization,safety,and security of distributed systems. springer international publishing,2015:3-18.
[11] EYAL I,GENCER A E,SIRER E G,et al. Bitcoinng:a scalable block chain protocol[C]// In Proceedings of 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI 16),Santa Clara,CA,USA,2016:45–59.
[12] GERVAIS A,KARAME G O,GLYKANTZIS V,et al. On the security and performance of proof of work blockchains[C]// ACM Sigsac Conference on Computer and Communications Security.ACM,2016:3-16.