2. 上海计算机软件技术开发中心, 上海 201112
2. Shanghai Development Center of Computer Software Technology, Shanghai 201112, China
区块链技术因具有去中心化、可追溯、不可篡改等优点而被应用到越来越多的领域,但区块链本身存在低吞吐量、网络孤立和缺乏有效监管等问题,其中区块链网络孤立问题尤为严重,在通常情况下每一条区块链都是独立的,它们之间无法直接通信。因此,当区块链之间需要信息交互时,即产生跨链需求[1]。
根据区块链底层平台的差异,可以将跨链信息交互分为同构链和异构链,同构链之间底层技术一致,区别在于应用和数据不同;而异构链之间的底层技术如共识算法、安全机制等都可能存在差异。同构链之间跨链交互较为简单,而异构链之间跨链交互需要有特定的技术辅助支撑[2]。
到目前为止,区块链跨链方法可以分为哈希锁定、侧链/中继链和公证人机制等类型[3-4]。
哈希锁定主要是通过严格执行含有哈希密码锁定的智能合约来实现资产交换[5-6],它的交换思路是一方基于哈希值锁定资产,设定规定时间内如果能提供原哈希数,则可获取资产,另一方使用同样的哈希值锁定资产,也设置同样的解锁条件,即一方使用哈希数解锁获取资产,另一方利用同样的哈希数获取资产,哈希锁定只能做到交换而不能做到资产或者信息的转移,因此其使用场景有限。典型实现是哈希时间锁定合约(Hashed Time Lock Contract,HTLC)。
侧链是指完全拥有某链功能的另一条区块链,侧链可以读取和验证主链上的信息[7-8]。主链不知道侧链的存在,由侧链主动感知主链信息并进行相应的动作,而中继链则是侧链和公证人机制的结合体,中继链具有访问需要和验证进行互操作的链的关键信息,而且还能对两条链的跨链消息进行转移。因此,中继链也是一种去中心的公证人机制。
公证人机制又叫见证人机制,其实质上类似于现在银行所进行的交易[9]。它的核心思想是假设存在链A、B,它们使异构链无法直接进行信息交互,假设存在一个可信的第三方C能同时被链A、B所接受,则由可信的第三方C负责链A、B之间的消息传递。公证人机制的优点是能够支持多种不同的异构链,但它的缺点是过于中心化。
公证人机制模式目前仅能够支持资产的交换,且资产交换的原子性、安全性完全由中心化的交易所保障,所以也存在较大的中心化风险。目前迭代发展出的多重签名和分布式签名的方案弱化了中心化组件的特性,其能够从多种角度提高系统的安全性[10-11]。
分布式签名方案是利用密码学的原理将密钥分别拆分成多个密钥加密后的密文(单个公证人无法拥有全部的密钥),并随机分发给公证人(所用的密文合并起来也无法推断出完整的密钥),设定允许一定数量的公证人在他们共同签名之后可以合成完整的密钥,完成了去中心化“数据采集验证”的过程[12-13]。
多重签名是指跨链交易需要多个公证人签名,交易才能被确认。通常它是由公证人在各自的账本上签名,当签名的数量达到预先设定好的数量时才能达成交易,这里的每个公证人都拥有独立的密钥[14-15]。
在应用公证人机制的跨链项目中,Interledger项目在早期发展中以公证人机制实现不同异构链的跨链,后续发展可结合哈希锁定技术来实现跨链交互;corda[16-17]项目可以实现交易双方自由选择公证人。无论是哪一种方案,都需要参与方公证人可信[18-19]。为解决公证人可信问题,本文构建一种基于改进PageRank算法的跨链公证人评价模型。该模型通过基于其他公证人节点评价和该节点历史交易评价来对公证人节点进行信用度排序,剔除信用度排名靠后的节点来保证系统整体的信用度。
1 公证人机制传统的公证人机制是基于中心化交易中介方所得跨链资产交换[20],这种跨链的方式比较单一,只支持资产的交换,图 1演示了分别位于链A、B的用户a、b通过交易中介方进行跨链资产交换的过程。
Download:
|
|
公证人机制交换过程如下:
1)用户a通过交易中介方钱包将自己的资产充入交易中介方的地址。
2)用户a在交易中介方挂出卖单交易信息A。
3)用户b需要将自己的资产充入交易中介方的地址。
4)用户b在交易中介方挂出卖单交易信息B。
5)交易中介方将用户a的卖单和用户b的卖单进行撮合。
6)交易中介方将用户a在交易中介方存储资产转移给用户b在链A的地址。
7)交易中介方将用户b在交易中介方存储的资产转移给用户a在链B的地址。
至此完成了用户a、b资产的交换(案例中省去了交易中介方的服务费)。
2 节点评价模型 2.1 评价模型 2.1.1 评价模型流程本文通过构造一个动态的公证人节点评价模型来保证公证人机制的安全性。该模型由其他公证人节点评价和该节点历史交易评价进行协作,最终通过本文模型给出一个动态的节点信用值排序,剔除排名在后的节点。本文模型在排序时考虑下列因素:
1)节点的信用值应由与其有过交易的用户和替他节点共同评价。
2)替他节点在评价时只需给出自己信任的节点;替他节点在评价时只需给出自己信任的节点记录;历史交易评价需考虑交易处理效率、用户反馈、负面交易信息等因素。
3)节点内部优秀交易的次数越多,该节点的信用值越高。
4)节点信用值是一个逐渐积累的过程,持续诚信交易的积累才能获得高信用值。
本文模型在规定的某时间内对现有的节点进行信任度评价,系统向存在的节点发出评价信号并广播系统公钥及地址;各个节点收到信号后,使用系统的公钥进行加密并使用自己的私钥加密签名;系统会收集各个节点的加密数据并使用系统私钥解密,最终形成信任关系图并广播出去;系统在规定时间内如果未收到异议信息则进行下一步计划,如果有则重新投票;系统会自动收集各个节点历史交易信息并使用改进PageRank算法进行信用度排序,并将结果及计算过程公布;在规定时间内,系统若未收到任何异议信息,则根据流程自动剔除排名在后的节点。节点评价模型如图 2所示。
Download:
|
|
节点历史交易信息中用户反馈评价是指最终完成交易后用户对其进行评价,分数值从1~5由低到高;节点交易处理效率是指用户从发起交易到最终确认交易中介方需要的时间;负面交易信息包括交易未完成情况、存在欺诈等行为的交易。
2.1.2 评价系统本文评价系统由广播板、节点模块、数据采集模块、数据存储模块和信用排序模块组成,评价系统工作过程如图 3所示。
Download:
|
|
评价系统主要包括以下5个模块:
1)广播板:用于显示投票内容、评价内容及公告信息的模块。投票内容包含节点投票的信息、投票人的签名和广播板的签名;评价过程包含评价内容及评价结果;公告信息包含参与投票的节点的地址及投票开始及结束时间。
2)节点模块:用于节点填写投票信息及验证的模块,包含节点登录验证模块和信息填写模块。
3)数据采集模块:用于采集节点评价信息及历史交易评价信息。
4)数据存储模块:用于存储节点信息及信用排序信息。
5)信用排序模块:基于改进PageRank算法对节点信用度进行评价的模块,该模块中所有运算步骤都将在广播板显示出来。
评价系统在某一时间点时,将在广播板广播参与投票的节点及投票截止时间;节点收到投票信息将登录并验证自己的信息,填写信任的节点并签名,再把信息传到广播板,广播板显示节点传递的信息;当投票时间结束后,系统将调用改进PageRank算法对投票信息进行信用度排序,并把结果及计算过程在广播板进行展示。节点可以查看所有的投票信息及运算过程。
节点登录时需要进行验证,首先节点先向系统发送登录的请求,系统收到请求后返回给节点一个它所提供公钥加密的内容;节点用私钥将公钥加密的信息进行解密,如果两者一致,则登录成功。
数据存储中包含节点的基本信息(如节点的公钥、IP地址)、节点交易的历史信息及节点投票的信息,节点可以随时查看。
2.2 改进PageRank评价算法 2.2.1 PageRank算法PageRank算法是谷歌公司用于网页重要性评价的一种方法。其核心思想是利用网页链接到替他页面和替他页面链接到本页面的情况来计算页面的分值,并对其进行分值排序[12-14]。
在使用PageRank算法对网页重要性进行排序时,一般会假设2个前提:
1)数量假设:假设存在一个网页,如果有大批的链接与它相连,则表示这个页面非常重要,本文中的节点假设有大量的替他节点与它相连,则表示该节点非常受到信任。
2)质量假设:在互联网中,各网页的内容质量参差不齐,如果一个高质量的页面与该页面相连,则传递给该页面的权重应该很高;同样,如果有一个信任度很高的节点信任本节点,则传递给本节点的权重就会很高。
基于这2个假设,算法基于式(1)对页面等级进行评估时,对于每一个页面的权重赋予相同的值,然后通过不断地递归迭代计算,更新每一个页面的得分,直到页面得分稳定。
$ {\rm{PR}}(u) = \sum\limits_{r \in {B_u}} {\frac{{{\rm{PR}}(v)}}{{L(v)}}} $ | (1) |
其中,L(ν)表示网页ν的出链数量,PR(ν)表示网页ν的PageRank值,Bu表示网页u的入链集合。从式(1)可以看出,每个页面的PageRank值是由其所有入链网页的PageRank值累加得到。
PageRank算法规定一个页面只能对其他页面进行一次投票,如图 4所示。图 4中节点B只能给节点A投半票,即节点B只能将它链接权重值的一半赋予节点A。同理,节点D只能将其链接权重值的1/3赋予节点A。
Download:
|
|
图 4中节点D的PR值计算公式如下:
$ \operatorname{PR}(D)=\frac{\operatorname{PR}(A)}{3}+\frac{\operatorname{PR}(B)}{2} $ | (2) |
在现实的互联网中还存在许多页面没有链接到其他任何页面的情况,即这一页面的出链数为0(如图 4中节点C),这种页面被称为孤立网页。基于这种问题,谷歌公司修订了原先的PageRank计算公式,在原先的公式上引入阻尼系数d(damping factor),根据实验,该阻尼系数一般取0.85。该系数为用户在某一时刻使用该节点后从该节点跳转到替他节点的概率。当阻尼系数为0.15时,表明用户不在通过节点跳转到另一节点,改进后的PageRank算法的计算公式如式(3)所示:
$ {\mathop{\rm PR}\nolimits} (u) = \frac{{1 - d}}{N} + d \times \sum\limits_{\gamma \in {B_u}} {\frac{{{\mathop{\rm PR}\nolimits} (v)}}{{L(v)}}} $ | (3) |
从图 4可以看出:节点A有节点B指向的链接;节点B有节点A、节点D指向的链接;节点C有节点A、节点D指向的链接;节点D有节点A、节点B指向的链接。假设初始链接概率相等,则存在转移矩阵N:
$ \mathit{\boldsymbol{N}} = \left[ {\begin{array}{*{20}{l}} 0&{1/2}&0&0\\ {1/3}&0&0&1\\ {1/3}&0&0&0\\ {1/3}&{1/2}&0&0 \end{array}} \right] $ | (4) |
其中,Ni,j表示用户从节点j跳转到节点i的概率。
假设节点的初始概率为1/n,n为节点数量,则初始概率矩阵为:
$ {\left[ {\begin{array}{*{20}{l}} {1/4}&{1/4}&{1/4}&{1/4} \end{array}} \right]^{\rm{T}}} $ | (5) |
根据式(5)进行迭代,当最终结果变化在某个区间内时,结束迭代,则最终节点重要度排序为:
$ {\left[ {\begin{array}{*{20}{l}} {0.22}&{0.37}&{0.13}&{0.28} \end{array}} \right]^{\rm{T}}} $ | (6) |
每个节点的历史交易信息会对其信用评估产生内在的影响。假设存在节点A及它的一个正向链接节点B,若节点A交易处理效率高于节点B,则用户对节点A的反馈评价要高于对节点B的反馈评价;若节点A交易处理效率高于节点B,则用户对节点A的反馈评价要高于对节点B的反馈评价;负面交易信息越少,那么节点A分配给节点B的权重越高。
下文给出计算节点A、B信用度的步骤:
1)建立节点历史交易信息的交易处理效率、用户反馈、负面交易信息的集合:
$ {M_{{\rm{key}}}} = \left\{ {{M_{{\rm{ke}}{{\rm{y}}_1}}}, {M_{{\rm{ke}}{{\rm{y}}_i}}}, \cdots , {M_{{\rm{ke}}{{\rm{y}}_m}}}} \right\}, i = 2, 3, \cdots , m - 1 $ | (7) |
2)确定用户整体评价的位置权重,引入分段函数来表征本文收集到的用户整体评价信息,分交易处理效率、用户反馈、负面交易信息3个部分计算[20]:
$ {\rm{ weigh}}{{\rm{t}}_i}{\rm{ }} = \left\{ {\begin{array}{*{20}{l}} {{w_1}, {\rm{ 负面信息}}}\\ {{w_2}, {\rm{ 用户反馈评价}}}\\ {{w_3}, {\rm{ 交易处理效率}}} \end{array}} \right. $ | (8) |
3)用户反馈评价值计算,计算公式如下:
$ {Q_{{\rm{people }}}} = \sum\limits_{j = 1}^n {{\rm{ weight}}{{\rm{ }}_{{\rm{people }}}}} \times {\rm{ grade}}{{\rm{ }}_j} $ | (9) |
其中,Qpeople代表节点总体用户反馈评价值,weightpeople代表节点用户反馈权重,gradej代表用户历史评价值。
4)交易处理效率值计算,计算公式如下:
$ {Q_{{\rm{time }}}} = \sum\limits_{j = 1}^n {{\rm{ weight}}{{\rm{ }}_{{\rm{time }}}}} \times \frac{1}{{{\rm{ time}}{{\rm{ }}_j}}} $ | (10) |
其中,Qtime代表节点交易处理效率值,weighttime代表节点交易处理权重,timej代表节点交易处理时间。
5)节点负面消息评价值计算,计算公式如下:
$ Q_{\text {reverse }}=\text { weight }_{\text {reverse }} \times \text { number } $ | (11) |
其中,Qreverse代表节点负面消息评价值,weightreverse代表节点负面消息评价权重,number代表节点负面消息评价数量。
6)最终得出节点交易处理效率、用户反馈、负面交易信息评价值,计算公式如下:
$ A = \left\{ {{Q_{{\rm{people }}}}, {Q_{{\rm{time }}}}, {Q_{{\rm{reverse }}}}} \right\} $ | (12) |
7)本文通过使用向量空间模型(Vector Space Model,VSM)[14-15]来计算节点M、N相似度,即:
$ {P_{MN}} = \frac{{\sum\limits_{i = 1}^3 {{A_M}} \times {A_N}}}{{\sqrt {\left( {\sum\limits_{i = 1}^3 {A_M^2} } \right) + \left( {\sum\limits_{i = 1}^3 {A_N^2} } \right)} }} $ | (13) |
8)最终得到改进后的PageRank算法如式(14)所示:
$ {\mathop{\rm PR}\nolimits} (u) = (1 - d) + d \times \sum\limits_{v \in {B_u}} {\frac{{{\rm{PR}}(v)}}{{L(v)}}} \times \left( {1 + {P_{MN}}} \right) $ | (14) |
如果某一节点并无历史交易信息,则:
$ {P_{MN}} = 0 $ | (15) |
本文对某交易中介方使用的跨链交易系统的100个节点进行评价,首先节点各自填写评价表,包括所有节点之间的信任关系(谁信任谁)。然后使用0~99之间的连续整数对100位节点分别进行编号,并利用所有人之间的信任关系组织成一张节点关系,如图 5所示。其中信任关系依靠有向箭头表明,例如“2→3”表示2号节点信任3号节点。
Download:
|
|
表 1为某节点历史交易信息,主要包含交易是否成功状态、交易效率和用户评价3个指标。其中如果交易失败,则缺少交易效率和用户评价。用户反馈评价值从1~5依次递增;交易状态分为成功和失败两种。本文收集了某证券交易所200个节点交易的前100条交易信息。
本文基于收集到的节点信任关系及各节点交易信息进行仿真测试,基于传统PageRank算法和改进PageRank算法进行仿真比较,结果如图 6所示。
Download:
|
|
根据PageRank算法,最终的信用度值会在0~1范围内,从图 6可以看出,同一个节点基于传统PageRank算法计算出的信用度值和改进后的信用度值有所差距,这是因为改进的PageRank算法考虑了节点与节点之间的历史交易信息,最终导致结果有所差异。
根据本文设定程序,最终会剔除排名靠后的节点,本次实验选定剔除排名在后10位的节点,基于传统PageRank算法剔除的节点信用度值和基于改进后的PageRank算法剔除的节点信用度值如图 7所示。
Download:
|
|
本文预先针对收集到的用户历史评价信息进行平均值计算,计算出每个节点用户评价信用度值并对其进行排序,选出排名最低的节点如表 2所示。表 2给出了基于改进PageRank算法和传统PageRank算法所剔除的节点,结合图 7和表 2可以看出,改进后的PageRank算法剔除了用户评价较低的节点(如节点78、节点70),说明改进后的算法有效地结合了用户历史评价信息。
本文针对跨链技术中常用的公证人机制节点信用监督不足的问题,提出一种基于改进PageRank算法的评价模型。该模型对公证人节点信用评价进行优化,计算得到高可信的节点,在一定程度上保障了跨区块链系统交换资产的安全。实验结果表明,该模型能够较好地解决传统节点评价过于主观性的问题,通过节点评价和交易评价两者之间相互制衡,保证评价的公正性,在动态的交易过程中去除信任度低的节点,最终使整个系统的信任度得到提高。下一步计划将公证人机制与侧链技术、哈希锁定技术相结合,以弱化公证人机制过于中心化的问题。
[1] |
ALI D, MARCO S, SALIL S K, et al. BlockChain:a distributed solution to automotive security and privacy[J]. IEEE Communications Magazine, 2017, 55(12): 119-125. DOI:10.1109/MCOM.2017.1700879 |
[2] |
LI Fang, LI Zhuoran, ZHAO He. Research on progress of blockchain cross-chain technology[J]. Journal of Software, 2019, 30(6): 1649-1660. (in Chinese) 李芳, 李卓然, 赵赫. 区块链跨链技术进展研究[J]. 软件学报, 2019, 30(6): 1649-1660. |
[3] |
JANUSZ J S, JOY H, MARKUS K. Blockchain technology in the chemical industry:machine-to-machine electricity market[J]. Applied Energy, 1995, 234-246. |
[4] |
MADHUSUDAN S, KIM S. Intelligent vehicle-trust point:reward based intelligent vehicle communication using blockchain[J]. Optical Engineering, 2017, 33(1): 701-709. |
[5] |
WANG Xiuli, JIANG Xiaozhou, LI Yang. Data access control and sharing model using blockchain[J]. Journal of Software, 2019, 30(6): 1661-1669. (in Chinese) 王秀利, 江晓舟, 李洋. 应用区块链的数据访问控制与共享模型[J]. 软件学报, 2019, 30(6): 1661-1669. |
[6] |
ZHANG Liang, LIU Baixiang, ZHANG Ruyi, et al. Over-view of blockchain technology[J]. Computer Engineering, 2019, 45(5): 1-12. (in Chinese) 张亮, 刘百祥, 张如意, 等. 区块链技术综述[J]. 计算机工程, 2019, 45(5): 1-12. |
[7] |
SHAO Qifeng, ZHANG Zhao, ZHU Yanchao, et al. Overview of enterprise-level blockchain technology[J]. Journal of Software, 2019, 30(9): 2571-2592. (in Chinese) 邵奇峰, 张召, 朱燕超, 等. 企业级区块链技术综述[J]. 软件学报, 2019, 30(9): 2571-2592. |
[8] |
LIU Mingda, SHI Yijuan, CHEN Zuoning. Blockchain-based distributed trusted network connection architecture[J]. Journal of Software, 2019, 30(8): 2314-2336. (in Chinese) 刘明达, 拾以娟, 陈左宁. 基于区块链的分布式可信网络连接架构[J]. 软件学报, 2019, 30(8): 2314-2336. |
[9] |
LIU Hai, LI Xinghua, YAN Bin, et al. Blockchain-based distributed K anonymous location privacy protection scheme[J]. Chinese Journal of Computers, 2019, 42(5): 942-959. (in Chinese) 刘海, 李兴华, 雒彬, 等. 基于区块链的分布式K匿名位置隐私保护方案[J]. 计算机学报, 2019, 42(5): 942-959. |
[10] |
LEE B, LEE J H. Blockchain-based secure firmware update for embedded devices in an Internet of things environment[J]. Journal of Supercomputing, 2017, 73(3): 1152-1167. DOI:10.1007/s11227-016-1870-0 |
[11] |
MENGELKAMP E. A blockchain-based smart grid:towards sustainable local energy markets[J]. Computer Science-Research and Development, 2018, 33(1/2): 207-214. DOI:10.1007/s00450-017-0360-9 |
[12] |
TOMASO A, PAOLO T, MATTEO D. Blockchain technologies:the foreseeable impact on society and industry[J]. Computer, 2017, 50(9): 18-28. DOI:10.1109/MC.2017.3571064 |
[13] |
ANTONUCCI F, FIGORILLI S, COSTA C. A review on blockchain applications in the agri-food sector[J]. Journal of the Science of Food and Agriculture, 2019, 99(14): 6129-6138. DOI:10.1002/jsfa.9912 |
[14] |
ZHANG Xin, CHEN Yan, LI Taoying. Comprehensive evaluation of multi-attribute water network nodes based on improved PageRank[J]. Journal of Computer Applications, 2018, 35(12): 145-149. (in Chinese) 张鑫, 陈燕, 李桃迎. 基于改进PageRank的多属性水网节点综合评价[J]. 计算机应用研究, 2018, 35(12): 145-149. |
[15] |
SUN Hong, ZUO Teng. Research on microblog user impact algorithm based on PageRank[J]. Journal of Computer Applications, 2018, 35(4): 1028-1032. (in Chinese) 孙红, 左腾. 基于PageRank的微博用户影响力算法研究[J]. 计算机应用研究, 2018, 35(4): 1028-1032. DOI:10.3969/j.issn.1001-3695.2018.04.015 |
[16] |
ZHU Haodong, DING Wenxue, YANG Lizhi, et al. Improved PageRank algorithm based on user behavior and topic similarity in Weibo environment[J]. Computer Engineering, 2017, 43(5): 179-184. (in Chinese) 朱颢东, 丁温雪, 杨立志, 等. 微博环境下基于用户行为与主题相似度的改进PageRank算法[J]. 计算机工程, 2017, 43(5): 179-184. |
[17] |
LI Weidong, LU Ling. Research and application of PageRank algorithm integrating VSM technology[J]. Computer and Modernization, 2011, 7(7): 96-98. (in Chinese) 李卫东, 陆玲. 融合VSM技术的PageRank算法研究与应用[J]. 计算机与现代化, 2011, 7(7): 96-98. |
[18] |
YU Yonghong, GAO Yang, WANG Hao, et al. Recommendation algorithm combining user social status and matrix factorization[J]. Journal of Computer Research and Development, 2018, 55(1): 113-124. (in Chinese) 余永红, 高阳, 王皓, 等. 融合用户社会地位和矩阵分解的推荐算法[J]. 计算机研究与发展, 2018, 55(1): 113-124. |
[19] |
GROLMUSZ V. A note on the PageRank of undirected graphs[J]. Information Processing Letters, 2015, 115(6/7/8): 633-634. |
[20] |
WANG Deguang, ZHOU Zhigang, LIANG Xu, et al. Analysis and improvement of PageRank algorithm[J]. Computer Engineering, 2010, 36(22): 291-292. (in Chinese) 王德广, 周志刚, 梁旭, 等. PageRank算法的分析及其改进[J]. 计算机工程, 2010, 36(22): 291-292. |