首页> 中国专利> 区块链分层共识方法、区块链网络系统及区块链节点

区块链分层共识方法、区块链网络系统及区块链节点

摘要

本申请实施例提供一种区块链分层共识方法、区块链网络系统及区块链节点,属于区块链技术领域。该方法包括:获取待共识的业务数据,确定业务数据的可见权限,在可见权限为第一类可见权限时,将业务数据发送给局部链中的共识节点,以通过局部链中的共识节点对业务数据进行共识处理,在可见权限为第二类可见权限时,将业务数据发送给全局链中的共识节点,以通过全局链中的共识节点对业务数据进行共识处理。可见,可基于业务数据不同的可见权限选择在局部链内或全局链内选择分享该业务数据,即在物联网节点数目较多且网络环境多样时,可以根据信任和数据隐私程度,选择性公开数据,从而使得该业务数据的传播范围大大缩小,提高了数据隐私保护效果。

著录项

  • 公开/公告号CN109462587A

    专利类型发明专利

  • 公开/公告日2019-03-12

    原文格式PDF

  • 申请/专利权人 四川虹微技术有限公司;

    申请/专利号CN201811336181.X

  • 发明设计人 唐博;范静雯;邓密密;康红娟;

    申请日2018-11-09

  • 分类号H04L29/06(20060101);H04L29/08(20060101);G06Q40/04(20120101);

  • 代理机构11371 北京超凡志成知识产权代理事务所(普通合伙);

  • 代理人张海洋

  • 地址 610000 四川省成都市中国(四川)自由贸易试验区成都高新区天府四街199号1栋33层

  • 入库时间 2024-02-19 06:55:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-27

    授权

    授权

  • 2019-04-05

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20181109

    实质审查的生效

  • 2019-03-12

    公开

    公开

说明书

技术领域

本申请涉及区块链技术领域,具体而言,涉及一种区块链分层共识方法、区块链网络系统及区块链节点。

背景技术

区块链技术也称为分布式账本技术,是一种分布式互联网数据库技术。基于区块链技术构建的网络可以称之为区块链网络,在该区块链网络中包含网络节点(也可以称之为区块链节点,以下简称为节点),每一个节点对应至少一个区块链,每一个区块链上至少包含一个区块。区块链网络(或者区块链技术)具备去中心化、公开透明、不可篡改、可信任等特点。基于这些特点,区块链技术应用领域越来越广泛。

在物联网应用场景中,由于物联网节点数目较多,网络环境多样,如果需要共享信息和建立信任体系的物联网节点,在整个信任体系下,因信任程度和环境因素的不同,决定了共享数据也有所不同,而现有区块链网络中的所有节点均会参与数据的共享,其使得数据的传播范围很大,无法对数据进行选择共享,进而无法实现数据隐私保护。

发明内容

有鉴于此,本申请实施例的目的在于提供一种区块链分层共识方法、区块链网络系统及区块链节点。

第一方面,本申请实施例提供了一种区块链分层共识方法,应用于局部链中的节点,所述局部链为区块链网络中的多个节点形成的网络,所述方法包括:获取待共识的业务数据,确定所述业务数据的可见权限;在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理,其中,所述第一类可见权限表明所述业务数据需要在所述局部链内进行共识处理;在所述可见权限为第二类可见权限时,将所述业务数据发送给全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理,其中,所述全局链为每个局部链中选取的至少一个节点一起形成的网络。

在上述实现过程中,通过对待共识的业务数据确定对应的可见权限,然后基于不同的可见权限选择在局部链内或全局链内选择分享该业务数据,即在物联网节点数目较多且网络环境多样时,可以根据信任和数据隐私程度,选择性公开数据,从而使得该业务数据的传播范围大大缩小,提高了数据隐私保护效果,与现有的实现数据隐私保护的区块链技术相比,不存在交易数据随意传播的风险,提高了数据传播的安全性。

可选地,在所述可见权限为第二类可见权限时,将所述业务数据发送给所述全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理,包括:在所述可见权限为第二类可见权限时,则先通过所述局部链中的共识节点对所述业务数据进行共识处理后,再通过所述全局链中的共识节点对所述业务数据进行共识处理。

在上述实现过程中,在将业务数据在全局链中共识前,先在局部链中进行共识,然后再在全局链中进行共识,从而使得在全局链中共识的数据是用户希望共享和传递的数据,从而提高了数据隐私保护效果。

可选地,所述获取待共识的业务数据,确定所述业务数据的可见权限之前,还包括:将从所述局部链中选择的共识节点广播给所述局部链中的其他节点,以使所述其他节点对是否同意由选择的所述共识节点提供共识服务进行投票;在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理,包括:在所述可见权限为第一类可见权限以及在接收到所述其他节点发送的共识通过消息时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理。

在上述实现过程中,从局部链中的节点中选出部分节点作为共识节点,使得不用所有节点全部参与共识过程,减少了参与共识过程的节点数量,提高了决策效率。

可选地,所述局部链为根据应用场景的不同或数据隐私程度的不同将所述区块链网络中的多个节点进行划分而形成的网络。

在上述实现过程中,局部链根据应用场景或数据隐私程度进行划分,从而可以根据用户需求划分为不同的局部链,使得可以在局部链内部实现数据的共享,而局部链之间不可以共享数据,提高了数据隐私保护效果。

第二方面,本申请实施例提供了一种区块链网络系统,所述区块链网络系统包括多个节点,将所述多个节点进行划分形成多个网络,每个网络为一局部链,每个局部链内的节点对于业务数据完全可见且具有第一类可见权限,不同局部链之间对于业务数据不可见,从每个局部链中分别选出至少一个节点一起形成的网络作为全局链;在业务数据的可见权限为第一类可见权限时,通过所述局部链中的共识节点对所述业务数据进行共识处理,在业务数据的可见权限为第二类可见权限时,通过所述全局链中的共识节点对所述业务数据进行共识处理。

上述实现过程中,将区块链网络系统中的多个节点划分为局部链和全局链,对业务数据可以实现局部链和全局链两层共识机制,从而使得该业务数据的传播范围大大缩小,提高了数据隐私保护效果。

第三方面,一种区块链节点,所述区块链节点包括:

数据获取模块,用于获取待共识的业务数据,确定所述业务数据的可见权限;

局部链共识处理模块,用于在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理,其中,所述第一类可见权限表明所述业务数据需要在所述局部链内进行共识处理;

全局链共识处理模块,用于在所述可见权限为第二类可见权限时,将所述业务数据发送给全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理,其中,所述全局链为每个局部链中选取的至少一个节点一起形成的网络。

可选地,所述全局链共识处理模块,具体用于在所述可见权限为第二类可见权限时,则先通过所述局部链中的共识节点对所述业务数据进行共识处理后,再通过所述全局链中的共识节点对所述业务数据进行共识处理。

可选地,所述区块链节点还包括:

共识节点选取模块,用于将从所述局部链中选择的共识节点广播给所述局部链中的其他节点,以使所述其他节点对是否同意由选择的所述共识节点提供共识服务进行投票;

所述局部链共识处理模块,用于在所述可见权限为第一类可见权限以及在接收到所述其他节点发送的共识通过消息时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理。

可选地,所述局部链为根据应用场景的不同或数据隐私程度的不同将所述区块链网络中的多个节点进行划分而形成的网络。

第四方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。

第五方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。

本申请实施例提供一种,区块链分层共识方法、区块链网络系统及区块链节点,该方法中,通过局部链中的节点获取待共识的业务数据,确定所述业务数据的可见权限,在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理,在所述可见权限为第二类可见权限时,将所述业务数据发送给全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理,其中,所述全局链为每个局部链中选取的至少一个节点一起形成的网络。可见,通过对待共识的业务数据确定对应的可见权限,然后基于不同的可见权限选择在局部链内或全局链内选择分享该业务数据,即在物联网节点数目较多且网络环境多样时,可以根据信任和数据隐私程度,选择性公开数据,从而使得该业务数据的传播范围大大缩小,提高了数据隐私保护效果,与现有的实现数据隐私保护的区块链技术相比,不存在交易数据随意传播的风险,提高了数据传播的安全性。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种区块链网络的划分示意图;

图2为本申请实施例提供的一种区块链分层共识方法的流程图;

图3为本申请实施例提供的一种区块链网络系统的结构示意图;

图4为本申请实施例提供的一种区块链节点的结构示意图;

图5为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请提供的一种区块链网络与现有的各种区块链网络相同,本申请的区块链网络也是由多个节点组成,每个节点都是具有运算与存储功能的电子设备或模块。例如每个节点是一台或一组计算机、或者是其中具有独立运算和存储功能的一个模块。

首先,对区块链进行介绍,区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。下面对区块链网络的一些概念进行介绍。

区块链网络中的节点可以称为区块链节点,其中区块链网络基于P2P(Peer toPeer,对等网络)网络,每个参与交易和区块存储、验证、转发的P2P网络节点都是一个区块链网络中的节点。

区块链中的用户身份可以使用公钥或者是根据该公钥生成的账户地址表示,并且公钥和私钥是成对出现的,其中私钥由用户掌握而不发布到上述的区块链网络中,公钥或者上述的账户地址可随意发布在区块链网络中。其中,公钥可以通过特定的哈希和编码后成为上述的账户地址。值得一提的是,用户身份和区块链节点不存在一一对应关系,用户可以在任意一个区块链节点上使用自己的私钥。

关于区块链的数据写入,是由区块链节点通过向区块链网络发布交易(Transaction)实现向区块链写入数据。该交易包括:区块链节点按照预设的交易数据格式对生成的交易数据包,以及利用该区块链节点自己的私钥对该交易数据包进行的数字签名,该数字签名用于证明该区块链节点的用户的身份;而后,该交易被区块链网络中的“矿工”(即执行PoW(Proof Of Work,工作证明)共识竞争机制的区块链节点)记录入区块链中产生的新区块,并将该交易发布到区块链网络中,在该交易被其他区块链节点验证通过(其他节点可以从该区块链节点生成的交易中获取该区块链节点的公钥,并根据该区块链节点的公钥对上述的数字签名进行验证,除了验证数字签名之外还可以验证交易数据包是否为规定的数据结构)和接受后,该交易即被写入区块链。其中,区块链中的新区块是由上述的“矿工”通过执行PoW共识竞争机制(该机制可以理解为:各个“矿工”按照区块的预设技术要求,例如按照预设的随机数要求来共同计算随机数,哪一个“矿工”先计算出符合该随机数要求的随机数,该“矿工”产生的区块就作为该新区块)而定期产生的,因此产生新区块的时间间隔通常和上述的预设技术要求相关,通过设置不同的预设技术要求可以改变区块链产生新区块的时间间隔。

其中,区块链中的数据是由该区块链网络中的各区块链节点共同维护的,节点在接收到业务请求时,一般需要经过缓存、共识和存储这三个环节方可将业务请求对应的业务数据存储至区块中,并将该区块上链节点对应的区块链上。当该区块链网络中的多数节点存储该业务数据在各自节点的区块链数据中时,该业务数据才可视为是被存储在各节点共同维护的区块数据中。

共识作为必不可少的环节,目前采用的共识机制有工作量证明(POW)机制、拜占庭容错(PBFT)机制、权益机制证明等多种。下面以工作量证明机制为例进行说明。

具体地,首先节点可接收用户发送的业务请求,该业务请求中包含业务数据,其中该业务请求可以是用户直接输入该节点的,也可以接收区块链网络中其他节点广播的业务请求。具体该节点如何接收该业务请求对业务的执行并不造成影响。

之后,该节点可根据该业务请求确定对应的业务数据。其中,该节点根据业务请求确定对应的业务数据的过程可称为节点受理业务请求,至于如何确定该业务数据可能随着具体情况的不同而不同。如常见的业务请求中携带的业务数据以及包含了业务需要执行的内容,例如,对于交易业务请求,该交易业务请求中携带有支付方地址、支付方金额、支付金额、收款方地址等信息,则接收该业务请求的节点可直接根据该业务请求确定该业务数据。又如,由于通常业务请求中还可包含针对智能合约的指令等业务数据。这样,该节点在受理该业务请求时,根据业务请求中的业务数据的不同可能还需要根据业务数据进行业务处理,并得到业务处理的结果,则节点在确定业务数据时,也可将该业务处理的结果作为该业务数据。当然,该节点也可将该业务请求中携带的业务数据以及进行业务处理的结果一并作为该业务请求对应的业务数据。具体的该业务数据的内容可根据区块链的配置而不同,只要与该业务请求对应的,需要存储在该区块链数据中的数据即可视为是业务数据。

需要说明的是,区块链网络中的节点针对一个业务请求可以分为受理节点和非受理节点,这里的受理节点是指接收用户或者其他设备发送该业务请求的节点,非受理节点是指通过广播方式从其他节点获取该业务请求的节点。

当确定的该业务数据没有被存储在已经经过共识的区块链数据中时,该业务数据为待共识的业务数据,并可以被存储在该节点的缓存中。

然后,在该节点确定该待共识的业务数据之后,该节点可将该待共识的业务数据向该区块链网络中的其他节点进行广播,也就是同步至该区块链网络中的其他节点中。这样,该区块链网络中的各节点可以接收通过广播的方式发送的该待共识的业务数据。在后续进行共识时,该区块链网络中的各节点可以对该待共识的业务数据进行共识。

最后,该区块链网络中的各节点可以根据该区块链的共识机制,确定发起共识的节点,并由该发起共识的节点从该节点存储的各待共识的业务数据中,选择用于共识的业务数据。进而由该区块链网络中的各节点可根据该区块链的共识机制,对该发起共识的节点选择的用于共识的业务数据进行共识。

其中,该区块链网络中的每个节点在对该发起共识的节点发送的各待共识的业务数据进行共识时,可判断接收到的各待共识的业务数据,是否也均存储在该节点缓存中的待共识列表中,若是,则确定接收到的各待共识业务共识通过,并将记录各待共识的业务数据的新区块存储在该节点维护的区块链数据中,若否,则不存储。

需要说明的是,上述局部链中的节点可以为物联网节点。

请参照图1,本申请实施例中,为了使业务数据的传播范围大大缩小,从而提供数据隐私保护效果,则将区块链网络分为至少两层网络,其包括局部链和全局链。其中,局部链为区块链网络中的多个节点形成的网络,全局链为每个局部链中选取的至少一个节点一起形成的网络。

所述局部链为根据应用场景的不同或数据隐私程度的不同将所述区块链网络中的多个节点进行划分而形成的网络。例如,在区块链网络中包含有多个节点,可以将这些节点按照地理位置或网络环境进行分类,如不同的局域网环境中,物联网用户和设备可能希望在小范围内共享部分隐私数据,实现小范围的访问控制,在全局范围内用户和设备希望提供其中部分数据,包括被其它局域网环境中节点关系的数据,来达到全局共识,借此实现全局范围的访问控制或者数据共享,以及不同网络环境下的并发处理。另外其局部链的划分还可以依据共享数据的隐私程度划分,例如,物联网环境下,特别是当全网采用ipv6编址时,物联网用户和设备可能通过组件不同信任体系来保护链上的数据,同时加速决策过程,相对于采用隐私保护手段的单链模式,这是一种更加灵活,或者过渡的方式,让物理网应用方更加愿意将数据上链共享。

不同的局部链可能代表不同的物联网应用场景,以智能家居为例,各个局部链可以表示不同的办公和家庭环境,并且可以在同一个或者不同的局域网环境下,如图1中,假设局部链1中共享和传递的是某用户在智能家居环境中记录的数据,局部链2可能是办公环境中智能设备和人直接传递和记录的数据,局部链3则有可能是临时外出等环境中需要共享和记录的数据。

需要说明的是,不同的局部链和局域网环境并不一定是完全对应的关系,不同局域网下的用户与设备可能因数据隐私程度不同,常常属于不同的局部链,但同一个局域网下,也可能存在多个局部链,通过灵活的数据共享,来完成物联网场景定义的功能。

局部链的划分根据应用场景设计,同一局部链的节点可能具有类似属性,或者同等安全级别,在局部链中记录需要共享的数据。当同一局部链的节点达成共识,数据上链后,向上一级局部链(或者整个信任体系的私有链)共享数据,即发起提议。同一局部链中的节点可以看到数据交互的全部过程,不同的局部链中的节点不能看到对方的数据交互过程。

另外,由于物联网应用场景常常是以小型局域网络为单位,并且为了加快决策过程,一般在划分后的局部链中划分的节点不会太多,当节点数目较少时,局部链中所有的节点均参与共识和验证,如果节点数目过多,则可从其中选取一些节点来参与共识和验证。

全局链为每个局部链中选取的至少一个节点一起形成的网络,如图1中,可从局部链1中选取至少一个节点、从局部链2中选取至少一个节点以及从局部链中选取至少一个节点一起形成全局链,也就是说,全局链中的节点是从局部链中的节点选出的。

下面以一个实际的例子对全局链和局部链进行说明。

假设某个区块链网络是某个单位的不同部门组成,在单位管理中人事部门及财务部门的数据通常需要对其他部门保密,而管理部门需要了解各部门的运营情况和数据,因此可将人事部门所保护的各节点分在一个局部链内,一个财务部门所保护的各节点分在一个局部链内,管理部门由人事部门和财务部门各自的至少一个节点组成。人事部门内部的数据可以共享可见,财务部门内部的数据可以共享可见,但是人事部门和财务部门之间数据不可以共享和可见,但是若管理部门需要了解人事部门和财务部门的运营情况和数据时,可以由人事部门和财务部门的选出的节点来对数据在管理部门内部进行分享,即管理部门内部可以进行数据共享可见。

需要说明的是,上述区块链网络分为了局部链和全局链两层,上述仅仅只为示例,还可以从全局链中的节点中选择一些节点来作为上层节点,如上述的管理部门之上还存在总裁办部门,总裁办部门可以由管理部门中的至少两个节点组成,管理部门可以将某些数据上报至总裁办部门进行共享。

请参照图2,图2为本申请实施例提供的一种区块链分层共识方法的流程图,该方法应用于局部链中的节点,该局部链为区块链网络中的多个节点形成的网络。所述方法包括如下步骤:

步骤S110:获取待共识的业务数据,确定所述业务数据的可见权限。

为了描述的简洁,以下描述过程中局部链中的节点为局部链节点,全局链中的节点为全局链节点。在本申请实施例中,局部链节点可以作为业务数据的受理节点,也可以不作为业务数据的受理节点,而作为用于发起共识处理的节点,或者本次共识处理的主节点,这里不做具体限定。

若局部链中节点作为业务数据的受理节点,那么该局部链节点可以从本地存储的所受理的业务数据中捞取一部分业务数据作为待共识的业务数据,以便于后续针对捞取的该部分业务数据发起共识处理。

若局部链节点不作为业务数据的受理节点而作为本次共识处理的主节点,那么该局部链节点可以从待共识的业务数据资源池中捞取一部分业务数据作为待共识的业务数据,以便于后续发起针对捞取到的该部分业务数据的共识处理。

具体地,在获取到待共识的业务数据后,确定所述业务数据的可见权限,其中,可以先确定产生该待共识的业务数据的业务,然后再确定待共识的业务数据对应的业务类型,进而根据业务类型确定业务数据的可见权限。

这里的业务类型可以根据业务的功能不同进行划分,例如:业务可以分为订单类型(即在订单生成阶段产生的业务数据对应的业务类型为订单类型)、支付类型(即包含支付信息的业务数据对应的业务类型为支付类型)等。也可以根据业务内容不同进行划分,例如:业务可以分为发卡类型(即包含发卡信息的业务数据对应的业务类型为发卡类型)、交易类型(即包含交易信息的业务数据对应的业务类型为交易类型)等等,这里对于业务类型的划分可以不做具体限定,

在获取到待共识的业务数据之后,分别确定各业务数据对应的业务类型,由于在实际应用中有些业务类型存在交叉覆盖的情况,此时在确定各业务数据对应的业务类型时,可以采用聚类的方式(或者其他方式,这里不做具体限定)确定一个覆盖范围较大的业务类型作为获取待的待共识的业务数据对应的业务。

比如:获取到的待共识的业务数据对应的业务类型既有订单类型又有支付类型,那么根据业务内容来讲的话,这些业务数据都属于交易类型,那么可以确定这些待共识的业务数据对应的业务类型为交易类型。

需要说明的是,这里所确定的业务类型可以为一种,也可以为多种。如果确定的业务类型为多种,那么在后续步骤中,这多种业务类型所对应的共识算法可以使用同一个共识算法;或者这多种业务类型分别对应多个共识算法,但在多个共识算法中可以确定出一种共识算法对于这多种业务类型都适用。

在上述确定业务数据的业务类型后,可以对每个业务类型设置对应的可见权限,即预先对各个业务类型设置了对应的可见权限,即全局链和局部链对业务数据的可见权限不一致,若业务数据需要在局部链内共享时,其对应的可见权限为第一类可见权限,若业务数据需要在全局链内共享时,其对应的可见权限为第二类可见权限。

其中,可以自行定义哪些业务类型的业务数据为第一类可见权限,哪些业务类型的业务数据为第二类可见权限,例如,可将业务类型为订单类型的业务数据设置为第一类可见权限,可将业务类型为支付类型的业务数据设置为第二类可见权限。当然,其设置的可见权限可以根据实际需求进行设置。

步骤S120:在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理。

在上述确定业务数据的可见权限后,若该可见权限为第一类可见权限时,将所述业务数据发送给局部链中的共识节点,然后通过局部链中的共识节点对业务数据进行共识处理。

其中,可以从局部链中的节点中选择一些节点作为局部链的共识节点,当然若局部链的节点数量较少时,局部链中的所有节点均可作为共识节点,通过共识节点来对业务数据进行共识处理。

步骤S130:在所述可见权限为第二类可见权限时,将所述业务数据发送给全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理。

在上述确定业务数据的可见权限后,若该可见权限为第二类可见权限时,则将业务数据发送给全局链中的共识节点,从而通过全局链中的共识节点对所述业务数据进行共识处理。

其中,在业务数据为第一类可见权限时,表明该业务数据需要在局部链内进行分享,在业务数据为第二类可见权限时,表明该业务数据需要在全局链内进行分享。

另外,进行共识处理的共识算法可以包含但不限于以下几种:工作量证明(Proofof Work;PoW)、权益证明(Proof of Stake;POS)、股份授权证明(Delegate proof ofStake;DPoS)、实用拜占庭容错(practical Byzantine Fault Tolerance;PBFT)、授权拜占庭容错(Delegated Byzantine Fault Tolerance;DBFT)等等。

所以,在本实施例中,通过对待共识的业务数据确定对应的可见权限,然后基于不同的可见权限选择在局部链内或全局链内选择分享该业务数据,即在物联网节点数目较多且网络环境多样时,可以根据信任和数据隐私程度,选择性公开数据,从而使得该业务数据的传播范围大大缩小,提高了数据隐私保护效果,与现有的实现数据隐私保护的区块链技术相比,不存在交易数据随意传播的风险,提高了数据传播的安全性。并且,由于参与共识的节点大大减少,还可以提供决策效率。

在上述实施例的基础上,由于局部链中的节点可以全部作为共识节点,也可以只选取其中一部分节点作为共识节点,其过程为:从所述局部链中选择的共识节点广播给所述局部链中的其他节点,以使所述其他节点对是否同意由选择的所述共识节点提供共识服务进行投票,若业务数据的可见权限为第一类可见权限时,接收到其他节点发送的共识通过消息,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理。

当局部链中的共识节点可对该业务数据的共识处理操作结束后,局部链节点可以在接收到选择的共识节点发送的对所述业务数据的共识结果时,若确定该业务数据的共识结果需要在局部链内进行全部共享,则将该业务数据的共识结果发送给局部链中没有参与共识的共识节点,然后可以将业务数据的共识结果存储至区块链中。

在上述实现过程中,从局部链中的节点中选出部分节点作为共识节点,使得不用所有节点全部参与共识过程,减少了参与共识过程的节点数量,提高了决策效率。

另外,若业务数据的可见权限为第二类可见权限时,其需要在全局链内进行分享,由于全局链中的节点为局部链中的节点组成的,所以,业务数据在全局链内分享之前,可以先通过所述局部链中的共识节点对所述业务数据进行共识处理后,再通过所述全局链中的共识节点对所述业务数据进行共识处理,也就是说,在全局链中分享的数据可以是局部链内经过共识处理后选择的某些业务数据进行分享到全局链中。

在上述实现过程中,在将业务数据在全局链中共识前,先在局部链中进行共识,然后再在全局链中进行共识,从而使得在全局链中共识的数据是用户希望共享和传递的数据,从而提高了数据隐私保护效果。

上述局部链或全局链中的节点是动态变化的,如若参与全局链的共识节点数量较多时,可以动态第划分局部链,即可以考虑事先定义数学模型,通过该数学模型来对局部链进行动态划分。

其中,局部链或全局链中有的节点可能为恶意攻击节点,在局部链或全局链内部设置有检测是否为恶意攻击节点的机制,若局部链或全局链若检测到某个节点为恶意攻击节点时,则可将这恶意攻击节点从局部链或全局链中剔除,其不可以继续参与后续的数据分享。

另外,局部链中的节点在进行共识处理之前,还需要进行初始化,其初始化的过程为:收集本地数据,比如准备需要上链的数据,产生密钥对,依赖PKI认证身份的话还需要申请证书,向链上注册自己的必要信息,主要是公钥,然后启动局部链共识和验证服务,完成一些注册表项的初始化,本地存储数据结构初始化,节点公式和验证等处理进程的启动,监听来自其他节点的提议等。

其节点的初始化过程为互相验证身份的过程,从局部链中的节点选出的节点作为全局链的节点时,该全局链的节点也需要进行初始化过程,其对节点的初始化过程跟现有技术中的验证过程一致,在此不再过多赘述。

另外,若有新的节点要加入到全局链或局部链中时,加入的节点需要提供局部链或全局链身份认证依据,局部链或全局链依靠当前节点的共识完成对新加入节点的认证,如果认证通过,则新加入节点向链上注册消息,其可参与局部链或全局链的共识和验证,启动相关准备工作。

请参照图3,图3为本申请实施例提供的一种区块链网络系统的结构框图,所述区块链网络系统包括多个节点,将所述多个节点进行划分形成多个网络,每个网络为一局部链,每个局部链内的节点对于业务数据完全可见且具有第一类可见权限,不同局部链之间对于业务数据不可见,从每个局部链中分别选出至少一个节点一起形成的网络作为全局链;在业务数据的可见权限为第一类可见权限时,通过所述局部链中的共识节点对所述业务数据进行共识处理,在业务数据的可见权限为第二类可见权限时,通过所述全局链中的共识节点对所述业务数据进行共识处理。

该实施例的具体实现过程请参照上述方法的实现过程,在此不再过多赘述。

请参照图4,图4为本申请实施例提供的一种区块链节点200的结构框图,所述区块链节点200包括:

数据获取模块210,用于获取待共识的业务数据,确定所述业务数据的可见权限;

局部链共识处理模块220,用于在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理,其中,所述第一类可见权限表明所述业务数据需要在所述局部链内进行共识处理;

全局链共识处理模块230,用于在所述可见权限为第二类可见权限时,将所述业务数据发送给全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理,其中,所述全局链为每个局部链中选取的至少一个节点一起形成的网络。

可选地,所述全局链共识处理模块230,具体用于在所述可见权限为第二类可见权限时,则先通过所述局部链中的共识节点对所述业务数据进行共识处理后,再通过所述全局链中的共识节点对所述业务数据进行共识处理。

可选地,所述区块链节点还包括:

共识节点选取模块,用于将从所述局部链中选择的共识节点广播给所述局部链中的其他节点,以使所述其他节点对是否同意由选择的所述共识节点提供共识服务进行投票;

所述局部链共识处理模块220,用于在所述可见权限为第一类可见权限以及在接收到所述其他节点发送的共识通过消息时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理。

可选地,所述局部链为根据应用场景的不同或数据隐私程度的不同将所述区块链网络中的多个节点进行划分而形成的网络。

请参照图5,图5为本申请实施例提供的一种电子设备的结构示意图,所述电子设备可以包括:至少一个处理器110,例如CPU,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储区块链节点。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,电子设备执行上述图2所示方法过程。

本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图2所示方法实施例中电子设备所执行的方法过程。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的区块链节点的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本申请实施例提供一种,区块链分层共识方法、区块链网络系统及区块链节点,该方法中,通过局部链中的节点获取待共识的业务数据,确定所述业务数据的可见权限,在所述可见权限为第一类可见权限时,将所述业务数据发送给所述局部链中的共识节点,以通过所述局部链中的共识节点对所述业务数据进行共识处理,在所述可见权限为第二类可见权限时,将所述业务数据发送给所述全局链中的共识节点,以通过所述全局链中的共识节点对所述业务数据进行共识处理,其中,所述全局链为每个局部链中选取的至少一个节点一起形成的网络。可见,通过对待共识的业务数据确定对应的可见权限,然后基于不同的可见权限选择在局部链内或全局链内选择分享该业务数据,即在物联网节点数目较多且网络环境多样时,可以根据信任和数据隐私程度,选择性公开数据,从而使得该业务数据的传播范围大大缩小,提高了数据隐私保护效果,与现有的实现数据隐私保护的区块链技术相比,不存在交易数据随意传播的风险,提高了数据传播的安全性。

在本申请所提供的几个实施例中,应该理解到,所揭露的区块链节点和方法,也可以通过其它的方式实现。以上所描述的区块链节点实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的区块链节点、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号