APP下载

基于委员会轮换机制的跨链数据整合技术研究

2023-02-08翟健宏

智能计算机与应用 2023年1期
关键词:信任度消息信任

许 倩,翟健宏

(1 哈尔滨工业大学 计算学部 哈尔滨 150001;2 哈尔滨工业大学 计算学部网络空间安全系,哈尔滨 150001)

0 引言

2009 年,比特币作为第一种虚拟货币诞生,标志着区块链技术在金融领域首次得到正式应用。比特币交易是建立在P2P 网络的基础上,在比特币系统中,通过挖矿创建区块链,矿工将交易打包进区块,使得已付款的交易变成“确认”状态以获取信赖。依据其不同架构,区块链的发展可分为3 个阶段:第一阶段是比特币区块链,该阶段以数字加密货币区为主要特征,旨在使任何两个区块链帐户能够顺利地进行节点对点的业务而无需第三方中介机构;第二阶段是以太坊区块链,该阶段以智能合约为主要特征,其特点是使用以太坊虚拟机(EVM)对区块链进行复杂算法的编程,通过编写智能合约使得区块链可以在电子货币之外的更丰富场景中得到应用;第三阶段是超越货币、金融范围的区块链应用,这一阶段区块链充分融入人们的生产和生活,可被称为区块链时代。

2021 年10 月28 日,在Facebook Connect 大会上Facebook 首席执行官马克·扎克伯格宣布将Facebook 更名为“Meta”,来源于“元宇宙”,称要在5年内转型成为一家元宇宙公司。2021 年9 月16日,清华大学新闻与传播学院新媒体研究中心发布了《2020 年—2021 年元宇宙发展研究报告》,将“区块链”作为元宇宙的底层架构之一,在区块链框架下搭建社交平台、经济平台,并结合UGC 搭建内容平台。这表明,在元宇宙元年的2021 年,区块链将迎来一个发展的热潮。

由于区块链技术构建的是若干个彼此隔离、无法通讯的完全单独的网络,所以每个节点也无法全部处在同一个网络中。除了公共链是可以广泛共存的,私人链和联盟链可以支持各个组织都拥有各自的区块链,甚至在一个组织内部也能够同时运行多条区块链,所以这些区块链可以彼此独立,在单独属于自身的网络中工作。但是由于区块链技术应用场景不断丰富和复杂,各个区块链网络间往往彼此隔离,从而导致块链间无法有效跨链操作,这使得通过区块链技术实现全球价值互联甚至是全球范围内的“元宇宙”的愿望难以实现。目前学术界有许多跨链技术的设计方案,但大多都有中心化或易受到攻击等各种风险,很难将其在实际中应用。在区块链跨链技术尚未成熟的今天,距离达到区块链技术的大规模落地应用的目标还有一段距离。

本项目在研究已有的跨链技术的基础上,旨在提出一种新的跨链共识算法,结合信任度评价的思想,设计一个可行的跨链数据整合方案并对方案的实施进行实验分析,为跨链技术的研究提供新的解决思路和实践基础。

1 国内外研究现状

Ripple 实验室于2012 年提出了Interledger 协议,并在2015 年11 月发布Interledger 白皮书[1]。Interledger 协议(ILP)作为跨链解决方案公证人机制的代表,解决了区块链不同账本之间的协同问题。ILP 协议支持账本之间的安全转移,并允许在两个账本上的任何账户成员之间创建连接。2013 年Herlihy[2]提出了原子交换的基本理念,原子交换是一种支持不同区块链网络之间资产快速交换的技术。“原子”代表了交易的一致性,因此原子交换将交易划分为两种类型:完全成功或完全失败。2014年BlockSream 提出了侧链机制,通过双向楔入技术,一笔资产进行交易时首先在主链上锁定,确认无误后在侧链上释放,以此实现价值的跨链转移。2016 年Cosmos[3]被提出,基于建立区块链互联网的构想,使用Tendermint 共识引擎和IBC 协议构建出一个支持异构区块链接入并进行互操作的网络。2017 年Block Collider 项目构建了在多个区块链块集上的高速分布式账本,将这些链集成在一起并支持许多跨链功能。在区块生成上,BlockCollider 的每个块都引用每个桥接链的头块——这个元组被称为“基元组”,以此来统一每个桥接链上的最新区块,并在PoW 的基础上设计了一种基于字符串编辑距离的Proof of Distance 共识算法来提高挖矿效率。

虽然国内对区块链跨链技术的研究起步较晚,但是近几年也产生很多优秀的研究方案,给予了国内研究者很大的信心和鼓励。2018 年,张诗童、秦波和郑海彬[4]基于哈希锁定技术提出了一个多方跨链协议,协议依据图的搜索策略设计了“边着色”自动撮合交易算法,同时提出一种价格磋商机制,解决了多方跨链资产的清结算问题;2019 年,赵涛等[5]借鉴路由器特点,提出了一个基于聚类簇中心的共识跨链交换模型;李莎莎等[6]针对主从多链,利用逻辑回归设计了基于信誉度的智能合约;2021年戴炳荣等[7],通过改进Google 用于网页重要性评价的PageRank 算法,提出跨链公证人机制评价模型;同年,谢家贵等[8]提出了一种基于星火区块链的跨链机制,设计了一种主链可以接入两种类型的子链:同构子链和异构子链的新型主子链架构,并通过骨干节点执行中继合约完成跨链通信;2020 年10月,杭州趣链科技有限公司联合浙江大学计算机科学与技术学院共同提出了兼容异构区块链的通用跨链协议IBTP,并研发了一个基于侧链中继的异构区块链互操作平台BitXHub[9]。

2 基于委员会轮换机制的跨链数据整合方案

2.1 基于委员会轮换机制的跨链数据整合方案总体设计

对区块链网络进行拓扑和建模,如图1 所示。假设i为区块链编号,则集合Li代表区块链账本中属于链i的一个节点集,Li ={pi1,pi2…,pin},其中pin表示链i中的节点。图1 中有3 条区块链,其节点集为 {L1,L2,L3};区块链之间的跨链操作即节点集之间的互操作和数据访问,即Li跨链向Lj发送或接受数据是可行的;集合C表示形成中继链的一组委员会节点,C中的节点来自已有区块链;委员会C中蓝色节点来自区块链1,绿色节点来自区块链2,橙色节点来自区块链3。

图1 区块链跨链网络模型Fig.1 Blockchain cross-chain network model

跨链方案的核心分为两部分:节点信任度的动态评估和定期委员会轮换机制。

对于每条链,在时间t时,计算每个节点之间的信任关系,构建节点之间的信任关系矩阵Dt,并将信任度进行正则化处理,得到最终的信任关系矩阵C t;为了充分考虑链中所有节点之间的信任和交互,根据间接节点的信任关系,计算节点之间的信任关系,得到信任的迭代公式通过迭代得到全链节点的信任值矩阵T*i。

对于得到信任值矩阵的链,根据其节点数目占所有链节点的比例进行委员会节点分配。在每条链上的可靠节点中,选择信任值排在前ci的节点作为委员会节点。每条链选择出该链的委员会成员,共同管理委员会中继链。对于跨链的交互,当nu∈Lx,ns∈Ly,nu对ns发送消息时,Lx的委员会节点启动跨链消息传递进程,将消息打包成标准格式,在委员会成员中进行广播和验证。通过Ly的委员会节点进行背书请求和签名接受,最后完成跨链消息的验证,对消息进行保存。当委员会处理了B个消息后,所有链进行信任度的重新计算,委员会进行更新。

2.2 动态信任度计算模型

2.2.1 单个节点的信任关系计算

在网络中,信任度计算所需的信息可以从以下3 方面进行收集[10]:

(1)态度:表示主体(发送方)对客体(接收方)持有的积极或消极看法,即是否愿意向客体发送消息;

(2)行为:表示客体对主体动作的反应行为,主体可以据此来确定对客体的信任程度;

(3)经验:是在一次交互中客体对主体行为的感知,会对信任度的确定产生影响。

对于上述3 个因素,经验往往会影响态度和行为。因为过去的好的经验会促使客体对主体做出积极响应,同理过去不好的经验会促使主体对客体产生消极看法,进而影响两者的信任关系。因此本文选择并收集经验来进行之后的信任计算。

为了获得经验,固定主体(发送方),设为A,观测其他节点对主体节点动作的积极行为反应和消极行为反应,来收集在主体节点视角下客体节点的行为信息,此行为信息作为之后信任度评估的信任信息。对于观察者A 来说,B 的积极行为数目用a来表示,a初始化为0;B的消极行为数目用b表示,b初始化为0。当A 观察到B 是正常行为时,a =a +1;当A 观察到B 是异常行为时,b =b +1。对于时间t =n*Δt(n =1,2,3,…),得到第n个Δt的行为信息列表{an,bn,tn}(n =1,2,3,…)。

基于观察者A 收集到的B 的积极行为和消极行为的信息,可以使用贝叶斯分布来对信任度进行计算。因为beta 分布灵活且较为简单,且仅有两个参数,本文使用beta概率分布方程来刻画信任度,公式(1):

其中,α表示正因子;β表示负因子;α =a +1,β =b +1,0 ≤p≤1,α,β >0。

beta分布概率的期望,公式(2):

使用期望来表示对于A 来说B 的信任度,公式(3):

为了描述事件对信任度评估的动态影响,引入遗忘机制。因为过去观察结果对当前时间段的信任评估的影响会随着时间的增加而减弱,即过去的观察所占的权重低于近期观察的权重。由此,引入遗忘机制来模型化这个影响减弱的现象:在时间t1时表现出K个积极行为和在时间t2(t2>t1)表现出个积极行为是等价的,其中β(0<β≤1)表示遗忘因子。

假设从t1到t2,分别有Δa和Δb个新增的积极行为和消极行为,则在时间t2,a更新为b更新为因为持续的积极行为会产生较好的声誉,因此当信任度大的时候,只有很少一部分坏的行为会破坏声誉,即信任度越大,遗忘因子越小,因此可以使β =1-td。

在单个时间段内如何进行信任度评估的详细表述见表1。

表1 单个节点的每个时间段的信任计算算法Tab.1 Trust calculation algorithm for each time period of a single node

2.2.2 信任关系矩阵构建

为了防止恶意节点给其他恶意节点较高的信任值,给正常节点较低的信任值,从而影响到最终信任代表节点的选取,故将节点之间的信任值进行正则化处理,得到最终的信任关系矩阵C t,公式(4):

2.2.3 全链节点的信任值

节点可以通过检测其他节点的行为得到节点和其它节点之间的信任关系,但事实上节点还可以利用其他节点的信任信息,对该节点做进一步的信任评估。比如节点A 对节点D 的信任度,除了依据节点A 与D 的交互行为直接判断之外,还可以通过其相邻节点B 和C 进行间接计算。即对于任意节点i,在时间节点j的信任度可以通过i的相邻节点作为间接节点进行计算,公式(5):

其中,节点k是节点i的相邻节点;dik表示节点i对节点k的信任度;dkj表示节点k对节点j的信任度。

为了充分考虑链中所有节点之间的信任和交互,本文根据间接节点的信任关系计算节点之间的信任关系。以此类推,最终利用全网节点的信任关系计算节点的信任值。其中迭代公式(6)为:

信任矩阵C中的每个元素表示节点之间的直接信任关系,信任度高的关系数值接近1,信任度低的关系数值接近0,节点之间交互很少的情况下为0.5。初始化每个节点的信任值都是相同的,为因此T初始值为一个值全为的列向量。假设收敛误差为ε,根据迭代公式不断迭代,直至收敛得到最终全链节点的信任值。节点信任值的计算算法见表2。

表2 全链节点的信任值计算算法Tab.2 Trust value calculation algorithm of full-chain nodes

2.3 基于定期委员会轮换的共识算法

2.3.1 委员会的建立和迭代

委员会是从每条链中选择若干特殊节点经选举组成,委员会成员之间通过协议进行消息的传递和确认,并在规定时间进行委员会成员的重新选举。委员会的建立分为两方面:委员节点的分配和委员会成员的选举与更迭。

2.3.1.1 节点分配算法

2.3.1.2 委员会成员选举与更迭

对于每个节点ni∈Li,选择(IP,PK)[IP 地址和公钥]作为其识别。从链集合{L1,L2,…Ln}中分别选择{C1,C2,…,Cn} 节点作为委员会节点构成中继链,其中

在算法2 中,得到了在全链节点的信任值向量T*。为了使链中被选举称为委员会的节点能够被其他节点充分信任,同时也为了提高整体信任度,在链的所有节点中,选择信任值最大的前ci个节点作为委员会成员。

在本文的跨链数据传输中,委员会成员是中间枢纽和核心,起到至关重要的作用。为了防止委员会成员中心化,从每条链中选举出大于1 个委员会成员;同时,委员会成员也很难维持其信任度一直处于较高水平,因此在一定时间后,需要重新竞争委员会节点,选出新的委员会成员。对于算法2 得到的信任矩阵T*,每次委员会一轮工作结束后,重新进行计算得到新的信任矩阵,进行委员节点的更迭。

2.3.2 协议设计

对于不同链来说,发送消息没有统一的格式,为了方便委员会节点进行消息的收发和确认,本文定义一种统一的消息格式,并通过消息中间件对即将在委员会节点中进行跨链传递和确认的消息进行加工。定义消息的符号为表示链L*的节点u向其他链的节点s发消息,数据结构见表3。

表3 消息数据结构Tab.3 Message data structure

在委员会成员之间进行消息交互时,委员会集合C中的节点将使用第一个字段来验证消息发送者的身份,如果不是C中的成员,则视为非法交易。

对于委员会C,将对信息进行验证以达成共识。对于传统的PBFT 共识方法,当信息被2×f +1 个节点确认后,就可以被视为可信的。但是,传统PBFT 算法在委员会机制中将会引起委员会的串通欺骗行为。假设一个委员会集合C ={a:1,b:2,c:3,d:3,e:1},即分别有1,2,3,3,1 个节点来自链a,b,c,d,e。则对于链c 和d,其被选为委员会的成员数目最多且都为3,有可能串通起来进行欺骗。为了解决上述问题,本文提出一个基于距离的消息验证机制。

首先定义区块链之间的距离。设Di,j为区块链Li和Lj之间的距离,定义Di,j =||Li |-|Lj ||,如果|Li |=|Lj |且i≠j,则Di,j =1。

由此得到委员会之间的距离矩阵,设委员会有n个成员,则D =[D1,D2,…Dn]T,其中,Di是对委员会节点i来说的距离向量,Di =[Di,1,Di,2,…Di,n]。

对委员会节点i与节点j,之间的权重为Wij,公式(7):

其中,ξ(*)是标准化函数。

若i,j是被选自于同一条链的,则Wij =1。通过上述方式计算委员会节点之间的权重,因为若两个集合之间的区别越小,则权重的影响越大,交流和信任越强。

委员会维护一个交易数据池τ,来对消息进行统计,并根据消息个数来发送更改视图的要求,进行委员会的更新。每次委员会更新也意味着数据池的清空。设B为交易数据池的界限,即0 ≤|τ |≤B;C中异常节点的数目是建立一个对链的映射R(Li)={p |p∈C∩p∈Li},即R(Li)为委员会中属于链Li的成员。验证机制流程如下:

(1)请求阶段:nu∈Lx,ns∈Ly,nu对ns发送消息,则找到节点nr∈R(Lx),通过消息中间件打包消息为并和节点对其他委员会节点的权重向量Wx*T一起发送;

(2)请求背书阶段:nz∈R(Ly)获得数据,将背书请求根据权重Wx*T 从大到小发送给其他节点,权重越大,优先权越高;

(3)验证签名阶段:在委员会中除了R(Ly)的所有节点收到背书的请求后,验证数据。如果节点证实了信息,用自己的私钥对消息进行签名sig(v,m),发送验证的消息和自己的签名sign;

(4)广播和提交:收到2×θ +1 个背书签名后,nz记录消息=(m,sig(u,k),k),并将交易数据提交给nr,并广播给所有节点,同时同步到委员会的内存池,以便在循环结束将消息进行封装打包成块;

(5)委员会节点nz和ns位于统一条链,nz将对ns进行链内的消息传递和验证。

3 实验测试

3.1 功能测试

本文测试环境:操作环境为Windows 11,项目环境为Maven 3.5.3、Java 1.8,编码工具为IntelliJ IDEA 2020.1.3 x64。

首先,对3 个关键模块——信任度计算模块、委员会选举模块和共识机制模块进行功能测试。

(1)信任度计算模块测试。在信任度计算模块测试中,设置3 个节点,链内消息传递。根据算法,每次交易后,节点更新自己用于计算的信任因素Δa,Δb,在时间从nΔt到达下一个时刻(n +1)Δt时,节点的信任信息进行更新,见表4。

表4 节点信任关系向量的更新Tab.4 Update result of node trust relationship vector

(2)委员会选举模块测试。当进行委员会选举时,首先对每个网络更新该网络的信任关系矩阵和信任向量,根据信任向量中每个节点的信任值从大到小进行委员会的选举。在本实验中,在网中设置4 个节点,选择3 个节点作为委员会节点。

在消息传递下,该模块的执行结果见表5。每次选举网络信任向量进行更新,并选择信任值最大的前3 个节点作为委员会节点。

表5 委员会选举结果Tab.5 Committee Election Results

(3)共识算法模块测试。在本模块测试中,构建3 个网络,每个网络6 个节点,委员会成员数目为6,消息数据池限制为5,θ =1,至少需要2θ +1=3个节点签名。

测试消息共20 条,其中8 条为跨链消息,12 条为链内消息。根据算法,当5 条跨链消息得到验证后,消息数据池满,进行一次委员会更迭。此时,交易数据池中已经完成验证等待进一步打包成区块的消息见表6,迭代后的新委员会成员见表7。

表6 数据池满载消息Tab.6 Datapool full message

表7 委员会成员Tab.7 Committee members

3.2 性能测试

对本文提出的基于委员会轮换机制的跨链数据整合方案执行时间进行测试,主要观察委员会成员个数和数据量两者对消息跨链传递时间的影响。

3.2.1 委员会成员个数对跨链消息传递时间影响

在上文对共识算法的分析中,每条跨链消息需要2× θ +1 个节点的验证签名,而θ又与委员会成员个数相关,因此可以推测跨链的事件与委员会成员个数有关。

为方便测试,构造3 个网络,对每个网络添加6个节点和8 个节点的情况进行分别实验。

实验一通过控制台输入来进行单一消息的发送。改变委员会成员数目,得到在不同委员会成员数目时跨链传输消息的时间,如图2 所示。可以看到,当委员会成员数目增加时,跨链消息传输时间显著降低。

图2 单一数据时在不同委员会节点下的执行时间Fig.2 Execution time under different committee nodes for a single data

实验二通过文件导入,发送批量数据。数据个数为20 条,其中10 条链内传输数据,10 条为跨链数据,实验结果如图3 所示。

图3 批量数据时在不同委员会节点下的执行时间Fig.3 Execution time under different committee nodes with large amounts of data

如图3 所示,网络中共有18 个节点的,当委员会成员数目为5 时,执行时间最少;网络中共有24个节点的,当委员会成员数目为11 时,执行时间最少。在两种网络中传输批量数据时,随着委员会成员数目的增多,数据传输的总时间均减少。当委员会成员数目为3 个时,也就是占节点总数的比例很小时,数据传输的总时间最大,且远远大于其他情况。

因此,需要根据委员会总数来选择委员会成员数目,当网络中节点总数很大时,委员会成员的数目也应相应较大,以避免增加执行时间。

3.2.2 在不同数据量下的跨链消息传递时间

维持在同一区块链内的交易数据为10 条不变,改变跨链交易时数据个数,能够看到当数据量增加时,执行时间也相应增加,基本成线性变化,变化趋势如图4 所示。可以推测在委员会成员数目固定时,数据量是影响算法执行效率的最主要因素,且在本算法中,执行时间与数据量大致成线性变化趋势。

图4 不同数据量下的执行时间Fig.4 Execution time with different amounts of data

4 结束语

本文针对不同区块链之间无法跨链传输数据的问题,设计并实现了一个基于委员会定期轮换机制的跨链数据整合方案,为区块链跨链技术的研究提供了新的解决思路和实践基础。本文的研究成果包含以下几个方面:

(1)设计了一个动态信任评估模型。充分考虑到区块链网络是P2P 网络,具有高可变性,因此将节点的信任值视为动态变化的,引入遗忘机制刻画节点信任值的演化过程。

(2)设计了委员会选举和迭代算法。本文将节点的信任值作为委员会选举的标准,为了避免单一委员会节点造成中心化问题,选取信任值最大的一些节点而不是某个节点作为该链的委员会成员。同时,为了防止委员会成员之间串通欺骗,委员会不是固定的,在一个工作周期后,将对节点信任度进行重新评估,对委员会进行更新。

(3)设计了一个基于距离的消息验证机制。借鉴了PBFT 共识算法思想,提出适用于属于不同链的委员会成员之间的消息验证机制。在该机制中,委员会成员通过链之间的距离得到权重向量,并根据权重向量的大小进行背书请求,当节点收到一定数目的来自其他节点的背书签名后,委员会节点之间达成共识,完成跨链消息的传输。

猜你喜欢

信任度消息信任
一张图看5G消息
全球民调:中国民众对政府信任度最高
嘤嘤嘤,人与人的信任在哪里……
汽车养护品行业运行环境分析及提高客户信任度的途径
信任
消息
消息
消息
2014,如何获得信任