一种在网络环境中生成、维护可信数据的方法转让专利

申请号 : CN201610326235.9

文献号 : CN105956490B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 史兴国陈光宇

申请人 : 苏州超块链信息科技有限公司

摘要 :

本发明公开了一种在网络环境中生成、维护可信数据的方法。本方法为:1)初始化数据块[A]0、公共计算规则,并向网络广播;2)将认可数据块[A]0的节点作为参与节点,当需要增加新数据A时,由n个参与节点分别按照该公共计算规则独立计算[A]1的备选数据块[A]T并广播给其他n‑1个参与节点;[A]1是包含新增数据A的数据块;3)n个参与节点根据监听到的广播包确定待选公认结果[A]Y并广播;4)参与节点对监听到的[A]T/[A]Y进行计算;当计算结果符合指定的条件,则该参与节点将自身计算结果认定为合法公认结果并广播。

权利要求 :

1.一种在网络环境中生成可信数据的方法,其步骤为:

1)初始化一数据块[A]0、公共计算规则,向网络广播;

2)将认可该数据块[A]0的节点作为参与节点;

3)当有n个参与节点有增加新数据A的需求时,则该n个参与节点均按照公共计算规则分别计算数据块[A]1的备选数据块[A]T;其中,数据块[A]1中包含新增数据A,是[A]0的后继数据块;

4)该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点;

5)参与节点监听计算结果[A]T的广播包并进行计算;当计算结果达到指定的条件,则该参与节点将自身计算结果[A]T认定为待选公认结果并广播。

2.如权利要求1所述的方法,其特征在于,该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点的方法为:该n个参与节点分别将各自的计算结果[A]T附加上验证数据广播给其他参与节点;该参与节点将自身计算结果[A]T认定为待选公认结果并广播的方法为:该参与节点在自身计算结果[A]T上附加验证数据,记为[A]Y;然后广播该待选公认结果[A]Y。

3.如权利要求2所述的方法,其特征在于,参与节点均监听和验证该待选公认结果[A]Y,并将验证结果广播发送给任一监听节点;该监听节点收集验证结果广播包并进行计算;当计算结果符合合法性认定规则指定的条件时,该监听节点将该待选公认结果[A]Y中的[A]T对应的[A]1记为合法公认后继数据块并向网络广播。

4.如权利要求1所述的方法,其特征在于,参与节点均监听和验证该待选公认结果[A]T,并将验证结果广播发送给任一监听节点;该监听节点收集验证结果广播包并进行计算;当计算结果符合合法性认定规则指定的条件时,该监听节点将该待选公认结果[A]T对应的[A]1记为合法公认后继数据块并向网络广播。

5.如权利要求1所述的方法,其特征在于,数据块[A]0还包括合法性认定规则和校验规则;步骤5)中,参与节点利用校验规则对监听到的广播包进行验证,验证通过后,统计广播包中的计算结果[A]T,如果统计计算结果达到合法性认定规则指定的条件,则该参与节点将自身计算结果[A]T认定为待选公认结果并广播。

6.如权利要求5所述的方法,其特征在于,通过一发起节点初始化该数据块[A]0并向网络广播。

7.如权利要求6所述的方法,其特征在于,基本描述信息、所述公共计算规则、所述合法性认定规则和所述校验规则均由该发起节点自行定义。

8.如权利要求1所述的方法,其特征在于,每一节点本地独立维护对其他节点的信任列表。

9.如权利要求1所述的方法,其特征在于,当有新节点加入由所述参与节点构成的对等/分布式网络时,向任意n个参与节点请求获得当前公认结果[A]的全部或部分数据;然后根据任意n个参与节点回复的数据包验证当前公认结果[A]的合法性和正确性;验证通过后获得所请求的数据,成为一参与节点;其中,公认结果[A]表示从[A]0~[A]n的所有数据块。

10.如权利要求1所述的方法,其特征在于,当有后继新数据加入时,每一参与节点将数据块[A]n-1的数字摘要或数据块组[A]之中任意个数据块的数字摘要作为后继新数据块[A]n的计算依据并包含在新产生的[A]T中,重复步骤4)~5),更新公认数据组[A];其中,公认数据组[A]表示从[A]0~[A]n的所有数据块。

11.一种在网络环境中维护可信数据的方法,其步骤为:

1)当有n个认可公认的数据块[A]n的参与节点有增加新数据A的需求时,则该n个参与节点均按照该数据块[A]n对应的公共计算规则分别计算数据块[A]n+1的备选数据块[A]T;其中,数据块[A]n+1中包含新增数据A;其中,网络中认可该数据块[A]n的节点称为参与节点;

2)该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点;

3)参与节点监听计算结果[A]T的广播包并进行计算;如果计算结果达到指定的条件,则该参与节点将自身计算结果[A]T认定为待选公认结果并广播。

12.如权利要求11所述的方法,其特征在于,该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点的方法为:该n个参与节点分别将各自的计算结果[A]T附加上验证数据广播给其他参与节点;该参与节点将自身计算结果[A]T认定为待选公认结果并广播的方法为:该参与节点在自身计算结果[A]T上附加验证数据,记为[A]Y;然后广播该待选公认结果[A]Y。

13.如权利要求11所述的方法,其特征在于,当有新节点加入由所述参与节点构成的对等/分布式网络时,向任意n个参与节点请求获得当前公认结果[A]的全部或部分数据;然后根据任意n个参与节点回复的数据包验证当前公认结果[A]的合法性和正确性;验证通过后获得所请求的数据,成为一参与节点;其中,公认结果[A]表示从[A]0~[A]n的所有数据块。

14.如权利要求11所述的方法,其特征在于,当有后继新数据加入时,每一参与节点将数据块[A]n-1的数字摘要或数据块组[A]之中任意个数据块的数字摘要作为后继新数据块[A]n的计算依据并包含在新产生的[A]T中,重复步骤2)~3),更新公认数据组[A];其中,公认数据组[A]表示从[A]0~[A]n的所有数据块。

说明书 :

一种在网络环境中生成、维护可信数据的方法

技术领域

[0001] 本发明属于计算机技术领域,具体涉及网络分布式计算环境下,多节点协作生成和维护一组可信公共数据的方法。

背景技术

[0002] 在分布式网络/互联网中,当多个网络节点的运算依赖同一数据集(本文称公共数据)时,需要保证该数据可信和准确。如网络游戏的各运算节点依赖同一组全局数据来运行;某些网络交易需要依赖同一组历史交易凭证记录来处理新的交易请求;某些网络应用需要在节点动态加入和退出的条件下仍可获得持久可信的公共数据源等。现有手段通常以集中存储和认证的方式来保证数据的可信性和准确性,集中处理保证了公共数据的一致性,但也存在欠灵活,中心节点的维持成本高,单点失效风险和恶意攻击等问题。另外,集中处理适用于针对特定用户群和特定数据的可信及互信,对于非特定节点间的非特定数据处理则较难实现;
[0003] 网络分布式计算
[0004] 在网络环境中的计算单元(包括但不限于计算机)独立运行,通过特定的通讯协议和应用软件协作完成特定的计算任务。
[0005] 使用数字签名技术来认证和签署公共数据,可以解决特定节点间的对特定数据的互信问题,不能解决非特定节点对非特定数据的互信;
[0006] 传统多重备份或存储同样存在上面的问题;
[0007] 数字签名
[0008] 数字签名技术是最常见的数据完整性保护机制,能产生比人类指纹更可靠的“数据指纹”。它将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者对收到的原文产生摘要信息,与发送者公钥解密出来的摘要信息做对比,验证信息的完整性。本发明使用数字签名技术对节点间发送的数据进行完整性和合法性提供保证。数字签名技术并不解决节点间互信的问题,在本发明中,数字签名技术用于非互信节点间的数据通讯不被恶意篡改。
[0009] 数字摘要
[0010] 是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是Hash函数。数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。本发明使用数字摘要将离散的公共数据组织成相关数据。
[0011] 结合数字签名和节点独立存储的方式可以一定程度上解决集中处理和存储带来的弊端,此方式仅对静态数据和具有可信关系的特定节点间适用,很难处理动态产生的数据和动态加入的非特定节点之间的可信/互信,且在网络环境中很容易受恶意节点或网络传输错误的影响。
[0012] 上述方法中加入传统的CA机制可解决非特定节点间对非特定数据互信的问题,可排除恶意节点的影响,但需要一个特定的组织维护一套校验机制。仍属集中式处理,前述的所有集中式处理的弊端仍旧存在。
[0013] 使用P2P对等网络存储和发布公共数据,可保持数据公共属性和冗余可靠性,可解决非特定群体对特定数据的互信,只适用静态数据存储,不能解决非特定数据和动态数据的可信/互信问题;另外P2P对等网络也不能很好处理数据持久性和历史性的问题。
[0014] 对等网络
[0015] 当网络分布式计算环境中不存在特定的优先节点和中心控制节点时,计算节点以对等的方式协同进行分布式计算。
[0016] 以上方法都不能很好的解决在完全开放场景中公共数据可信性的问题,在这里,本发明将面向全网开放的环境和数据需保留不确定时间跨度的应用场景简称为完全开放场景。
[0017] 完全开放场景归结起来有以下特点
[0018] 1.消息的发送方是面向全网的,接收方或使用者不是确定的;
[0019] 2.信息产生和信息最终被使用的时间跨度是不确定的;
[0020] 3.没有特定的中心处理节点承担集中处理工作;
[0021] 4.信息的传输和存储媒介也不确定。
[0022] 从而,衍生出完全开放场景下需要解决几个主要问题:
[0023] 1,来自恶意节点的破坏;
[0024] 2,公共数据的持久性和一致性;
[0025] 3,公共数据的持久可信性。

发明内容

[0026] 针对现有技术中存在的技术问题,本发明的目的在于提供一种在网络环境中生成、维护可信数据的方法。本发明可以在对等网计算环境中,缺少中心控制节点和可信节点的条件下,通过节点协作共同生成和维护可信数构并防止篡改。
[0027] 本发明的技术方案为:
[0028] 一种在网络环境中生成可信数据的方法,其步骤为:
[0029] 1)初始化一数据块[A]0、公共计算规则,向网络广播;
[0030] 2)将认可该数据块[A]0的节点作为参与节点;
[0031] 3)当有n个参与节点需要在该数据块[A]0中增加新数据A时,则该n个参与节点均按照公共计算规则分别计算数据块[A]1的备选数据块[A]T;其中,数据块[A]1是该数据块[A]0增加数据A后的数据块;
[0032] 4)该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点;
[0033] 5)参与节点监听计算结果[A]T的广播包并进行计算;当计算结果达到指定的条件,则该参与节点将自身计算结果[A]T认定为待选公认结果并广播。
[0034] 一种在网络环境中维护可信数据的方法,其步骤为:
[0035] 1)当有n个参与节点需要在一公认的数据块[A]n中增加新数据A时,则该n个参与节点均按照该数据块[A]n对应的公共计算规则分别计算数据块[A]n+1的备选数据块[A]T;其中,数据块[A]n+1是该数据块[A]n增加数据A后的数据块;其中,网络中认可该数据块[A]n的节点称为参与节点;
[0036] 2)该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点;
[0037] 3)参与节点监听计算结果[A]T的广播包并进行计算;如果计算结果达到指定的条件,则该参与节点将自身计算结果[A]T认定为待选公认结果并广播。
[0038] 进一步的,该n个参与节点分别将各自的计算结果[A]T广播给其他参与节点的方法为:该n个参与节点分别将各自的计算结果[A]T附加上验证数据广播给其他参与节点;该参与节点将自身计算结果[A]T认定为待选公认结果并广播的方法为:该参与节点在自身计算结果[A]T上附加验证数据,记为[A]Y;然后广播该待选公认结果[A]Y。
[0039] 进一步的,参与节点均监听和验证该待选公认结果[A]Y,并将验证结果广播发送给任一监听节点;该监听节点收集验证结果广播包并进行计算;当计算结果符合合法性认定规则指定的条件时,该监听节点将该待选公认结果[A]Y中的[A]T对应的[A]1记为合法公认后继数据块[A]并向网络广播。
[0040] 进一步的,参与节点均监听和验证该待选公认结果[A]T,并将验证结果广播发送给任一监听节点;该监听节点收集验证结果广播包并进行计算;当计算结果符合合法性认定规则指定的条件时,该监听节点将该待选公认结果[A]T对应的[A]1记为合法公认后继数据块[A]并向网络广播。
[0041] 进一步的,数据块[A]0还包括合法性认定规则和校验规则;步骤5)中,参与节点利用校验规则对监听到的广播包进行验证,验证通过后,统计广播包中的计算结果[A]T,如果统计计算结果达到合法性认定规则指定的条件,则该参与节点将自身计算结果[A]T认定为待选公认结果并广播。
[0042] 进一步的,通过一发起节点初始化该数据块[A]0并向网络广播。
[0043] 进一步的,所述基本描述信息、公共计算规则、合法性认定规则和校验规则均由该发起节点自行定义。
[0044] 进一步的,每一节点本地独立维护对其他节点的信任列表。
[0045] 进一步的,当有新节点加入由所述参与节点构成的对等/分布式网络时,向任一参与节点请求获得当前公认结果[A]的全部或部分数据;然后向其他参考节点验证当前公认结果[A]的合法性和正确性;验证通过后获得所请求的数据,成为一参与节点。
[0046] 对于生成方法,当有后继新数据加入时,每一参与节点将数据块[A]n-1的数字摘要或数据块组[A]之中任意个数据块的数字摘要作为后继新数据块[A]n的计算依据并包含在新产生的[A]T中,重复步骤4)~5),更新公认数据组[A]。
[0047] 对于维护方法,当有后继新数据加入时,每一参与节点将数据块[A]n-1的数字摘要或数据块组[A]之中任意个数据块的数字摘要作为后继新数据块[A]n的计算依据并包含在新产生的[A]T中,重复步骤2)~3),更新公认数据组[A]。
[0048] 本发明具有如下特点:
[0049] 1,在对等网络中的公共数据由全网结点共同维护和持有,节点间无特定信任关系,使用连续的链式校验结构审核和维持公共数据完整性;
[0050] 2,公共数据的新增部分由网络节点分别独立计算,计算结果由网络中的节点按校验规则相互审核,通过审核的数据为合法新增数据,新增部分不改动现存的公认数据,仅在尾部添加;
[0051] 3,获认可最多的运算结果作为公共数据,由各节点独立存储,并以广播的形式发布至网内其他节点;
[0052] 4,网络中全新加入的节点通过随机向多个现有节点请求获得公共数据的方式,并通过对比获得的数据,抛弃与校验规则不一致的数据,保留一致数据的方法,来获得正确合法的公共数据拷贝。
[0053] 与现有技术相比,本发明的积极效果为:
[0054] 通过该方法,分布式网络上的非信任节点可以维护同一公共数据,且保证恶意节点无法篡改公共数据。该方法可以实现在非信任网络环境下,当不存在中央控制节点时,通过自组织的方式维护一个公认的信任基。

附图说明

[0055] 图1示例了本发明中节点对数据的操作流程。
[0056] 图2示例了本发明中的公共数据产生和维护方式。
[0057] 图3示例了本发明中多节点同时产生和维护公共数据的方式。
[0058] 图4示例了本发明中的任一节点参与生成、维护可信数据的典型执行流程。
[0059] 图5示例了本发明中节点实施初始化公认数据的执行流程。
[0060] 图6示例了本发明中任一节点响应公认数据加载请求时对外发送数据时的执行流程。
[0061] 图7示例了本发明中任一节点加载公认结果的执行流程。
[0062] 图8示例了本发明中参与节点计算备选数据块的执行流程。
[0063] 图9示例了本发明中节点计算待选公认结果的执行流程。
[0064] 图10示例了本发明中节点计算公认结果的执行流程。
[0065] 图11示例了本发明中节点认可公认结果的执行流程。
[0066] 图12示例了本发明中节点维护信任列表的执行流程。

具体实施方式

[0067] 下面结合附图对本发明的技术内容进行进一步详细描述。
[0068] 实施方法1
[0069] 实施环境/条件:无主控节点的公共网络,运行本发明软件的网络节点。
[0070] 1)如图5所示,在对等/无主控网络的发起节点初始化数据块[A]0,该数据块作为公共数据初始化数据块,数据块中包括基本描述信息、公共计算规则、合法性认定规则C和校验规则,广播至全网请求其他节点认可;有几种回应方式都可以代表认可:1,收到其他节点广播的以该初始数据块为依据生成的[A]T并请求验证的;2,收到其他节点明确回复的;3,有其他节点把初始数据块直接作为公认数据组[A]来请求验证的;其中,应用中将以方式
1和2最为多见。
[0071] 2)重复步骤1,等待直至有其他节点认可[A]0为初始公认数据块;
[0072] 3)公认数据块[A]0由对等网上的其他节点自愿持有,持有[A]0的节点即该公认数据的参与节点。[A]0的数字摘要作为后续新数据的计算依据,如有若干参与节点希望在公认数据块中增加新数据A,则这些参与节点需按照公共计算规则各自分别计算生成后续数据[A]1的备选数据块[A]T(如图8所示),并将[A]0的数字摘要包含在[A]T中;
[0073] 4)对等网中所有参与计算[A]T的节点,将各自的计算结果(或数字摘要)附加上验证数据F后在全网的参与节点中广播请求合法性认证;
[0074] 5)对等网中的参与节点监听其他计算节点的合法性认证请求,对与本节点计算结果相同的广播包进行计数,忽略与本节点计算结果不符的广播包和验证数据F错误的广播包;
[0075] 6)如图9所示,当节点的计数值达到合法性认定规则C指定的数值时,该节点将自身计算结果[A]T认定为待选公认结果,该节点在[A]T上附加验证数据F后广播该待选公认结果[A]Y;
[0076] 7)对等网中的所有参与节点均监听和利用校验规则验证[A]Y,将验证结果发送给任一监听节点,监听节点抛弃验证错误的数据包,对正确的[A]Y计数,如图10所示,当计数值达到合法性认定规则C指定的条件时,该[A]Y中的[A]T对应的[A]1被节点采纳为合法公认数据块[A]并向全网广播。
[0077] 8)[A]1的数字摘要将作为后继新数据的计算依据,重复步骤3(如图4所示)将新数据持续[A]n加入公认数据组[A];其中,[A]表示从[A]0~[A]n的所有数据块,[A]0中包含规则描述数据。
[0078] 9)当有新节点加入该对等/分布式网络时,可以随机向已有节点请求获得公认数据组[A]的全部或包含[A]0的部分拷贝(如图7所示),并随机向其他多个节点请求对应数据的拷贝来验证[A]的合法性和正确性(通过随机向其他节点请求[A]的全部或部分数据,比较所获数据的一致性,可排除恶意节点的虚假信息,同时使用“基础描述信息”中定义的“验证规则”来校验数据的正确性,即可验证[A]的合法性),获得后续计算或查询计算所必需的全部或部分[A]以后,重复步骤3参与到[A]n计算过程中。
[0079] 如图4和图12所示,节点在本地维护一个对其他节点的信任列表来优化计算过程。节点对其他节点传来的合法数据块和非法数据块的数量进行统计并记入信任列表,以某一节点发送合法数据块与非法数据块的计数比值衡量该节点的可信程度。对可信程度高的其他节点请求/广播给予优先处理。
[0080] 实施方法2
[0081] 实施环境/条件:存在部分主控节点的公开网络、私有网络或者公私混合型网络,运行本发明软件的网络节点。
[0082] 1)如图5所示,在网络中的各发起节点各自的初始化数据块[A]0i(1<=i<=n,n>0),该数据块集合作为公共数据初始化计算基础,初始化公共数据块集合,集合中各数据块中包括公共或特有的基本描述信息、公共计算规则、合法性认定规则C和校验规则,或包括上述信息的引用,或上述信息的访问来源、链接或地址,广播至全网请求其他节点认可;有几种回应方式都可以代表认可:1,收到其他节点广播的以该初始数据块集为依据生成的[A]T并请求验证的;2,收到其他节点明确回复的;3,有其他节点把初始数据块集直接作为公认数据组[A]来请求验证的;
[0083] 2)重复步骤1,等待直至有其他节点认可的全部或部分 为初始公认数据块集;
[0084] 3)公认数据块集{[A]0i}由网上的其他节点自愿持有,持有全部或部分{[A]0i}中数据块的节点即该公认数据的参与节点。[A]0i的数字摘要作为后续新数据的计算依据,如有若干参与节点希望在公认数据块中增加新数据A,则这些参与节点需按照公共或特有协议的计算规则各自分别计算生成后续数据[A]1j(1<=j<=m,m>0)的共同的备选数据块[A]T,并将[A]0i的数字摘要包含在[A]T中;
[0085] 4)对等网中所有参与计算[A]T的节点,将各自的计算结果(或数字摘要)附加上验证数据F后在全网的参与节点中广播请求合法性认证;
[0086] 5)对等网中的参与节点监听其他计算节点的合法性认证请求,对与本节点计算结果相同的广播包进行分类计数或转发,对与本节点计算结果不符的广播包和验证数据F错误的广播包,可忽略,回报发送节点或广播计算结果;
[0087] 6)当节点的计数值达到合法性认定规则C指定的数值时,该节点将自身计算结果[A]T认定为待选公认结果,该节点在[A]T上附加验证数据F1后广播该待选公认结果[A]Y;
[0088] 7)网络中的主控节点或者所有参与节点均监听和利用校验规则验证[A]Y,将验证结果发送给任一监听节点,监听节点抛弃验证错误的数据包,并同时转发验证结果,对正确的[A]Y计数,当计数值达到合法性认定规则C指定的条件时,该[A]Y中的[A]T对应的[A]1被节点采纳为合法公认数据块[A]并向全网广播。
[0089] 8)[A]1的数字摘要将作为后继新数据的计算依据,重复步骤2将新数据持续[A]n加入公认数据组[A](如图4所示);其中,[A]表示从[A]0~[A]n的所有数据块,[A]0中包含规则描述数据。
[0090] 实施方法3
[0091] 实施环境/条件:存在部分主控节点的公开网络、私有网络或者公私混合型网络,运行本发明软件的网络节点。
[0092] 1)如图5所示,在网络中的各发起节点各自的初始化数据块[A]0i(1<=i<=n,n>0),该数据块集合作为公共数据初始化计算基础,初始化公共数据块集合,广播至全网请求其他节点认可,广播的信息中还包括包括公共或特有的基本描述信息、公共计算规则、合法性认定规则C和校验规则,或是以上信息的获取链接或地址;
[0093] 2)重复步骤1,等待直至有其他节点认可的全部或部分 为初始公认数据块集,并根据公共计算规则选择或生成公认数据块[A]0;
[0094] 3)公认数据块[A]0由网上的其他节点自愿持有,持有[A]0数据块的节点即该公认数据的参与节点。[A]0的数字摘要作为后续新数据的计算依据,如有若干参与节点希望在公认数据块中增加新数据A,则这些参与节点需按照公共或特有协议的计算规则各自分别计算生成后续数据[A]1的备选数据块[A]T,并将[A]0的数字摘要包含在[A]T中;
[0095] 4)对等网中所有参与计算[A]T的节点,将各自的计算结果(或数字摘要)附加上验证数据F后在全网的参与节点中广播请求合法性认证;
[0096] 5)对等网中的参与节点监听其他计算节点的合法性认证请求,对与本节点计算结果相同的广播包进行分类计数或转发,对与本节点计算结果不符的广播包和验证数据F错误的广播包,可忽略,回报发送节点或广播计算结果;
[0097] 6)当节点的计数值达到合法性认定规则C指定的数值时,该节点将自身计算结果[A]T认定为待选公认结果,该节点在[A]T上附加验证数据F后广播该待选公认结果[A]Y;
[0098] 7)网络中的主控节点或者所有参与节点均监听和利用校验规则验证[A]Y,将验证结果发送给任一监听节点,监听节点抛弃验证错误的数据包,并同时转发验证结果,对正确的[A]Y计数,当计数值达到合法性认定规则C指定的条件时,该[A]Y中的[A]T对应的[A]1被节点采纳为合法公认数据块[A]并向全网广播。
[0099] 8)[A]1的数字摘要将作为后继新数据的计算依据,重复步骤3将新数据持续[A]n加入公认数据组[A](如图4所示);其中,[A]表示从[A]0~[A]n的所有数据块,[A]0中包含规则描述数据。
[0100] 实施方式4
[0101] 实施环境/条件:无主控节点的公共网络,存在部分主控节点的公开网络、私有网络或者公私混合型网络,运行本发明软件的网络节点。
[0102] 1)在未参与具体计算前,节点监听和统计网络中传播的广播包(如图4和图12所示),并在本地初始化维护一个对其他节点的分类信任列表。以某一节点发送合法数据块与非法数据块的计数比值衡量该节点的可信程度。根据可信列表决定参与哪些节点发出的后续计算;
[0103] 2)节点在网络中的发起节点初始化数据块[A]0,该数据块作为本节点或某分类数据初始化标志数据块,数据块中包括基本描述信息、公共计算规则、合法性认定规则C和校验规则,广播请求至上一步甄选出的节点;
[0104] 3)重复步骤2,等待直至有其他节点认可[A]0为初始公认数据块;
[0105] 4)公认数据块[A]0由网络上的其他节点自愿持有,持有[A]0的节点即该公认数据的参与节点。[A]0的数字摘要作为后续新数据的计算依据,如有若干参与节点希望在公认数据块中增加新数据A,则这些参与节点需按照公共计算规则各自分别计算生成后续数据[A]1的备选数据块[A]T,并将[A]0的数字摘要包含在[A]T中;
[0106] 5)网络中所有参与计算[A]T的节点,将各自的计算结果(或数字摘要)附加上验证数据F后在全网的参与节点中广播请求合法性认证;
[0107] 6)网络中的参与节点监听其他计算节点的合法性认证请求,对与本节点计算结果相同的广播包进行计数,忽略与本节点计算结果不符的广播包和验证数据F错误的广播包;
[0108] 7)当节点的计数值达到合法性认定规则C指定的数值时,该节点将自身计算结果[A]T认定为待选公认结果,该节点在[A]T上附加验证数据F后广播该待选公认结果[A]Y;
[0109] 8)网络中的所有参与节点均监听和利用校验规则验证[A]Y,将验证结果发送给任一监听节点,监听节点抛弃验证错误的数据包,对正确的[A]Y计数,当计数值达到合法性认定规则C指定的条件时,该[A]Y中的[A]T对应的[A]1被节点采纳为合法公认数据块[A]并向全网广播。
[0110] 9)[A]1的数字摘要将作为后继新数据的计算依据,重复步骤1将新数据持续[A]n加入公认数据组[A](如图4所示);其中,[A]表示从[A]0~[A]n的所有数据块,[A]0中包含规则描述数据。