李 鵬,牛保寧,趙羽龍
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600)
私募機(jī)構(gòu)通過探索項(xiàng)目、成立私募基金、吸引投資人、促成項(xiàng)目成功、實(shí)現(xiàn)資產(chǎn)增值,來獲取收益。一方面,私募基金把項(xiàng)目信息和投資人信息看作核心資產(chǎn),在其價(jià)值得不到體現(xiàn)的情況下,不愿意與其它機(jī)構(gòu)共享。另一方面,項(xiàng)目的探索和投資人的資質(zhì)認(rèn)證需要投入高昂的成本,對于規(guī)模大的項(xiàng)目,單個(gè)機(jī)構(gòu)無法支撐,需要多個(gè)彼此信任的機(jī)構(gòu)投資人共同推動(dòng)。這兩個(gè)因素促使私募基金有共享項(xiàng)目信息和投資人信息的意愿。因此,在保證信息價(jià)值實(shí)現(xiàn)的前提下,實(shí)現(xiàn)信息的共享,是困擾私募基金行業(yè)發(fā)展的一個(gè)痛點(diǎn)。
利用區(qū)塊鏈及其衍生技術(shù)存儲公平性和防篡改的特性有望解決私募基金行業(yè)痛點(diǎn)。本文為解決私募基金信息共享現(xiàn)存痛點(diǎn)基于以太坊、智能合約、星際文件系統(tǒng)和加密等技術(shù)提出以下解決思路:
(1)私募機(jī)構(gòu)、投資人、監(jiān)管方之間搭建以太坊聯(lián)盟鏈,為業(yè)務(wù)數(shù)據(jù)構(gòu)建實(shí)體。數(shù)據(jù)在企業(yè)端加密使用區(qū)塊鏈和IPFS存儲和傳遞,將聯(lián)盟鏈區(qū)塊摘要信息定期備份至以太坊公有鏈,提升安全性和降低直接采用公有鏈系統(tǒng)的運(yùn)行成本,有利于數(shù)據(jù)的驗(yàn)證和虛假數(shù)據(jù)的溯源;
(2)結(jié)合私募基金業(yè)務(wù),機(jī)構(gòu)間通過智能合約對接,定制化激勵(lì)方案,利用加密數(shù)字貨幣和貢獻(xiàn)度作為后期共享交易的獎(jiǎng)勵(lì)和籌碼,實(shí)現(xiàn)信息的資產(chǎn)化,促進(jìn)信息的流通性。
自2009年區(qū)塊鏈[1]誕生以來,隨之衍生出各類具有對等存儲、自主分布式管理特性的存儲技術(shù),被廣泛地應(yīng)用到身份管理和隱私管理等領(lǐng)域。以太坊[2,3](Ethereum),作為區(qū)塊鏈2.0首個(gè)可編程的分布式應(yīng)用(DApp)平臺,以太坊虛擬機(jī)(ethereum virtual machine,EVM)和智能合約的引入為DApp的開發(fā)提供了便利。星際文件系統(tǒng)[4,5](interplanetary file system,IPFS)是典型的去中心化、點(diǎn)對點(diǎn)的分布式文件系統(tǒng),將不同的計(jì)算機(jī)采用統(tǒng)一的文件系統(tǒng)構(gòu)建成高吞吐量、高可用、基于內(nèi)容尋址的集群,解決了區(qū)塊鏈上存儲大數(shù)據(jù)成本高的問題。
目前針對信息的共享方案與區(qū)塊鏈等技術(shù)相結(jié)合在經(jīng)過探索和研究后已經(jīng)取得了一些成果。任延輝、劉煒等[6,7]使用以太坊構(gòu)建私有的去中心化的醫(yī)療數(shù)據(jù)訪問與權(quán)限管理系統(tǒng),實(shí)現(xiàn)了病人對自身醫(yī)療數(shù)據(jù)的使用權(quán),自主對醫(yī)療數(shù)據(jù)共享,該系統(tǒng)將所有的醫(yī)療數(shù)據(jù)采用中心化方式存儲,僅將權(quán)限記錄寫入合約,導(dǎo)致系統(tǒng)過度依賴中心化存儲,并未有效避免源數(shù)據(jù)的安全風(fēng)險(xiǎn)。Wang等[8]基于公有IPFS、公有鏈以太坊和智能合約等技術(shù)實(shí)現(xiàn)了分布式存儲系統(tǒng)和共享方案,雖然保證了數(shù)據(jù)的安全性,但增加了存儲成本和共享成本以及降低的數(shù)據(jù)的隱私性。譚海波等[9]通過公有鏈、聯(lián)盟鏈、智能合約、非對稱加密和IPFS等技術(shù)實(shí)現(xiàn)了數(shù)字檔案的保護(hù)、驗(yàn)證和恢復(fù),該方案相比于其它信息共享模型明顯具備一定的優(yōu)勢,在數(shù)據(jù)可靠安全共享的前提下,降低了系統(tǒng)的維護(hù)成本,但由于缺少激勵(lì)方案使檔案機(jī)構(gòu)的共享主動(dòng)性下降,造成聯(lián)盟鏈的穩(wěn)定運(yùn)行受到阻礙。以上研究均為私募基金區(qū)塊信息共享方案提供了可借鑒的思路和方案,對以上方案實(shí)例比較見表1。
表1 信息存儲技術(shù)方案對比
此外,當(dāng)前區(qū)塊鏈技術(shù)在私募基金領(lǐng)域的研究較為豐富。周凱[10]指出私募基金行業(yè)信息不對稱性、流通性匱乏的痛點(diǎn),分析區(qū)塊鏈技術(shù)應(yīng)用于私募基金行業(yè)的應(yīng)用性和可行性。王向輝等[11]為解決私募基金電子合同易被篡改的問題,提出了利用區(qū)塊鏈將不同階段的合同以及簽名散列碼存儲和分發(fā),并實(shí)現(xiàn)了三方合同的全程電子化監(jiān)管和防丟失、可追溯的功能。
私募基金行業(yè)為實(shí)現(xiàn)數(shù)據(jù)安全存儲也取得實(shí)質(zhì)性的突破和落地的應(yīng)用方案。肖風(fēng)等[12]將區(qū)塊鏈存證技術(shù)運(yùn)用于信托管理,對重要數(shù)字資產(chǎn)直接通過哈希處理生成唯一不可逆推的特征值并上鏈,用于原始數(shù)據(jù)正確性校驗(yàn)。但是原始數(shù)據(jù)仍然采用中心化存儲,無法保證數(shù)據(jù)的安全,同時(shí)將數(shù)據(jù)存放在公有鏈增加了運(yùn)行和維護(hù)的成本。馬小峰等[13]認(rèn)為金融行業(yè)由于信息不對稱導(dǎo)致的信任問題可借助區(qū)塊鏈技術(shù)得到有效解決,給出了一個(gè)基于聯(lián)盟鏈的金融平臺架構(gòu)設(shè)計(jì)方案,設(shè)計(jì)業(yè)務(wù)鏈和數(shù)字資產(chǎn)鏈彼此隔離的兩條鏈。但該方案對原始數(shù)據(jù)并未采用加密處理和有效的聯(lián)盟節(jié)點(diǎn)數(shù)量導(dǎo)致方案仍然存在安全性和穩(wěn)定性等隱患。
區(qū)塊鏈用于解決私募行業(yè)信息封閉和內(nèi)容可信性等問題成為主要趨勢,但由于私募行業(yè)基于供需模型[14],共享必然會引發(fā)資金流失或者收益降低等問題,比如:項(xiàng)目信息共享造成其它投資方搶占市場、投資人信息共享造成投資人流失。對于目前的很多研究成果,存儲方式和共享渠道已不再是難點(diǎn),但很多研究并未深入探討私募行業(yè)如何從根源上解決原始數(shù)據(jù)的安全問題和提出共享激勵(lì)方案。
本文設(shè)計(jì)的私募基金區(qū)塊鏈信息共享方案,主要通過智能合約實(shí)現(xiàn)身份認(rèn)證、信息定向共享,激勵(lì)機(jī)制提升共享積極性,數(shù)字簽名技術(shù)和IPFS解決安全存儲問題。在實(shí)現(xiàn)信息共享的同時(shí)較大程度上保證了信息的隱私性和安全性,并降低存儲成本。本章節(jié)主要介紹方案整體架構(gòu)和運(yùn)行機(jī)制、合約架構(gòu)和共享方案的具體業(yè)務(wù)邏輯等。
本文主要研究如何利用區(qū)塊鏈以及衍生技術(shù)完成共享方案的設(shè)計(jì)和應(yīng)用,為此,本文首先設(shè)計(jì)了私募基金區(qū)塊鏈信息共享方案的體系架構(gòu)。如圖1所示,該方案體系架構(gòu)自下而上主要分為4部分:以太坊和IPFS構(gòu)建的數(shù)據(jù)存儲層、智能合約和Web3 J組合中間件、對外提供的系統(tǒng)服務(wù)層、私募機(jī)構(gòu)聯(lián)盟。
圖1 方案體系架構(gòu)
私募基金行業(yè)對系統(tǒng)的需求決定了系統(tǒng)的使用者,主要包含了各私募機(jī)構(gòu)的基金管理人、投資人、監(jiān)管人員;數(shù)據(jù)存儲層主要由以太坊聯(lián)盟鏈、公有鏈、私有IPFS和加密服務(wù)接口構(gòu)成:私募機(jī)構(gòu)以太坊節(jié)點(diǎn)和IPFS節(jié)點(diǎn)分別通過約定共享genesis.json和swarm.key在完成身份校驗(yàn)后加入聯(lián)盟,將聯(lián)盟鏈區(qū)塊摘要信息根據(jù)動(dòng)態(tài)調(diào)整周期寫入以PoW作為共識機(jī)制的公有鏈,所有信息公平對等的存儲到各機(jī)構(gòu)的聯(lián)盟節(jié)點(diǎn)中,實(shí)現(xiàn)信息的安全存儲;中間件主要由智能合約和Web3J組合而成,通過分析實(shí)際業(yè)務(wù)(機(jī)構(gòu)認(rèn)證、共享流程、基金去向和收益等)構(gòu)建符合實(shí)體模型的智能合約,永久上鏈,利用Web3J實(shí)現(xiàn)后端業(yè)務(wù)和智能合約數(shù)據(jù)的讀寫,為系統(tǒng)服務(wù)層提供基礎(chǔ)鏈上信息交互功能;系統(tǒng)服務(wù)層使用分布式應(yīng)用(DApp)架構(gòu),對外提供RESTful接口,接口內(nèi)部調(diào)用由中間件提供的合約交互功能,并結(jié)合業(yè)務(wù)進(jìn)一步封裝實(shí)現(xiàn)對外數(shù)據(jù)讀寫的接口;機(jī)構(gòu)聯(lián)盟提供主要權(quán)威節(jié)點(diǎn),為聯(lián)盟提供服務(wù)并接受由系統(tǒng)服務(wù)層的權(quán)限認(rèn)證、項(xiàng)目和投資人信息讀寫、共享、校驗(yàn)等服務(wù)。
傳統(tǒng)的區(qū)塊鏈由于結(jié)構(gòu)特性導(dǎo)致存儲和查詢效率低,并不適合存放文件類型的數(shù)據(jù),所以該系統(tǒng)的文件存儲采用IPFS私有集群存儲方案。為保證原始文件的隱私性和安全性,采用硬件加密方式由硬件加密服務(wù)器對文件加密后存儲至IPFS,然后將索引追加至聯(lián)盟鏈所運(yùn)行的智能合約作為文件檢索的依據(jù)。同時(shí),在以太坊聯(lián)盟節(jié)點(diǎn)中設(shè)置定時(shí)任務(wù),將聯(lián)盟區(qū)塊摘要信息定期寫入公有鏈。
系統(tǒng)運(yùn)行機(jī)制如圖2所示,整個(gè)系統(tǒng)的運(yùn)行設(shè)備包括:IPFS服務(wù)器、以太坊聯(lián)盟節(jié)點(diǎn)、公有鏈節(jié)點(diǎn)、原始數(shù)據(jù)服務(wù)器(內(nèi)網(wǎng))、硬件加密服務(wù)器、Web服務(wù)器。
圖2 私募機(jī)構(gòu)設(shè)備架構(gòu)及運(yùn)行機(jī)制
寫入請求到達(dá)Web服務(wù)器時(shí),工作流程如下:
(1)由Web服務(wù)器對寫入字段和文件進(jìn)行校驗(yàn),驗(yàn)證通過進(jìn)入步驟(2),當(dāng)驗(yàn)證失敗直接返回錯(cuò)誤信息;
(2)將原始數(shù)據(jù)上傳至原始數(shù)據(jù)服務(wù)器,根據(jù)文件數(shù)量通過硬件服務(wù)器生成新的公私鑰列表和生成原始文件哈希列表;
(3)分別使用私鑰對文件數(shù)據(jù)加密,并同步上傳至IPFS服務(wù)器,并映射至硬件加密服務(wù)器;
(4)將加密文件列表(原始文件哈希、加密文件摘要信息、IPFS地址)整合為JSON再次加密上傳至IPFS,將最終JSON的IPFS地址寫入以太坊聯(lián)盟鏈;
(5)若聯(lián)盟鏈節(jié)點(diǎn)區(qū)塊符合周期,將區(qū)塊摘要信息寫入批量寫入公有鏈。
讀取請求到達(dá)Web服務(wù)器時(shí),工作流程如下:
(1)由Web服務(wù)器對請求進(jìn)行校驗(yàn),驗(yàn)證通過執(zhí)行步驟(2),反之,返回錯(cuò)誤信息;
(2)將通過以太坊節(jié)點(diǎn)獲取JSON加密文件JSON的IPFS地址;
(3)通過IPFS地址向硬件服務(wù)器請求公鑰并進(jìn)行文件解密;
(4)依次對原始文件哈希與解密文件哈希進(jìn)行比對,若文件哈希一致,則證明文件未被篡改并返回文件預(yù)覽地址,反正,進(jìn)入步驟(5);
(5)驗(yàn)證聯(lián)盟鏈區(qū)塊摘要信息和公有鏈區(qū)塊備份是否一致,若一致,將文件錯(cuò)誤信息返回,反之,則返回區(qū)塊信息錯(cuò)誤。
所有私募機(jī)構(gòu)可選擇性搭建自身的應(yīng)用服務(wù)器,為了防止聯(lián)盟節(jié)點(diǎn)數(shù)量過少而產(chǎn)生數(shù)據(jù)安全問題,建議私募機(jī)構(gòu)成員搭建自身聯(lián)盟鏈節(jié)點(diǎn),降低數(shù)據(jù)篡改風(fēng)險(xiǎn)。
該方案所使用的設(shè)計(jì)思路主要基于以太坊是一個(gè)擁有智能合約的公共區(qū)塊鏈平臺,提供去中心化的以太虛擬機(jī)處理點(diǎn)對點(diǎn)合約,可靈活的使用常規(guī)模式進(jìn)行DApp的開發(fā),通過對業(yè)務(wù)抽象化,設(shè)計(jì)存儲模型和符合業(yè)務(wù)邏輯的智能合約構(gòu)成方案的底層架構(gòu),整個(gè)合約框架分為引用合約和信息存儲合約,引用合約采用保存信息存儲合約地址的方式,防止系統(tǒng)運(yùn)行過程中身份丟失、信息泄漏和功能替換等問題出現(xiàn)時(shí)增加合約部署難度和成本。整個(gè)合約架構(gòu)設(shè)計(jì)如圖3所示,主要包含的智能合約以及功能如下:
(1)投票管理合約(vote manage contract,VMC),全局共享的合約,提供了投票功能,記錄了所有的投票記錄。當(dāng)聯(lián)盟機(jī)構(gòu)申請加入聯(lián)盟,生成永久聯(lián)盟身份信息和可變狀態(tài)量(VOTING,F(xiàn)INISHED,F(xiàn)AILED)記入VMC,當(dāng)投票狀態(tài)轉(zhuǎn)變?yōu)镕inished時(shí),代表成功加入聯(lián)盟,通過系統(tǒng)提供的身份驗(yàn)證IDC接口完成設(shè)備和運(yùn)行環(huán)境的自動(dòng)化部署。
(2)機(jī)構(gòu)成員管理智能合約(institution member manage contract,IMMC),全局共享變量,存放了所有合格機(jī)構(gòu)的信息和身份標(biāo)識。每個(gè)成員機(jī)構(gòu)在成功通過投票并加入聯(lián)盟時(shí),會自動(dòng)創(chuàng)建相關(guān)的管理合約(Manage Contract)以及相應(yīng)的下級子合約:存儲合約(Store Contract)和共享合約(Share Contract)。
(3)基金項(xiàng)目、文件、投資人管理合約(Project、File、Investor Manage Contract,PMC/FMC/IRMC)屬于每個(gè)機(jī)構(gòu)成員的專屬合約,用于將數(shù)據(jù)在安全隔離存儲時(shí)可提供共享服務(wù),采用所有數(shù)據(jù)自我治理的方式進(jìn)行授權(quán)訪問,只有訪問者通過身份的確認(rèn)或者管理員確認(rèn)授權(quán)之后才能對相關(guān)成員子合約中的數(shù)據(jù)進(jìn)行訪問和更新操作。
圖3 系統(tǒng)合約架構(gòu)
(4)項(xiàng)目、文件、投資人信息存儲子合約(Project、File、Investor Store Contract,PSTC、FSTC、IRSTC)和項(xiàng)目、文件、投資人共享合約(Project、File、Investor Share Contract,PSAC、FSAC、IRSAC)主要用于記錄業(yè)務(wù)邏輯所需要的項(xiàng)目信息、文件數(shù)據(jù)、合格投資人的認(rèn)證信息,整個(gè)方案所提供的共享信息,均來源于這些底層合約。由于數(shù)據(jù)的隱私性和重要性,為保證數(shù)據(jù)的安全性,所有的數(shù)據(jù)都被二次加密存儲,只有在被授權(quán)的情況下才可以獲取到合約數(shù)據(jù),然后將數(shù)據(jù)解密讀取。即使在IPFS中獲取到加密之后的數(shù)據(jù),在沒有獲得公鑰的情況下仍無法讀取到原始數(shù)據(jù)。
(5)功能合約(function contract,F(xiàn)C)主要提供身份校驗(yàn)和共享功能,操作用戶通過身份校驗(yàn)后可對自身合約數(shù)據(jù)共享,避免文件依賴關(guān)系出現(xiàn)錯(cuò)誤,導(dǎo)致數(shù)據(jù)的泄漏。
對于整個(gè)聯(lián)盟平臺,系統(tǒng)并非全部對外開放,部分功能需要在獲取數(shù)字身份的認(rèn)證之后才能訪問。項(xiàng)目初始團(tuán)隊(duì)維護(hù)私募基金管理系統(tǒng)網(wǎng)絡(luò),并由創(chuàng)始團(tuán)隊(duì)啟動(dòng)初期節(jié)點(diǎn),初始節(jié)點(diǎn)構(gòu)成最早的管理委員會,后續(xù)聯(lián)盟成員可以由管理委員會和已加入機(jī)構(gòu)共同通過投票決定,機(jī)構(gòu)在獲取數(shù)字身份時(shí)需要經(jīng)過以下流程。
私募機(jī)構(gòu)將基金交由基金管理人負(fù)責(zé),通過系統(tǒng)客戶端提供的“基金管理人認(rèn)證登記表”,如圖4所示,主要使用外部接口api/apply/add/alliance錄入信息存儲至VMC,若已經(jīng)在其它機(jī)構(gòu)備案成功,可直接填寫認(rèn)證鏈接,系統(tǒng)隨機(jī)抽取奇數(shù)位初始成員和已備案機(jī)構(gòu)成員作為投票人,并建立新的投票請求;然后生成密鑰對,將申請機(jī)構(gòu)信息加密寫入IPFS,并以二維碼方式返回給申請機(jī)構(gòu)用于結(jié)果查詢;管理委員會對申請機(jī)構(gòu)進(jìn)行審批投票,通過調(diào)用由SDK封裝接口api/voting/to/{IM-ID}進(jìn)行投票,投票信息經(jīng)過該機(jī)構(gòu)的私鑰加密后通過web請求進(jìn)行信息的傳輸,由解密接口api/decrypted/json/vote解密,如果解析正確將追加至投票管理合約,半數(shù)以上同意則激活A(yù)DD_INSTITUTION_EVENT事件,管理人的投票信息狀態(tài)由VOTING更新為FINISHED,為申請機(jī)構(gòu)生成聯(lián)盟內(nèi)部賬戶和相關(guān)成員合約以及子合約,并自動(dòng)化部署至聯(lián)盟鏈。
圖4 基金管理人認(rèn)證登記表
機(jī)構(gòu)的認(rèn)證成功意味著該機(jī)構(gòu)擁有投資人認(rèn)證功能,投資人可通過方案提供的用戶界面“合格投資人審批登記表”完成認(rèn)證等功能,如圖5所示。
圖5 合格投資人審批登記表
私募機(jī)構(gòu)對項(xiàng)目信息的存儲和保護(hù)主要以大量的文檔信息為主,所有的數(shù)據(jù)使用對等存儲,為避免其它節(jié)點(diǎn)的數(shù)據(jù)被隨意讀取,造成信息泄漏,所有數(shù)據(jù)將通過加密流程存儲至IPFS,然后將IPFS地址寫入聯(lián)盟鏈智能合約,以達(dá)到存儲和保護(hù)目的;將聯(lián)盟鏈區(qū)塊摘要信息同步至公鏈,進(jìn)而實(shí)現(xiàn)驗(yàn)證的功能?;鸸芾砣嗽趧?chuàng)建項(xiàng)目或者對項(xiàng)目信息進(jìn)行維護(hù)時(shí)候,必然需要對依賴的文檔進(jìn)行操作,操作的文檔信息將被批量整理為JSON對象統(tǒng)一存至IPFS,并將JSON加密存入IPFS返回地址,并寫入合約形成映射關(guān)系,圖6為具體信息加密存儲的具體流程。
圖6 項(xiàng)目的存儲和保護(hù)
方案為私募基金管理人錄入的項(xiàng)目信息提供在聯(lián)盟內(nèi)部的共享功能,其它私募基金管理人或投資者在被授權(quán)后可對感興趣項(xiàng)目的詳細(xì)信息以及報(bào)告文檔等內(nèi)容查看?;痦?xiàng)目信息由智能合約、IPFS、結(jié)合多種加密方式和共享接口之間的調(diào)用通過網(wǎng)絡(luò)傳輸實(shí)現(xiàn)在聯(lián)盟內(nèi)部和認(rèn)證投資人之間的共享和交易。具體定向共享業(yè)務(wù)主要分為兩部分:發(fā)送共享和接受共享。詳細(xì)共享方案流程如圖7所示。
圖7 項(xiàng)目共享流程
發(fā)送共享:基金管理人在通過身份認(rèn)證后,使用接口api/project/shareTo通過傳入機(jī)構(gòu)ID和項(xiàng)目ID等參數(shù),將共享記錄追加至該機(jī)構(gòu)的項(xiàng)目共享合約,涉及的相關(guān)文件使用接口api/file/shareTo將項(xiàng)目文件的共享記錄追加至文件共享合約,然后通過加密服務(wù)service/send/key將共享文件的公鑰列表使用對方的公鑰加密之后發(fā)送,由對方?jīng)Q定是否存入本機(jī)構(gòu)密鑰庫。
接受共享:其它機(jī)構(gòu)的基金管理人在收到共享時(shí),可直接通過項(xiàng)目ID和文件ID進(jìn)行獲取相應(yīng)的加密信息,然后利用自己的私鑰進(jìn)行解密,通過接口api/decrypted/file將json文件解密,然后解析獲得完整的文件列表如下內(nèi)容,通過api/json/analysis/files將文件逐個(gè)解析進(jìn)行預(yù)覽。
整個(gè)網(wǎng)絡(luò)設(shè)置貢獻(xiàn)度機(jī)制作為激勵(lì)措施。包括基金發(fā)行、LP導(dǎo)入、盡調(diào)報(bào)告上傳、節(jié)點(diǎn)記賬等增加生態(tài)豐富度的行為都將獲得一定程度的貢獻(xiàn)度,貢獻(xiàn)度可以理解為該網(wǎng)絡(luò)的Token。貢獻(xiàn)度的規(guī)則可由網(wǎng)絡(luò)管理委員會設(shè)定,如單次記賬獲得的貢獻(xiàn)度數(shù)值、發(fā)行產(chǎn)品獲得的貢獻(xiàn)度數(shù)值。舉例:單個(gè)機(jī)構(gòu)賬戶貢獻(xiàn)度=基金規(guī)模/萬元+盡調(diào)報(bào)告份數(shù)*100+記賬次數(shù)*0.1。
貢獻(xiàn)度使用途徑包括但不限于:①項(xiàng)目路演消耗貢獻(xiàn)度,將來可以作為Token交易;②購買其它私募基金管理人的盡調(diào)報(bào)告,以便更加全面的了解項(xiàng)目本身情況,可以使用貢獻(xiàn)度購買;③開源社區(qū)話語權(quán),根據(jù)貢獻(xiàn)度投票技術(shù)發(fā)展路徑;④某些特殊功能或權(quán)限使用;⑤設(shè)置貢獻(xiàn)度排名列表,使得該私募基金管理人能夠被優(yōu)先瀏覽到;⑥后續(xù)可以不斷增加貢獻(xiàn)度使用場景,提升貢獻(xiàn)度價(jià)值。
正文本系統(tǒng)基于以太坊網(wǎng)絡(luò)搭建,智能合約使用Solidity編寫,通過Truffle框架自動(dòng)化部署。初始測試環(huán)境為部署1臺公有以太坊節(jié)點(diǎn)作為快照節(jié)點(diǎn),3臺由Go-enhereum作為客戶端的定制化以太坊私有集群,采用Geth搭建節(jié)點(diǎn)用于區(qū)塊數(shù)據(jù)的同步和校驗(yàn),由以上3臺機(jī)器構(gòu)成初始管理委員會。之后分別部署IPFS,通過共享swarm.key搭建IPFS文件存儲系統(tǒng),其中每個(gè)節(jié)點(diǎn)服務(wù)器同時(shí)具備輕節(jié)點(diǎn)和全節(jié)點(diǎn)的服務(wù)功能,其中每臺主機(jī)的硬件環(huán)境為單核2.5 GHZ CPU,4 GB內(nèi)存,1 TB硬盤。用戶只需安裝客戶端連接聯(lián)盟鏈中任一節(jié)點(diǎn)即可完成環(huán)境搭建。
實(shí)驗(yàn)針對私募基金區(qū)塊鏈信息共享方案從系統(tǒng)的運(yùn)行維護(hù)成本、性能效率、可擴(kuò)展性、安全性和可靠性等方面進(jìn)行測試,主要測試方案所提供的功能是否可滿足需求。測試所需數(shù)據(jù)和用例由前期隨機(jī)生成,利用腳本實(shí)現(xiàn)自動(dòng)化測試,調(diào)用系統(tǒng)提供的用戶接口以及對響應(yīng)值、響應(yīng)時(shí)間和系統(tǒng)性能等指標(biāo)進(jìn)行分析。
(1)加密功能驗(yàn)證
文件加密存儲功能是該系統(tǒng)的基本功能,本次測試內(nèi)容為基金管理人對項(xiàng)目文件上傳后,從系統(tǒng)后臺獲取整個(gè)加密流程中涉及的原始文件列表、原始文件哈希列表、加密文件列表、加密文件列表JSON等數(shù)據(jù)。并通過測試接口對數(shù)據(jù)進(jìn)行比對是否一致,測試內(nèi)容和結(jié)果見表2。經(jīng)過算法比對,文件加密功能與預(yù)期設(shè)想一致,項(xiàng)目文件加密存儲滿足需求規(guī)定。
表2 業(yè)務(wù)文件驗(yàn)證對比
(2)定向共享功能測試
實(shí)驗(yàn)根據(jù)需求為依據(jù),核實(shí)項(xiàng)目定向功能是否與需求一致?;鸸芾砣藢㈨?xiàng)目發(fā)起共享,并批量選擇共享接收人,除被選擇共享接收人之外,其它基金管理人和投資人無權(quán)查閱項(xiàng)目任何信息,如圖8所示,共享接收人具備該項(xiàng)目涉及的所有文件驗(yàn)證權(quán)限,經(jīng)過對實(shí)際功能的操作以及操作結(jié)果分析,共享功能滿足設(shè)定需求。并且項(xiàng)目所有者可以獲得共享獎(jiǎng)勵(lì)貢獻(xiàn)度,占比為融資的0.01%,可用于主動(dòng)獲取其它機(jī)構(gòu)項(xiàng)目信息。
圖8 共享項(xiàng)目業(yè)務(wù)實(shí)現(xiàn)
(1)限定條件下交易平均響應(yīng)時(shí)間
根據(jù)ETH 2.0白皮書中介紹,區(qū)塊打包消耗的Gastx和數(shù)據(jù)的比特長度呈正相關(guān)。假設(shè)N0、N1代表交易中比特位為0和1的位數(shù);Gtx、Gbit0、Gbit1分別代表調(diào)用合約執(zhí)行消耗的Gas、寫入數(shù)據(jù)0和1需要消耗的Gas;Ntx代表交易s的數(shù)量。每筆交易需要消耗的Gas記為GasperTx計(jì)算方式如式(1),估算區(qū)塊打包所需消耗的Gas見式(2)。所以在實(shí)驗(yàn)中可通過限制GasLimit來控制區(qū)塊打包的交易數(shù)量
GasperTx=(Gtx+Gbit0×N0+Gbit1×N1)
(1)
GasLimit=GasperTx×Ntx
(2)
已部署的合約采用相同的數(shù)據(jù)結(jié)構(gòu)和字段,交易類型大致可分為認(rèn)證交易、投票交易、修改共享信息交易等,同類型交易的數(shù)據(jù)大小基本一致,可認(rèn)為提交同一類型的交易所消耗的Gas基本一致。
該部分實(shí)驗(yàn)主要對用戶提交寫入請求后智能合約對提交數(shù)據(jù)交易打包的響應(yīng)時(shí)間。在實(shí)際的使用中,傳統(tǒng)私募基金平臺每秒寫入請求數(shù)量在200左右,考慮到本身的業(yè)務(wù)場景與實(shí)際需求,將難度值統(tǒng)一降低,我們以用戶每秒提交200筆交易作為基數(shù),通過系統(tǒng)提供的api/test/txBatchSubmit接口統(tǒng)一提交,獲得不同響應(yīng)時(shí)間進(jìn)行分析。在測試過程中,分別對節(jié)點(diǎn)數(shù)量、區(qū)塊大小(限制區(qū)塊)進(jìn)行限制的情況下獲取交易平均響應(yīng)時(shí)間。
在實(shí)驗(yàn)過程中,將聯(lián)盟鏈區(qū)塊的Gas限制為1 000 000(單個(gè)區(qū)塊分別打包認(rèn)證交易,投票交易,修改、共享交易的數(shù)量為7、47、50)作為前提。對圖9分析,相同配置節(jié)點(diǎn)的加入,對于同類型的交易平均響應(yīng)時(shí)間呈現(xiàn)緩緩上升的狀態(tài)。部分?jǐn)?shù)據(jù)點(diǎn)出現(xiàn)異?,F(xiàn)象,分析該現(xiàn)象產(chǎn)生的原因是PoW中隨機(jī)數(shù)過大。對圖10分析,將節(jié)點(diǎn)限制為5,通過擴(kuò)大區(qū)塊提升每次打包的交易數(shù),每次提交增加100筆交易,同類型的交易并沒有隨著區(qū)塊大小的增加而降低交易響應(yīng)時(shí)間,而是交易響應(yīng)時(shí)間緩慢增長,但最終趨于平緩狀態(tài),造成該現(xiàn)象的原因是區(qū)塊大小的增加,PoW難度提升,區(qū)塊同步時(shí)間的增加。
圖9 不同網(wǎng)絡(luò)規(guī)模下交易平均響應(yīng)時(shí)間
圖10 不同GasLimit下的交易平均響應(yīng)時(shí)間
經(jīng)過多次的實(shí)驗(yàn)和對數(shù)據(jù)的分析對比,總體交易的平均響應(yīng)時(shí)間在0.3 s~1.8 s,對于正常交易來說,等待時(shí)間可被用戶接受。在不影響用戶體驗(yàn)度的情況下,適當(dāng)降低難度值,提升區(qū)塊大小,可明顯提高系統(tǒng)的吞吐量。
(2)成員節(jié)點(diǎn)故障可用性測試
該部分實(shí)驗(yàn)主要測試聯(lián)盟集群中部分節(jié)點(diǎn)損壞時(shí)系統(tǒng)的可用性。整體系統(tǒng)正常運(yùn)行的過程中,由于網(wǎng)絡(luò)的中斷或服務(wù)器本身的硬件問題,部分節(jié)點(diǎn)出現(xiàn)異常,造成節(jié)點(diǎn)數(shù)量下降,可能對數(shù)據(jù)的安全性和系統(tǒng)的可用性造成影響。實(shí)驗(yàn)在故障節(jié)點(diǎn)中通過MetaMask輕量級錢包提供的JSON-RPC接口連接至聯(lián)盟鏈,模擬提交不同類型的交易和鏈上數(shù)據(jù)的查詢交易,通過對比無故障節(jié)點(diǎn)情況下和故障節(jié)點(diǎn)情況下的交易平均響應(yīng)時(shí)間對系統(tǒng)可用性進(jìn)行測試對比,見表3。
表3 節(jié)點(diǎn)故障對系統(tǒng)可用性影響
本文中所提出私募基金區(qū)塊鏈信息共享方案,主要利用智能合約、非對稱加密技術(shù)和公有鏈的結(jié)合使數(shù)據(jù)的安全性得以保障,同時(shí)將大文件存儲于IPFS文件系統(tǒng)集群,降低了鏈上存儲數(shù)據(jù)的成本。實(shí)質(zhì)是利用信息化的手段,對私募行業(yè)的業(yè)務(wù)數(shù)據(jù)進(jìn)行“數(shù)字化管理”,實(shí)現(xiàn)了數(shù)據(jù)的定向共享和數(shù)據(jù)的安全保護(hù),有效消除信息封閉、減少整個(gè)行業(yè)的重復(fù)勞動(dòng)(比如合格投資者審核、項(xiàng)目信息分析),提高私募機(jī)構(gòu)驗(yàn)證客戶信息以及監(jiān)管效率,降低運(yùn)營成本,通過激勵(lì)方案提升了系統(tǒng)用戶的積極性。在系統(tǒng)可用性方面,基本可以達(dá)到用戶的需求。目前該方案中提出的系統(tǒng)平臺仍然在開發(fā)和完善階段。在今后的工作中將進(jìn)一步完善智能合約的清算功能,并通過改進(jìn)聯(lián)盟鏈中的共識機(jī)制提升系統(tǒng)的業(yè)務(wù)處理效率,增加吞吐量,提升在大規(guī)模高并發(fā)下的交易處理效率,逐步向公募基金系統(tǒng)需求方向發(fā)展。