1 區(qū)塊鏈合約檢測系統(tǒng)基本簡介
北京騰信光大科技有限公司依托清華大學(xué),、北京大學(xué)和北京郵電大學(xué)科技前沿技術(shù),,基于自身獨立研發(fā)能力,自主設(shè)計開發(fā)了區(qū)塊鏈合約檢測系統(tǒng),,系統(tǒng)對智能合約進(jìn)行檢測是否存在已知的漏洞,,并給出安全的修復(fù)建議,。區(qū)塊鏈合約檢測系統(tǒng),系統(tǒng)對智能合約進(jìn)行檢測是否存在已知的漏洞,,并給出安全的修復(fù)建議,。通過用戶端、服務(wù)端,,實現(xiàn)對智能合約的安全檢測,。
2 區(qū)塊鏈合約檢測系統(tǒng)技術(shù)架構(gòu)
區(qū)塊鏈合約檢測系統(tǒng)以Client/Server模式,通過用戶端,、服務(wù)端,,實現(xiàn)對智能合約的安全檢測。區(qū)塊鏈合約檢測系統(tǒng)支持生成智能合約安全審計報告,, 支持Gas優(yōu)化審計,。區(qū)塊鏈合約檢測系統(tǒng)對監(jiān)管的友好主要表現(xiàn)在四個方面:有準(zhǔn)入體系;智能合約加入到監(jiān)管的規(guī)則中,,能全面提升監(jiān)管的自動化水平,;區(qū)塊鏈支持穿透式監(jiān)管;容易標(biāo)準(zhǔn)化監(jiān)管的接口,實現(xiàn)集中式監(jiān)管,。區(qū)塊鏈合約檢測系統(tǒng)“穿透式監(jiān)管”是借用金融領(lǐng)域“穿透式監(jiān)管”的概念,,對聯(lián)盟鏈中參與各方的各種行為的本質(zhì)進(jìn)行監(jiān)管,以應(yīng)對監(jiān)管對數(shù)據(jù)的真實性,、準(zhǔn)確性和甄別業(yè)務(wù)性質(zhì)等方面的要求,。因此區(qū)塊鏈穿透式監(jiān)管的表現(xiàn)形式是一種功能監(jiān)管、行為監(jiān)管,。穿透式監(jiān)管的核心要義的原則是“實質(zhì)重于形式”,,為了達(dá)到消除監(jiān)管真空、去除監(jiān)管重疊,、遏制監(jiān)管套利的目的,,最終取得有效防范和化解系統(tǒng)性金融風(fēng)險攻堅戰(zhàn)的勝利,就必須透過金融產(chǎn)品或業(yè)務(wù)重重迷霧般的表面形態(tài),,徹底看清并詳細(xì)甄別其實質(zhì),,全面梳理資金來源、通道環(huán)節(jié)與最終投向,,形成完整的資金真實流向地圖,,對金融機(jī)構(gòu)的產(chǎn)品或業(yè)務(wù)實施全流程的監(jiān)管覆蓋,進(jìn)而根據(jù)產(chǎn)品的功能,、業(yè)務(wù)的性質(zhì)和法律上所具有的屬性明確監(jiān)管主體,,壓實監(jiān)管責(zé)任,對金融產(chǎn)品或業(yè)務(wù)適用具體的監(jiān)管規(guī)則,。穿透式監(jiān)管框架如圖所示,。
區(qū)塊鏈合約檢測系統(tǒng)使用網(wǎng)絡(luò)爬蟲技術(shù)主動加入公有鏈P2P網(wǎng)絡(luò),通過與公有鏈P2P網(wǎng)絡(luò)中相關(guān)節(jié)點進(jìn)行主動交互,,獲取相關(guān)的傳播文件信息和網(wǎng)絡(luò)節(jié)點信息,。主動發(fā)現(xiàn)與探測方法主要用于發(fā)現(xiàn)P2P網(wǎng)絡(luò)的拓?fù)洹⒀舆t,、內(nèi)容可用性,、上傳/下載比等微觀行為特性。主動發(fā)現(xiàn)與探測方法能夠直接獲取P2P網(wǎng)絡(luò)節(jié)點和傳播文件信息,,具有可信度高,、準(zhǔn)確性好、針對性強的特點,,使用很低的成本即可實現(xiàn)對P2P網(wǎng)絡(luò)實施監(jiān)控,。本項目采取主動探測的方法研究e Mule網(wǎng)絡(luò)中有害信息的發(fā)現(xiàn)和資源定位技術(shù),實現(xiàn)公有鏈P2P網(wǎng)絡(luò)信息監(jiān)控系統(tǒng),。在e Mule協(xié)議分析的基礎(chǔ)上,,結(jié)合其工作機(jī)制設(shè)計P2P網(wǎng)絡(luò)信息監(jiān)控系統(tǒng),,主動發(fā)現(xiàn)與自動探測系統(tǒng)結(jié)構(gòu)。區(qū)塊鏈合約檢測系統(tǒng)功能架構(gòu)如圖所示.
4. 區(qū)塊鏈節(jié)點自動發(fā)現(xiàn)追蹤與可視化技術(shù)
區(qū)塊鏈節(jié)點追蹤與可視化就是構(gòu)建一個區(qū)塊鏈中全部節(jié)點的“圖譜”,。區(qū)塊鏈節(jié)點是負(fù)責(zé)維護(hù)區(qū)塊鏈運行的網(wǎng)絡(luò)節(jié)點,,可以是小型設(shè)備、普通計算機(jī)或大型功能強大的服務(wù)器,。節(jié)點分為“全節(jié)點”和“輕節(jié)點”,,全節(jié)點就是擁有全鏈所有的交易數(shù)據(jù)的節(jié)點,輕節(jié)點就是只擁有和自己相關(guān)的交易數(shù)據(jù)的節(jié)點,。區(qū)塊鏈節(jié)點的追蹤和可視化就是要查清一個區(qū)塊鏈中的各類節(jié)點的網(wǎng)絡(luò)地址,、賬戶地址和交易等情況,并用動態(tài)的可視化方法展現(xiàn)各類節(jié)點的網(wǎng)絡(luò)地址,、賬戶地址和交易信息的情況,,方便管理者對一個區(qū)塊鏈的參與者進(jìn)行有效的管理。區(qū)塊鏈節(jié)點追蹤與可視化監(jiān)管體系如圖所示,。
區(qū)塊鏈節(jié)點自動發(fā)現(xiàn)追蹤與可視化提供新接入節(jié)點實時警報,、節(jié)點狀態(tài)實時可視化等功能,包括區(qū)塊鏈節(jié)點的監(jiān)控單元和以及獨立于區(qū)塊鏈節(jié)點的監(jiān)控程序,,監(jiān)控單元包括網(wǎng)絡(luò)監(jiān)控模塊,、區(qū)塊鏈監(jiān)控模塊、行為監(jiān)控模塊,、狀態(tài)監(jiān)控模塊,、日志監(jiān)控模塊。
區(qū)塊鏈節(jié)點自動發(fā)現(xiàn)追蹤與可視化利用布置于各節(jié)點上的監(jiān)控單元監(jiān)控節(jié)點自身,,收集監(jiān)控數(shù)據(jù),發(fā)現(xiàn)區(qū)塊鏈節(jié)點的異常,,并降低其造成的影響,,進(jìn)而利用監(jiān)控處理模塊突出異常節(jié)點,通過收集的數(shù)據(jù)快速分析與定位異常節(jié)點的位置和原因,,對異常做出處理與控制,。
區(qū)塊鏈分布式P2P分發(fā)可分為應(yīng)用層、網(wǎng)絡(luò)層,、路由層,、交換層和物理層,其中路由層和交換層是區(qū)塊鏈分布式P2P高效數(shù)據(jù)分發(fā)的核心部分,。區(qū)塊鏈分布式P2P分發(fā)協(xié)議及算法概要圖如圖所示,。
(1)應(yīng)用層
在區(qū)塊鏈分布式P2P高效數(shù)據(jù)分發(fā)系統(tǒng)中,身份創(chuàng)建主要功能是標(biāo)識分布式P2P高效數(shù)據(jù)分發(fā)系統(tǒng)中的節(jié)點,。類似“用戶”信息的生成,。在節(jié)點首次建立連接時,,節(jié)點之間首先交換地址,并且進(jìn)行身份信息驗證,。下載方式除了高效的分布式下載,,還提供傳統(tǒng)遵循HTTP協(xié)議的下載方式,以應(yīng)對如提供數(shù)據(jù)上傳的節(jié)點較少,,分布式下載速度慢等多種可能情況,。
(2)網(wǎng)絡(luò)層
網(wǎng)絡(luò)層節(jié)點與網(wǎng)絡(luò)中其他節(jié)點進(jìn)行連接通信時,可以兼容多種底層傳輸協(xié)議,。
1)傳輸:兼容現(xiàn)有的主流傳輸協(xié)議,,包含瀏覽器端的WebRTC DataChannels,也有低延時uTP(LEDBAT)等傳輸協(xié)議,。
2)可靠性:uTP和stcp來保障,,這兩種協(xié)議可以動態(tài)調(diào)整網(wǎng)絡(luò)狀態(tài)。
3)可連接性:使用ICE,、 NAT穿越來實現(xiàn)廣域網(wǎng)的可連接性,。
(3)路由層
區(qū)塊鏈分布式P2P高效數(shù)據(jù)分發(fā)系統(tǒng)采用半分布式拓?fù)浣Y(jié)構(gòu),其路由層通過DHT算法和Tracker服務(wù)器實現(xiàn)節(jié)點間的路由查找,。
DHT(Distributed Hash Table),,全稱是分布式哈希表,是一種分布式存儲技術(shù),。由于該網(wǎng)絡(luò)使用了DHT技術(shù),,因此將該網(wǎng)絡(luò)命名為DHT網(wǎng)絡(luò)。在基于DHT網(wǎng)絡(luò)的應(yīng)用系統(tǒng)中,,文件與某個Key相關(guān)聯(lián),。DHT網(wǎng)絡(luò)中的每一個節(jié)點都負(fù)責(zé)維護(hù)一部分散列空間,并且存儲一部分文件所對應(yīng)的Key值,。當(dāng)某個節(jié)點需要查詢某個文件時,,首先計算該文件所對應(yīng)的Key值,然后按照該Key值進(jìn)行查詢,,系統(tǒng)將會返回該Key所在對象的標(biāo)識符,,并且該節(jié)點可以基于該Key對文件進(jìn)行訪問。DHT網(wǎng)絡(luò)搜索需要實現(xiàn)4個關(guān)鍵點,,包括散列表的建立,、內(nèi)容的查找、定位關(guān)鍵字所在的節(jié)點以及< Key, Value >對的流動,。散列表使用散列算法生成,,常用的散列算法有SHA-1、MD5等,。節(jié)點標(biāo)識符使用散列算法對節(jié)點名字進(jìn)行散列得到,,對象標(biāo)識符使用散列算法對對象名稱進(jìn)行散列得到,。每個節(jié)點都負(fù)責(zé)存儲一部分網(wǎng)絡(luò)空間,即存儲一張散列表,,散列表中記錄了多個節(jié)點的節(jié)點id與其物理地址的映射關(guān)系,。DHT網(wǎng)絡(luò)使用< Key, Value>對來查找文件,假設(shè)該key所對應(yīng)的文件存儲在節(jié)點P上,,則value值記錄的是該文件的名字以及P節(jié)點的物理地址信息等,。DHT網(wǎng)絡(luò)將這些< Key, Value >對存儲在與key值最接近的節(jié)點id所對應(yīng)的節(jié)點上,這樣就建立了對象與所在的節(jié)點之間的聯(lián)系,。當(dāng)有新的< key, value >對出現(xiàn)時,,需要將其存儲在相應(yīng)的節(jié)點上;當(dāng)有新的節(jié)點出現(xiàn)時,,需要將相應(yīng)的< key, value >對轉(zhuǎn)移到該節(jié)點上,;當(dāng)有節(jié)點離開時,需要將其存儲的< key, value >對全部轉(zhuǎn)移到它的后繼節(jié)點上,。
(4)交換層
基于區(qū)塊鏈信息單文件數(shù)據(jù)量大,、數(shù)據(jù)類型多的特點和傳輸速率高的需求,采用P2P系統(tǒng)中分片選擇,、內(nèi)容分片技術(shù)和分片調(diào)度技術(shù),,加快區(qū)塊鏈信息數(shù)據(jù)的共享和分發(fā)速度,同時減少文件的重傳,,提高傳輸效率,。
(5)物理層
物理層的組成包括區(qū)塊鏈系統(tǒng)內(nèi)部的作為存儲和處理數(shù)據(jù)信息的計算機(jī)。
5. 系統(tǒng)應(yīng)用領(lǐng)域
(1) 合約檢測產(chǎn)品發(fā)行,。
(2) 合約檢測產(chǎn)品配置,。
(3) 合約檢測產(chǎn)品安全防護(hù)。
(4) 合約檢測產(chǎn)品通證