基于小世界理论的区块链Kademlia 网络改进方法

2024-02-12 07:42赵越赵赫谭海波余斌俞望年马志宇
浙江大学学报(工学版) 2024年1期
关键词:路由广播距离

赵越,赵赫,谭海波,余斌,俞望年,马志宇

(1.中国科学院合肥物质科学研究院,安徽 合肥 230031;2.中国科学技术大学,安徽 合肥 230026;3.安徽中科晶格技术有限公司,安徽 合肥 230088)

区块链技术具有防篡改、可追溯、安全可信的特点,被广泛应用在加密数字货币、供应链物流、信息共享等领域[1].它的可扩展性具有明显的不足,主要原因之一是它采用的P2P 网络结构存在缺陷.当网络规模增大后,传输性能会逐渐下降.为了改善区块链网络的性能,需要优化网络结构.本研究主要关注区块链Kademlia 网络,它的典型项目有以太坊、Filecoin、Storj 等.本研究受到Kleignberg 的小世界理论[2]的启发,通过引入置换扩容节点的概率公式,以提升网络传输性能.

1 相关工作

当前,区块链Kad 网络性能方面的研究主要集中在通过改变网络结构以提高数据传输效率.Yu 等[3]将K 桶均匀划分成多个区域,每个分区存储不同的节点信息.Liang[4]为网络中所有节点都添加了本地缓存以扩大存储空间.此外,部分研究探讨了加快节点定位速率的方法.Zhang 等[5]提出Kadabra 协议,该协议创造了可以根据网络的异质性进行动态调整的路由表,减少了网络查找的延迟.网络结构的改变容易损害网络的安全性,为了增强网络抵御攻击的能力,Eisenbarth 等[6]分析以太坊的网络特性,提出检测和废除可疑节点的架构,以抵御Sybil 攻击.类似地,Xu 等[7]设计基于随机森林分类算法的日蚀攻击检测模型,能以较高的准确率检测出以太坊网络中的恶意节点.

小世界现象源于Milgram[8]设计的小世界实验,他通过实验证明只需不到6 个人就可以将一封信从奥马哈市的志愿者寄送给波士顿的一位居民.Watts 等[9]通过对规则网络的每条边进行随机化重连,构建WS 小世界模型.通过实验发现,该模型的网络性能优于结构化网络,但是可能出现孤立节点.Watts 等[10]对其加以改进,提出NW 小世界模型,将随机化重连改为随机化加边,保证了网络的连通性.Kleignberg 系统地研究小世界理论,给出建立小世界网络的具体方法.通过该方法,Zou 等[11-12]将小世界理论应用于Can 和Chord这2 种P2P 网络,提升了网络性能.近年来,一些学者尝试将小世界理论引入区块链网络中.Serena等[13]使用分布式账本网络分析器,研究比特币和以太坊网络的交易图,检测到这些交易图都有小世界特征.Wang等[14]利用以太坊网络分析仪探测以太坊的P2P 网络,发现该网络具有无标度网络的特征且存在一定的小世界效应.

2 基于小世界理论的Kademila 网络模型

2.1 方案介绍

Kad 网络是基于二叉树结构的P2P 网络,其中每个节点被映射为二叉树的叶子节点.这些节点维护一组被称为K 桶的信息存储结构,K 桶数量等于节点ID 的位数.每个K 桶存储的节点信息与节点间的逻辑距离相对应,此处的逻辑距离指2 个节点ID 的异或值.每个节点都可以计算自身与目的节点的逻辑距离,通过不断地迭代查询,获取目的节点的地址信息.通常情况下,每个K 桶中能存储的节点数量不超过k个.当Kad 网络的节点ID 是3 bits 时,设k=1,整个网络空间的结构如图1 所示.

图1 8 节点二叉前缀树Fig.1 Binary prefix tree with 8 nodes

在该网络中,假设每个K 桶都存储与本节点逻辑距离最近的k个节点.以节点000 作为广播消息的起点,节点000 的K 桶1、2、3 分别存储节点001、节点010、节点100.这3 个节点连接的节点依次是(节点000、节点011、节点101)、(节点011、节点000、节点110)、(节点101、节点110、节点000).当该网络经历2 个传输层级即传播两跳时(将同一层级内多次消息传输只看作一跳),全网仍有节点111 未收到消息.这是因为存在冗余,如节点001 和节点100 都保存了节点101 的地址信息.冗余保证了网络的连通性,也增强了网络的健壮性和安全性.在区块链网络中,适量的冗余是必需的.

在保证网络存在冗余的前提下,为了减少网络传输的层级,可以让节点000 额外存储节点111 的信息.此时消息只要传播两跳就可以发送到全网.一个节点的地址信息包含节点ID、IP 地址、端口号等内容,大小只有几十字节.扩容一个节点需要花费的代价很小,但是网络性能提升很多.该方法的效果良好,主要是因为扩容了适当的节点.考虑到实际网络结构的复杂性,需要探索准确且便捷的节点选择方式,因此在Kad 网络中引入小世界理论.

本文的主要思想源于Kleignberg 建立的K 模型.该模型的实现方式是使所有节点以D-m的概率缓存节点信息,D为该节点与其他节点的距离,m为正整数,被称作维度.基于该理论,提出置换扩容节点的概率公式:

式中:a、b、c为网络中的任意3 个节点,|a-b| 和|a-c|分别为节点a和节点b、c的距离.假如节点a只额外保存了节点b的地址信息,在节点a接收到节点c的消息后,它将根据计算出的概率决定是否将存储空间的节点b替换为节点c.概率越大,节点a进行置换的可能性越大;反之,概率越小,置换的可能性越小.通过引入随机数,可以实现概率对结果的影响.基于小世界理论的区块链Kad 网络改进方法可以被简称为小世界Kad,工作流程如图2 所示.

图2 小世界Kad 的工作流程图Fig.2 Work flow chart of small world Kad

首先将区块链Kad 网络初始化,并为每个节点扩容,使它们额外存储相同数量的节点信息.之后训练网络.具体来说,让全网每个节点都能广泛地通信,便于它们收集到其他节点的地址信息,按照概率公式进行计算,通过计算结果判断是否置换扩容节点,每一次改变都会影响网络性能,这个过程会反复进行多轮.在网络状态稳定后停止训练,从而构建出小世界网络.

由于网络中节点数量的动态变化,网络性能可能会受到影响.当网络性能下降到一定程度时,必须重新训练网络,以使性能恢复到最佳状态.为了确定重新训练的时机,可以在最后一次训练结束后测量并记录网络的平均广播跳数,将其设定为阈值.在网络正常运行期间,需要定期测量网络的平均广播跳数.若一天内多次测量值均超过阈值的10%,则判断网络性能严重下降,需要重新训练.选择10% 作为阈值的原因如下:相比于普通Kad 网络,该模型的性能提升最多只有30%.若平均广播跳数下降超过10%,意味着算法的改进效果十分有限,需要重新投入训练.时间窗口设定为1 天,以确保性能下降不是由短期的网络波动所引起的.在重新训练时,可以选择网络交易数量较少的时刻,例如全网负荷不到50%时,这样可以减少对网络正常操作的干扰.小世界Kad 方法的一大优势是无论网络的初始状态如何,利用该模型均能改善网络的通信性能.在重新训练后,网络性能必然得到提升.通过以上方法,该模型能够及时识别网络性能下降的情况并采取相应的措施,以保持网络的高性能状态.

本方案的核心理念是让网络中大部分节点与距离自身较近的节点保持连接,只有少数节点与远距离节点建立连接.这种方式使得整个网络空间呈现出短链多、长链少的特点,符合K 模型的核心特征.

2.2 推导证明

假设Kad 网络中存在N个节点,若所有节点按照概率公式置换扩容节点,则这个过程的状态转移仅依赖于当前状态,是马尔科夫过程.因为它的时间和状态都离散,可以被视为马尔科夫链.为了便于理解和研究,将任意2 个节点间的距离视作一种状态,因而节点a的状态空间可以被表示成(其中da,k表示节点a与任意节点如节点k之间的距离).当节点a连接节点b时,它们之间的距离是s=|a-b|,此时这条马尔科夫链处于状态s.当节点a接收到其他节点比如节点c的消息时,它会根据概率公式置换节点.设t=|a-c| 表示节点a、c之间的距离,若置换成功,则链的状态从s转移到t.若置换失败,则链的状态保持不变.该过程是马尔科夫链中的一步状态转移.

为了简洁地说明情况,如图3 所示,展现了节点a仅有4 个状态时的状态转换示例.

图3 节点a 的四状态转换图Fig.3 Four state transition diagrams for node a

根据马尔科夫定理可知,若马尔科夫链的状态数量有限,状态转移过程不存在周期且转移矩阵元素全部为正数,则该链具有遍历性和不可约性,它的平稳分布存在且唯一,等于它的极限分布.假设这条马尔科夫链的平稳分布是 πj,有以下公式.

式中:πi为马尔科夫链的初始概率分布,Pij为马尔科夫链的转移概率.

网络中任意一节点经过有限步数的节点置换,会趋于稳定的状态,这与节点的起始状态无关,所以网络初始化阶段可以随机分配存储节点.在马尔科夫链达到稳态后,状态的转出和转入会达到平衡,此时从稳定状态j到状态s的转出概率等于从状态s到状态j的转入概率(s∈A,s≠j).可得如下方程:

从式(2)可知,平稳分布 πj的和为1,且状态转移过程离散,因此对于状态s,有

C为任意大于0 的常数,方程的一个解为

节点状态表示节点之间的距离,任意2 个状态的运算结果必为一确定常数,所以式(4)是常系数方程.设状态空间A中存在n个状态,可将这些状态依次代入式(4),得到n元方程组.该方程组只存在一个解,即式(6).这个结果与该马尔科夫链中平稳分布等于极限分布相符.式(6)说明网络中每个节点连接其他节点的概率分布与它们之间的距离呈反比,与本方案的思想一致.

在普通的Kad 网络中,节点间的距离一般指2 个节点ID 的异或值即逻辑距离,但是这种距离没有考虑路由跳数的影响.路由跳数反映了节点传输信息需要经过的中间节点数量.在小世界网络的相关研究中,通常将路由跳数认定为节点间的距离[15].为了平衡逻辑距离和路由跳数的影响,增强算法的优化效果,提出实际距离rd,将其应用于式(1).rd的计算方法如下所示:

式中:ld和hd分别为逻辑距离和路由跳数;x、y均为自然数,分别是逻辑距离和路由跳数的系数.逻辑距离和路由跳数的系数比例表明了它们在网络中的权重差距,系数占比高的因素在算法中的作用更突出.逻辑距离仅由节点ID 决定,不受方向的影响,而路由跳数会随着节点之间的路由方向改变而变化.

当计算置换概率时,节点间的逻辑距离可以通过对节点ID 进行异或运算取得,路由跳数通过发送消息测量.为了获取准确的跳数,减少重复传输,可以在每条消息中增加传输路径信息.该信息包含发送节点的节点ID、地址信息以及中间节点和目的节点与发送节点的逻辑距离集合.存储逻辑距离是因为在大多数区块链网络中节点ID 长度远大于逻辑距离,例如在以太坊中逻辑距离的字节大小是4,节点ID 的字节大小是32.在目的节点收到消息后,可以将传输路径中中间节点数量最少的消息转发回发送节点,以便发送节点获取自身与目的节点之间的广播路由跳数.

2.3 时间分析

虽然在经过一定轮数的训练后,小世界Kad网络能够趋于稳定状态,但是本模型要求所有节点在每一轮训练过程中广播自身的地址信息,以便其他节点能够计算概率并进行置换.这导致状态变化过程非常复杂,无法使用马尔科夫链的相关理论推导得到本文算法准确的时间复杂度.目前,Wright[16]证明了大小为n的马尔科夫链最多需要O(n2)步就可以达到平衡.Peter 等[17]通过实验发现,在Chord 网络上构建小世界网络的算法运行时间是O(n2).参照该思路开展一系列实验,拟合实验数据,得到算法的时间复杂度为O(n2+m2+y/x)(x,y≠0),其中逻辑距离和路由跳数的系数比例对算法运行时间的影响较小,因此时间复杂度可以近似为O(n2+m2).

根据时间复杂度的分析可知,随着节点数量和维度的增长,算法达到稳定状态需要的时间会显著增加.节点数量无法改变,而维度可以调整,然而维度改变会影响网络性能,本研究最主要的目的是提升Kad 网络的传输性能,而不是使模型达到完全稳定的状态.由后续实验可知,当其他条件相同时,增加维度能够一定程度上改善算法的优化效果.通过实验发现,该模型在训练前期性能提升很快,但是十几轮后性能改变幅度很小,因此可以在每一轮训练后测量网络的平均广播跳数.若连续3 轮跳数的下降比例不到1%,则判定该模型训练成功.利用该策略,可以在合理的时间内获得性能相对良好的模型,减少模型的训练成本.

该模型的训练时间为

式中:N为节点总数,Li为节点i每次发送消息的数据量,hdi为节点i将消息广播至全网的路由跳数,V为网络的传输速率,W为训练轮数.

区块链作为动态的开放环境,式(8)的各项参数均会动态变化.以以太坊作为示例,提供所有参数的估计值,评估该方案的时间效率.以太坊的数据传输速率为20 Mb/s,节点数量约为104,大多数节点能够在6 跳内将消息广播至全网.在训练过程中,每次传输消息的数据量不到100 字节,其中发送节点ID、IP 地址和端口号等信息大小约为54 字节,发送节点与其他节点的逻辑距离集合大小约为24 字节.考虑到性能提升幅度在训练十几轮后变得较小,可以将训练轮数设定为30.根据所设定的参数,预计在以太坊上,该模型的理论训练时间约为9 s,耗时很少.该模型具有极高的时间效率.对于其他应用Kad 网络的区块链项目,它们的训练时间与以太坊接近.

2.4 算法描述

该算法的具体步骤如算法1 所示.

3 性能分析

3.1 实验环境

该方法的实验环境如下:操作系统为Windows 11 教育版64 位,CPU 为13th Gen Intel(R)Core(TM) i5-13600K 3.50 GHz,内存大小为64 GB,利用Java 语言来编写代码,开发工具是VScode.

在实验过程中,对模型的效果进行初步验证,通过对照实验确定主要的参数值.将该方案的优化算法与其他算法进行比较,综合评估该模型在消息广播、节点定位和网络安全性方面的表现.

3.2 方法验证

创建包含128 个虚拟节点的Kad 网络,其中节点的ID 使用7 位二进制数表示,因此K 桶数为7,k设置为4,每个节点保存了23 个节点的地址信息.对每个节点扩容,使它们额外存储4 个节点的信息.根据概率公式训练网络,记录实验结果.共进行10 组实验,分别以0~9 设置Java 随机数生成器的初始值,即通过不同的随机数种子Aseed对网络进行初始化,以确保网络的初始状态不同.通过这些操作,展现了该算法在不同初始状态的网络下的应用效果,实验结果如图4 所示.

图4 不同初始状态时算法的平均广播跳数Fig.4 Average broadcast hop count of algorithm in different initial states

图4 中,E为训练轮数;Bhop为平均广播跳数,即所有节点进行全网广播时需要经历的平均传输层级.平均广播跳数越小,表示网络的通信速率越快,网络性能越好,这意味着区块链上处理交易的速度会更快.由于各节点全网广播所经历的传输层级不完全相同,平均广播跳数可能为小数.实验结果显示,改造后的网络在经过一定轮数的训练后,性能得到提升并且状态逐渐趋于稳定.无论网络的初始情况如何,该方案均能够对网络进行有效的优化,证明该算法具有收敛性和鲁棒性.

3.3 参数确定

该算法需要确定的2 个重要参数分别是维度以及逻辑距离与路由跳数的比例,它们会影响算法的优化效果.实验采用之前创建的网络,Aseed设为0.维度对算法性能的影响如图5 所示.

图5 不同维度时算法的平均广播跳数Fig.5 Average broadcast hop count of algorithm in differen dimensions

从图5 可以看出,当维度增加时,节点向全网广播消息所需的平均跳数有所减少,网络性能得到提升.相较于维度从1 变为2 时显著的性能差异,当维度从2 增加到3 时,网络性能只有微小的改变.当维度为1 时,算法只须训练10 轮左右就能达到稳定状态,比其他维度快很多,但是训练速度快的代价是网络性能较差.即使在所有维度的训练轮数均设定为10 的情况下,维度为2 和3 时的性能也优于维度为1 时的性能.

如图6 所示为逻辑距离与路由跳数比例的变化对算法性能的影响.

图6 不同比例时算法的平均广播跳数Fig.6 Average broadcast hop count of algorithm in differen proportions

实验结果表明,当逻辑距离与路由跳数任意一个系数比例为0 时,平均广播跳数较多,优化效果较差.这说明逻辑距离与路由跳数都在算法中发挥着重要作用,不能忽视其中任何一个.随着路由跳数占比的增加,算法性能略有提升,当比例为1∶3 时,性能相对最佳.

3.4 方案对比

将该模型与普通的原始Kad 网络、分区Kad网络[3]、扩容Kad 网络[4]进行对比,评估本方案的优缺点.为了获得最佳效果,图7 展示了本模型在不同维度和比例组合下的平均广播跳数.此处排除了一些在图6 中表现不佳的参数设置,例如维度为1、比例中存在0、逻辑距离系数比例大于路由跳数系数比例的情况.

如图7 所示,经过训练后,该模型在不同维度和比例组合下均取得显著的性能提升,优于其他模型.当维度为3,比例为1∶3 时,模型性能达到最佳水平,因此在后续实验中采用该参数组合.

之前实验中的节点总数都是128,后续实验将网络的节点数量细分为5 部分,分别为128、256、512、1 024、2 048.魏战争等[18]通常认为0~200 个节点的网络是小型网络,200~1 000 个节点的网络是中型网络,1 000 个节点以上的网络是大型网络.后续实验涵盖了小、中、大3 种类型的网络,以全方位地探究小世界Kad 网络的性能表现.

在Kad 协议中,k的选取需要考虑系统性能和网络负载的平衡.例如BitTorrent 中k被设定为8,以太坊的k为16.为了更好地呈现实验结果,针对小型、中型和大型3 种规模的网络设置不同的k,分别是4、8 和16.当进行4 类Kad 协议的对比实验时,原始Kad 和分区Kad 中每个节点保存相同数量的节点信息,扩容Kad 和小世界Kad 中的节点需要额外存储k个节点.在不同节点总数的网络中,原始Kad 和分区Kad 中每个节点存储的节点数量分别为23、47、55、111 和127.扩容Kad和小世界Kad 将其分别扩大到27、55、63、127 和143.虽然小世界Kad 的存储成本增加了12.6%~17.4%,但是额外消耗的存储空间不到1 kB,对比实验的结果如图8 所示.

图8 中,N为节点总数;Bratio为各优化模型与原始Kad 的平均广播跳数的比值,即广播跳数优化比例.Bratio越小,表示网络广播速率越快,因此原始Kad 的优化比例保持不变,全部是100%.这能直观地展示各方案的优化效果.与原始Kad 相比,本模型的平均广播跳数减少了15.7%~30.8%,均高于它增加的存储消耗.小世界Kad 的性能提升水平在节点总数为128、512、2 048 时明显优于其他方案,在另外2 种情况下与其他优化方案相同.

当网络节点总数为256 和1 024 时,扩容Kad和小世界Kad 实现了相同的优化效果.在增加了k个节点的存储容量后,这2 种网络的性能均达到最佳状态;因此,可以适当减少额外补充的节点数量以降低存储开销,且尽可能保证优化效果不受影响.经过多次测试发现,在256 和1 024 个节点的小世界Kad 网络中,只需要每个节点额外多连接k/4 个节点,即分别多存储2 个和4 个节点的地址信息,就能够将全网广播的平均跳数降低到接近最佳值,如图9 所示.

图9 调整后的平均广播跳数优化比例Fig.9 Optimization ratio of average broadcast hop count after adjusting

图9 中,网络节点总数为128、512、2 048 时的存储成本与性能提升水平均与图8 相同.当节点总数为256 和1 024 时,小世界Kad 较原始Kad 额外花费的存储代价仅为4%左右,平均广播跳数分别下降了15.0%和21.8%.小世界Kad 的优化作用强于扩容Kad,与分区Kad 几乎等同.这表明小世界Kad 具有很好的灵活性,可以根据需要调整网络中额外存储的节点数量,从而以更小的存储开销换取较多的性能提升.分区Kad 的优化效果会受到节点总数与k的影响,当节点总数为128、512、2 048 时没有发挥作用,性能甚至比原始Kad 更差.相比之下,采用小世界Kad 的所有网络都实现了性能优化,这说明小世界Kad 具备更加广泛的适用性,能够应对不同场景下的网络优化需求.由于调整效果良好,在后续的实验中,本方案将保持这个配置,即在节点总数为256 和1 024时,每个节点只额外存储k/4 个节点的地址信息,其余情况下存储k个.

图10 中,Fratio为各模型相对于原始Kad 的平均查找跳数优化比例.小世界Kad 的查找跳数较原始Kad 下降了1.4%~6.6%.优化效果只在节点总数为256 和 1 024 时差于分区Kad,在其他情况下,都是表现最好的.

图10 平均查找跳数的优化比例Fig.10 Optimization ratio of average find hop count

3.5 安全性评估

常见的区块链网络攻击方式有双花攻击[19]、DDoS 攻击[20]、Sybil 攻击[21]、日蚀攻击[22]等,小世界Kad 能够增强网络的安全性,提高抵御这些攻击的能力.

双花攻击是指用户恶意利用区块链的交易确认机制,通过在网络中重复花费同一笔资产来获得不当利益的攻击行为.双花攻击的本质是利用交易未被确认的时间窗口进行多次消费,而小世界Kad 可以提升全网广播交易消息的速度,从而缩短时间窗口,降低发生双花攻击的风险.

DDoS 攻击通过控制大量傀儡机,对一个或多个目标节点发送大量请求,使目标节点无法正常工作.在小世界Kad 网络中,向目标节点发送消息,需要事先保存该节点的地址信息,然而这些信息如果被存储在小世界桶(按照概率公式存储节点地址信息的空间结构)中,那么有可能会被置换,导致攻击不能顺利实施.

Sybil 攻击是指攻击者通过将单个节点伪造成多个虚假节点以操纵网络的攻击方式.为了实现这种攻击,虚假节点的地址信息必须被网络中的其他节点所保存,而在小世界Kad 网络中,每个节点会定期更换扩容的节点信息,这增大了发动Sybil 攻击的难度.

日蚀攻击的基本原理类似于Sybil 攻击,但是前者更加着重于攻击单个节点.日蚀攻击的主要目的是覆盖目标节点与网络的全部连接,使目标节点被隔离在网络之外.以太坊曾经饱受日蚀攻击的困扰.为了抵御日蚀攻击,以太坊在Geth v1.8.1 版本上作了改进,将网络中每个节点存储的K 桶数从256 削减为17,只保留距离最远的17 个K 桶[23].这虽然增强了网络的安全性,但是导致了传输性能的下降.

旧版本的以太坊难以抵御日蚀攻击,是因为网络中的节点ID 由公钥生成,不受IP 限制,用户可以通过密钥生成算法大量制造.Kad 网络的高度结构化导致其缺乏弹性,每个节点的i号K桶都只存储与自身逻辑距离为的节点信息.只要攻击者知道目标节点的节点ID,就可以生成许多容易被目标节点连接的虚假节点.当虚假节点占据了目标节点的大部分K 桶时,该节点的通信能力会被严重削弱.结构化程度更高的分区Kad 更易受到日蚀攻击的威胁,安全性更弱.扩容Kad 中,每个节点都存储了更多的节点信息,攻击者为了封锁目标节点的对外通信,就必须生成更多的虚假节点,增加了攻击者的成本,间接提高了网络的安全性,但是提升幅度较小.

与这2 个方案相比,小世界Kad 按照概率存储扩容节点,引入了一定的随机性,安全性更强.概率置换公式中的实际距离由逻辑距离和路由跳数共同决定,而虚假节点无法改变自身与目标节点的路由跳数,这由网络的整体情况决定,因此小世界桶中的节点可信度很高.小世界桶中保存的节点信息会根据概率公式被多次置换,即使在某一时刻小世界桶中存储了虚假节点,它们也很可能会在下一时刻被换掉,不会长期存在.攻击者几乎不可能使虚假节点完全占据小世界桶,导致目标节点被网络隔离.当攻击者发动50%的日蚀攻击,即覆盖目标节点50%的对外连接时,需要花费的成本即创造的虚假节点数量如图11 所示.

图11 发动50%的日蚀攻击的虚假节点数量优化比例Fig.11 Optimization ratio of number of false nodes of launching 50% eclipse attack

图11 中,Aratio为各模型与原始Kad 中虚假节点数量的比例,比例越大表明该模型抵御日蚀攻击的能力越强,比例越小表明该模型越容易受到日蚀攻击的侵害.当攻击者对小世界Kad 发动50%的日蚀攻击时,承担的成本最大,相较于原始Kad 增加了1.7%~7.1%.对于分区Kad,攻击者花费的代价最小,需要生成的节点数仅为原始Kad的26.7%~46.7%.

4 结语

为了提升区块链网络的可扩展性和安全性,本文提出在区块链Kademlia 网络上构建小世界网络的方法.该方法以节点间距离与连接概率成反比的方式置换扩容节点,提高了网络的传输性能.具体而言,平均广播跳数减少了15.0%~30.8%,平均查找跳数减少了1.4%~6.6%.该方法引入一定的随机性,增强了网络抵御各种攻击的能力,如攻击者发动 50% 的日蚀攻击的成本增加了1.7%~7.1%,几乎不可能实现100%的日蚀攻击.尽管该方法增加了3.6%~17.4%的存储成本,但是额外消耗的空间不到1 kB,代价很小.在后续的研究中,会考虑现实环境对网络的影响,将物理层面上节点的距离、网络带宽和CPU 运行速度等因素纳入概率公式,使得该方法能够更好地应用于实际的网络拓扑.

猜你喜欢
路由广播距离
STK及IGS广播星历在BDS仿真中的应用
算距离
探究路由与环路的问题
广播发射设备中平衡输入与不平衡输入的转换
每次失败都会距离成功更近一步
网络在现代广播中的应用
爱的距离
最早的无线电广播
PRIME和G3-PLC路由机制对比
距离有多远