陳德+姜新旺+王艷霞+馬永進(jìn)
摘 要: 提出采用Hyperledger超級(jí)賬本,對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)從采集到自交易的應(yīng)用場(chǎng)景及業(yè)務(wù)邏輯進(jìn)行分析建模,給出節(jié)點(diǎn)及其數(shù)據(jù)的可信驗(yàn)證方法,構(gòu)建一個(gè)以區(qū)塊鏈及智能合約為基礎(chǔ)的去中心化的自交易共享平臺(tái)解決方案。該方案可用于實(shí)現(xiàn)低成本網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)的自主管理和商品資產(chǎn)化的增值服務(wù),從而衍生出新型的商業(yè)形態(tài)。
關(guān)鍵詞: 超級(jí)賬本; 區(qū)塊鏈; 智能合約; 自交易共享平臺(tái)
中圖分類號(hào):R197.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)01-20-03
Building a shared discretionary trading platform with Hyperledger
Chen De1, Jiang Xinwang1,2, Wang Yanxia2, Ma Yongjin2
(1. College of Economics and Management, Zhejiang Normal University, Jinhua, Zhejiang 321004, China;
2. Blockchain Laboratory(Zhejiang Normal University))
Abstract: This paper introduces Hyperledger technology. The application scenarios and business logic of discretionary trading are analyzed and modeled, the trusted verification method for the node and its data is given, and a scheme of shared discretionary trading platform with blockchain technology and smart contract is put forward. The scheme can be used to realize the low cost self management of network node data and value-added service of commodity assets, and thus derive a new commercial form.
Key words: Hyperledger; block chain; smart contract; shared discretionary trading platform
0 引言
人類最原始交易是物物交換,隨后經(jīng)歷法幣、信用卡交易等階段。目前,互聯(lián)網(wǎng)的支付方式是一種基于第三方信用背書(shū)的電子支付(如:支付寶等),存在第三方中介的信任問(wèn)題,根源在于,基于TCP/IP的互聯(lián)網(wǎng)只是解決了點(diǎn)對(duì)點(diǎn)可靠、近乎零成本的信息傳遞,而非價(jià)值傳遞,其應(yīng)用模式只是在數(shù)據(jù)傳遞這條技術(shù)主線上演變?;ヂ?lián)網(wǎng)金融作為金融創(chuàng)新模式,要想真正實(shí)現(xiàn)健康可持續(xù)發(fā)展,面臨著網(wǎng)絡(luò)技術(shù)漏洞、消費(fèi)者權(quán)益保護(hù)法律缺失、金融監(jiān)管體制不健全、信用體系不完善、消費(fèi)者維權(quán)難等一系列問(wèn)題[1]。
基于密碼學(xué)原理的區(qū)塊鏈,是一種去中心、去信任、集體維護(hù)的分布式賬本技術(shù)[2]。它由一串使用密碼學(xué)產(chǎn)生的數(shù)據(jù)區(qū)塊有序鏈接而成,無(wú)需信任單個(gè)節(jié)點(diǎn),依靠共識(shí)機(jī)制確保交易的真實(shí)和不可逆,可實(shí)現(xiàn)方便快捷、安全可靠、近乎零成本的價(jià)值傳遞,從而構(gòu)建不同于以往人類社會(huì)的“信任”生態(tài)的價(jià)值互聯(lián)網(wǎng),建立了去中心化的價(jià)值體系,其核心特征是實(shí)現(xiàn)資金、合約、數(shù)字化資產(chǎn)等價(jià)值傳遞和交易[3]。
超級(jí)賬本Hyperledger匯集金融、銀行、物聯(lián)網(wǎng)、供應(yīng)鏈、制造等各界開(kāi)發(fā)人員心血,目的是為了打造一個(gè)跨領(lǐng)域的區(qū)塊鏈應(yīng)用[4]。本文采用Hyperledger Fabric開(kāi)源項(xiàng)目,提出一種從數(shù)據(jù)采集到自交易的應(yīng)用場(chǎng)景解決方案,方案僅限交易對(duì)象提供實(shí)時(shí)數(shù)據(jù),交易雙方通過(guò)合約實(shí)現(xiàn)靈活交易,交易達(dá)成后,允許買方主動(dòng)讀?。ɑ虮粍?dòng)收聽(tīng))特定的節(jié)點(diǎn)數(shù)據(jù);賣方可以對(duì)節(jié)點(diǎn)的私有錢包進(jìn)行資金歸集等操作。
1 基于Hyperledger的開(kāi)發(fā)環(huán)境[5]
1.1 Hyperledger簡(jiǎn)介
超級(jí)賬本Hyperledger是Linux基金會(huì)于2015年發(fā)起的推進(jìn)區(qū)塊鏈數(shù)字技術(shù)和交易驗(yàn)證的開(kāi)源項(xiàng)目,30家初始成員(包括IBM等)共同宣告Hyperledger項(xiàng)目成立。由于其點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)的特性,分布式賬本技術(shù)是完全共享、透明和去中心化的,非常適合于在金融行業(yè)應(yīng)用。其中Fabric項(xiàng)目是目前比較活躍的一個(gè)開(kāi)源項(xiàng)目,在Hyperledger Fabric基礎(chǔ)上又衍生出一些其他相關(guān)的應(yīng)用項(xiàng)目。Fabric是區(qū)塊鏈技術(shù)的實(shí)現(xiàn),比特幣可以作為一種簡(jiǎn)單的應(yīng)用在Fabric基礎(chǔ)上構(gòu)建。Fabric采用了模塊化的構(gòu)架,允許不同的組件在實(shí)現(xiàn)協(xié)議的基礎(chǔ)上即插即用。可以使用強(qiáng)大的容器技術(shù)來(lái)運(yùn)行主流編程語(yǔ)言以進(jìn)行智能合約的開(kāi)發(fā)。Fabric項(xiàng)目的構(gòu)架由成員服務(wù)(Membership)、區(qū)塊鏈服務(wù)(Blockchain)和鏈碼服務(wù)(Chaincode)三個(gè)主要類別構(gòu)成。Hyperledger具有身份識(shí)別與可審核性、私下交易及保密合約、用戶可自行選擇共識(shí)算法、能夠通過(guò)主流編程語(yǔ)言編寫鏈上代碼chaincode(也稱:智能合約)、性能績(jī)效以及可擴(kuò)展性等特點(diǎn)。
1.2 搭建開(kāi)發(fā)環(huán)境
在區(qū)塊鏈應(yīng)用項(xiàng)目研發(fā)中,共識(shí)算法的研究和改進(jìn)十分重要。因此,基于Hyperledger的開(kāi)發(fā)環(huán)境,不僅可供企業(yè)級(jí)應(yīng)用項(xiàng)目的編程開(kāi)發(fā),而且可用于相關(guān)共識(shí)算法、智能合約等內(nèi)容的性能分析測(cè)試。開(kāi)發(fā)環(huán)境的技術(shù)路線是在Linux系統(tǒng)下搭建測(cè)試環(huán)境,構(gòu)建測(cè)試網(wǎng)絡(luò),分析共識(shí)源碼,測(cè)試算法效率。搭建的工作步驟如下。endprint
步驟1:在Linux系統(tǒng)下搭建測(cè)試環(huán)境。根據(jù)官方網(wǎng)站給出的4個(gè)驗(yàn)證節(jié)點(diǎn)的網(wǎng)絡(luò)環(huán)境搭建方案,虛擬機(jī)內(nèi)利用Docker安裝測(cè)試環(huán)境。
步驟2:構(gòu)建測(cè)試網(wǎng)絡(luò)。在一臺(tái)PC上安裝多個(gè)docker以承載多個(gè)驗(yàn)證節(jié)點(diǎn);在多臺(tái)PC上安裝多個(gè)docker,實(shí)現(xiàn)docker之間通訊,以擴(kuò)充網(wǎng)絡(luò)規(guī)模。
步驟3:查看共識(shí)模塊,分析源碼。分析實(shí)用拜占庭PBFT算法源碼,了解共識(shí)代碼的書(shū)寫規(guī)范格式;找到相關(guān)事件接口。
步驟4:確定共識(shí)模塊的啟動(dòng)接口和共識(shí)事件流程。找到啟動(dòng)共識(shí)算法接口函數(shù);跟蹤該函數(shù)了解共識(shí)事件流程;找到系統(tǒng)中所有對(duì)于共識(shí)算法參數(shù)設(shè)置變量及相關(guān)參數(shù)。
步驟5:更改原有PBFT共識(shí)代碼,更換并測(cè)試共識(shí)算法的有效性。
2 自交易業(yè)務(wù)邏輯
目前互聯(lián)網(wǎng)金融平臺(tái)是一種中心化的組織架構(gòu),采用基于第三方信用背書(shū)的交易模式,不僅交易成本高,而且容易出現(xiàn)信任危機(jī)等交易糾紛。在一個(gè)去中心化、去信任的分布式環(huán)境中,因?yàn)闆](méi)有傳統(tǒng)的交易中心環(huán)節(jié),任何人在任何時(shí)間任何地點(diǎn)都可以發(fā)起交易,實(shí)現(xiàn)了自主C2C交易,區(qū)塊鏈的共識(shí)算法保證了交易流程的不可抵賴性、各種交易模型的安全設(shè)置使得安全性大大提高,整個(gè)交易過(guò)程操作簡(jiǎn)單,無(wú)技術(shù)門檻,交易成本低。
本文提出建立一個(gè)基于區(qū)塊鏈的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)自交易共享平臺(tái),利用P2P支付獎(jiǎng)勵(lì)機(jī)制,鼓勵(lì)數(shù)據(jù)擁有者開(kāi)放分享數(shù)據(jù),實(shí)現(xiàn)節(jié)點(diǎn)數(shù)據(jù)自盈利。
平臺(tái)運(yùn)行機(jī)制如下:
⑴ 軟件運(yùn)行在多個(gè)節(jié)點(diǎn),以P2P方式通信,一個(gè)節(jié)點(diǎn)數(shù)據(jù)的變化會(huì)通知同步到其他所有節(jié)點(diǎn);
⑵ 在通信過(guò)程中必須驗(yàn)證其真實(shí)性,驗(yàn)證機(jī)制為共識(shí)算法;
⑶ 采用代幣對(duì)算力的獎(jiǎng)勵(lì);
⑷ 根據(jù)一段時(shí)間內(nèi)交易的信息計(jì)算hash值,打上時(shí)間戳,成為鏈中的一個(gè)區(qū)塊,計(jì)算hash值通過(guò)特定機(jī)制由某個(gè)節(jié)點(diǎn)完成(即該節(jié)點(diǎn)提供算力),并給予獎(jiǎng)勵(lì);
⑸ 如果需要修改交易信息,必須得到所有算力的50%以上的認(rèn)可;
⑹ 通過(guò)這種運(yùn)行機(jī)制,解決了認(rèn)證、存儲(chǔ)、防攻擊三個(gè)問(wèn)題。
自交易平臺(tái)的業(yè)務(wù)流程如下:
⑴ 區(qū)塊鏈保存交易信息,購(gòu)買方自行保存數(shù)據(jù),出售方提供數(shù)據(jù)的訪問(wèn)接口及特定的訪問(wèn)機(jī)制;
⑵ 用戶的注冊(cè)本質(zhì)是私鑰的生成;
⑶ 目前僅考慮實(shí)時(shí)數(shù)據(jù)的交易;
⑷ 合約應(yīng)由發(fā)起方?jīng)Q定合約內(nèi)容,如傳節(jié)點(diǎn)類型、數(shù)量、時(shí)長(zhǎng)等;
⑸ 交易時(shí)先鎖定交易金額,然后按日轉(zhuǎn)賬到對(duì)應(yīng)的傳感器賬戶;
⑹ 平臺(tái)必須考慮節(jié)點(diǎn)及其數(shù)據(jù)的真實(shí)性,以及運(yùn)行狀態(tài)。
自交易業(yè)務(wù)流程如圖2所示,其中角色分為兩類:一類是網(wǎng)絡(luò)節(jié)點(diǎn),其私有錢包由owner管理;另一類是普通用戶。在本文,節(jié)點(diǎn)主要以賣方身份出現(xiàn),普通用戶以買方出現(xiàn)。
3 節(jié)點(diǎn)及其數(shù)據(jù)的可信驗(yàn)證
在去中心化條件下,網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)涉及兩個(gè)方面:一是如何證明節(jié)點(diǎn)用戶真實(shí)可信;二是如何驗(yàn)證實(shí)時(shí)數(shù)據(jù)真實(shí)可靠。在去中心化條件下,讓節(jié)點(diǎn)數(shù)據(jù)賣方自己證明自己真實(shí)可信,理論上相當(dāng)于程序正確性證明,相當(dāng)于圖靈機(jī)的停機(jī)問(wèn)題,而已知圖靈機(jī)停機(jī)問(wèn)題是不可判定的。盡管如此,在實(shí)際應(yīng)用中,可以為網(wǎng)絡(luò)節(jié)點(diǎn)及其數(shù)據(jù)的真實(shí)性給出定義或制定相關(guān)標(biāo)準(zhǔn),使得買方用戶可以憑借這些標(biāo)準(zhǔn)來(lái)自行判定節(jié)點(diǎn)數(shù)據(jù)的真實(shí)性。如此,節(jié)點(diǎn)數(shù)據(jù)是否“正確”的理解可以有以下四個(gè)層次:
⑴ 節(jié)點(diǎn)數(shù)據(jù)中不含明顯低級(jí)的錯(cuò)誤數(shù)據(jù);
⑵ 節(jié)點(diǎn)對(duì)于幾組探測(cè)需求能夠得出滿足要求的數(shù)據(jù);
⑶ 節(jié)點(diǎn)對(duì)于精選、典型苛刻且?guī)в械箅y性的幾組探測(cè)要求能輸出滿足要求的數(shù)據(jù);
⑷ 節(jié)點(diǎn)對(duì)于一切合法的探測(cè)要求都能得出滿足要求的數(shù)據(jù)。
通常以第⑶層意義上的正確性作為衡量一個(gè)節(jié)點(diǎn)提供數(shù)據(jù)是否真實(shí)的標(biāo)準(zhǔn)。根據(jù)第⑶層定義的標(biāo)準(zhǔn),為了完成對(duì)節(jié)點(diǎn)數(shù)據(jù)正確的驗(yàn)證,在不引入第三方的情況下,可采取如下三種可能的方法。
方法1:僅由交易系統(tǒng)來(lái)驗(yàn)證節(jié)點(diǎn)數(shù)據(jù)的正確性。若由交易系統(tǒng)驗(yàn)證節(jié)點(diǎn)數(shù)據(jù)正確性,則當(dāng)節(jié)點(diǎn)用戶注冊(cè)時(shí),由系統(tǒng)根據(jù)節(jié)點(diǎn)用戶的類型、特征和作用等,自動(dòng)產(chǎn)生上述標(biāo)準(zhǔn)⑴-⑶的要求,根據(jù)節(jié)點(diǎn)返回的結(jié)果與系統(tǒng)自身理論上的結(jié)果進(jìn)行比較,如若一致,則證明該節(jié)點(diǎn)用戶是真實(shí)、可信的,準(zhǔn)予注冊(cè);否則不允許注冊(cè)。
方法2:僅由數(shù)據(jù)買方用戶來(lái)驗(yàn)證節(jié)點(diǎn)數(shù)據(jù)的正確性。若由數(shù)據(jù)買方用戶來(lái)驗(yàn)證節(jié)點(diǎn)數(shù)據(jù)正確性,則節(jié)點(diǎn)用戶注冊(cè)時(shí),交易系統(tǒng)并不驗(yàn)證其真實(shí)性,而當(dāng)買方用戶欲購(gòu)買節(jié)點(diǎn)用戶數(shù)據(jù)時(shí),由買方用戶根據(jù)節(jié)點(diǎn)用戶類型和作用,發(fā)出如上述標(biāo)準(zhǔn)⑴-⑶中要求,并根據(jù)節(jié)點(diǎn)返回的結(jié)果與客戶自身理論分析的結(jié)果進(jìn)行比較,如若一致,則該用戶認(rèn)為該節(jié)點(diǎn)用戶是真實(shí)可信的,可以進(jìn)行購(gòu)買;否則不可信不產(chǎn)生交易。
方法3:先由交易系統(tǒng)驗(yàn)證再由普通用戶自行選擇驗(yàn)證。該方案是結(jié)合上述兩種方案,進(jìn)一步增強(qiáng)了可信性,首先當(dāng)節(jié)點(diǎn)用戶注冊(cè)時(shí)由系統(tǒng)驗(yàn)證,在一定程度上保障了注冊(cè)節(jié)點(diǎn)用戶的真實(shí)性,而當(dāng)買方用戶的再次驗(yàn)證,則可進(jìn)一步保障該節(jié)點(diǎn)用戶的可信性。
4 結(jié)束語(yǔ)
本文通過(guò)對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)及其數(shù)據(jù)自交易業(yè)務(wù)邏輯進(jìn)行分析建模,提出采用Hyperledger超級(jí)賬本,給出了網(wǎng)絡(luò)節(jié)點(diǎn)及其數(shù)據(jù)的可信驗(yàn)證方法,構(gòu)建一個(gè)去中心化的自交易平臺(tái)解決方案,方案中的區(qū)塊鏈只記錄通過(guò)合約實(shí)現(xiàn)的交易細(xì)節(jié),達(dá)成交易合約后,只為給購(gòu)買者提供節(jié)點(diǎn)數(shù)據(jù)的訪問(wèn)權(quán)限或者將數(shù)據(jù)廣播給購(gòu)買者,至于購(gòu)買者什么時(shí)候讀取或者使用數(shù)據(jù),是購(gòu)買者自己的事情,與交易平臺(tái)無(wú)關(guān)。
隨著物聯(lián)網(wǎng)的發(fā)展,更多智能設(shè)備及產(chǎn)品實(shí)現(xiàn)入網(wǎng)互聯(lián),每個(gè)物體都將擁有惟一數(shù)字身份識(shí)別碼,在萬(wàn)物互聯(lián)的體系中,平臺(tái)解決方案可用于實(shí)現(xiàn)低成本網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)的自主管理和商品資產(chǎn)化的增值服務(wù),從而衍生出新型的商業(yè)形態(tài),如:金融服務(wù)和保險(xiǎn)、新制造業(yè)和零售、智慧城市與交通、智慧家居和能源、環(huán)境檢測(cè)與保護(hù)、個(gè)性化服務(wù)、共享經(jīng)濟(jì)等。
參考文獻(xiàn)(References):
[1] 邵燕.互聯(lián)網(wǎng)金融交易中的消費(fèi)者風(fēng)險(xiǎn)及對(duì)策[J].現(xiàn)代經(jīng)濟(jì)
探討,2016.4:39-43
[2] 郭艷,王立榮,韓燕.金融市場(chǎng)中的區(qū)塊鏈技術(shù):場(chǎng)景應(yīng)用與價(jià)
值展望[J].技術(shù)經(jīng)濟(jì),2017.7:110-116
[3] 溫曉樺.區(qū)塊鏈-金融場(chǎng)景應(yīng)用[J].金融博覽(財(cái)富),2016.11:
38-41
[4] 超級(jí)賬本Fabric的架構(gòu)與設(shè)計(jì)[EB/OL].2017 [2017-9-7].
http://blog.csdn.net/
[5] Hyperledger[EB/OL]. 2017[2017-01-17]. https://www.
hyperledger.org/endprint