用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法与流程
- 国知局
- 2024-08-02 14:55:36
本发明总的来说涉及计算机网络,尤其涉及在节点网络中传播数据的方法和设备。本发明适于,但不限于,与区块链网络结合使用。
背景技术:
1、在本文中,使用“区块链”这一术语来包含所有形式的基于计算机的电子分布式账本。这些包括但不限于基于共识的区块链和交易链技术、经过许可和未经许可的账本、共享账本及其变形。虽然为了方便和说明的目的,在本文中可能提到特定区块链,应当注意的是,本发明不限于与特定区块链一起使用,替代的区块链实现方式和协议也落入本发明的范围内。
2、区块链是基于共识的电子账本,其实现为基于计算机的、去中心化的、分布式系统,该系统由区块组成,而区块又由交易(transaction)组成。每笔交易都是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块包括前一个区块的散列,因此这些区块被链接在一起,以创建自区块链创建以来被写入区块链的所有交易的永久性不可变记录。交易包括嵌入到其输入和输出中的被称为脚本的小程序,这些小程序规定如何以及由谁可以访问交易的输出。在一些平台上,这些脚本是使用基于堆栈的脚本语言编写的。
3、接收到新交易的网络节点将迅速尝试将该交易推送到网络中的其他节点。在将新交易传输到其他节点之前,会对其进行“验证(validated)”,也就是说,根据一组标准对其进行检查,以确保该交易符合根据适用的区块链协议进行适当交易的基本要求。
4、为了将交易写入区块链,节点(例如“挖掘节点”)将该交易合并到一个区块中,该节点用于收集交易并将这些交易形成区块。然后,节点尝试针对该节点完成“工作量证明”。整个区块链网络中的节点竞相成为第一个组装交易区块并完成该区块相关工作量证明的节点。成功的节点将其已确认的区块添加到区块链中,并且该区块通过网络传播,以便那些维护区块链副本的其他节点可以更新记录。那些接收区块的节点还“验证”该区块以及该区块中的所有交易,以确保该区块符合协议的形式要求。
5、区块链技术(例如已知的加密货币)的公认优势之一是交易的匿名性。用户的个人详细信息并未正式和明确地附加到地址上,并且区块链的账本仅包含公共地址信息。但是,由于区块链被构造为在互联网上运行的分布式点对点(peer-to-peer)网络,因此使用ip(internet protocol)地址信息将用户与网络活动关联起来的攻击可能会损害交易的匿名性。举例来说,在基于区块链的网络上进行的去匿名化攻击(例如ip流量分析)可以使感兴趣的第三方监视网络上用户提交的交易,并使用可公开获取的信息将交易连接到交易来源,例如,通过将用户的公共密钥与其ip地址关联起来。
6、流量分析对于基于区块链的网络而言尤其的困难,这种网络依赖于网络节点之间的交易的传播。网络中接收交易的每个节点都会验证该交易,然后将该交易发送到对等节点。在一些区块链协议中,节点将向对等节点发送包含交易列表的“inv”消息,并接收“getdata”响应消息,该响应消息选择在“inv”消息中公布的交易的某个子集。然后,该节点将请求的交易发送到对等节点。针对该节点连接到的每个对等节点执行该过程。攻击者可以拦截和分析在网络中传播交易时传输的数据,并最终获得可用于链接交易源和交易终点的信息。
技术实现思路
1、期望提供用于在基于区块链的网络中传播交易的技术,该技术可以通过流量分析或其他类型的去匿名化攻击,来减少损害网络匿名性的可能性。更一般的来讲,期望提供用于在点对点网络的节点之间中继数据的技术,从而降低受到匿名化攻击的易损性。
2、现在已经发明了这样一种解决方案。
3、因此,根据本发明,提供了一些方法和设备,例如,如所附权利要求书中所定义的方法和设备。
4、本技术可以描述一种在节点网络中传播数据包的节点。网络中的每个节点都可以具有一个或多个到其他节点的连接。该节点包括处理器、提供网络连接性的网络接口、以及存储器。存储器可以包括处理器可执行指令,当该处理器可执行指令在由处理器执行时,使得处理器:生成至少一个第一类型的数据包;在第一时间段内收集第一类型的数据包集合,该集合优选包括至少一个生成的数据包和从网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;对于该集合中的每个数据包:任意选择与该节点连接的两个以上的相邻节点;并将数据包传输给选择的两个以上的相邻节点中的每一个,其中,该选择的两个以上的相邻节点可用于通过使用为相邻节点随机选择的数据传播模式,将数据包中继到网络中的一个或多个第二节点。
5、本技术可以提供一种在节点网络中传播数据包的节点,网络中的每个节点都具有与其他节点的一个或多个连接。所述节点包括:处理器;提供网络连接性的网络接口;和,存储器。所述存储器包括处理器可执行指令,当所述处理器可执行指令被所述处理器执行时,使得所述处理器:在第一时间段内收集第一类型的数据包集合,所述集合包括从所述网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;以及,对于所述集合中的每个数据包:任意选择与所述节点连接的两个以上的相邻节点;和,将所述数据包传输给所选择的两个以上的相邻节点中的每一个;其中,所选择的两个以上的相邻节点用于,通过使用为所述相邻节点随机选择的数据传播模式,来将所述数据包中继到所述网络中的一个或多个第二节点。
6、在一些实现中,第一时间段具有预定长度。
7、在一些实现中,指令在被执行时,使得处理器在确定触发条件已满足时执行传输。
8、在一些实现中,指令在被执行时,使得处理器生成至少一个第一类型的数据包。
9、在一些实现中,该触发条件可以包括预定持续时间的期满,该预定持续时间自节点生成第一类型的至少一个数据包时起始。
10、在一些实现中,该触发条件包括预定持续时间的期满,该预定持续时间自从一个或多个第一节点处接收到至少一个第一类型的数据包中的第一个时起始。
11、在一些实现中,在第一模式和第二模式之间任意选择用于相邻节点的数据传播的模式,其中在第一模式下,数据包被中继到与该相邻节点连接的节点的任意选定子集。在第二模式下,数据包被中继到与相邻节点连接的所有节点。
12、在一些实现中,指令在被执行时,防止处理器在第一时间段内传输任何第一类型的数据包。
13、本技术可以描述为提供一种在节点网络中传播数据包的计算机实现的方法。网络中的每个节点都可以具有与其他节点的一个或多个连接。该方法可以在这些节点之一处(亦即,多个节点中的一个节点)执行,可以包括:生成至少一个第一类型的数据包;在第一时间段内收集第一类型的数据包集合,该集合优选包括至少一个生成的数据包和从网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;对于该集合中的每个数据包:任意选择与上述节点之一连接的两个以上的相邻节点;并将数据包传输给选择的两个以上的相邻节点中的每一个,其中,该选择的两个以上的相邻节点用于通过使用为相邻节点随机选择的数据传播模式,将数据包中继到网络中的一个或多个第二节点。
14、本技术可以提供一种计算机实现的方法,用于在节点网络中传播数据包,网络中的每个节点都具有与其他节点的一个或多个连接,所述方法在这些节点中的一个节点处执行,所述方法包括:在第一时间段内收集第一类型的数据包集合,所述集合包括从所述网络中的一个或多个第一节点处接收的至少一个第一类型的数据包;以及,对于所述集合中的每个数据包:任意选择与所述这些节点中的所述一个节点连接的两个以上的相邻节点,和,将所述数据包传输给所选择的两个以上的相邻节点中的每一个;其中所选择的两个以上的相邻节点用于:通过使用为所述相邻节点随机选择的数据传播模式,将所述数据包中继到所述网络中的一个或多个第二节点。
15、在一些实现中,所述的方法还包括生成至少一个第一类型的数据包。
16、本技术还可以进一步描述一种非暂时性处理器可读介质,其存储处理器可执行指令以参与在节点网络中传播数据包的过程,其中,该处理器可执行指令在被多个参与节点中一个执行时,使得该处理器执行本文描述的一种或多种方法的操作。
17、在本文所述的许多示例实现中,具体提及了区块链交易;然而,应当理解的是,本文描述的方法和设备可以结合非区块链交易传播来实现和应用。更一般的来讲,本发明中描述的方法和设备可以适用于在点对点网络的节点之间传播数据。
本文地址:https://www.jishuxx.com/zhuanli/20240801/244352.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表