首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块链全网拆分方法与系统

链全网拆分方法与系统

阅读:872发布:2023-01-25

专利汇可以提供链全网拆分方法与系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种 区 块 链 全网拆分方法,依据区块链网络的交易局部性特征,将全网划分为若干子网,拆分区块链全局数据形成子网数据,基于子网内的共识机制竞争创建新区块,并且分区存储子网数据,节省了存储资源和算 力 资源;使用 节点 多公钥地址方案和节点单公钥地址方案,解决了节点在不同子网的跨网移动和跨网转账交易问题。该方法基于区块链的核心协议,解决了区块链数据层的扩展性问题,同时没有引入额外的安全问题。,下面是链全网拆分方法与系统专利的具体信息内容。

1.一种链全网拆分方法,其特征在于,包括:
步骤100,将全网节点拆分为若干个节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并被分配有唯一子网编号;
步骤200,该子链以历史区块链为起点,只在该子链末尾链接其所在子网创建的区块;
步骤300,每个该子网的节点进行转账交易和跨网移动。
2.如权利要求1所述的区块链的全网拆分方法,其特征在于,该步骤100还包括:
步骤101,该全网节点在所有未使用的交易输出中,通过交易单输出项指明的公钥地址,获知该全网节点的数字资产
步骤102,该全网节点的所有两个节点之间的交易热度值初始为0,每个该两个节点之间发生一次交易行为,其交易热度值加1;分析历史区块链,形成每个该两个节点之间交易热度值的交易热度矩阵,依据该交易热度矩阵,对所有该全网节点进行聚类;
步骤103,依据该聚类结果,将该全网节点拆分为若干个该节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并被分配有唯一该子网编号,该全网节点记录其所在区域的该区域编号,每个该全网节点成为其所在子网的子网节点,在该交易单输出项中增加该子网编号,指明该数字资产的所在区域,设定该子网节点的共识范围列表为该子网。
3.如权利要求1所述的区块链的全网拆分方法,其特征在于,该步骤200包括:
步骤201,该区块基于共识机制由所在子网的子网节点竞争创建;
步骤202,该交易单的属性信息中,包含其所在子网编号信息,用于标示该交易单的属地;该交易单以该所有未使用的交易输出作为转账交易的起点;
步骤203,该子网节点只向该共识范围列表广播交易单信息,且只收录特定交易单数据,该特定交易单满足以下条件:其前置交易单的输出项来自于该所有未使用的交易输出;
该前置交易单的输出项记录的子网编号必须在该子网节点的共识范围列表内。
4.如权利要求1所述的区块链的全网拆分方法,其特征在于,步骤300包括:
步骤311,节点X在子网A内有公钥地址x1,该节点X进入子网B后,生成该子网B内的公钥地址x1';该节点X向该子网A发出交易请求,生成一个包含该子网A编号和该子网B编号的跨网交易单,该交易单将该公钥地址x1上的数字资产转账给该公钥地址x1';
步骤312,该子网A对该交易单进行验证,创建包含该交易单数据的子网A区块,并将该子网A区块链接到该子网A的子链后,该子网B对该交易单进行验证,创建包含该交易单数据的子网B区块,并将该子网B区块链接到该子网B的子链,完成该节点X由该子网A向该子网B的跨网移动。
5.如权利要求1所述的区块链的全网拆分方法,其特征在于,步骤300包括:
步骤321,节点X在子网A内有公钥地址x2,该节点X进入子网B后向该子网A发出交易请求,生成第一跨网交易单和第二跨网交易单,该第一跨网交易单和该第二跨网交易单同时包含该子网A的编号和该子网B的编号;该第一跨网交易单将该公钥地址x2上的数字资产转账给空地址;该第二跨网交易单将空地址的数字资产转账给该公钥地址x2;
步骤322,该子网A对该第一跨网交易单进行验证,创建包含该交易单数据的子网A区块,并将该子网A区块链接到该子网A的子链后,该子网B对该第二跨网交易单进行验证,创建包含该交易单数据的子网B区块,并将该子网B区块链接到该子网B的子链,完成该节点X由该子网A向该子网B的跨网移动。
6.如权利要求1所述的区块链的全网拆分方法,其特征在于,步骤300包括:
步骤331,节点X在子网A内有公钥地址x3,该节点X进入子网B后,视该节点X为该子网B的节点Y,生成该节点Y在该子网B内的公钥地址y3;该节点Y向该子网A发出交易请求,生成一个包含该子网A编号和该子网B编号的跨网交易单,该交易单将该公钥地址x3上的数字资产转账给该公钥地址y3;
步骤332,该子网A对该交易单进行验证,创建包含该交易单数据的子网A区块,并将该子网A区块链接到该子网A的子链后,该子网B对该交易单进行验证,创建包含该交易单数据的子网B区块,并将该子网B区块链接到该子网B的子链,完成该子网A的该节点X向该子网B的该节点Y的跨网转账交易。
7.一种区块链全网拆分系统,其特征在于,包括:
拆分模块,用于将全网节点拆分为若干个节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并分配给该子网唯一编号;
交易模块,用于完成每个子网节点的交易和跨网移动;
管理模块,用于管理该全网及该子网的网络状态,分析所有节点信息,向该所有节点发送该网络状态信息,以更新该所有节点共识范围列表,监测并保持该网络状态信息在该全网及该子网内的同步。
8.如权利要求7所述的区块链全网拆分系统,其特征在于,该交易模块包括,节点多公钥地址移动模块,用于节点跨网移动:
节点X在子网A内有公钥地址x1,该节点X进入子网B后,生成该子网B内的公钥地址x1';
该节点X向该子网A发出交易请求,生成一个包含该子网A编号和该子网B编号的跨网交易单,该交易单将该公钥地址x1上的数字资产转账给该公钥地址x1';该子网A对该交易单进行验证,创建包含该交易单数据的子网A区块,并将该子网A区块链接到该子网A的子链后,该子网B对该交易单进行验证,创建包含该交易单数据的子网B区块,并将该子网B区块链接到该子网B的子链,完成该节点X由该子网A向该子网B的跨网移动。
9.如权利要求7所述的区块链全网拆分系统,其特征在于,该交易模块包括,节点单公钥地址移动模块,用于节点跨网移动:
节点X在子网A内有公钥地址x2,该节点X进入子网B后向该子网A发出交易请求,生成第一跨网交易单和第二跨网交易单,该第一跨网交易单和该第二跨网交易单同时包含该子网A的编号和该子网B的编号;该第一跨网交易单将该公钥地址x2上的数字资产转账给空地址;该第二跨网交易单将空地址的数字资产转账给该公钥地址x2;该子网A对该第一跨网交易单进行验证,创建包含该交易单数据的子网A区块,并将该子网A区块链接到该子网A的子链后,该子网B对该第二跨网交易单进行验证,创建包含该交易单数据的子网B区块,并将该子网B区块链接到该子网B的子链,完成该节点X由该子网A向该子网B的跨网移动。
10.如权利要求7所述的区块链全网拆分系统,其特征在于,该交易模块包括,节点多公钥地址交易模块,用于节点跨网转账交易:
节点X在子网A内有公钥地址x3,该节点X进入子网B后,视该节点X为该子网B的节点Y,生成该节点Y在该子网B内的公钥地址y3;该节点Y向该子网A发出交易请求,生成一个包含该子网A编号和该子网B编号的跨网交易单,该交易单将该公钥地址x3上的数字资产转账给该公钥地址y3;该子网A对该交易单进行验证,创建包含该交易单数据的子网A区块,并将该子网A区块链接到该子网A的子链后,该子网B对该交易单进行验证,创建包含该交易单数据的子网B区块,并将该子网B区块链接到该子网B的子链,完成该子网A的该节点X向该子网B的该节点Y的跨网转账交易。

说明书全文

链全网拆分方法与系统

技术领域

[0001] 本发明属于区块链技术领域,涉及一种基于交易频率局部性特征的区块链全局数据在全网的均衡分布方法。

背景技术

[0002] 近年,以比特币为代表的数字货币实践获得广泛关注,数字货币的底层技术平台是区块链(Blockchain)技术,区块链技术的本质是分布式数据库,该数据库保存历史交易数据,这个数据库被所有节点通过分布式一致协议共享。区块链技术的核心价值包括去中心化,分布式共识、非对称秘钥的签名和加密、时间戳,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、信用垄断、可靠性依赖等问题提供了解决方案。具体的区块链的定义可描述如下:区块链是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,并以分布式共识和密码学方式保证区块链的数据全局一致、不可篡改和不可伪造的分布式去中心化账本,能够安全存储简单的、有先后关系的、能在系统内进行验证的数据。区块链的出现解决了数字货币的两大问题:双重支付问题以及拜占庭将军问题。区块链技术在金融、保险、支付、公证等领域有广阔的应用前景。
[0003] 一般而言,区块链应用可以分为两类:
[0004] 公有链(public blockchains):所有节点都可以参与共识、竞争记账权。任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,数据公开。其特点是:中立、开放、交易速度慢、需要“挖矿”或类似共识机制,常用P2P网络,抗审查性高。
[0005] 许可链(permissionedblockchains):只有被许可的节点才能共识、竞争记账权并创建区块,包含私有链、联盟链、企业链等所有非公有链。数据可以公开或不公开。其特点是:交易速度快、不需要“挖矿”类的全网共识、交易成本低(交易只需几个许可节点验证即可);可审查,会占据商业应用领域的主流。
[0006] 当前,区块链技术并没有形成行业标准,基本的区块链的数据结构如图1所示。
[0007] 区块链协议中的链式结构、交易信息的Merkle树和共识机制,保证了历史交易数据极难被篡改,其中的交易数据为本段时间内的交易单信息。
[0008] 从创世区块开始,区块链历史账本数据中,包含了数字资产的首尾相接转账交易单构成的交易链条,上一个交易单的输出(out)成为当前交易单的输入(in),当前交易单的输出(out),又可以作为下一个交易单的输入(in),每个交易单具有三项内容,分别是代表本交易单的哈希值、收入来源项内容和支出去向内容。其中收入来源内容包括前置交易信息和拥有者的签名和公钥,前置交易信息包含代表前置交易的哈希值和代表输出项的索引值。而支出去向内容则包括付款金额、代表收款方地址的哈希值和一个脚本;该脚本可以验证使用者的公钥地址与当前指向的公钥地址哈希值匹配,还要验证使用者的数字签名与使用者的公钥匹配,验证的算法都是基于非对称秘钥机制。
[0009] 首尾相接的交易单数据(包含交易发送方的数字签名)经过脚本内容的验证为合法后,被不同时间戳的区块进行记录,构成首尾相接的区块链的数据主体。区块链网络的节点通过共识过程,竞争交易单的记账权,避免“双花”问题,避免历史交易数据被轻易篡改。
[0010] 基于去中心化的点对点交易需求以及系统可靠性方面的考虑,区块链技术普遍基于P2P网络,网络中的每个节点以扁平式拓扑结构相互连通和交互,不存在任何中心化的特殊节点、不存在层级结构,每个节点均会承担网络路由、验证交易单、验证区块数据、传播区块数据、发现新节点等功能。按照节点存储数据量的不同,网络中的节点可以分为全数据节点和轻量级节点。前者保存从创世区块到当前最新区块为止的完整区块链账本,并通过实时参与全网共识过程,进行竞争记账来动态更新主链。全数据节点(或称全节点)的优势在于不依赖任何其他节点而能够独立地实现任意区块数据的校验、查询和更新,劣势则是维护全节点的空间成本较高;以比特币为例,截止到2017年6月,创世区块至当前区块的数据量已经超过100GB。与之相比,轻量级节点则仅保存一部分区块链中的区块头数据,并通过“简易支付验证方式”向其相邻节点请求所需的数据来完成交易单数据的校验。
[0011] 区块链作为新兴技术,还有很多问题亟待完善,区块链协议面临着扩展性的障碍。区块链的扩展性问题大致分为两个方面:1、交易吞吐量和交易确认延迟的扩展性障碍;2、区块链全局账本数据存储瓶颈造成的扩展性障碍。同时,这两个方面的扩展性问题又是相互矛盾的联系在一起的。以比特币的区块链应用为例,比特币区块大小限制在1M,每10分钟形成一个新区块,每年的数据增长的最大为52GB,此时能提供的交易吞吐率是6.7笔/秒,如果要增加比特币的交易吞吐量,可以增加区块大小,但是会使得存储扩展性问题更趋严重,以达到支付宝或VISA的平为参考(10000笔/秒),这将造成每年的数据增长量为7TB,这种情况下,运行区块链全数据节点将变得异常困难,这将与区块链希望尽可能多的节点运行全数据节点的要求相悖;也可以通过减少区块生成间隔的方式增加交易吞吐量,同时也减少了交易的确认时间,但是,这种方式会降低整个区块链网络的稳定性、降低数据防篡改能,同样会线性增加区块链的全节点存储需求。无论如何,区块链账本数据量会随时间越来越大,尤其是以区块链中的公有链为代表,区块链全局账本数据需要在公有链的尽可能多的节点进行全复制存储。
[0012] 以比特币为代表的公有链类型,有个假设的前提:即为在整个区块链的P2P网络中,任意两点之间发生交易的概率是一致的。以此为前提,全网所有节点(全节点)共享存储一个相同的分布式账本数据,全网所有新的交易信息都在此唯一账本后追加,新交易信息通过共识机制形成的新区块被全网节点接受后,链接到此唯一账本中,在每个节点存储完整的账本副本,如此反复。这样形成的全网共享的唯一账本,构成了全网任意节点之间交易的基础信息。
[0013] 区块链技术的发展,从第一代比特币到第二代以太坊,都面临严峻的可扩展性问题。扩展性与去中心化特性之间形成了现实的矛盾。例如,在《以太坊白皮书》中提到的可无限扩张的方案,经过了两年仍然无法实现。而有些方案干脆放弃区块链的定义来解决可扩展性问题,例如BigchainDB、VaultOS、RSCoin,它们解决了交易吞吐量、交易确认延迟和区块链数据存储两方面的扩展性问题,但是,他们放弃了区块链的本质定义,这些都是类似区块链的系统,它们改变了传统区块链的架构,一般来说安全性比较差。这些已经偏离传统区块链的定义系统,能否能被市场接受还有待观察。除此之外,已有很多相关的研究和讨论,提供了解决区块链应用的交易吞吐量、交易确认延迟的问题。Bitcoin-NG在类似比特币系统的区块链应用中,一定程度上解决了交易延迟和交易吞吐量的扩展性限制。Bitcoin-NG将区块的生成过程划分为两个过程,分别是leader的选举过程和交易的序列化过程,解决了两个问题,1、区块大小在交易吞吐量和区块在网络的传播速度之间的矛盾;2、区块生成间隔在系统稳定性(或称安全性)和交易延迟之间的矛盾。从而,提高了比特币类型区块链应用的交易吞吐量,缩短了交易延迟,但是,Bitcoin-NG没有解决区块链数据快速膨胀给全节点造成的存储瓶颈问题,从而使得区块链应用的扩展性依然受制于节点的全区块链账本存储能力。Permissioned Blockchain Framework(PBF)提出了将区块链的P2P网络进行分区的方法,通过随机的将P2P网络划分为若干子网,避免非诚实的节点在少数子网的聚集,在每个子网内部的节点收录子网内产生的交易单信息,并通过子网内部的一致性的共识机制创建子块,另有两个“特别委员会”节点集,第一个“特别委员会”验证每个子块包含的交易信息的合法性,第二个“特别委员会”将各个子网的子块写入全局区块,最后链入全局区块链的末尾。PBF同样提高了交易吞吐量、缩短了交易确认的延迟,同时,没有牺牲系统稳定性(或称安全性)。但是,PBF依然存在全局区块链的多复制存储瓶颈问题,并没有拆分全局区块链数据到各个区域中。PBF提出区块链数据快速膨胀的问题的解决方法:不管区块链网络规模有多大,通过删除历史交易单数据,可以将区块链的“全局区块链账本”数据保持在固定的大小,这种数据删除的方法降低了低资源用户的准入槛,使得很多移动终端用户可以参与到区块链的全局共识中,从而提高了区块链网络的稳定性和可靠性,文章中通过B语言深入分析了该方法与传统区块链协议之间的安全性差异,证明了删除历史交易单的方法在解决存储瓶颈问题的同时,没有带来新的安全问题。但是,在去中心化的数字货币应用中,没有中心发行方的数字货币的信用,建立在区块链账本数据的交易历史可追溯之上,从“造币”交易到最近一次的转账交易都可追溯,形成了数字货币的信用基础,通过删除交易历史数据来减少区块链数据存储需求,破坏了去中心化的数字货币信用基础。
[0014] 当前区块链技术存在两个主要问题:
[0015] 1、区块链的核心价值之“去中心化”,要求尽可能多的区块链节点运行全数据节点,但是随着区块链数据量不断增长,越来越多的节点将无法运行全数据节点。
[0016] 2、当前的区块链协议中,没有考虑数字资产节点之间,存在局部性特征,而是将所有节点之间发生交易的频率视为相同。
[0017] 以上问题,造成了区块链网络的扩展性受限,并且有“去中心化”退化的趋势。

发明内容

[0018] 为解决上述问题,本发明基于区块链的核心协议,提出了一种区块链全局数据拆分方法,将区块链网络的存储负载、网络负载在全网进行划分,从而使得参与节点都能存储区域区块链数据,参与区域区块链共识过程,解决了当前区块链核心协议中存在的扩展性障碍问题,和区块链的存储瓶颈造成的扩展性受限问题;同时,将区块链数据全集拆分为对应的区域区块链,从根本上解决了区块链数据膨胀造成的问题;该方法提供了跨网域节点移动和跨网域节点交易的解决方案,不会造成跨网域的“双花”现象;该方法没有改变区块链的协议本质,没有引入额外的安全问题。
[0019] 具体来说,本发明公开了一种区块链的全网拆分方法,包括:
[0020] 步骤100,将全网节点拆分为若干个节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并被分配有唯一子网编号;
[0021] 步骤200,该子链以历史区块链为起点,只在该子链末尾链接其所在子网创建的区块;
[0022] 步骤300,每个该子网的节点进行交易和跨网移动。
[0023] 本发明所述的区块链的全网拆分方法,其步骤100还包括:
[0024] 步骤101,该全网节点在所有未使用的交易输出中,通过交易单输出项指明的公钥地址,获知该全网节点的数字资产
[0025] 步骤102,该全网节点的所有两个节点之间的交易热度值初始为0,每个该两个节点之间发生一次交易行为,其交易热度值加1;分析历史区块链,形成每个该两个节点之间交易热度值的交易热度矩阵,依据该交易热度矩阵,对所有该全网节点进行聚类;
[0026] 步骤103,依据该聚类结果,将该全网节点拆分为若干个该节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并被分配有唯一该子网编号,该全网节点记录其所在区域的该区域编号,每个该全网节点成为其所在子网的子网节点,在该交易单输出项中增加该子网编号,指明该数字资产的所在区域,设定该子网节点的共识范围列表为该子网。
[0027] 本发明所述的区块链的全网拆分方法,步骤200包括:
[0028] 步骤201,该区块基于共识机制由所在子网的子网节点竞争创建;
[0029] 步骤202,该交易单的属性信息中,包含其所在子网编号信息,用于标示该交易单的属地;该交易单以该所有未使用的交易输出作为转账交易的起点;
[0030] 步骤203,该子网节点只向该共识范围列表广播交易单信息,且只收录特定交易单数据,该特定交易单满足以下条件:其前置交易单的输出项来自于该所有未使用的交易输出;该前置交易单的输出项记录的子网编号必须在该子网节点的共识范围列表内。
[0031] 针对拆分后产生的节点跨网移动和交易转账的问题,本发明采用以下方法解决:
[0032] 1、使用节点多公钥地址方案,解决子网内的节点跨网移动的问题:
[0033] 1)区块链节点X在子网A有固定的公钥地址,通过该子网A的节点之间的交易单历史数据,在该子网A的分布式区块链账本的“所有未花费的输出”中,有属于该节点X的若干可用的“交易输出”,即为数字资产;
[0034] 2)该节点X进入该子网B的区块链网络,该节点X在该区域的分布式区块链账本中,暂时没有可用的“交易输出”,该节点X发现自己进入该子网B后,生成该子网B的公私钥对,作为该节点X在该子网B的公钥地址,然后在该子网A的区块链网络发出交易请求,生成一个跨网交易单(该交易单的的区域编号值为两个,分别包含区域A的编号和区域B的编号),该交易单的交易请求将该节点X在该子网A的可用“交易输出”转账给该节点X在该子网B的新公钥地址上,该跨网交易单在该子网A和该子网域B分别被记入本地区块链的新区块中;
[0035] 3)该跨网交易单在该子网A和该子网B分别被记入本地区块链账本,并非同时,该子网B在接收该跨网交易单的时候,需要验证该跨网交易单的合法性,但是该子网B没有该跨网交易单的前置交易单信息,无法完成验证。因此,需要该子网A的区块链网络首先完成对该跨网交易单的验证,并记入该子网A的区块链的账本后,该子网B区块链网络获得该子网A已经将该跨网交易单成功记账的消息后,才将该跨网交易单记入该子网B的区块链账本中;
[0036] 4)该子网A的对该跨网交易单的验证过程与普通交易单的验证过程完全一致,其验证过程包括:1、交易单的输入来源是否是该子网A中的“所有未花费交易”;2、交易输入来源的公钥地址与该节点X的公钥地址匹配;3、验证该节点X数字签名。该子网A的区块链网络完成此验证后,将该跨网交易单记入该子网A的当前区块,并通过区域内的共识机制获得该子网A的区块链网络确认;
[0037] 5)该子网B通过网络获知,该子网A已经完成了对该跨网交易单的确认,并且记入了该子网A的区块链网络,可以借鉴“6次确认”的机制,即该跨网交易单记入该子网A的区块链网络后,已经在该子网A的区块链中链接了6个以上的新区块,此时,该子网B的区块链网络确认该跨网交易单被该子网A接受并确认(无法篡改),该子网B的区块链网络验证该跨网交易单为合法交易单,并通过区域内的共识机制记入该子网B的区块链网络。至此,完成了该节点X的跨网运动问题。
[0038] 2、使用节点单公钥地址方案,解决子区域内的节点跨网移动的问题:
[0039] 1)节点X在全网有唯一固定公钥地址,通过节点之间的交易单的交易,在子网A的分布式区块链账本的“所有未花费的输出”中,有属于该节点X的若干可用的“交易输出”,即为数字资产;
[0040] 2)该节点X进入子网B的区块链网络,该节点X在该子网B暂时没有可用的数字资产,该节点X发现自己跨网,然后向该子网A的记账节点发送两个跨网的交易单:第一个交易单和第二个交易单(这两个交易单的的区域编号值都是两个,分别包含区域A的编号和区域B的编号),第一个交易单将该子网A的该节点X的数字资产转账给空地址,第一个交易单在原区域A被记入当前区块;第二个交易单将原地址的数字资产转账给该节点X的原地址,该交易单在该子网B被记入当前区块。
[0041] 3)两个跨网交易单在该子网A和该子网B被分别记入区域区块链中。该子网B在接收跨网第二个交易单的时候,需要验证此交易单的合法性,但是该子网B没有第二个交易单的前置交易单信息,无法完成验证。因此,需要该子网A的区块链网络首先完成对第一个交易单的验证,并记入该子网A的区块链的账本后,该子网B区块链网络获得该子网A已经将第一个交易单成功记账的消息后,才将第二个交易单记入该子网B的区块链账本中;
[0042] 4)该子网A的对跨网的交易单的验证过程与普通交易单的验证过程完全一致,其验证过程包括:1、交易单的输入来源是否是该子网A中的“所有未花费交易”;2、交易输入来源的公钥地址与该节点X的公钥地址匹配;3、验证该节点X数字签名。该子网A的区块链网络完成此验证后,将第一个交易单记入该子网A的当前区块,并通过区域内的共识机制获得该子网A的区块链网络确认;
[0043] 5)该子网B通过网络获知,该子网A已经完成了对第一个交易单的确认,第一个交易单中的区域属性信息包含了该子网B的编号值,第一个交易单已记入了该子网A的区块链网络,可以借鉴“6次确认”的机制,即该子网A的区块链网络的跨网域交易单记入的区块之后,又在其后链接了6个以上的新区块,此时,该子网B的区块链网络确认第一个交易单被该子网A接受并确认(无法篡改),该子网B的即可验证第二个交易单为合法,并通过区域内的共识机制记入该子网B的区块链网络。可以至此,完成了该节点X的跨网运动问题。
[0044] 3、使用节点多公钥地址方案,解决跨网域节点之间转账交易的问题:
[0045] 1)区块链节点X在子网A有固定的公钥地址,通过该子网A的节点之间的交易单历史数据,在该子网A的分布式区块链账本的“所有未花费的输出”中,有属于该节点X的若干可用的“交易输出”,即为数字资产;
[0046] 2)该节点X进入该子网B的区块链网络即视为该子网B节点Y,该节点Y在该子网B的分布式区块链账本中,暂时没有可用的“交易输出”,该节点Y生成该子网B的公私钥对,作为该节点Y在该子网B的公钥地址,然后在该子网A的区块链网络发出交易请求,生成一个跨网交易单(该交易单的的区域编号值为两个,分别包含区域A的编号和区域B的编号),该交易单的交易请求将该节点X在该子网A的可用“交易输出”转账给该节点Y在该子网B的公钥地址上,该跨网交易单在该子网A和该子网域B分别被记入本地区块链的新区块中;
[0047] 3)该跨网交易单在该子网A和该子网B分别被记入本地区块链账本,并非同时,该子网B在接收该跨网交易单的时候,需要验证该跨网交易单的合法性,但是该子网B没有该跨网交易单的前置交易单信息,无法完成验证。因此,需要该子网A的区块链网络首先完成对该跨网交易单的验证,并记入该子网A的区块链的账本后,该子网B区块链网络获得该子网A已经将该跨网交易单成功记账的消息后,才将该跨网交易单记入该子网B的区块链账本中;
[0048] 4)该子网A的对该跨网交易单的验证过程与普通交易单的验证过程完全一致,其验证过程包括:1、交易单的输入来源是否是该子网A中的“所有未花费交易”;2、交易输入来源的公钥地址与该节点X的公钥地址匹配;3、验证该节点X数字签名。该子网A的区块链网络完成此验证后,将该跨网交易单记入该子网A的当前区块,并通过区域内的共识机制获得该子网A的区块链网络确认;
[0049] 5)该子网B通过网络获知,该子网A已经完成了对该跨网交易单的确认,并且记入了该子网A的区块链网络,可以借鉴“6次确认”的机制,即该跨网交易单记入该子网A的区块链网络后,已经在该子网A的区块链中链接了6个以上的新区块,此时,该子网B的区块链网络确认该跨网交易单被该子网A接受并确认(无法篡改),该子网B的区块链网络验证该跨网交易单为合法交易单,并通过区域内的共识机制记入该子网B的区块链网络,从而完成了该节点X的在该子网A向该子网B的该节点Y转账支付的过程。
[0050] 本发明基于区块链的核心协议,考虑现实中存在的交易网络具有明显的局部性特征,提出了将全局区块链网络划分成若干区域子网的方法,区块链网络的参与节点不再需要存储全网的区块链全账本数据,只需要存储本区域的区块链账本数据即可,从根本上拆分全局区块链账本数据为多区域区块链账本数据,解决了区块链的存储瓶颈造成的扩展性受限问题;同时,将全网收录交易单的负载在不同的区域区块链网络之间均衡;该方法提供了跨网域节点移动和跨网域节点交易的解决方案,不会造成跨网域的“双花”现象。该方法没有改变区块链的协议本质,没有引入额外的安全问题。附图说明
[0051] 图1区块链的基本数据结构示意图;
[0052] 图2区块体中交易单的逻辑结构示意图;
[0053] 图3区块链全网拆分示意图;
[0054] 图4区域交易单被区域区块链记入示意图;
[0055] 图5跨网交易单被两个区域的区块链共同记入示意图;
[0056] 图6跨网交易形成的两个交易单在两个区域分别记入示意图
[0057] 图7初始状态全网节点维护统一账本示意图
[0058] 图8拆分后划分所有未使用的交易输出示意图。

具体实施方式

[0059] 现实中,某些交易场景下,全网任意节点之间发生交易概率并不相同,具有明显的局部性特征,即区块链的P2P全网之中,某些区域节点之间发生交易的概率大大高于与区域之外节点发生交易的概率,或某些团体内的节点之间发生交易的概率大大高于与团体之外节点发生交易的概率,利用这样的交易概率局部性,可以实现全网账本数据的拆分,同时将交易信息的记账负载进行拆分,当然,这样的拆分不能影响到全网任意节点之间的都可进行交易功能。
[0060] 具体来说,本发明公开了一种区块链的全网拆分方法,包括:
[0061] 步骤100,将全网节点拆分为若干个节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并被分配有唯一子网编号;
[0062] 步骤200,该子链以历史区块链为起点,只在该子链末尾链接其所在子网创建的区块;
[0063] 步骤300,每个该子网的节点进行交易和跨网移动。
[0064] 本发明所述的区块链的全网拆分方法,其步骤100还包括:
[0065] 步骤101,该全网节点在所有未使用的交易输出中,通过交易单输出项指明的公钥地址,获知该全网节点的数字资产
[0066] 步骤102,该全网节点的所有两个节点之间的交易热度值初始为0,每个该两个节点之间发生一次交易行为,其交易热度值加1;分析历史区块链,形成每个该两个节点之间交易热度值的交易热度矩阵,依据该交易热度矩阵,对所有该全网节点进行聚类;
[0067] 步骤103,依据该聚类结果,将该全网节点拆分为若干个该节点群,每个该节点群对应一个子链,该节点群和该子链形成一个子网,并被分配有唯一该子网编号,该全网节点记录其所在区域的该区域编号,每个该全网节点成为其所在子网的子网节点,在该交易单输出项中增加该子网编号,指明该数字资产的所在区域,设定该子网节点的共识范围列表为该子网。
[0068] 本发明所述的区块链的全网拆分方法,步骤200包括:
[0069] 步骤201,该区块基于共识机制由所在子网的子网节点竞争创建;
[0070] 步骤202,该交易单的属性信息中,包含其所在子网编号信息,用于标示该交易单的属地;该交易单以该所有未使用的交易输出作为转账交易的起点;
[0071] 步骤203,该子网节点只向该共识范围列表广播交易单信息,且只收录特定交易单数据,该特定交易单满足以下条件:其前置交易单的输出项来自于该所有未使用的交易输出;该前置交易单的输出项记录的子网编号必须在该子网节点的共识范围列表内。
[0072] 针对拆分后产生的节点跨网移动和交易转账的问题,可以采用以下方法解决:
[0073] 1、使用节点多公钥地址方案,解决子网内的节点跨网移动的问题:
[0074] 1)区块链节点X在子网A有固定的公钥地址,通过该子网A的节点之间的交易单历史数据,在该子网A的分布式区块链账本的“所有未花费的输出”中,有属于该节点X的若干可用的“交易输出”,即为数字资产;
[0075] 2)该节点X进入该子网B的区块链网络,该节点X在该区域的分布式区块链账本中,暂时没有可用的“交易输出”,该节点X发现自己进入该子网B后,生成该子网B的公私钥对,作为该节点X在该子网B的公钥地址,然后在该子网A的区块链网络发出交易请求,生成一个跨网交易单(该交易单的的区域编号值为两个,分别包含区域A的编号和区域B的编号),该交易单的交易请求将该节点X在该子网A的可用“交易输出”转账给该节点X在该子网B的新公钥地址上,该跨网交易单在该子网A和该子网域B分别被记入本地区块链的新区块中;
[0076] 3)该跨网交易单在该子网A和该子网B分别被记入本地区块链账本,并非同时,该子网B在接收该跨网交易单的时候,需要验证该跨网交易单的合法性,但是该子网B没有该跨网交易单的前置交易单信息,无法完成验证。因此,需要该子网A的区块链网络首先完成对该跨网交易单的验证,并记入该子网A的区块链的账本后,该子网B区块链网络获得该子网A已经将该跨网交易单成功记账的消息后,才将该跨网交易单记入该子网B的区块链账本中;
[0077] 4)该子网A的对该跨网交易单的验证过程与普通交易单的验证过程完全一致,其验证过程包括:1、交易单的输入来源是否是该子网A中的“所有未花费交易”;2、交易输入来源的公钥地址与该节点X的公钥地址匹配;3、验证该节点X数字签名。该子网A的区块链网络完成此验证后,将该跨网交易单记入该子网A的当前区块,并通过区域内的共识机制获得该子网A的区块链网络确认;
[0078] 5)该子网B通过网络获知,该子网A已经完成了对该跨网交易单的确认,并且记入了该子网A的区块链网络,可以借鉴“6次确认”的机制,即该跨网交易单记入该子网A的区块链网络后,已经在该子网A的区块链中链接了6个以上的新区块,此时,该子网B的区块链网络确认该跨网交易单被该子网A接受并确认(无法篡改),该子网B的区块链网络验证该跨网交易单为合法交易单,并通过区域内的共识机制记入该子网B的区块链网络。至此,完成了该节点X的跨网运动问题。
[0079] 2、使用节点单公钥地址方案,解决子区域内的节点跨网移动的问题:
[0080] 1)节点X在全网有唯一固定公钥地址,通过节点之间的交易单的交易,在子网A的分布式区块链账本的“所有未花费的输出”中,有属于该节点X的若干可用的“交易输出”,即为数字资产;
[0081] 2)该节点X进入子网B的区块链网络,该节点X在该子网B暂时没有可用的数字资产,该节点X发现自己跨网,然后向该子网A的记账节点发送两个跨网的交易单:第一个交易单和第二个交易单(这两个交易单的的区域编号值都是两个,分别包含区域A的编号和区域B的编号),第一个交易单将该子网A的该节点X的数字资产转账给空地址,第一个交易单在原区域A被记入当前区块;第二个交易单将原地址的数字资产转账给该节点X的原地址,该交易单在该子网B被记入当前区块。
[0082] 3)两个跨网交易单在该子网A和该子网B被分别记入区域区块链中。该子网B在接收跨网第二个交易单的时候,需要验证此交易单的合法性,但是该子网B没有第二个交易单的前置交易单信息,无法完成验证。因此,需要该子网A的区块链网络首先完成对第一个交易单的验证,并记入该子网A的区块链的账本后,该子网B区块链网络获得该子网A已经将第一个交易单成功记账的消息后,才将第二个交易单记入该子网B的区块链账本中;
[0083] 4)该子网A的对跨网的交易单的验证过程与普通交易单的验证过程完全一致,其验证过程包括:1、交易单的输入来源是否是该子网A中的“所有未花费交易”;2、交易输入来源的公钥地址与该节点X的公钥地址匹配;3、验证该节点X数字签名。该子网A的区块链网络完成此验证后,将第一个交易单记入该子网A的当前区块,并通过区域内的共识机制获得该子网A的区块链网络确认;
[0084] 5)该子网B通过网络获知,该子网A已经完成了对第一个交易单的确认,第一个交易单中的区域属性信息包含了该子网B的编号值,第一个交易单已记入了该子网A的区块链网络,可以借鉴“6次确认”的机制,即该子网A的区块链网络的跨网域交易单记入的区块之后,又在其后链接了6个以上的新区块,此时,该子网B的区块链网络确认第一个交易单被该子网A接受并确认(无法篡改),该子网B的即可验证第二个交易单为合法,并通过区域内的共识机制记入该子网B的区块链网络。可以至此,完成了该节点X的跨网运动问题。
[0085] 3、使用节点多公钥地址方案,解决跨网域节点之间转账交易的问题:
[0086] 1)区块链节点X在子网A有固定的公钥地址,通过该子网A的节点之间的交易单历史数据,在该子网A的分布式区块链账本的“所有未花费的输出”中,有属于该节点X的若干可用的“交易输出”,即为数字资产;
[0087] 2)该节点X进入该子网B的区块链网络即视为该子网B节点Y,该节点Y在该子网B的分布式区块链账本中,暂时没有可用的“交易输出”,该节点Y生成该子网B的公私钥对,作为该节点Y在该子网B的公钥地址,然后在该子网A的区块链网络发出交易请求,生成一个跨网交易单(该交易单的的区域编号值为两个,分别包含区域A的编号和区域B的编号),该交易单的交易请求将该节点X在该子网A的可用“交易输出”转账给该节点Y在该子网B的公钥地址上,该跨网交易单在该子网A和该子网域B分别被记入本地区块链的新区块中;
[0088] 3)该跨网交易单在该子网A和该子网B分别被记入本地区块链账本,并非同时,该子网B在接收该跨网交易单的时候,需要验证该跨网交易单的合法性,但是该子网B没有该跨网交易单的前置交易单信息,无法完成验证。因此,需要该子网A的区块链网络首先完成对该跨网交易单的验证,并记入该子网A的区块链的账本后,该子网B区块链网络获得该子网A已经将该跨网交易单成功记账的消息后,才将该跨网交易单记入该子网B的区块链账本中;
[0089] 4)该子网A的对该跨网交易单的验证过程与普通交易单的验证过程完全一致,其验证过程包括:1、交易单的输入来源是否是该子网A中的“所有未花费交易”;2、交易输入来源的公钥地址与该节点X的公钥地址匹配;3、验证该节点X数字签名。该子网A的区块链网络完成此验证后,将该跨网交易单记入该子网A的当前区块,并通过区域内的共识机制获得该子网A的区块链网络确认;
[0090] 5)该子网B通过网络获知,该子网A已经完成了对该跨网交易单的确认,并且记入了该子网A的区块链网络,可以借鉴“6次确认”的机制,即该跨网交易单记入该子网A的区块链网络后,已经在该子网A的区块链中链接了6个以上的新区块,此时,该子网B的区块链网络确认该跨网交易单被该子网A接受并确认(无法篡改),该子网B的区块链网络验证该跨网交易单为合法交易单,并通过区域内的共识机制记入该子网B的区块链网络,从而完成了该节点X的在该子网A向该子网B的该节点Y转账支付的过程。
[0091] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种区块链全网拆分方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0092] 首先,将区块链的P2P全网,依据交易的频繁程度,拆分为若干个交易区域子网,每个子网应该具有全局唯一的编号,且每个子网节点应该保存全网所有的区域编号信息。具体的划分过程如下:
[0093] 1、初始状态下,从创世区块开始,全网只被分成一个区域,全网所有节点参与全局共识机制,共同维护一个相同的区块链账本数据,随着节点交易数据的累计,全局区块链的区块数不断增长;
[0094] 2、通过对历史区块链中交易数据的“学习”,逐渐形成交易节点之间的“热度矩阵”。学习过程:首先全网所有节点之间两两热度值初始设置为0,此后,两个交易节点之间每发生一次交易行为,这两个节点之间的热度值加1,经过一段时间,两两交易节点之间的热度值形成一个“交易热度矩阵”;
[0095] 3、依据“交易热度矩阵”,在全网的交易节点群中,依据聚类方法(可灵活选择),对节点进行聚类过程,识别交易联系紧密的节点群,将这样的节点群划分为区块链子网;
[0096] 4、每个子网以当前区块链账本数据,作为拆分后的子网子链数据的起点,从这个起点开始,只收录记账本区域节点之间的交易单和本区域节点跨网转账的交易单,通过子网内的共识机制,将新区块加入子网的子链末尾;
[0097] 5、随着新的交易节点加入某个子网,其子链规模不断扩大,通过“学习”区域内的历史交易数据,可以选择继续分裂当前子网为更小的若干次级子网,分裂过程与(1)至(4)叙述的过程一致,次级子网以原子网的子链数据作为起点,开始收录次级子网内交易单数据和次级子网内节点跨网产生的交易单数据,通过次级子网共识将新交易单记入次级子链末尾。
[0098] 在区块链全网拆分开始前,全局区块链数据中,“所有未使用的交易输出”作为当前交易单转账交易的起点,必须随着全网进行拆分。本发明依据按区域拆分的方式,首先将区块链全网划分为若干最小单位的基本区域集合,每个区域有单独的编号,每个记账节点依据所在区域记录自身编号值。同时,每个区块链网络节点存储当前共识范围列表,该列表记录了该节点的共识区域范围(或称记账范围);在每笔交易单的输出项中添加区域编号,记录该输出项的输出指向区域,也就是给该笔转账的数字资产赋予了当前所在区域的属性。
[0099] 初始状态,全网所有节点收录交易单的范围都是全集,也即,每个交易节点向其它所有节点广播交易单信息,区块链网络中每个参与共识的节点,其共识区域范围列表都为全集(All)。由于交易负载不断增长,拆分模块通过历史交易单的查询获得交易双方之间的局部性信息,记账网络开始分裂过程。拆分模块向所有节点发送全网消息,消息内容包括以区域编号为单位的全网拆分信息,记账节点依据新的网络分区方式,更新自身的共识范围列表。
[0100]当前节点区域编号 共识范围编号 更新标志 更新时间
10010 All   2017-06-2601:30:00
10010 10017,10011,10015,12013,14401   2017-06-3012:15:37
…… ……   ……
[0101] 表1记账节点存储的共识范围列表
[0102] 管理模块,负责管理全网和划分之后的区域网络状态,具体的功能是:学习当前网络内的交易节点局部性信息;向管理的网络节点发送网络状态改变消息(可通过公开消息HASH摘要的方式保证消息的完整性);监测当前管理的网络状态信息,保持这些状态信息在当前网络中同步。此后,每个子网节点只能收录所有输出指向地址为自身共识范围列表内的交易单,从而避免了“所有未使用的交易输出”在全网拆分后,被多个子网的交易单同时使用。
[0103] 本发明基于区块链的核心协议,考虑现实中存在的交易网络具有明显的局部性特征,提出了将全局区块链网络拆分成若干区域子网的方法,区块链网络的参与节点不再需要存储全网的区块链全账本数据,只需要存储本区域的区块链账本数据即可,从根本上拆分全局区块链账本数据为多区域区块链账本数据,解决了区块链的存储瓶颈造成的扩展性受限问题;同时,将全网收录交易单的负载在不同的区域区块链网络之间均衡;该方法提供了跨网域节点移动和跨网域节点交易的解决方案,不会造成跨网域的“双花”现象。该方法没有改变区块链的协议本质,没有引入额外的安全问题。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈