黃建平,楊少杰,余 建,陳 浩
(1.國(guó)網(wǎng)浙江省電力有限公司,浙江杭州 310007;2.浙江華云信息科技有限公司,浙江 杭州 310000)
供應(yīng)鏈金融是指銀行將核心企業(yè)及其上下游企業(yè)進(jìn)行資金物流統(tǒng)一管理的一種金融服務(wù)[1]。通過(guò)供應(yīng)鏈金融,銀行可以立體地獲取鏈條中企業(yè)的信用信息,進(jìn)而將放貸風(fēng)險(xiǎn)降至最低。供應(yīng)鏈金融對(duì)國(guó)家經(jīng)濟(jì)的發(fā)展具有關(guān)鍵作用,因此其平臺(tái)開(kāi)發(fā)也成為了熱點(diǎn)研究課題。
現(xiàn)代供應(yīng)鏈金融的特點(diǎn)是復(fù)雜化、位置分散化和零散化,供應(yīng)鏈結(jié)構(gòu)復(fù)雜且參與企業(yè)眾多,信息的共享與數(shù)據(jù)傳遞的及時(shí)性均會(huì)受到一定影響。傳統(tǒng)的供應(yīng)鏈平臺(tái)為中心化設(shè)計(jì)思想,是指用戶先將數(shù)據(jù)上傳至數(shù)據(jù)中心,然后再由數(shù)據(jù)中心向其他用戶發(fā)送信息。但這種模式已無(wú)法適應(yīng)現(xiàn)代的供應(yīng)鏈金融管理,且數(shù)據(jù)容易丟失,也易被非法篡改。相比傳統(tǒng)技術(shù)的各種限制,區(qū)塊鏈具有去中心化的特點(diǎn)且數(shù)據(jù)不可被修改,可由多方對(duì)其進(jìn)行維護(hù),同時(shí)便于數(shù)據(jù)溯源[2]。這種特性與供應(yīng)鏈金融對(duì)于信息共享性和數(shù)據(jù)安全性的需求相互契合,因此將區(qū)塊鏈相關(guān)技術(shù)應(yīng)用至供應(yīng)鏈數(shù)據(jù)平臺(tái)可以提升供應(yīng)鏈整體的運(yùn)行效率,也可保證數(shù)據(jù)的安全。
當(dāng)前,供應(yīng)鏈金融平臺(tái)的設(shè)計(jì)和管理是研究機(jī)構(gòu)的熱門(mén)課題。如文獻(xiàn)[3]使用模糊評(píng)價(jià)算法對(duì)供應(yīng)鏈金融平臺(tái)中存在的信用風(fēng)險(xiǎn)進(jìn)行評(píng)估,其是對(duì)供應(yīng)鏈中難以估計(jì)的變量確定化,進(jìn)而對(duì)變量進(jìn)行分析。文獻(xiàn)[4]使用BP 神經(jīng)網(wǎng)絡(luò)對(duì)平臺(tái)數(shù)據(jù)進(jìn)行研究,進(jìn)而對(duì)金融數(shù)據(jù)的風(fēng)險(xiǎn)性進(jìn)行評(píng)估??梢钥吹剑瑐鹘y(tǒng)的供應(yīng)鏈金融平臺(tái)依舊使用中心化的數(shù)據(jù)中心進(jìn)行構(gòu)建,其平臺(tái)結(jié)構(gòu)如圖1 所示。供應(yīng)鏈金融業(yè)務(wù)的具體瓶頸主要體現(xiàn)在三方面:企業(yè)信息不對(duì)稱、業(yè)務(wù)風(fēng)險(xiǎn)高以及共享式發(fā)展滯后。
圖1 供應(yīng)鏈金融平臺(tái)結(jié)構(gòu)
區(qū)塊鏈技術(shù)可以幫助金融機(jī)構(gòu)打破傳統(tǒng)供應(yīng)鏈金融平臺(tái)的瓶頸,許多學(xué)者進(jìn)行了深入的研究。文獻(xiàn)[5]認(rèn)為區(qū)塊鏈技術(shù)的開(kāi)放性、共享性以及去中心化等諸多特點(diǎn),對(duì)打破傳統(tǒng)金融平臺(tái)瓶頸具有重要的意義。文獻(xiàn)[6]基于區(qū)塊鏈技術(shù)構(gòu)建了基礎(chǔ)供應(yīng)鏈金融平臺(tái),該平臺(tái)使用以太坊作為區(qū)塊鏈平臺(tái),使用默認(rèn)的PoW 共識(shí)機(jī)制算法提高數(shù)據(jù)傳輸?shù)乃俾?。文獻(xiàn)[7]結(jié)合區(qū)塊鏈、簽名認(rèn)證和分層錢包技術(shù)設(shè)計(jì)了一套供應(yīng)鏈管控與溯源系統(tǒng),該系統(tǒng)具有交易回溯特性,相較傳統(tǒng)供應(yīng)鏈平臺(tái)交易更加安全。
由此可見(jiàn),當(dāng)前使用區(qū)塊鏈技術(shù)的供應(yīng)鏈金融平臺(tái)對(duì)傳統(tǒng)平臺(tái)的改進(jìn)有以下幾個(gè)方面:
1)使用簽名認(rèn)證算法保證用戶的匿名性,從而使用戶隱私得到良好保障。
2)使用區(qū)塊鏈中的數(shù)據(jù)加密算法,可以保證區(qū)塊鏈金融平臺(tái)交易時(shí)的安全性。
3)使用共識(shí)機(jī)制對(duì)數(shù)據(jù)進(jìn)行傳輸和存儲(chǔ),由此可以加快數(shù)據(jù)的交換速率,提高系統(tǒng)的整體運(yùn)行效率。
因此,該文基于區(qū)塊鏈技術(shù)對(duì)傳統(tǒng)供應(yīng)鏈金融數(shù)據(jù)平臺(tái)進(jìn)行改進(jìn),數(shù)據(jù)傳輸過(guò)程使用加密算法對(duì)數(shù)據(jù)進(jìn)行保護(hù);使用匿名保護(hù)算法對(duì)用戶的隱私進(jìn)行保護(hù);使用共識(shí)機(jī)制算法加快平臺(tái)運(yùn)行速率同時(shí)節(jié)省算力,旨在可以解決傳統(tǒng)供應(yīng)鏈金融平臺(tái)的瓶頸問(wèn)題。
區(qū)塊鏈平臺(tái)的特點(diǎn)是去中心化、無(wú)法篡改、匿名性、開(kāi)放性和跨平臺(tái)性等,因此區(qū)塊鏈技術(shù)與供應(yīng)鏈平臺(tái)特性較為吻合。使用區(qū)塊鏈技術(shù)的供應(yīng)鏈平臺(tái)需要滿足以下幾個(gè)需求:
1)數(shù)據(jù)加密解密算法高效性:在供應(yīng)鏈平臺(tái)中,數(shù)據(jù)安全是其最為重要的機(jī)制之一。加密算法復(fù)雜且安全性高,但由此也會(huì)增加解密時(shí)間,進(jìn)而降低整個(gè)平臺(tái)的工作效率。因此,需要選擇性能和安全性兼?zhèn)涞募用芙饷芩惴ā?/p>
2)匿名機(jī)制:區(qū)塊鏈重要的特性即匿名性,用戶上傳數(shù)據(jù)時(shí)用到的數(shù)據(jù)簽名包含用戶個(gè)人信息,因此需要對(duì)數(shù)字簽名進(jìn)行匿名以保護(hù)用戶隱私,同時(shí)數(shù)字簽名也可確保用戶的真實(shí)性。
3)共識(shí)機(jī)制的選擇:是指用戶在平臺(tái)完成交易時(shí)數(shù)據(jù)交換的速率。在用戶上傳數(shù)據(jù)時(shí)共識(shí)機(jī)制會(huì)制造區(qū)塊,進(jìn)而將用戶的數(shù)據(jù)保存至區(qū)塊中,共識(shí)機(jī)制效率越高,用戶完成交易的速率則越快。
通常區(qū)塊鏈的加密算法使用混合算法,該文將RSA 算法與AES 算法進(jìn)行結(jié)合。RSA 算法也被稱為非對(duì)稱加密算法[8-9],使用該算法可以防止數(shù)據(jù)傳輸過(guò)程中的密鑰泄露,但由于采用了非對(duì)稱結(jié)構(gòu),所以算法的數(shù)據(jù)分組較多且計(jì)算緩慢。而AES 算法[10-11]為對(duì)稱加密算法,也被稱為快速加密解密算法,使用RSA+AES 混合算法在保證密鑰安全的同時(shí)也可提高加密解密的速率。
RSA 算法加密的過(guò)程首先選取獨(dú)立且不相同的質(zhì)數(shù)p和q,計(jì)算質(zhì)數(shù)的乘積n,如式(1)所示:
乘積n代表密鑰的長(zhǎng)度,通常情況下n取二進(jìn)制位長(zhǎng)度1 024。
計(jì)算密鑰長(zhǎng)度n的歐拉函數(shù),如式(2)所示:
取一整數(shù)e,其取值范圍為(1,φ(n)),且整數(shù)e和φ(n)互為質(zhì)數(shù)。然后計(jì)算e對(duì)于φ(n)的取模,求反因子d,即有式(3):
則e的逆元素和d的關(guān)系如式(4)所示:
綜上所述,即可設(shè)置公共密鑰為(e,n),私有密鑰為(d,n)。
而AES加密方式較為簡(jiǎn)單,加密流程如圖2所示。
圖2 AES加密流程
如圖2 所示,明文為P,密鑰為K,密文為C。發(fā)送方使用密鑰K 對(duì)明文P 進(jìn)行加密,密文C 通過(guò)網(wǎng)絡(luò)傳輸至接收方后使用AES 解密函數(shù)得到明文P。
基于AES 和RSA 的混合加密流程,如圖3 所示。圖中,發(fā)送方的AES 密鑰會(huì)進(jìn)行自動(dòng)設(shè)置,設(shè)置后再設(shè)定更新時(shí)間,當(dāng)達(dá)到更新時(shí)間后,AES 密鑰會(huì)自動(dòng)失去作用并生成新的AES 密鑰,不斷更新的密鑰即使泄露也無(wú)法對(duì)數(shù)據(jù)造成威脅,因此大幅增強(qiáng)了數(shù)據(jù)的安全性。
圖3 混合算法加密流程
該文使用匿名保護(hù)算法對(duì)區(qū)塊鏈中的用戶隱私進(jìn)行保護(hù)。算法設(shè)計(jì)采用環(huán)簽名算法,該算法是群簽名算法[12-13],操作過(guò)程是使用多個(gè)公鑰集合對(duì)自身的私鑰進(jìn)行簽名,用戶的私鑰在同一個(gè)系統(tǒng)中與其他用戶的公鑰進(jìn)行簽名,這樣簽名時(shí)既可確認(rèn)用戶是系統(tǒng)中的真實(shí)用戶,同時(shí)又保證了用戶的匿名性。環(huán)簽名算法的流程如下:
供應(yīng)鏈的某一用戶通過(guò)供應(yīng)鏈數(shù)據(jù)平臺(tái)發(fā)出某個(gè)數(shù)據(jù)m,此時(shí)該用戶的密鑰q和其他用戶組成的密鑰集合為E,設(shè)群組中的用戶數(shù)量為n。通過(guò)集群進(jìn)行初始化,即可得到式(5):
式(5)中,q為公鑰,G為加密因子,則用戶自身的私鑰s為:
私鑰s無(wú)法從公鑰和加密因子中推測(cè)出來(lái),因?yàn)樵谙到y(tǒng)中呈現(xiàn)出的只有用戶的公鑰集合。
生成的環(huán)簽名為:
因此,通過(guò)式(7)的智能合約即可對(duì)用戶信息進(jìn)行匿名,使用二進(jìn)制接口進(jìn)行編譯可以在系統(tǒng)中上傳合約。
共識(shí)機(jī)制本質(zhì)是基于可靠性高的節(jié)點(diǎn)對(duì)區(qū)塊進(jìn)行驗(yàn)證的算法,該文選取PoA 共識(shí)機(jī)制算法[14-16]。PoA 算法可以為整個(gè)系統(tǒng)節(jié)約大量的算力,并提高運(yùn)算效率,同時(shí)使區(qū)塊生成的時(shí)間大幅度減少。
PoA 共識(shí)機(jī)制的典型特征是使用輪詢算法對(duì)區(qū)塊的生成難度進(jìn)行控制,常用的輪詢模式為Difficulty模式。該模式的輪詢節(jié)點(diǎn)為inTURN 節(jié)點(diǎn),非輪詢節(jié)點(diǎn)為outTURN 節(jié)點(diǎn),節(jié)點(diǎn)計(jì)算如式(8)和式(9)所示:
基于PoA 節(jié)點(diǎn)的同步流程如圖4 所示。
圖4 PoA共識(shí)機(jī)制同步流程
對(duì)于新加入的節(jié)點(diǎn)而言,首先要?jiǎng)?chuàng)立節(jié)點(diǎn)的賬戶并將節(jié)點(diǎn)賬戶保存至數(shù)據(jù)時(shí)鐘地址文件,然后再啟用新加入的節(jié)點(diǎn),查找并獲取其相關(guān)信息。當(dāng)節(jié)點(diǎn)同步后,PoA 共識(shí)機(jī)制會(huì)授權(quán)其進(jìn)行相關(guān)操作,但此時(shí)節(jié)點(diǎn)之間需要保持同步更新。
為解決傳統(tǒng)供應(yīng)鏈金融技術(shù)中存在的瓶頸,該文充分利用多種區(qū)塊鏈技術(shù)和算法,保證了用戶數(shù)據(jù)安全、快速地傳遞。該文提出的數(shù)據(jù)平臺(tái)框架設(shè)計(jì),如圖5 所示。
圖5 數(shù)據(jù)平臺(tái)框架設(shè)計(jì)
首先對(duì)該文設(shè)計(jì)的平臺(tái)進(jìn)行系統(tǒng)搭建,由于是金融供應(yīng)鏈服務(wù)平臺(tái),因此平臺(tái)技術(shù)的選取應(yīng)盡量選取相對(duì)成熟且性能穩(wěn)定的產(chǎn)品。在系統(tǒng)部署方面,允許多種方式進(jìn)行部署,其中主要包括物理機(jī)和虛擬機(jī)等方式。同時(shí),使用集成環(huán)境進(jìn)行系統(tǒng)的迭代和升級(jí),技術(shù)選型表如表1 所示。
表1 技術(shù)選型表
首先對(duì)加密解密算法性能進(jìn)行對(duì)比,使用以太坊中的默認(rèn)加密算法ECC 進(jìn)行對(duì)比測(cè)試,表2 和表3展示了不同算法加密時(shí)間和解密時(shí)間的對(duì)比。
表2 加密時(shí)間對(duì)比
表3 解密時(shí)間對(duì)比
由表2 可知,在數(shù)據(jù)加密過(guò)程中,該文算法相較ECC加密時(shí)間有明顯的縮短。在加密數(shù)據(jù)量為1 MB、5 MB、10 MB 和15 MB 時(shí),該文算法的加密時(shí)間分別縮短了61.5%、70.3%、70.7%和70.3%。
由表3 對(duì)比表2 可以看到,兩種算法所需要的加密時(shí)間和解密時(shí)間大致相同,該文算法的解密時(shí)間相較ECC 算法也出現(xiàn)了大幅縮短。
在數(shù)據(jù)安全性方面,由公開(kāi)的測(cè)試數(shù)據(jù)可知,假設(shè)AES 密鑰通常有128 位,即需要經(jīng)過(guò)2127次計(jì)算,而普通計(jì)算機(jī)的運(yùn)行速度為每秒265次。由此可知,破解長(zhǎng)度為128 位的AES 密鑰時(shí)間約為1 400 億年。而該文AES 密鑰設(shè)置的長(zhǎng)度為1 024,因此使用計(jì)算機(jī)對(duì)密鑰進(jìn)行破解的難度極高,從而證明了文中加密算法可以保證數(shù)據(jù)的安全性。
傳統(tǒng)的區(qū)塊鏈共識(shí)機(jī)制使用PoW 算法,而該文選擇使用PoA 共識(shí)算法。該算法可以縮短共識(shí)機(jī)制所用時(shí)間,因此能夠大幅度降低系統(tǒng)所需的算力,而這一性能主要體現(xiàn)在CPU 的使用率上。使用PoW和PoA 共識(shí)機(jī)制分別進(jìn)行CPU 占有率測(cè)試,測(cè)試結(jié)果如表4 所示。
表4 CPU占有率測(cè)試
由表4 可以看出,系統(tǒng)在運(yùn)行50 s 以后,兩種機(jī)制的CPU 占用率趨于穩(wěn)定,使用PoA 共識(shí)機(jī)制可以大幅降低CPU 的使用率。
傳統(tǒng)供應(yīng)鏈數(shù)據(jù)平臺(tái)具有信息不對(duì)稱、業(yè)務(wù)安全性和共享性差等缺點(diǎn),該文提出基于區(qū)塊鏈技術(shù)的供應(yīng)鏈金融數(shù)據(jù)平臺(tái),設(shè)計(jì)了加密算法、匿名算法和共識(shí)機(jī)制算法對(duì)上述瓶頸問(wèn)題進(jìn)行改進(jìn)。在實(shí)驗(yàn)測(cè)試中,該文搭建的數(shù)據(jù)平臺(tái)在多項(xiàng)性能指標(biāo)上均表現(xiàn)出了良好的性能,相較于其他算法,在運(yùn)行速度以及CPU 占用率方面也有著明顯的優(yōu)勢(shì),表明了該文所設(shè)計(jì)的數(shù)據(jù)平臺(tái)具有安全性高、運(yùn)算時(shí)間短且隱匿性強(qiáng)的特點(diǎn)。