公开了一种在节点网络中传播数据包的方法。该方法在其中一个节点处实现,包括:生成至少一个第一类型的数据包;在第一时间段内收集第一类型的数据包集合,该集合包括至少一个生成的数据包和从网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;对于该集合中的每个数据包:任意选择与上述节点之一连接的两个以上的相邻节点;并将数据包传输给两个以上的所选择的相邻节点中的每一个,其中,该两个以上的所选择的相邻节点用于通过使用为相邻节点任意选择的数据传播模式,将数据包中继到网络中的一个或多个第二节点。本发明专利技术尤其适合在诸如比特币区块链的区块链网络中实现。
【技术实现步骤摘要】
【国外来华专利技术】用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法
本专利技术总的来说涉及计算机网络,尤其涉及在节点网络中传播数据的方法和设备。本专利技术适于,但不限于,与区块链网络结合使用。
技术介绍
在本文中,使用“区块链”这一术语来包含所有形式的基于计算机的电子分布式账本。这些包括但不限于基于共识的区块链和交易链技术、经过许可和未经许可的账本、共享账本及其变形。尽管已经提出和开发了其它区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。虽然为了方便和说明的目的,在本文中提到比特币,应当注意的是,本专利技术不限于与比特币区块链一起使用,替代的区块链实现方式和协议也落入本专利技术的范围内。区块链是基于共识的电子账本,其实现为基于计算机的、去中心化的、分布式系统,该系统由区块组成,而区块又由交易组成。每笔交易都是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块包括前一个区块的散列,因此这些区块被链接在一起,以创建自区块链创建以来被写入区块链的所有交易的永久性不可变记录。交易包括嵌入到其输入和输出中的被称为脚本的小程序,这些小程序规定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。接收到新交易的网络节点将迅速尝试将该交易推送到网络中的其他节点。在将新交易传输到其他节点之前,会对其进行“验证(validated)”,也就是说,根据一组标准对其进行检查,以确保该交易符合根据适用的区块链协议进行适当交易的基本要求。为了将交易写入区块链,节点(“矿工”或“挖矿节点”)将该交易合并到一个区块中,该节点用于收集交易并将这些交易形成区块。然后,矿工尝试针对该节点完成“工作量证明”。整个区块链网络中的矿工竞相成为第一个组装交易区块并完成该区块相关工作量证明的矿工。成功的矿工将其已确认的区块添加到区块链中,并且该区块通过网络传播,以便那些维护区块链副本的其他节点可以更新记录。那些接收区块的节点还“验证”该区块以及该区块中的所有交易,以确保该区块符合协议的形式要求。区块链技术(例如比特币)的公认优势之一是交易的匿名性。比特币用户的个人详细信息并未正式和明确地附加到比特币地址上,并且区块链的比特币账本仅包含公共地址信息。但是,由于区块链被构造为在互联网上运行的分布式点对点(peer-to-peer)网络,因此使用IP(InternetProtocol)地址信息将用户与网络活动关联起来的攻击可能会损害交易的匿名性。举例来说,在基于区块链的网络上进行的去匿名化攻击(例如IP流量分析)可以使感兴趣的第三方监视网络上用户提交的交易,并使用可公开获取的信息将交易连接到交易来源,例如,通过将用户的公共密钥与其IP地址关联起来。流量分析对于基于区块链的网络而言尤其的困难,这种网络依赖于网络节点之间的交易的传播。网络中接收交易的每个节点都会验证该交易,然后将该交易发送到对等节点。在比特币协议中,节点将向对等节点发送包含交易列表的“INV”消息,并接收“GETDATA”响应消息,该响应消息选择在“INV”消息中公布的交易的某个子集。然后,该节点将请求的交易发送到对等节点。针对该节点连接到的每个对等节点执行该过程。攻击者可以拦截和分析在网络中传播交易时传输的数据,并最终获得可用于链接交易源和交易终点的信息。
技术实现思路
期望提供用于在基于区块链的网络中传播交易的技术,该技术可以通过流量分析或其他类型的去匿名化攻击,来减少损害网络匿名性的可能性。更一般的来讲,期望提供用于在点对点网络的节点之间中继数据的技术,从而降低受到匿名化攻击的易损性。现在已经专利技术了这样一种解决方案。因此,根据本专利技术,提供了如所附权利要求书中所定义的方法和设备。本申请描述了一种在节点网络中传播数据包的节点。网络中的每个节点都可以具有一个或多个到其他节点的连接。该节点包括处理器、提供网络连接性的网络接口、以及存储器。存储器可以包括处理器可执行指令,当该处理器可执行指令在由处理器执行时,使得处理器:生成至少一个第一类型的数据包;在第一时间段内收集第一类型的数据包集合,该集合优选包括至少一个生成的数据包和从网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;对于该集合中的每个数据包:任意选择与该节点连接的两个以上的相邻节点;并将数据包传输给选择的两个以上的相邻节点中的每一个,其中,该选择的两个以上的相邻节点可用于通过使用为相邻节点随机选择的数据传播模式,将数据包中继到网络中的一个或多个第二节点。在一些实现中,第一时间段具有预定长度。在一些实现中,指令在被执行时,使得处理器在确定触发条件已满足时执行传输。在一些实现中,该触发条件包括预定持续时间的期满,该预定持续时间自节点生成第一类型的至少一个数据包时起始。在一些实现中,该触发条件包括预定持续时间的期满,该预定持续时间自从一个或多个第一节点处接收到至少一个第一类型的数据包中的第一个时起始。在一些实现中,在第一模式和第二模式之间任意选择用于相邻节点的数据传播的模式,其中在第一模式下,数据包被中继到与该相邻节点连接的节点的任意选定子集。在第二模式下,数据包被中继到与相邻节点连接的所有节点。在一些实现中,指令在被执行时,防止处理器在第一时间段内传输任何第一类型的数据包。本申请可以描述为提供一种在节点网络中传播数据包的计算机实现的方法。网络中的每个节点都可以具有与其他节点的一个或多个连接。该方法可以在这些节点之一处执行,可以包括:生成至少一个第一类型的数据包;在第一时间段内收集第一类型的数据包集合,该集合优选包括至少一个生成的数据包和从网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;对于该集合中的每个数据包:任意选择与上述节点之一连接的两个以上的相邻节点;并将数据包传输给选择的两个以上的相邻节点中的每一个,其中,该选择的两个以上的相邻节点用于通过使用为相邻节点随机选择的数据传播模式,将数据包中继到网络中的一个或多个第二节点。本申请还可以进一步描述一种非暂时性处理器可读介质,其存储处理器可执行指令以参与在节点网络中传播数据包的过程,其中,该处理器可执行指令在被多个参与节点中一个执行时,使得该处理器执行本文描述的一种或多种方法的操作。在本文所述的许多示例实现中,具体提及了区块链交易;然而,应当理解的是,本文描述的方法和设备可以结合非区块链交易传播来实现和应用。更一般的来讲,本专利技术中描述的方法和设备可以适用于在点对点网络的节点之间传播数据。附图说明与本专利技术的一个方面或实施例描述的有关任何特征,也可以在一个或多个其他方面/实施例中使用。本专利技术的这些方面和其他方面将从本文中描述的实施例中明显的体现,并参考本文中描述的实施例进行阐明。现在将仅通过举例的方式并参考附图来描述本专利技术的实施例,其中:图1示出了与区块链相关联的示例网络。图2示意性地示出了具有输入缓冲区和输出缓冲区的示例性区块链节本文档来自技高网...
【技术保护点】
1.一种在节点网络中传播数据包的节点,网络中的每个节点都具有与其他节点的一个或多个连接,所述节点包括:/n处理器;/n提供网络连接性的网络接口;和/n包括处理器可执行指令的存储器,当所述处理器可执行指令被所述处理器执行时,使得所述处理器:/n生成至少一个第一类型的数据包;/n在第一时间段内收集所述第一类型的数据包集合,所述集合包括至少一个生成的数据包和从所述网络中的一个或多个第一节点处接收的所述至少一个第一类型的数据包;和/n对于所述集合中的每个数据包:/n任意选择与所述节点连接的两个以上的相邻节点:和/n将所述数据包传输给选择的两个以上的相邻节点中的每一个,/n其中,所述选择的两个以上的相邻节点用于通过使用为所述相邻节点随机选择的数据传播模式,将所述数据包中继到所述网络中的一个或多个第二节点。/n
【技术特征摘要】
【国外来华专利技术】20171127 GB 1719654.41.一种在节点网络中传播数据包的节点,网络中的每个节点都具有与其他节点的一个或多个连接,所述节点包括:
处理器;
提供网络连接性的网络接口;和
包括处理器可执行指令的存储器,当所述处理器可执行指令被所述处理器执行时,使得所述处理器:
生成至少一个第一类型的数据包;
在第一时间段内收集所述第一类型的数据包集合,所述集合包括至少一个生成的数据包和从所述网络中的一个或多个第一节点处接收的所述至少一个第一类型的数据包;和
对于所述集合中的每个数据包:
任意选择与所述节点连接的两个以上的相邻节点:和
将所述数据包传输给选择的两个以上的相邻节点中的每一个,
其中,所述选择的两个以上的相邻节点用于通过使用为所述相邻节点随机选择的数据传播模式,将所述数据包中继到所述网络中的一个或多个第二节点。
2.根据权利要求1所述的节点,其中,所述第一时间段具有预定长度。
3.根据权利要求1所述的节点,其中,所述指令在被执行时,使得所述处理器在确定触发条件已满足时执行所述传输。
4.根据权利要求3所述的节点,其中,所述触发条件包括预定持续时间的期满,所述预定持续时间自所述节点生成所述至少一个第一类型的数据包时起始。
5.根据权利要求3所述的节点,其中,所述触发条件包括预定持续时间的期满,所述预定持续时间自从所述一个或多个第一节点处接收到所述至少一个第一类型的数据包中的第一个时起始。
6.根据权利要求3所述的节点,其中,所述触发条件包括在所述第一时间段内收集所述数据包的数量达到阈值数量。
7.根据任一前述权利要求所述的节点,其中,在第一模式和第二模式之间任意选择用于所述相邻节点的数据传播的模式,其中:
在所述第一模式下,所述数据包被中继到与所述相邻节点连接的节点的任意选定子集;和
在所述第二模式下,所述数据包被中继到与所述相...
【专利技术属性】
技术研发人员:西尔维娅·巴托鲁奇,丹尼尔·约瑟夫,西蒙·马蒂奥,
申请(专利权)人:区块链控股有限公司,
类型:发明
国别省市:安提瓜和巴布达;AG
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。