• 
    

    
    

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

      面向大數(shù)據(jù)的區(qū)塊鏈在清算系統(tǒng)中的應(yīng)用

      2018-03-01 03:48:50蔡維德郁蓮袁波鄧佑權(quán)李琪郭斌
      大數(shù)據(jù) 2018年1期
      關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)賬戶原子

      蔡維德,郁蓮,袁波,鄧佑權(quán),李琪,郭斌

      1. 北京航空航天大學(xué)數(shù)字社會(huì)與區(qū)塊鏈實(shí)驗(yàn)室,北京 100191;2. 北京天德科技有限公司,北京 100080;3. 亞利桑那州立大學(xué),美國(guó)亞利桑那州 菲尼克斯 85287;4. 北京大學(xué)軟件與微電子學(xué)院,北京 102600

      1 引言

      2008年10月31日中本聰發(fā)表了比特幣論文①https://www.b i t c o i n.o r g/bitcoin.pdf,首次提出了區(qū)塊鏈概念,伴隨比特幣的區(qū)塊鏈技術(shù)在近年來(lái)得到了長(zhǎng)足發(fā)展,研究和使用區(qū)塊鏈技術(shù)已經(jīng)成為行業(yè)創(chuàng)新和轉(zhuǎn)型的重要驅(qū)動(dòng)力。本文涉及的清算系統(tǒng)使用的是天德大數(shù)據(jù)版區(qū)塊鏈,為了檢驗(yàn)這套系統(tǒng)的可靠性與準(zhǔn)確性,筆者與某清算所聯(lián)合展開為期一個(gè)月的實(shí)地測(cè)試,共計(jì)使用原始脫敏交易數(shù)據(jù)33.34億筆,產(chǎn)生200多億筆原子交易,充分驗(yàn)證了整套系統(tǒng)的安全性、可靠性與正確性。

      本文涉及的清算是指從交易到結(jié)算的所有活動(dòng),其中交易數(shù)據(jù)的清算邏輯采用實(shí)用拜占庭容錯(cuò)(PBFT)算法,不僅可以檢測(cè)故障,同時(shí)可以檢測(cè)作弊。清算數(shù)據(jù)可通過(guò)區(qū)塊鏈進(jìn)行溯源取證,清算過(guò)程和結(jié)果的真實(shí)性得到了保證。同時(shí),在數(shù)據(jù)安全訪問(wèn)方面采用公鑰私鑰加密解密(RSA、ECC、SM2),SHA、ECDSA數(shù)字簽名,CA數(shù)字證書等方式,保證數(shù)據(jù)傳遞和存儲(chǔ)的安全。

      筆者在后文結(jié)合天德大數(shù)據(jù)版區(qū)塊鏈在清算系統(tǒng)中的應(yīng)用案例,討論和分析大數(shù)據(jù)版區(qū)塊鏈在清算過(guò)程中對(duì)復(fù)合交易拆解、合并的設(shè)計(jì)方法以及將區(qū)塊鏈數(shù)據(jù)持久化存儲(chǔ)到大數(shù)據(jù)平臺(tái)的過(guò)程,最后提出應(yīng)從區(qū)塊鏈大數(shù)據(jù)中發(fā)掘有價(jià)值信息,這為監(jiān)管部門洞察交易數(shù)據(jù)提供了一個(gè)新的方向。

      從2015年到2017年,世界上包括銀行在內(nèi)的許多機(jī)構(gòu)、金融專家都認(rèn)為清算是區(qū)塊鏈的一個(gè)重要應(yīng)用,可是一直沒(méi)有機(jī)構(gòu)做出來(lái),或者即使做出來(lái),結(jié)果也不甚滿意。甚至到2016年底,部分金融專家開始改變說(shuō)法:“清算不是區(qū)塊鏈的專長(zhǎng),區(qū)塊鏈可能不適合做清算”②https://www.coindesk.com/nowhere-nearweb-blockchainadoption-seesd e b a t e-m i tevent/。然而,2017年4月,中國(guó)團(tuán)隊(duì)創(chuàng)建了大數(shù)據(jù)版的區(qū)塊鏈,并成功應(yīng)用在清算的實(shí)踐中。

      清算的困難在于:數(shù)據(jù)量龐大;分賬、對(duì)賬處理必須正確;隱私保護(hù)要求高;系統(tǒng)處理性能要求高;系統(tǒng)安全性要求高;記賬方式復(fù)雜多樣。

      一般區(qū)塊鏈(如比特幣和以太坊區(qū)塊鏈)不能高速地處理大規(guī)模海量數(shù)據(jù),且性能慢(一秒處理不到20筆交易),不能保護(hù)隱私。目前大部分銀行用余額記賬,有些區(qū)塊鏈用未花費(fèi)的交易輸出(unspent transaction output,UTXO)記賬,余額查詢復(fù)雜,不適用于銀行業(yè)務(wù)。中國(guó)團(tuán)隊(duì)的成功有以下幾個(gè)重要原因。

      ● 做出大數(shù)據(jù)版的區(qū)塊鏈,使用大數(shù)據(jù)平臺(tái)處理清算中的海量數(shù)據(jù)(而不是用普通數(shù)據(jù)庫(kù)),數(shù)據(jù)存儲(chǔ)規(guī)模支持橫向擴(kuò)張,自動(dòng)三備份,增強(qiáng)單點(diǎn)容錯(cuò)性,多服務(wù)器并發(fā)處理。

      ● 將一個(gè)復(fù)合交易分解為6個(gè)原子交易,而不是直接處理復(fù)雜、原始的交易,簡(jiǎn)化了清算流程。這項(xiàng)工作很重要,因?yàn)槿绻麤](méi)有進(jìn)行原子化交易的分解操作,區(qū)塊鏈數(shù)據(jù)即使分片,也很難提高性能。一個(gè)交易可能會(huì)涉及6個(gè)及以上的賬戶,但這些賬戶可能會(huì)在不同分片上,如果一起處理,參與的分片可能要互相等待,導(dǎo)致分片后的區(qū)塊鏈性能無(wú)法大幅提高。如果分開處理,每個(gè)原子交易就可以在一個(gè)分片上單獨(dú)處理,每個(gè)分片不互相干擾,并且可以并行處理。這樣就解決了以太坊沒(méi)有解決的問(wèn)題,因?yàn)橐蕴惶岢龅臄?shù)據(jù)分片方法雖提高了性能,但未分解交易。在商品交易上,一個(gè)商品交易需要分解為6個(gè)原子交易,但信用卡等交易可能會(huì)涉及更多賬戶。

      ● 采用多鏈?zhǔn)郊軜?gòu)(而不是用單鏈架構(gòu))保護(hù)隱私,并且簡(jiǎn)化區(qū)塊鏈架構(gòu)。

      ● 采用賬戶鏈—交易鏈(ABC-TBC)熊貓模型架構(gòu)完成負(fù)載均衡的機(jī)制,保持系統(tǒng)的性能。

      ● 采用余額記賬,與現(xiàn)有的銀行賬戶系統(tǒng)兼容,方便與銀行和金融機(jī)構(gòu)對(duì)接服務(wù)。

      2 大數(shù)據(jù)版區(qū)塊鏈技術(shù)體系架構(gòu)

      本文涉及的區(qū)塊鏈技術(shù)基于天德大數(shù)據(jù)版區(qū)塊鏈技術(shù)體系架構(gòu),該架構(gòu)共分5層,分別是:存儲(chǔ)層、核心層、服務(wù)層、接口層和應(yīng)用層③http://www.tdchain.cn/download/writepaper.pdf,如圖1所示。

      2.1 存儲(chǔ)層

      存儲(chǔ)層包含區(qū)塊鏈數(shù)據(jù)緩存、區(qū)塊鏈數(shù)據(jù)存儲(chǔ)和讀寫分離模塊,本文主要介紹基于大數(shù)據(jù)平臺(tái)的區(qū)塊鏈數(shù)據(jù)存儲(chǔ)。其內(nèi)容包括區(qū)塊數(shù)據(jù)、鏈?zhǔn)浇Y(jié)構(gòu)、HBase存儲(chǔ)優(yōu)化技術(shù)等。Hadoop框架是一個(gè)可靠、可擴(kuò)展的分布式開源計(jì)算框架,HBase是基于Hadoop平臺(tái)之上的一種分布式列式高維數(shù)據(jù)庫(kù),可擴(kuò)展性高、吞吐量大、容錯(cuò)能力強(qiáng)、支持動(dòng)態(tài)擴(kuò)容、支持高并發(fā)高速讀寫,且可以根據(jù)業(yè)務(wù)需求方便地建立多級(jí)索引表,為檢索區(qū)塊鏈上的數(shù)據(jù)提供靈活的操作方式和良好的性能。

      2.2 核心層

      核心層包含建塊預(yù)處理模塊、共識(shí)機(jī)制模塊、信譽(yù)機(jī)制模塊、塊同步模塊、交易驗(yàn)簽?zāi)K、節(jié)點(diǎn)簽名驗(yàn)簽?zāi)K、驗(yàn)證節(jié)點(diǎn)管理模塊。

      2.3 服務(wù)層

      服務(wù)層包含賬戶鏈(ABC)、交易鏈(TBC)和鏈上代碼,ABC負(fù)責(zé)存儲(chǔ)和維護(hù)賬戶信息,TBC負(fù)責(zé)執(zhí)行交易和維護(hù)交易歷史。

      2.4 接口層

      Java區(qū)塊鏈連接器(Java blockchain connector,JBCC)不僅是天德區(qū)塊鏈(TDBC)對(duì)外服務(wù)的接口,也是行業(yè)應(yīng)用與區(qū)塊鏈之間的溝通橋梁。JBCC提供創(chuàng)建交易鏈、創(chuàng)建用戶鏈、插入交易、查詢鏈信息、查詢交易信息、獲取身份證書、獲取交易證書等功能,目的在于提供一種區(qū)塊鏈的統(tǒng)一接口標(biāo)準(zhǔn),支持用戶二次開發(fā)、高效使用區(qū)塊鏈的功能④http://www.tdchain.cn/download/jbcc.pdf。

      2.5 應(yīng)用層

      通過(guò)區(qū)塊鏈接口層JBCC提供的服務(wù),區(qū)塊鏈可以快速對(duì)接傳統(tǒng)應(yīng)用業(yè)務(wù),如版權(quán)登記、金融交易、清算、征信、保險(xiǎn)、供應(yīng)鏈金融及共享經(jīng)濟(jì)等領(lǐng)域。

      3 清算系統(tǒng)技術(shù)體系架構(gòu)

      清算系統(tǒng)采用ABC-TBC雙鏈?zhǔn)郊軜?gòu),將賬戶信息和交易信息分離,系統(tǒng)在可擴(kuò)展性及負(fù)載均衡上有很大的優(yōu)勢(shì)。ABC只進(jìn)行賬戶維護(hù),TBC負(fù)責(zé)交易處理,ABC需要提供賬戶信息給TBC執(zhí)行交易。因此,ABC可由一個(gè)機(jī)構(gòu)管理,并保持完整的賬戶歷史記錄。TBC將多個(gè)ABC聯(lián)系在一起,并通過(guò)交易軟件進(jìn)行交易和記錄交易歷史信息。TBC跟蹤完整的交易記錄,ABC的每一次變化都可以追溯到TBC的交易記錄[1]。

      一個(gè)傳統(tǒng)的區(qū)塊鏈需要同時(shí)進(jìn)行賬戶和交易信息的維護(hù),所以它不可能輕易地分裂。天德多鏈?zhǔn)絽^(qū)塊鏈架構(gòu)通過(guò)將賬戶信息和交易信息分離為ABC和TBC,可以

      從許多方面進(jìn)行優(yōu)化。具體來(lái)說(shuō),可以提升系統(tǒng)整體的可擴(kuò)展性,從而實(shí)現(xiàn)負(fù)載平衡,因?yàn)锳BC可以分片成多個(gè)子ABC,每個(gè)子ABC負(fù)責(zé)一組賬戶,而且TBC可以根據(jù)工作負(fù)載需要進(jìn)行擴(kuò)展。當(dāng)一個(gè)ABC被分成多個(gè)具有獨(dú)立賬戶的子ABC時(shí),由于每個(gè)賬戶僅存在于一個(gè)子ABC中,并且任何ABC不處理交易活動(dòng),因此子ABC之間互不干擾。在這種情況下,每個(gè)子ABC可以并行運(yùn)行在不同的處理器上,以加速計(jì)算,而不需要任何子ABC之間的交互。在分離成ABC和TBC模型之后,區(qū)塊鏈可被分割、合并,從而實(shí)現(xiàn)橫向可擴(kuò)展[2]。隨著工作負(fù)載的增加,可以通過(guò)添加更多的服務(wù)器,使整個(gè)系統(tǒng)保持高性能。

      圖1 天德大數(shù)據(jù)版區(qū)塊鏈技術(shù)架構(gòu)

      圖2 清算系統(tǒng)技術(shù)架構(gòu)

      基于前面的討論,本清算系統(tǒng)提出了采用負(fù)載均衡的雙鏈?zhǔn)絽^(qū)塊鏈架構(gòu),如圖2所示。

      該架構(gòu)具有以下主要特點(diǎn)。

      ● 交易所:每個(gè)交易所至少有一個(gè)ABC存儲(chǔ)有關(guān)客戶賬戶及其交易歷史的信息,可能還有多個(gè)處理交易的TBC。每個(gè)交易所都用ABC存儲(chǔ)交易所的所有賬戶信息和余額,并使TBC更新。

      ● 清算中心:有一個(gè)區(qū)塊鏈大賬本和多個(gè)TBC。一套TBC在交易所與ABC進(jìn)行交互以接收交易信息,另一套與銀行進(jìn)行互動(dòng),以更新銀行的賬戶信息。

      ● 銀行:每家銀行至少有一個(gè)ABC,可能還有多個(gè)TBC。銀行使用ABC存儲(chǔ)賬戶信息及其余額,并使用TBC跟蹤與賬戶相關(guān)的交易活動(dòng)。

      ● 監(jiān)管機(jī)構(gòu):監(jiān)管機(jī)構(gòu)可以訪問(wèn)存儲(chǔ)在區(qū)塊鏈上的大賬本,但是需要參與銀行、清算中心相關(guān)的區(qū)塊鏈基礎(chǔ)設(shè)施的建設(shè)。由于區(qū)塊鏈大賬本包含所有賬戶的完整交易歷史記錄,因此監(jiān)管機(jī)構(gòu)可以查看每筆交易,包括所有交易詳情,如交易金額、交易類型、交易日期和時(shí)間等[3]。

      4 雙鏈?zhǔn)角逅阆到y(tǒng)的賬務(wù)處理流程設(shè)計(jì)

      原始交易根據(jù)清算業(yè)務(wù)自定義的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),一筆正常的原始交易數(shù)據(jù)需要包含交易ID、原始交易、原子交易、簽名字符串,具體流程如圖3所示。

      圖3 雙鏈?zhǔn)角逅阆到y(tǒng)的賬務(wù)處理流程

      下面將舉例說(shuō)明如何將1筆原始交易拆解為多筆原子交易集合。

      (1)拆解原始交易

      交易雙方為A和B,A花費(fèi)10 000元從B處購(gòu)買了10噸銅,從資金、資產(chǎn)和手續(xù)費(fèi)(默認(rèn)雙方付費(fèi)5%)3方面來(lái)看,將產(chǎn)生6筆原子交易,見(jiàn)表1。

      表1 拆解原始交易

      (2)原始交易存儲(chǔ)

      由區(qū)塊鏈將共識(shí)后的原始交易信息以區(qū)塊為單位寫入交易二級(jí)索引表(ITX表)和TBC表,其中TBC表是將區(qū)塊的ID進(jìn)行散列后作為行的關(guān)鍵值Rowkey,以該區(qū)塊內(nèi)發(fā)生的所有交易ID作為列名,這樣可以將區(qū)塊數(shù)據(jù)均勻地分布在多個(gè)RegionServer上,解決數(shù)據(jù)的局部熱點(diǎn)問(wèn)題,防止數(shù)據(jù)傾斜。

      (3)交易記賬/分賬

      由ABC表對(duì)原子交易執(zhí)行分賬記賬功能,該表提取出賬戶的量化信息和非量化信息,量化信息中如果有同賬戶操作,首先進(jìn)行累加合并,然后對(duì)同賬戶、同名稱的操作和原始值進(jìn)行數(shù)值計(jì)算,最后以賬戶為單位寫入賬戶二級(jí)索引表(IACT表)和ABC表。該表同樣將區(qū)塊的ID進(jìn)行散列后作為行的關(guān)鍵值Rowkey,以區(qū)塊內(nèi)發(fā)生交易的所有賬戶以及平臺(tái)賬戶為列,對(duì)同一區(qū)塊內(nèi)發(fā)生的所有交易,按賬戶進(jìn)行分組歸并后進(jìn)行持久化存儲(chǔ)[4]。

      (3)信息查詢檢索

      通過(guò)構(gòu)建二級(jí)索引加快HBase數(shù)據(jù)檢索速度。主要針對(duì)以下2個(gè)業(yè)務(wù)場(chǎng)景。

      ● 場(chǎng)景1:用戶提出賬戶的余額有問(wèn)題,要查看交易的完整記錄(需要建立用戶賬戶和交易的索引表)。

      ● 場(chǎng)景2:某交易有問(wèn)題,要查看原始的區(qū)塊信息(需要建立交易和區(qū)塊的索引表)。

      針對(duì)場(chǎng)景1,引入IACT表,建立賬戶的二級(jí)索引表,該表將賬戶ID散列后以Rowkey存儲(chǔ),列信息主要包括3個(gè)部分:非量化信息、可量化信息和區(qū)塊標(biāo)志位信息。其中,非量化信息主要包括地址、聯(lián)系方式等不可進(jìn)行數(shù)值計(jì)算的信息;量化信息主要包括可進(jìn)行數(shù)值計(jì)算的信息,比如資產(chǎn)賬戶以及人民幣、美元等資金賬戶等;區(qū)塊標(biāo)志位存儲(chǔ)的是和賬戶發(fā)生交易關(guān)聯(lián)的區(qū)塊,以“1”作為標(biāo)志位[5]。

      針對(duì)場(chǎng)景2,引入ITX表,該表將交易ID進(jìn)行散列后存儲(chǔ),列為TBC、ABC的Rowkey,在需要查詢?cè)冀灰讜r(shí),通過(guò)二級(jí)索引可以很快檢索出需要的交易信息。

      在雙鏈?zhǔn)角逅阆到y(tǒng)中,TBC鏈負(fù)責(zé)存儲(chǔ)原始交易信息;ABC鏈負(fù)責(zé)存儲(chǔ)實(shí)時(shí)記賬/分賬信息;IACT表負(fù)責(zé)存儲(chǔ)賬戶的可量化信息、非可量化信息以及關(guān)聯(lián)區(qū)塊的標(biāo)識(shí)位;ITX表負(fù)責(zé)存儲(chǔ)交易和區(qū)塊的相關(guān)信息[6]。

      區(qū)塊鏈應(yīng)用層通過(guò)雙寫數(shù)據(jù)解決交易二級(jí)索引表和賬戶二級(jí)索引表的數(shù)據(jù)一致性的問(wèn)題。在寫入交易數(shù)據(jù)和賬戶數(shù)據(jù)的同時(shí),將索引字段和Rowkey的對(duì)應(yīng)關(guān)系作為索引數(shù)據(jù)寫入另一張表,也就是將應(yīng)用數(shù)據(jù)和索引數(shù)據(jù)同時(shí)寫入,這種雙寫數(shù)據(jù)的方式可以做到非常好的索引實(shí)時(shí)性。未來(lái)改進(jìn)的方法是采用HBase協(xié)處理器,以對(duì)應(yīng)用透明的方式實(shí)現(xiàn)交易二級(jí)索引表和賬戶二級(jí)索引表的數(shù)據(jù)更新操作。

      在本文清算系統(tǒng)的賬務(wù)處理流程設(shè)計(jì)中,一項(xiàng)非常重要的工作就是對(duì)原始交易進(jìn)行分解。一筆商業(yè)交易可能會(huì)涉及6個(gè)及以上的賬戶變動(dòng),如果放在一起處理,區(qū)塊鏈分片無(wú)效。如果分開處理,原子交易就可以在一個(gè)分片上單獨(dú)處理,這樣就解決了以太坊無(wú)法解決的問(wèn)題。

      5 清算交易數(shù)據(jù)安全傳輸設(shè)計(jì)

      在清算系統(tǒng)工作的整個(gè)過(guò)程中,需要保證所有進(jìn)出的數(shù)據(jù)在傳輸和存儲(chǔ)過(guò)程中的安全性[7],因此針對(duì)清算系統(tǒng)數(shù)據(jù)流動(dòng)的整個(gè)過(guò)程,結(jié)合區(qū)塊鏈加密解密的特性進(jìn)行了如圖4所示的設(shè)計(jì)。

      (1)JBCC客戶端

      ● JBCC客戶端對(duì)交易信息進(jìn)行散列;● 使用JBCC服務(wù)端的私鑰對(duì)交易信息簽名,形成簽名字符串;

      ● 產(chǎn)生對(duì)稱密鑰;

      ● 使用對(duì)稱密鑰對(duì)交易明文加密,形成交易密文;

      ● 使用JBCC服務(wù)端的公鑰對(duì)對(duì)稱密鑰加密,形成密鑰密文;

      ● 將簽名、密鑰密文和交易密文一起發(fā)送給JBCC服務(wù)端。

      (2)TDBC

      ● TDBC使用自己的私鑰對(duì)密鑰密文進(jìn)行解密,得到對(duì)稱密鑰;

      ● 使用對(duì)稱密鑰解密交易密文,得到交易明文;

      ● 使用TDBC公鑰對(duì)對(duì)稱密鑰加密,得到密鑰密文;

      ● 使用JBCC客戶端的公鑰對(duì)交易明文的散列和簽名進(jìn)行驗(yàn)簽。

      需要重點(diǎn)說(shuō)明的是,JBCC客戶端是區(qū)塊鏈客戶端的代理,是區(qū)塊鏈核心程序提供給客戶端的封裝包,提供區(qū)塊鏈寫入和查詢接口;JBCC服務(wù)端是區(qū)塊鏈服務(wù)端的代理,主要在JBCC客戶端和區(qū)塊鏈核心程序之間進(jìn)行數(shù)據(jù)轉(zhuǎn)接,是區(qū)塊鏈對(duì)外提供分布式存儲(chǔ)和交易數(shù)據(jù)、區(qū)塊鏈數(shù)據(jù)校驗(yàn)等服務(wù)的窗口;TDBC端負(fù)責(zé)交易數(shù)據(jù)的解密驗(yàn)簽、共識(shí)、存儲(chǔ)等工作[8]。

      圖4 天德鏈應(yīng)用數(shù)據(jù)安全訪問(wèn)流程

      6 清算系統(tǒng)核心數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

      數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)在整個(gè)清算系統(tǒng)中是重中之重,以下將列舉在該系統(tǒng)中使用的2種通用三方交易的數(shù)據(jù)結(jié)構(gòu)的格式。

      6.1 原始交易的數(shù)據(jù)結(jié)構(gòu)

      原始交易的數(shù)據(jù)結(jié)構(gòu)包含交易ID、資產(chǎn)交易數(shù)額、資金交易金額、交易單位、交易單價(jià)、發(fā)起方賬戶ID、接收方賬戶ID、交易平臺(tái)手續(xù)費(fèi)賬戶ID、交易平臺(tái)手續(xù)費(fèi)率、正方交易平臺(tái)手續(xù)費(fèi)金額、對(duì)手方交易平臺(tái)手續(xù)費(fèi)金額、交易時(shí)間戳、交易描述及原始交易中需要保持的非量化信息[9]。原始交易的數(shù)據(jù)結(jié)構(gòu)見(jiàn)表2。

      6.2 原子交易的數(shù)據(jù)結(jié)構(gòu)

      原子交易的數(shù)據(jù)結(jié)構(gòu)包含1筆非量化信息和n筆量化信息。原子交易的數(shù)據(jù)結(jié)構(gòu)見(jiàn)表3。

      6.2.1 非量化原子交易的數(shù)據(jù)結(jié)構(gòu)

      原子交易中的非量化信息用于對(duì)賬戶的基礎(chǔ)信息進(jìn)行記錄與更新。非量化原子交易數(shù)據(jù)結(jié)構(gòu)見(jiàn)表4。

      6.2.2 量化原子交易的數(shù)據(jù)結(jié)構(gòu)

      量化原子交易的數(shù)據(jù)結(jié)構(gòu)用于對(duì)賬戶的量化信息進(jìn)行累計(jì),原子交易中的量化信息描述了原子交易里的涉及數(shù)值計(jì)算的相關(guān)操作。

      表2 原始交易的數(shù)據(jù)結(jié)構(gòu)

      表3 原子交易的數(shù)據(jù)結(jié)構(gòu)

      表4 非量化原子交易數(shù)據(jù)結(jié)構(gòu)

      清算系統(tǒng)需要使用量化原子交易數(shù)據(jù)結(jié)構(gòu)表述交易用戶對(duì)其賬戶的資金或資產(chǎn)進(jìn)行操作的過(guò)程。通常情況下,原子交易中的量化信息應(yīng)該是一個(gè)列表數(shù)據(jù)結(jié)構(gòu):List,列表中每一項(xiàng)由賬戶ID、原始交易ID、量化名稱、量化類型、量化數(shù)額、交易描述及業(yè)務(wù)時(shí)間戳組成,見(jiàn)表5。

      7 清算系統(tǒng)界面及功能設(shè)計(jì)

      該清算平臺(tái)的設(shè)計(jì)目標(biāo)是定期將清算所的用戶注冊(cè)、銀行出入金以及盤中持倉(cāng)買賣交易記錄到區(qū)塊鏈系統(tǒng)中,并能進(jìn)行多個(gè)維度的查詢,從功能上可以劃分為基本的用戶注冊(cè)、商品交易和數(shù)據(jù)查詢以及批量數(shù)據(jù)導(dǎo)入等模塊[6]。

      表5 量化原子交易數(shù)據(jù)結(jié)構(gòu)

      (1)批量數(shù)據(jù)導(dǎo)入

      為方便用戶操作,本模塊支持手動(dòng)或自動(dòng)方式,批量導(dǎo)入交易所的日終交易文件。其中,手動(dòng)方式可以通過(guò)瀏覽器http方式訪問(wèn),也可以在shell終端下用wget執(zhí)行;自動(dòng)方式可以通過(guò)設(shè)置Linux環(huán)境下的定時(shí)任務(wù)進(jìn)行定期導(dǎo)入。

      (2)會(huì)員信息查詢

      查詢會(huì)員的基本信息和交易賬戶信息。本模塊可以根據(jù)會(huì)員編碼、交易賬號(hào)查詢會(huì)員的詳細(xì)信息列表,包括會(huì)員編號(hào)、會(huì)員全稱、會(huì)員簡(jiǎn)稱、會(huì)員類型、會(huì)員狀態(tài)、會(huì)員主體類型、會(huì)員編號(hào)(交易所)、經(jīng)濟(jì)會(huì)員編號(hào)、注冊(cè)日期時(shí)間等。

      (3)資金數(shù)據(jù)查詢

      查詢會(huì)員的資金賬號(hào)和賬戶余額信息。本模塊可以根據(jù)會(huì)員編碼、交易賬號(hào)查詢資金賬號(hào)的詳細(xì)信息列表,包括資金賬號(hào)、會(huì)員編碼、會(huì)員名稱、交易所、創(chuàng)建時(shí)間等信息。

      (4)交易數(shù)據(jù)查詢

      查詢交易成交記錄和銀商流水等信息。本模塊可以根據(jù)會(huì)員編碼、交易賬號(hào)查詢交易賬號(hào)的詳細(xì)信息列表,包括交易賬號(hào)、會(huì)員編碼、會(huì)員名稱、原交易賬號(hào)、原會(huì)員編號(hào)、創(chuàng)建時(shí)間等信息。

      (5)資產(chǎn)數(shù)據(jù)查詢

      查詢持倉(cāng)總匯和持倉(cāng)明細(xì)等信息。本模塊可以根據(jù)會(huì)員編碼、產(chǎn)品代碼查詢持倉(cāng)總匯的詳細(xì)信息列表,包括會(huì)員編號(hào)、資金賬號(hào)、產(chǎn)品代碼、總持倉(cāng)數(shù)量、持倉(cāng)成本等信息。

      (6)區(qū)塊鏈信息查詢

      查詢區(qū)塊的高度、時(shí)間戳、塊內(nèi)交易大小和塊散列等信息。本模塊可以查詢最近區(qū)塊的詳細(xì)信息列表,包括塊高度、時(shí)間戳、鏈長(zhǎng)度、塊散列值等信息。

      8 清算系統(tǒng)測(cè)試與分析

      此測(cè)試場(chǎng)景的區(qū)塊鏈節(jié)點(diǎn)部署模式采用4×4矩陣式部署,即約定4個(gè)區(qū)塊鏈節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)需配置4臺(tái)服務(wù)器作為區(qū)塊鏈應(yīng)用的宿主機(jī)及大數(shù)據(jù)平臺(tái)的支撐環(huán)境,另外增加2臺(tái)x3850作為加解密服務(wù)器,具體配置見(jiàn)表6。

      為了充分驗(yàn)證本架構(gòu)的可行性,分別測(cè)試了33.34億筆歷史交易以及6 201 762筆線上實(shí)時(shí)交易。批量歷史交易數(shù)據(jù)顯示系統(tǒng)每秒處理約5 000筆交易數(shù)據(jù);線上實(shí)時(shí)交易數(shù)據(jù)穩(wěn)定測(cè)試一個(gè)月左右。通過(guò)與現(xiàn)有清算系統(tǒng)對(duì)比,這套大數(shù)據(jù)版的區(qū)塊鏈清算系統(tǒng)的實(shí)測(cè)正確率達(dá)到100%。見(jiàn)表7,主要從原始交易筆數(shù)、原子交易筆數(shù)、交易數(shù)據(jù)量、每秒執(zhí)行的交易數(shù)量、最大塊容量、節(jié)點(diǎn)數(shù)6個(gè)維度進(jìn)行了對(duì)比分析。

      通過(guò)分析上述實(shí)驗(yàn)結(jié)果,33.34億筆歷史交易量相當(dāng)于比特幣自2008年到2017年所有歷史交易數(shù)量的15.5倍(按比特幣現(xiàn)在的交易速度,仍需22年才能達(dá)到33.34億筆交易總量)、美國(guó)納斯達(dá)克股票交易所16個(gè)月的交易數(shù)量、英國(guó)倫敦股票交易所14年的交易數(shù)量、Visa信用卡全球231 h的交易數(shù)量。

      表6 測(cè)試環(huán)境軟硬件配置

      表7 測(cè)試結(jié)果

      由于大數(shù)據(jù)版的區(qū)塊鏈系統(tǒng)復(fù)雜、組件眾多,單點(diǎn)資源耗費(fèi)相對(duì)較大。在啟動(dòng)大數(shù)據(jù)版區(qū)塊鏈后,通過(guò)VisualVM查看線程狀態(tài)可知,系統(tǒng)啟動(dòng)時(shí)區(qū)塊鏈節(jié)點(diǎn)的線程實(shí)時(shí)峰值為316左右,運(yùn)行一段時(shí)間后達(dá)到穩(wěn)定期,線程數(shù)降到200左右。在此處筆者做了大量?jī)?yōu)化HBase的連接池、優(yōu)化SpringBoot核心線程數(shù)、調(diào)整最大連接數(shù)、核心連接數(shù)和過(guò)期時(shí)間,以期達(dá)到平衡線程數(shù)與區(qū)塊鏈最大系統(tǒng)吞吐率的目的。區(qū)塊鏈測(cè)試節(jié)點(diǎn)線程狀態(tài)如圖5所示。

      天德大數(shù)據(jù)版的清算鏈系統(tǒng)與其他區(qū)塊鏈系統(tǒng)的性能對(duì)比,見(jiàn)表8。

      顯然天德清算鏈在實(shí)際處理速度上遠(yuǎn)超其他區(qū)塊鏈,并行拜占庭共識(shí)協(xié)議(CBFT)的交易與投票并行執(zhí)行,高度在投票完成時(shí)決定,以此來(lái)支持高頻交易,提高擴(kuò)展性。

      9 清算系統(tǒng)風(fēng)險(xiǎn)決策與風(fēng)險(xiǎn)評(píng)估模型展望

      清算系統(tǒng)每天處理種類繁多、數(shù)量龐大的交易數(shù)據(jù),而且涉及金額巨大,所以清算系統(tǒng)的風(fēng)險(xiǎn)決策與風(fēng)險(xiǎn)評(píng)估模型的重要性不言而喻。在高速、自動(dòng)化的交易清算業(yè)務(wù)過(guò)程中,更需要自動(dòng)化的風(fēng)險(xiǎn)決策機(jī)制,這就是把大數(shù)據(jù)平臺(tái)融合在區(qū)塊鏈系統(tǒng)中的重大優(yōu)勢(shì),也是天德區(qū)塊鏈非常大的創(chuàng)新與嘗試。

      大數(shù)據(jù)版區(qū)塊鏈和“區(qū)塊鏈+大數(shù)據(jù)”最大的不同在于數(shù)據(jù)可以直接在區(qū)塊鏈平臺(tái)上進(jìn)行大數(shù)據(jù)分析,而不用從鏈中分離。例如要對(duì)3年的區(qū)塊鏈鏈上數(shù)據(jù)進(jìn)行分析,如果把區(qū)塊鏈歷史數(shù)據(jù)遷移到大數(shù)據(jù)平臺(tái)上進(jìn)行分析,那么數(shù)據(jù)在做數(shù)據(jù)抽取、轉(zhuǎn)換、加載(extract-transform-load,ETL)的過(guò)程中可能會(huì)被篡改,而把大數(shù)據(jù)平臺(tái)融合在區(qū)塊鏈里面,就可以直接在區(qū)塊鏈中進(jìn)行數(shù)據(jù)分析操作。

      由于區(qū)塊鏈與大數(shù)據(jù)平臺(tái)的高度融合,所有區(qū)塊鏈上的數(shù)據(jù)都存儲(chǔ)在大數(shù)據(jù)平臺(tái)中,這樣可以充分利用目前已有的大數(shù)據(jù)分析工具,如R、MLlib、統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案(statistical product and service solutions,SPSS)、統(tǒng)計(jì)分析系統(tǒng)(statistical analysis system,SAS)等,在區(qū)塊鏈鏈上進(jìn)行大數(shù)據(jù)分析。例如在清算系統(tǒng)中,可以通過(guò)分析交易信用識(shí)別和降低虛假交易,提高交易清算效率,防范欺詐風(fēng)險(xiǎn),同時(shí)也為建立、健全清算系統(tǒng)的風(fēng)險(xiǎn)決策與信用風(fēng)險(xiǎn)評(píng)估模型提供了一條新的路徑[10]。

      圖5 區(qū)塊鏈測(cè)試節(jié)點(diǎn)線程狀態(tài)

      表8 區(qū)塊鏈性能對(duì)比

      10 基于區(qū)塊鏈的清結(jié)算方案的現(xiàn)狀

      2017年1月,美國(guó)存管信托和結(jié)算公司(DTCC)聯(lián)手IBM、Axoni和R3開發(fā)基于區(qū)塊鏈的清結(jié)算系統(tǒng),DTCC聲稱這是一個(gè)龐大而現(xiàn)實(shí)的項(xiàng)目,并計(jì)劃該系統(tǒng)在2018年上線。Clearstream和Eurex與德國(guó)中央銀行以及其他歐洲國(guó)家中央銀行一起宣布,他們將共同合作開發(fā)一個(gè)區(qū)塊鏈原型,通過(guò)銀貨對(duì)付(delivery versus payment,DVP)流程進(jìn)行跨境安全結(jié)算。

      DTCC的Mark Wetjen最近對(duì)分布式賬本技術(shù)(distributed ledger technology,DLT)的解決方案發(fā)表了評(píng)論⑤http://www.dtcc.com/news/2017/m a y/3 1/dtccs-wetjend i s c u s s e si m p a c t-o fd i s t r i b u t e dle d g e rtechnology-atf i a-l a w-a n dc o m p l i a n c eevent:“由于DLT進(jìn)一步降低風(fēng)險(xiǎn),降低金融交易處理成本以及在衍生品數(shù)據(jù)處理中的潛在應(yīng)用潛力,DLT已經(jīng)引起了極大關(guān)注。但是,使用DLT不一定能保證所有交易后處理的效率和節(jié)約成本。例如,DTCC沒(méi)有看到使用DLT在美國(guó)股市和大部分固定收益市場(chǎng)做清結(jié)算的近期好處。”

      2017年4月,Mark Wetjen在美國(guó)麻省理工學(xué)院(MIT)金融科技會(huì)議上發(fā)表了關(guān)于防止區(qū)塊鏈用于交易結(jié)算的常見(jiàn)區(qū)塊鏈設(shè)計(jì):“有沒(méi)有什么方法可以使凈額(余額)不再那么重要?在這種情況下,像區(qū)塊鏈這樣的技術(shù)是否可以起作用?若不能,系統(tǒng)必須整體結(jié)算,每天要結(jié)算一天中發(fā)生的每一筆交易。這樣工作量是巨大的,并且引入了更多風(fēng)險(xiǎn),所以大多數(shù)公司不想這樣做?!?/p>

      這表明Mark Wetjen對(duì)不能支持余額計(jì)算和不能處理大數(shù)據(jù)的區(qū)塊鏈有意見(jiàn)。除非區(qū)塊鏈能夠處理大數(shù)據(jù)(工作量巨大)和余額計(jì)算,否則,使用區(qū)塊鏈在清結(jié)算上反而會(huì)增加風(fēng)險(xiǎn)。

      然而這些問(wèn)題并沒(méi)有出現(xiàn)在中國(guó)版的區(qū)塊鏈清結(jié)算方案上,中國(guó)使用的區(qū)塊鏈清結(jié)算是基于大數(shù)據(jù)平臺(tái)擁有多層次賬戶結(jié)構(gòu)的全額結(jié)算與凈額結(jié)算相配合的模式,從而避開了DTCC碰到的困難。

      2017年4月,天德大數(shù)據(jù)版區(qū)塊鏈在一個(gè)清算系統(tǒng)上成功運(yùn)行一個(gè)月,處理了33.34億筆清算交易,在區(qū)塊鏈系統(tǒng)中完成這么大量的交易量,是區(qū)塊鏈歷史上的一個(gè)記錄。天德大數(shù)據(jù)版區(qū)塊鏈吸引了100多個(gè)來(lái)自中國(guó)、美國(guó)、英國(guó)、日本等地的團(tuán)隊(duì)進(jìn)行共同探討,其中包括地方政府、銀行、世界著名IT和金融科技公司[11]。

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

      本文介紹了天德大數(shù)據(jù)版區(qū)塊鏈技術(shù)在清算系統(tǒng)中的應(yīng)用,通過(guò)使用大數(shù)據(jù)平臺(tái)存儲(chǔ)和分析區(qū)塊鏈上數(shù)據(jù),打通了大數(shù)據(jù)、區(qū)塊鏈和清算系統(tǒng)之間的信息壁壘,同時(shí)提出應(yīng)該對(duì)有意義的區(qū)塊數(shù)據(jù)進(jìn)行深度加工和挖掘,為清算系統(tǒng)風(fēng)險(xiǎn)決策、風(fēng)險(xiǎn)評(píng)估及審計(jì)方面提供信息支撐。

      [1] T S A I W T, B L O W E R R, Z H U Y,et al. A system view of f inancial blockchains[C]//2016 IEEE Symposium on Service-Oriented System Engineering(SOSE),June 12-16, Kongsberg, Norway.New Jersey: IEEE Press, 2016: 450-457.

      [2] M C C O N A G H Y T, M A R Q U E S R,MüLLER A, et al. BigchainDB: a scalable blockchain database[R]. 2016.

      [3] 蔡維德, 趙梓皓, 張弛, 等. 英國(guó)央行數(shù)字貨幣RSCoin探討[J]. 金融電子化, 2016(10):78-81.TSAI W T, ZHAO Z H, ZHANG C, et al.Digital currency of centre bank of England[J]. Financial Computerizing,2016(10): 78-81.

      [4] PINNA A, RUTTENBERG W. Distributed ledger technologies in securities posttrading revolution or evolution[J]. Social Science Electronic Publishing, 2016.

      [5] TSAI W T, BAI X, YU L. Design issues in permissioned blockchains for trusted computing[C]//2017 IEEE Symposium on Service-Oriented System Engineering(SOSE),April 6-9, 2017, San Francisco, USA.New Jersey: IEEE Press, 2017: 153-159.

      [6] TSAI W T, FENG L, ZHANG H, et al.Intellectual-property blockchain-based protection model for microfilms[C]//2017 IEEE Symposium on Service-Oriented System Engineering(SOSE), April 6-9,2017, San Francisco, USA. New Jersey:IEEE Press, 2017: 174-178.

      [7] ZHU Y, GUO R, GAN G, et al. Interactive incontestable signature for transactions confirmation in bitcoin blockchain[C]//2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC),June 10-14, 2016, Atlanta,USA. New Jersey: IEEE Press, 2016: 443-448.

      [8] 蔡維德, 郁蓮, 王榮, 等. 基于區(qū)塊鏈的應(yīng)用系統(tǒng)開發(fā)方法研究[J]. 軟件學(xué)報(bào), 2017,28(6): 1474-1487.T S A I W T, Y U L, WA N G R, e t a l.Blockchain application development techniques[J].Journal of Software, 2017,28(6): 1474-1487.

      [9] 蔡維德, 郁蓮. 區(qū)塊鏈技術(shù)在金融領(lǐng)域的應(yīng)用解析[J]. 金融電子化, 2016(5): 57-60.TSAI W T, YU L. Analysis on applying blockchains to bank &finance[J]. Financial Computerizing, 2016(5): 57-60.

      [10] YU L, TSAI W T, LI G, et al. Smartcontract execution with concurrent block building[C]//2017 IEEE Symposium on Service-Oriented System Engineering(SOSE),April 6-9, 2017, San Francisco,USA. New Jersey: IEEE Press, 2017:160-167.

      [11] 郁蓮, 鄧恩艷. 區(qū)塊鏈技術(shù)[J]. 中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊, 2017, 13(5): 10-15.Y U L, D E N G E Y. B l o c k c h a i n technologies[J]. Communications of the CCF, 2017, 13(5): 10-15.

      猜你喜歡
      數(shù)據(jù)結(jié)構(gòu)賬戶原子
      原子究竟有多?。?/a>
      原子可以結(jié)合嗎?
      帶你認(rèn)識(shí)原子
      探索自由貿(mào)易賬戶體系創(chuàng)新應(yīng)用
      外匯賬戶相關(guān)業(yè)務(wù)
      父親的股票賬戶
      特別健康(2018年4期)2018-07-03 00:38:20
      “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
      高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
      TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
      《數(shù)據(jù)結(jié)構(gòu)》教學(xué)方法創(chuàng)新探討
      河南科技(2014年5期)2014-02-27 14:08:57
      柳林县| 宜丰县| 河西区| 红安县| 昭通市| 深泽县| 宁城县| 山东省| 若尔盖县| 如东县| 定安县| 古蔺县| 崇仁县| 开封市| 广宗县| 伊吾县| 定安县| 吉木萨尔县| 乐亭县| 右玉县| 茌平县| 阳东县| 正镶白旗| 香河县| 内江市| 南宁市| 湘潭县| 修文县| 六盘水市| 黄陵县| 西峡县| 绵竹市| 乐至县| 景德镇市| 玛曲县| 札达县| 临猗县| 大连市| 金阳县| 时尚| 漳浦县|