产生和记录信息的方法及网络与流程

文档序号:16672930发布日期:2019-01-18 23:42阅读:455来源:国知局
产生和记录信息的方法及网络与流程

本发明涉及网络系统,尤其涉及产生和记录信息的方法及网络。



背景技术:

网络已经被广泛应用在社会的各个方面,大量的信息每时每刻都在网络中产生和记录。重要的信息期望能够被及时记录、并且不可篡改。作为一个示例,这样的信息可以是与国家或者地区中大量选民的选举活动相关的投票信息。选民可以使用连接到网络中的投票终端进行投票,以产生相关的投票信息。投票信息将发送到指定的服务器进行统计。服务器统计的结果最后被公布。这样的系统通常存在以下问题:服务器是否安全,是否会被攻击,如何验证投票结果是否被篡改等。

传统的产生和记录信息的方法及网络存在改进的空间。



技术实现要素:

本发明的实施例提供改进的产生和记录信息的方法及网络。

本发明的第一个方面提供了一种产生和记录信息的方法。产生和记录信息的方法包括:由网络中的多个信息产生节点分别产生信息;以及由网络中的多个代表节点基于信息产生数据块。数据块包括预定数量的信息,数据块被记录在链式数据结构中,并且链式数据结构分布式地存储在网络中。多个代表节点的数量小于多个信息产生节点的数量。

在本发明的实施例中,数据块包括多个数据部分。由网络中的多个代表节点产生数据块包括:由多个代表节点分别产生多个数据部分;以及整合多个数据部分,以产生数据块。

在本发明的实施例中,由多个代表节点中的预定代表节点整合多个数据部分。

在本发明的实施例中,方法还包括:将数据块发送到多个代表节点,以验证数据块是否有效。

在本发明的实施例中,方法还包括:响应于多个代表节点中的大于三分之二数量的代表节点对于数据块给出了肯定的验证结果,确定数据块有效。

在本发明的实施例中,多个代表节点的数量是奇数。

在本发明的实施例中,信息是投票信息。

在本发明的实施例中,由多个信息产生节点分别产生信息包括:对于多个信息产生节点分配通证,通证代表选票;以及多个信息产生节点将通证转移给被投票对象,通证的转移代表投票。通证的转移的记录被包括在信息中。

在本发明的实施例中,方法还包括:从多个信息产生节点中选择多个代表节点。

在本发明的实施例中,通过投票的方式从多个信息产生节点中选择多个代表节点。

在本发明的实施例中,从多个信息产生节点中选择多个代表节点包括:将多个信息产生节点分配到多个区中;以及在多个区中分别产生代表节点。

在本发明的实施例中,方法还包括:从多个信息产生节点中选择至少一个备选代表节点。

在本发明的实施例中,链式数据结构被存储在网络的分布式账本中。

在本发明的实施例中,由网络中的多个信息产生节点分别产生信息的步骤包括:产生相对应的私钥和公钥;以及产生信息。信息的至少部分使用私钥加密。信息包括使用私钥生成的签名。

在本发明的实施例中,方法还包括:将信息发送到网络中的其它信息产生节点;以及由其它信息产生节点根据公钥,对于信息进行验证。

本发明的第二个方面提供一种产生和记录信息的网络,用于实施上述任一项的方法。网络包括:多个信息产生节点,被配置为分别产生信息;以及多个代表节点,被配置为产生数据块,数据块包括预定数量的信息,并且数据块被存储在链式数据结构中。多个代表节点的数量小于多个信息产生节点的数量。

本发明的第三个方面提供一种信息产生节点,用于上述的网络。信息产生节点包括:存储器;以及可操作地耦合到存储器的处理器。处理器被配置为执行程序以产生信息。

在本发明的实施例中,处理器被配置为:产生相对应的私钥和公钥;以及产生信息。信息的至少部分使用私钥加密。信息包括使用私钥生成的签名。

在本发明的实施例中,处理器还被配置为:指示信息产生节点将信息发送到网络中的其它信息产生节点。

本发明的第四个方面提供一种代表节点,用于上述的网络。代表节点包括:存储器;以及可操作地耦合到存储器的处理器。处理器被配置为执行程序以基于信息产生节点产生的信息产生数据块。数据块包括预定数量的信息,数据块被记录在链式数据结构中。

本发明的第五个方面提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在至少一个处理器上执行时使至少一个处理器执行上述任一项的方法。

根据本发明的实施例,使用多个代表节点产生数据块并将其记录在链式数据结构中,而不是使用特定的服务器进行处理和存储,这有利于提高数据块产生和记录的效率,并且能够提高安全性。本发明的实施例尤其适用于具有大量信息产生节点的网络系统。

附图说明

为了更清楚地说明本发明的实施例的技术方案,下面将对实施例的附图进行简要说明,应当知道,以下描述的附图仅仅涉及本发明的一些实施例,而非对本发明的限制,其中:

图1是本发明的实施例提供的一种产生和记录信息的方法的示意性的流程图;

图2是数据块被记录到链式数据结构的示意图;

图3是链式数据结构的示意性的框图;

图4是数据块被其它代表节点验证的示意图;

图5是产生投票信息的示例性的流程图;

图6是信息产生节点对于信息进行其它处理的示意图;

图7是信息产生节点的示例性的框图;

图8是信息产生节点的处理器的示例性的框图。

具体实施方式

为了使本发明的实施例的技术方案和优点更加清楚,下面将结合附图,对本发明的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其他实施例,也都属于本发明保护的范围。

图1是本发明的实施例提供的一种产生和记录信息的方法的示意性的流程图。如图1所示,产生和记录信息的方法包括:步骤s110,由网络中的多个信息产生节点分别产生信息;以及步骤s120,由网络中的多个代表节点基于信息产生数据块。数据块包括预定数量的信息,数据块被记录在链式数据结构中,并且链式数据结构分布式地存储在网络中。多个代表节点的数量小于多个信息产生节点的数量。

根据本发明的实施例,使用多个代表节点产生数据块并将其记录在链式数据结构中,而不是使用特定的服务器进行处理和存储,这有利于提高数据块产生和记录的效率,并且能够提高安全性。本发明的实施例尤其适用于具有大量信息产生节点的网络系统。

分布式地存储的链式数据结构可以保证数据难以篡改。由于数据分布式存储在网络中,篡改者需要同时改变多个位置的备份。此外,为了改写链式数据结构中任一个数据块中的信息,需要同时改变与该信息所在的数据块链接的大量的其它数据块。这样的改变是极难实现的,提高了网络的安全性。这样的链式数据结构可以同时保存在任意数量的代表节点中。在信息产生节点自身具有足够的存储能力时,也可以保存链式结构数据的备份。一般而言,存储备份的节点数量越多,篡改的难度将越高。

可以使用任意的分布式存储技术,例如分布式的数据库等。作为一个具体的示例,可以配置与区块链技术相关的分布式账本,然后将链式数据结构存储在网络的分布式账本中。

此外,可以仅仅使用相对较少数量的代表节点生成数据块,而不是由所有信息产生节点参与数据块的产生过程。较少数量的代表节点易于管理和维护,能够提高效率,防止由于信息产生节点的重复工作、或者相互竞争而造成的资源浪费,也可以减少网络延迟等其它因素造成的影响。

应当理解,此处所述预定数量的信息,并不是对于信息的具体数量的限制。即,所述预定数量并不仅仅包括一个固定的数值,也可以是一个预定的数值范围,这样的数值或者数值范围可以用于限定生成的数据块所需要的存储空间的大小。此外,根据应用环境的不同,该预定数量也可以随时调整,例如,该预定数量可以是预定时间段内网络中产生的需要记录的信息的总数。

图2是数据块的多个数据部分的示例性的框图。如图2所示,在本发明的实施例中,数据块200包括多个数据部分,例如b01、b02、b03等等。由网络中的多个代表节点,例如201、202、203等等,分别产生上述多个数据部分。这样的多个数据部分被整合,以产生数据块200。

由于在链式的数据结构中,每一个数据块必须依次产生和记录,则上一个数据块完成后,才能开始下一个数据块的产生工作。每一个数据块的产生需要的时间限制了网络运行的速度。在每一个数据块仅仅由一个节点产生时,无论是始终由唯一的中心化节点,例如服务器来产生数据块,还是由网络中的不同的任意数量的节点进行竞争,采用最早提交的符合要求的数据块,完成数据块的节点都需要依次获取预定数量的信息,以存入数据块中。

这样的完全串行运算的过程需要耗费较多的时间,尤其是在网络中存在大量信息需要处理时。此外,仅仅由一个节点完成运算,也浪费了网络中其它节点的运算能力,尤其是在网络中的任意数量的节点进行竞争时,其它参与竞争的节点可能也已经生成了完整的数据块,仅仅由于运算速度等差异而未被选择。

在本发明的实施例中,需要包括在数据块中的预定数量的信息被进一步划分,由不同的代表节点进行收集和整理,这极大的提高了工作效率。产生一个数据块的时间可以大致缩短为t/n的水平,t是原有的由一个节点产生完整数据块所需要的时间,n是上述的用于同时产生一个数据块的多个代表节点的数量。

每一个代表节点所采集的信息可以是随机的,例如,每一个代表节点都可以直接在网络中获取最快传输到该代表节点的,未被其它代表节点获取的信息。这样的方式可以使得代表节点尽可能的处于工作状态,提高工作效率。这样的方式尤其适用于信息产生节点工作状态不确定的网络,即,在一个时间段内,产生信息的信息产生节点的数量可能是完全无法预知的。

作为另一种方式,代表每一个代表节点所采集的信息可以是预先指定的。如图2所示,例如,代表节点201可以被配置为采集固定采集来自信息产生节点2011,2012,2013等的信息。与代表节点210相关的信息产生节点2011,2012,2013等可以是属于同一个组。这样的组可以根据信息产生节点的网络地址而划分,也可以根据实际的物理位置或者信息产生节点的使用者的其它属性而划分。通过这样的设置,代表节点的工作量可以预先评估和计算,代表节点与相对应的信息产生节点之间的网络传输也可以预先优化,这有利于进一步优化网络,并提高效率。

在本发明的实施例中,根据存储的需要,由多个代表节点获得的数据块200可以直接拼接,然后存储。此外,为了提高安全性,并且使得数据块易于检索、查看,数据块200还可以在整合数据部分b01,b02,b03等的过程中加入其它内容。

在本发明的实施例中,可以由多个代表节点中任一个来整合多个数据部分。此外,为了提高效率和便于管理,可以由多个代表节点中的预定代表节点整合多个数据部分。预定的代表节点可以是始终唯一的,也可以根据设定的规则轮换。

图3是链式数据结构的示意性的框图。如图3所示,整合后的数据块301、302、303等等被加入到数据链30中。例如,数据块301包括了信息负载ip1,数据部分b01,b02,b03等被包括在该信息负载ip1中。作为示例而不是限制,数据块301还可以包括时间戳ts1,计数负载cp1,随机数n1。时间戳ts1可以用来表示生成数据块的时间。计数负载cp1可以用于存储数据块自身相关的计数信息,例如,当前数据块在数据链30中的高度(序号)。计数负载cp1还可以存储与信息负载ip1相关的计数信息,例如,来自信息产生节点的信息的数量等其它统计信息。随机数n1设置在数据块301中以用来提高安全性。例如,在其它数据内容确定后,可以仅仅通过调整随机数n1来改变整个数据块301的哈希值。哈希值只能根据具有指定的随机数n1的数据块301自身进行运算得到,而不能先指定哈希值,然后反向运算解出随机数n1。因此,当对于数据块301的哈希值提出预定的条件(例如,小于预定的值)时,代表节点必须对于随机数n1进行穷举,以不断更新哈希值,直到满足预定的条件。这一运算过程可以如图3中的h1来表示。h2、h3表示了其它数据块302、303的哈希计算过程。

这样的计算过程可以证明代表节点的工作量,使得数据块301更容易被验证,并且,由于这样的计算过程需要一定的工作量,这使得代表节点产生虚假数据块的作恶成本增加。当作恶成本大于作恶产生的收益时,代表节点将没有理由进行作恶行为,这样的设置提高了网络的安全性。

此外,为了进一步提高数据块301的安全性和可验证性,还可以在数据块301中包括产生该数据块301的代表节点的数字签名。该数字签名可以包含在信息负载ip1中,并且基于信息负载ip1中包含的来自信息产生节点的信息,以及代表节点的私钥而生成。

其它数据块,例如302,303等与数据块301的结构相同,但是具体的数据内容不同。

图4是数据块被其它代表节点验证的示意图。如图4所示,任意一个被指定的代表节点(例如代表节点201)整合多个数据块部分而产生的数据块(例如数据块301)可以发送到其它多个代表节点(例如代表节点202,203,204,205等),以验证数据块。

作为图4中的示例,接收到数据块的代表节点202,203,204,205立即对于数据块301进行验证,并将验证结果返回代表节点201(也可以同时通知其它代表节点)。一旦多个代表节点中的大于三分之二数量的代表节点对于数据块给出了肯定的验证结果,则可以确定数据块有效。在本发明的实施例中,多个代表节点的数量可以是奇数,以进一步方便数据块的验证。

根据这样的实施方式,接收到数据块的代表节点202,203,204,205无需等待下一个数据块的产生,就可以直接对于当前的数据块进行验证,节省了等待的时间。此外,接收到数据块的代表节点202,203,204,205对于当前数据块的验证工作时并行开展的,而不是依次串行进行的,进一步节省了等待时间。

此外,在本发明的实施例中,可以采用任意的验证方式。作为示例,接收到数据块的代表节点验证数据块的过程可以主要包括:根据信息负载中的来自信息产生节点的信息以及数字签名进行验证。这一过程可以是由接收到数据块的代表节点根据产生数据块的代表节点的公钥,验证是否能够根据信息负载中的来自信息产生节点的信息得到数字签名中包含的验证信息,例如哈希值等。如果数字签名中的验证信息与接收到数据块的代表节点基于公钥得到的验证信息一致,则认为数据块是可信的,而给出肯定的验证结果。

结合图1-图4,本发明的实施例提供了产生和记录信息的方法。使用多个代表节点产生数据块并将其记录在链式数据结构中,而不是使用特定的服务器进行处理和存储,这有利于提高数据块产生和记录的效率,并且能够提高安全性。本发明的实施例尤其适用于具有大量信息产生节点的网络。

这样的网络可以应用于任意的具有大量节点参与并产生信息的网络,以保证这样的信息被可靠地记录和保存。例如,典型地,这样的网络可以是金融网络,用户节点产生各种交易信息,这些交易信息被可靠地记录和保存。此外,这样的网络也可以是投票网络,用户节点产生投票信息,这些投票信息被可靠地记录和保存。以下,以投票网络为例,对于本申请的实施例进行进一步的说明。

图5是产生投票信息的示例性的流程图。

在投票网络中,信息产生节点是由用户使用的投票设备。投票设备可以是专用的电子投票设备,也可以是安装了专用投票软件的通用计算设备,例如计算机、智能手机、或者其它便携式计算设备。

如图5所示,产生投票信息的过程(即,图1中步骤s110)包括:步骤s510,对于多个信息产生节点分配通证,通证代表选票;以及步骤s520,多个信息产生节点将通证转移给被投票对象,通证的转移代表投票。通证的转移的记录(即投票的记录)被包括在信息中。

使用通证代表选票,而以通证转移代表投票的过程,简化了信息产生和记录的过程,在所有的信息产生节点进行了投票后,仅仅需要统计候选人的各自的账户中的通证的数量,即可以确认哪些候选人是投票的优胜者。

在本发明的实施例中,多个代表节点可以是固定的专用设备。这有利于提高代表节点的计算能力,例如,代表节点可以使用与信息产生节点不同的专用计算设备(例如,更强大的专用计算机或者服务器)和/或软件系统。

此外,在本发明的实施例中,也可以从多个信息产生节点中选择多个代表节点。在本发明的实施例中,可以通过投票的方式从多个信息产生节点中选择多个代表节点。

也就是说,在本发明的实施例中,可以首先通过第一轮投票的方式,从多个信息节点中选举出预定数量的代表节点。该选举的过程也可以是通证的转移的过程。然后,多个信息节点可以进行任意次的其它投票,对于候选人进行选举,或者对于候选事项进行决策。之后的其它投票的信息都可以按照上述步骤由代表节点进行收集和记录,以提高每一轮投票的效率。每一轮的投票中,所有信息产生节点的投票信息可以收集并记录在一个数据块中,这样可以易于统计和查询。作为一个具体的示例性的技术手段,为了避免一轮投票时间(即,等待所有信息产生节点投票的时间)过长,可以规定有效投票期间,一旦超过该有效投票期间,信息产生节点的投票操作将不再被记录。

进一步地,这些代表可以从不同的区中产生。在本发明的实施例中,从多个信息产生节点中选择多个代表节点包括:将多个信息产生节点分配到多个区中;以及在多个区中分别产生代表节点。这些区可以是物理上的实际位置区域,或者网络中的网络地址区域,或者按照使用者的身份或者其它属性而划分的区域。通过这样的划分,可以更快地产生出代表节点。并且,在代表节点工作时,可以被设置为处理来自其它区域的信息产生节点的信息,这可以进一步防止数据篡改行为的产生。

在本发明的实施例中,为了保障网络的良好运行,还可以设置备选代表节点,在工作中的代表节点不能完成指定的任务时,使用备选代表节点代替。代表节点在以下情况可能被认为不能完成指定的任务:不能在预定的时间内产生数据部分,产生的数据部分未能通过其它代表节点的验证,停止响应等等。这可能由于软/硬件的损坏、网络故障等引起。

对于从多个信息产生节点中选择出来的代表节点,可以从多个信息产生节点中选择至少一个备选代表节点。

图6是信息产生节点对于信息进行其它处理的示意图。如图6所示,在本发明的实施例中,为了提高安全性,由网络中的多个信息产生节点分别产生信息的步骤还包括:步骤s610,产生相对应的私钥和公钥;以及步骤s620,产生信息,其中,信息的至少部分使用私钥加密,并且信息包括使用私钥生成的签名。相应地,方法还包括:步骤s630,将信息发送到网络中的其它信息产生节点;以及步骤s640,由其它信息产生节点根据公钥,对于信息进行验证。使用公钥/私钥的加密/验证技术,可以使得信息产生节点产生的原始信息难以篡改,并且易于验证。其它信息产生节点的验证结果可以用于确认被验证的信息是否采纳,例如,代表节点可以将被验证为不可靠的信息排除在数据块之外。代表节点可以根据其它信息产生节点的验证结果进行该项处理,也可以自行进行验证,以进行该项处理。

图7是信息产生节点的示例性的框图。如图7所示,信息产生节点700包括:存储器701;以及可操作地耦合到存储器701的处理器702。处理器702被配置为执行程序以产生信息。处理器702还被配置为:指示信息产生节点700将信息发送到网络中的其它信息产生节点。信息产生节点700还可以包括任意形式的通信模块703,以用于在网络中通信,发送和接收信息。例如,通信模块703可以是任意的具有有线/无线通信功能的模块。

可以理解,在信息产生节点700被选为代表节点时,处理器702被配置为执行程序以基于信息产生节点产生的信息产生数据块。数据块包括预定数量的信息,数据块被记录在链式数据结构中。

图8是信息产生节点的处理器的示例性的框图。如图8所示,处理器702可以包括:随机数生成模块7021,产生随机数作为私钥并产生相对应的公钥;以及信息产生模块7022,产生信息,信息的至少部分使用私钥加密,并且信息包括使用私钥生成的签名。此外,处理器702还可以包括注册模块7023,注册模块可以用于关联私钥与使用者的身份信息。

应当理解,处理器702可以是任意的具有处理功能的硬件,例如中央处理单元(cpu),微控制单元(mcu),数字信号处理器(dsp),现场可编程门阵列(fpga)等。随机数生成模块7021,信息产生模块7022,注册模块7023等可以是处理器702的不同的硬件部分,也可以是由处理器702运行不同的程序模块而实现。

本发明的实施例提供一种产生和记录信息的网络,用于实施上述任一项的方法。网络包括:多个上述的信息产生节点,被配置为分别产生信息;以及多个上述的代表节点,被配置为产生数据块,数据块包括预定数量的信息,并且数据块被存储在链式数据结构中。多个代表节点的数量小于多个信息产生节点的数量。

本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在至少一个处理器上执行时使至少一个处理器执行上述任一项的方法。

根据本发明的实施例,仅仅使用数量较少的多个代表节点产生数据块并将其记录在链式数据结构中,而不是使用多个信息产生节点中的非特定的节点来承担这一功能,这有利于提高数据块产生和记录的效率。本发明的实施例尤其适用于具有大量信息产生节点的网络系统。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

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