用于在节点的网络中传播数据分组的系统和方法与流程

文档序号:34546752发布日期:2023-06-27 21:13阅读:33来源:国知局
用于在节点的网络中传播数据分组的系统和方法与流程

本发明大体上涉及计算机网络,并且更具体地涉及在节点、电子通信和联网技术的网络中传播数据的方法和装置。它特别适合与区块链技术相关地使用。特别地,它涉及数据的安全传输,并且从而用于减少第三方进行的潜在的恶意事件(即攻击)。


背景技术:

1、在本文档中,我们使用术语“区块链”来包括电子的基于计算机的分布式分类账(ledger)的所有形式。这些包括基于共识的区块链和交易链技术、许可的和未被许可的分类账、共享分类账及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币分类帐。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本发明的范围内。术语“用户”在本文中可以指人或者基于处理器的资源。术语“比特币”旨在包括源自(原始)比特币协议/实现/平台的协议/实现/平台的所有版本和变型。

2、区块链是一种点对点的电子分类帐,被实现为基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对区块链系统中参与者之间的数字资产控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,以使得区块被链接在一起来创建所有交易的永久、不可更改的记录,这些交易自其开始就已经被写入区块链。交易包含嵌入到其输入和输出中的称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。

3、为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定和解锁脚本来对未花费的交易输出(unspent transaction,utxo)执行该验证工作。如果锁定和解锁脚本的执行评估为真,则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易–如果交易经过验证,则该节点将其中继(relay)到网络中的其他节点;ii)将该交易添加到由矿工建造的新区块中;以及iii)该交易被挖掘,即,被添加到过去交易的公共分类帐中。

4、尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据这两者以实现新系统。如果区块链可以被用于不限于加密货币领域的自动化任务和过程,那这将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录、分布式处理等),同时在其应用中具有更多用途。

5、区块链技术(例如,比特币)的公认优势之一是交易的匿名性。比特币用户的个人详细信息并未正式和明确地附加到比特币地址,并且区块链的比特币分类账仅包含公共地址信息。但是,由于区块链被构造为运行在互联网之上的分布式对等网络,因此交易的匿名性可能因攻击而受到损害,该攻击使用互联网协议(ip)地址信息将用户链接到网络活动。举例来说,在基于区块链的网络上进行的去匿名化攻击(例如,ip流量分析)可能使感兴趣的第三方能够监测由用户在网络上提交的交易,并能够使用可公开获取的信息将交易链接到其来源(source),例如,通过将用户的公钥与其ip地址链接起来。

6、对于基于区块链的网络而言,流量分析尤其成问题,该基于区块链的网络依赖于网络节点进行的交易的传播以及网络节点之间的交易的传播。网络中接收交易的每个节点都会验证交易,然后将其传输到对等节点。在比特币协议中,节点将向对等节点发送包含交易列表的“inv”消息,并接收“getdata”响应消息,该消息选择在“inv”消息中通告的交易的某个子集。然后,该节点将请求的交易发送到对等节点。针对该节点连接到的每个对等节点执行该过程。攻击者可能拦截和分析当在网络中传播交易时传输的数据,并最终获得信息,这些信息可用于链接交易的来源和目的地(destination)。


技术实现思路

1、期望提供用于在基于区块链的网络中传播交易的技术,该技术可以通过流量分析或其他类型的去匿名攻击来减少损害网络匿名性的可能性。更一般地,期望提供用于在对等网络的节点之间中继数据的技术以降低去匿名攻击的脆弱性。

2、现在已经设计出这样的方案。

3、因此,根据本发明,提供了如所附权利要求书中限定的方法和装置。

4、本发明可以提供一种在节点的网络中传播数据分组的计算机实现的方法。网络中的每个节点可以具有到其他节点的一个或多个连接。该方法可以包括:在第一时间段期间收集第一数据分组的集合,该集合包括从网络中的一个或多个第一节点接收的至少一个数据分组;生成第一映射,该第一映射将用于中继的所述集合的第一数据分组分配给连接到该节点的一个或多个邻居节点(neighbouring nodes);计算第一映射的去相关度量值;以及确定第一映射的去相关度量值是否满足第一条件。响应于确定第一映射的去相关度量值不满足第一条件,该方法还可以包括:生成第二映射,该第二映射将用于中继的所述集合的第一数据分组分配给连接到该节点的一个或多个邻居节点,第二映射定义与第一映射的分配不同的分配;计算第二映射的去相关度量值;以及响应于确定第二映射的去相关度量值满足第一条件,根据第二映射来将所述集合的第一数据分组传输到邻居节点。

5、在一些实现方式中,第一映射可以指示该集合的每个第一数据分组到邻居节点的中继的预期时间,并且生成第一映射可以包括确定以下至少一项:第一子映射,其将用于中继的具有相同的来源任意两个数据分组分配给一个或多个邻居节点的不同子集;以及第二子映射,其将中继的不同的预期时间分配给任意两个数据分组,所述任意两个数据分组是在同一时间间隔内在节点处生成的或由所述节点从一个或多个第一节点接收的。

6、在一些实现方式中,生成第二映射可以包括:对于该集合的至少一个第一数据分组,确定邻居节点的第一集合,所述至少一个第一数据分组通过第一映射被分配给邻居节点以用于中继;选择与第一集合不同的邻居节点的第二集合,该第二集合具有与第一集合相同的基数(cardinality);以及将用于中继的至少一个第一数据分组分配给邻居节点的第二集合。

7、在一些实现方式中,该方法还可以包括:对于该集合的任意两个不同的第一数据分组,获得两个第一数据分组通过第一映射被分别分配至的邻居节点的集合之间的相似性的测度;以及响应于确定相似性的测度满足第二条件,生成该集合的第一数据分组到一个或多个邻居节点的第三映射。

8、在一些实现方式中,邻居节点的集合可以表示为向量(vector),并且相似性的测度包括邻居节点的集合的向量表示之间的余弦相似性。

9、在一些实现方式中,确定相似性的测度满足第二条件可以包括确定余弦相似性落在预定值范围之外。

10、在一些实现方式中,在计算第一映射的去相关度量值之前,可以获得邻居节点的集合之间的相似性的测度。

11、在一些实现方式中,确定第一映射是否满足第一条件可以包括:计算第一映射的去相关度量值s(r,n)与第一去相关度量值snc(r,n)之间的差,基于在第一时间段期间收集的第一数据分组的总数和通过第一映射分配给一个或多个邻居节点中的相应邻居节点的第一数据分组的数量来计算第一映射的去相关度量值;以及将计算的差与预定义的阈值差进行比较。

12、在一些实现方式中,第一映射的去相关度量值可以被计算为

13、

14、其中,ci表示通过第一映射分配给相应邻居节点的第一数据分组的数量,n表示一个或多个邻居节点的总数,并且r表示在第一时间段期间收集的第一数据分组的总数。

15、在一些实现方式中,第一去相关度量值可以被计算为

16、

17、rn=rmodn

18、其中,n表示一个或多个邻居节点的总数,并且r表示在第一时间段期间收集的第一数据分组的总数。

19、在一些实现方式中,该方法还可以包括:在数据库中存储:生成用于中继的所述集合的第一数据分组到一个或多个邻居节点的新映射的迭代计数;与计算的同第一去相关度量值的最小差相关联的当前去相关度量值;以及与当前去相关度量值相关联的当前映射。

20、在一些实现方式中,该方法还可以包括:确定迭代计数是否等于预定义的次数;以及响应于确定迭代计数等于预定义的次数,根据当前映射将所述集合的第一数据分组传输到邻居节点。

21、在一些实现方式中,该方法还可以包括:响应于确定第一映射的去相关度量值满足第一条件,根据第一映射将所述集合的第一数据分组传输到邻居节点。

22、本发明可以提供用于执行如上或本文其他地方所限定的方法的计算机实现的系统。

23、本发明可以提供一种存储处理器可执行指令的非暂时性处理器可读介质,其中,处理器可执行指令在由处理器执行时,使处理器执行如上文或本文其他地方所限定的方法。

24、在本文所述的许多示例实现方式中,具体参考了区块链交易;然而,应了解,本文中所描述的方法和装置可结合非区块链交易传播来实施和应用。更一般地,本公开中描述的方法和装置可以适用于在对等网络的节点之间传播各种不同类型的数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1