一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于隐私保护的区块链访问权限控制方法和区块链系统与流程

2021-12-04 02:10:00 来源:中国专利 TAG:
1.本技术涉及区块链技术,具体地,涉及一种基于隐私保护的区块链访问权限控制方法和区块链系统。
背景技术
::2.区块链技术是一种多方共同维护的账本技术,由共识机制、密码算法、网络路由、合约脚本等多种技术融合组成,具有分布式可信、难篡改、多方维护等技术特点。这些技术特点使得区块链被认为是互联网普及以来最具颠覆性的技术之一,受到全球各方的高度关注。3.目前在对区块链系统中内容进行访问时,会对访问对象进行一次角色确认,如管理员等。当角色确认通过,该访问对象具有访问区块链系统的权限后,访问对象即可获得所访问数据,如管理员角色确认通过后,其可以访问区块链系统中所有数据。但是由于区块链上的数据是透明的,会导致成员敏感数据泄露,阻碍区块链的业务发展,这种方式导致区块链系统中的数据有被泄露的风险。技术实现要素:4.本技术实施例中提供了一种基于隐私保护的区块链访问权限控制方法和区块链系统,以解决上述技术问题。5.根据本技术实施例的一个方面,提供了一种基于隐私保护的区块链访问权限控制方法,应用于区块链系统,所述区块链系统包括多个区块链节点,每个区块链节点所在的节点设备中还部署有该区块链节点对应的分布式节点,各区块链节点分别对应的分布式节点组成一分布式存储系统,所述方法包括:所述第一区块链节点接收第一客户端发送的访问请求,所述访问请求包括访问内容的指示信息、所述第一客户端的角色确认信息和权限认证信息,所述第一区块链节点是所述区块链系统中的任意一个区块链节点;第一区块链节点根据所述角色确认信息确定所述第一客户端具有访问所述区块链系统的第一权限后,基于所述指示信息从所述分布式存储系统中确定所述访问内容所在的分布式节点;第一区块链节点根据所述权限认证信息确定所述第一客户端具有访问所述访问内容所在的分布式节点的第二权限后,从所述访问内容所在的分布式节点获取所述访问内容,并返回给所述第一客户端。6.根据本技术实施例的另一个方面,提供了一种区块链系统,所述区块链系统包括多个区块链节点,每个区块链节点所在的节点设备中还部署有该区块链节点对应的分布式节点,各区块链节点分别对应的分布式节点组成一分布式存储系统;第一区块链节点包括接收模块、分布式节点确定模块以及访问权限控制模块,第一区块链节点是第一区块链系统中的任意一个区块链节点;所述接收模块,用于接收第一客户端发送的访问请求,所述访问请求包括访问内容的指示信息、所述第一客户端的角色确认信息和权限认证信息;所述分布式节点确定模块,用于在根据所述角色确认信息确定所述第一客户端具有访问所述区块链系统的第一权限后,基于所述指示信息从所述分布式存储系统中确定所述访问内容所在的分布式节点;所述访问权限控制模块,用于在根据所述权限认证信息确定所述访问对象具有访问所述访问内容所在的分布式节点的第二权限后,从所述访问内容所在的分布式节点获取所述访问内容,并返回给所述第一客户端。7.本技术实施例提供的方案中,在接收到第一客户端发送的访问请求后,根据角色确认信息确定第一客户端具有访问区块链系统的第一权限后,并不直接确定其是否可以对区块链系统链下的分布式存储系统中的分布式节点进行访问,而是从分布式存储系统中确定访问内容所在的分布式节点,进而根据权限认证信息确定第一客户端具有访问所述访问内容所在分布式节点的第二权限后,再从所述访问内容所在分布式节点获取所述访问内容,返回给第一客户端。通过第一权限和第二权限的双重确认,一方面实现了链下存储场景中内容访问权限的灵活控制,另一方面降低了该场景下采用一次性权限认证带来的成员敏感数据泄露风险。附图说明8.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1示出了本技术实施例中提供的区块链系统与分布式存储系统的一种架构示意图;图2示出了本技术实施例中提供的一种主从链架构示意图;图3示出了本技术实施例提供的一种基于隐私保护的区块链访问权限控制方法的流程示意图;图4示出了本技术实施例提供的在区块链系统和分布式存储系统中存储数据的流程示意图之一;图5示出了本技术实施例提供的区块链系统与分布式存储系统的另一种架构示意图;图6示出了本技术实施例提供的在区块链系统和分布式存储系统中存储数据的流程图之二;图7示出了本技术实施例提供的从区块链系统和分布式存储系统中查询数据的流程;图8示出了图7所示步骤s707的子步骤示意图;图9示出了图3所示步骤s303的子步骤示意图;图10示出了本技术实施例提供的一种区块链节点的功能模块示意图。具体实施方式9.经发明人研究发现,目前在对区块链系统中内容进行访问时,会对访问对象进行一次角色确认,如管理员等。当角色确认通过,访问对象具有访问区块链系统的权限后,区块链系统中的数据可以被访问对象访问,如管理员角色确认通过后,其可以访问区块链系统中所有数据。具体而言,在链下存储场景中,实际数据通常存储在链下分布式存储系统中,而各个区块链节点均具有访问分布式存储系统的权限,如果仅通过一次角色确认或权限验证,即允许访问对象查看区块链系统中所有数据,则面临成员敏感数据泄露的风险。10.基于此,本技术实施例提供一种基于隐私保护的区块链访问权限控制方法,区块链系统中的任一区块链节点接收第一客户端的访问请求,根据第一客户端的角色确认信息确定第一客户端具有访问区块链系统的第一权限后,并不直接允许其进行数据访问,而是进一步基于第一客户端所需访问内容的指示信息从分布式存储系统中确定访问内容所在的分布式节点,并根据权限认证信息确定第一客户端具有访问所述访问内容所在的分布式节点的第二权限后,再从所述访问内容所在的分布式节点获取所述访问内容并返回给第一客户端,前述的双重权限确认降低了链下存储场景中成员敏感数据泄露的风险。11.请参照图1,图1示出了本技术实施例提供的一种链下存储场景的区块链系统100的架构示意图。区块链系统100包括多个区块链节点,如区块链节点110、120、130和140。可以理解,图1所示的区块链节点仅为示意,区块链系统100还可以包括更多或更少的区块链节点,本技术实施例对此没有限制。12.每个区块链节点所在的节点设备中还部署有分布式节点,同一节点设备中部署的区块链节点和分布式节点相互对应。可以理解,区块链节点可以是节点设备上的硬件资源及节点设备上部署的区块链客户端组成的整体。区块链系统100中的各区块链节点各自对应的分布式节点可以组成一分布式存储系统,如dht(distributedhashtable,分布式哈希表)系统,本实施例对此没有限制。13.示例性地,区块链节点110部署在节点设备11上,节点设备11还部署有分布式节点210。区块链节点120部署在节点设备12上,节点设备12还部署有分布式节点220。区块链节点130部署在节点设备13上,节点设备13还可以部署有分布式节点230。区块链节点140部署在节点设备14上,节点设备14还可以部署有分布式节点240。其中,分布式节点210、220、230和240可以组成一分布式存储系统。值得说明的是,分布式节点可以理解成所在节点设备的硬件资源与分布式节点的守护进程组成的整体。14.可选地,每个区块链节点可以部署有一智能合约,该智能合约可以与该区块链节点所在节点设备中的分布式节点的守护进程通信连接。举例来说,区块链节点110可以部署有与分布式节点210的守护进程通信连接的智能合约,区块链节点120可以部署有与分布式节点220的守护进程通信连接的智能合约,区块链130可以部署有与分布式节点230的守护进程通信连接的智能合约,区块链140可以部署有与分布式节点240的守护进程通信连接的智能合约。15.可选地,区块链系统100可以作为从链系统与另一作为主链系统的区块链系统通信,具体地,区块链系统100包括一骨干节点,骨干节点可以与主链系统中的一个超级节点锚定。16.其中,主链系统和多个从链系统可以采用“1 n”主从链架构,例如图2所示,即为由主链系统310和从链系统320a、320a’、320b、320b’组成的主从链架构的区块链系统。其中,图2所示的任意一个从链系统均可以充当本实施例中的区块链系统100。17.可以理解,上述的主链系统的功能可以是保证链群高效运行,为整个链群生态的健康发展保驾护航。例如:为整个链群结构提供公共服务,促进链群生态蓬勃发展,为各个区块链提供跨链交易平台及规范,促进数据共享、共融;为各行业提供托管服务,保证数据不可篡改和可恢复;提供可信认证,保证节点及其数据跨域可信性,拥有认证权限的区块链节点对节点或标识提供认证服务;为各区块链提供监管服务和安全监测服务,确保整个链群结构中各节点的合法合规性和运行安全性;主链系统对外开放应用服务,服务节点可自由进入或退出主链系统,以享受主链系统的开放服务,促进企业能力提升。18.示例性地,主链系统310可以包括多个超级节点(如图2所示的312、313、314),进一步地,主链系统310还可以包括一个监管节点311。19.本技术实施例中,超级节点负责执行主链系统的共识机制,同时具备数据托管、跨链网关、资质审核、链群管理等功能;提供可信计算环境,基于可信计算硬件来运行预言机服务;获取外部数据,经过核验后可对外提供可信数据服务。20.链群中所有节点可申请成为超级节点候选人,并拥有超级节点被选举权。21.超级节点负责节点群建设,针对自由接入的服务节点的数据同步权限进行管理,提升主链整体服务能力。22.可选地,监管节点可以负责对整个链群用户和节点数据、行为进行合法合规监管,并对违法违规行为进行处置,如关停服务、限制权限、控制流量、不可信用户标记等;同时,监管节点可以对超级节点和骨干节点等具有管理权限的节点进行资质审核和可信认证,确保关键节点的可信性。应当理解,关于监管节点的描述仅为举例说明,并非用于限定本技术的保护范围。23.主链系统可以具有基础功能和服务功能,其中基础功能包括但不限于:可插拔架构,高性能共识机制,高可靠智能合约,隐私保护,加密机制,自治理,同构异构链接入,激励机制。服务功能包括但不限于:数字身份bid(blockchain‑basedidentifier,基于区块链的标识),可信认证服务,多标识根区管理,标识注册解析,托管服务,公共服务,接口服务,跨链。24.监管节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:数据内容监管,节点行为监管,超级节点资质审核,骨干节点资质审核,应用违规处置,节点违规处置,超级节点认证,骨干节点认证。25.超级节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:公共数据管理,用户/节点身份认证,对外公共服务,节点群建设与管理,从链准入认证,链群管理,合约管理,可信计算环境,大数据分析,运行监测,主链共识,跨链网关,提供可信数据服务,基于可信硬件提供预言机服务。26.通过主链系统的监管节点和超级节点,可以实现共享交互平台,监测监管服务,平等协作共治,生态建设运营等。27.本实施例中,从链系统包括一个骨干节点和多个服务节点。例如图2所示,从链系统320a包括骨干节点320a‑1和服务节点320a‑2、320‑a‑3,从链系统320b包括骨干节点320b‑1和服务节点320b‑2、320b‑3。28.本实施例中,从链系统的基础功能是保证骨干节点下属的从链系统高效运行,服务功能为从链系统业务正常开展、产业生态良性发展提供保障。例如:根据业务场景不同,从链系统支持其具体的个性化业务活动,并支持其独立执行共识。29.从链系统的接入方式可以分为两种:一种是基于主链系统创建同构从链系统,另一种是现有异构区块链系统根据主链系统的接口规范,开发接口,以接入主链系统。30.从链系统接入需要向主链系统递交申请,并通过骨干节点与主链系统对接。31.从链系统可使用整个链群的公共服务或资源,也可以根据需求部署个性化应用或智能合约。32.从链系统可以是基础从链系统,也可以是区域性的从链系统,还可以是行业从链系统等,本技术实施例对此没有限制。33.本技术实施例中,骨干节点具有锚定主链系统、执行从链系统共识、从链系统监管、智能合约部署等功能。如上文描述的,从链系统可以通过骨干节点与主链系统执行跨链交互过程。从链系统之间可以共用一个骨干节点,也可以是每个从链系统包括一个骨干节点,即从链系统与骨干节点之间可以是一一对应的关系。例如图2所示,从链系统320a与320a’共用一个骨干节点320a‑1。其中,从链系统320a’包括骨干节点320a‑1以及服务节点320a’‑4和320a’‑5。34.监管职责是由主链系统中的监管节点指派地方监管部门参与监管活动。35.服务节点是指执行具体业务活动的区块链节点,其权限由骨干节点统一分配管理。除此之外,从链系统还可以包括共识节点,即用于执行共识的区块链节点。36.从链系统的功能架构说明如下:从链系统也具有基础功能和服务功能,其中基础功能包括但不限于:可插拔架构,高性能共识机制,高可靠智能合约,隐私保护,加密机制,自治理,主链互通,激励机制。服务功能包括但不限于:数字身份bid,可信认证服务,多标识融合管理,标识注册解析,个性化定制服务,对外服务,接口服务,跨链。37.骨干节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:锚定主链系统,从链系统管理,从链系统的节点权限管理,从链系统共识,对外提供服务,智能合约订制,可插拔组件配置,参与链群投票。38.共识节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:智能合约订制,同步从链数据,对外提供服务,从链共识,执行具体业务活动,参与链群投票。39.服务节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:参与投票链群,同步从链数据,智能合约订制,对外提供公共服务,使用链群公共服务,执行具体业务活动。40.通过从链系统的骨干节点、共识节点和服务节点,可以实现业务自治,独立共识,服务订制,公共资源共享。41.应当理解,上文对于主从链架构的介绍仅为示例,而并非对本技术保护范围的限制。42.请一并参照图1和图3,下面结合图1所示应用场景,对本技术实施例提供的应用于图1所示应用场景的区块链访问权限控制方法,进行详细描述。所述区块链访问权限控制方法可以包括图3所示的如下步骤:s301,第一区块链节点接收第一客户端发送的访问请求,所述访问请求包括访问内容的指示信息、所述第一客户端的角色确认信息和权限认证信息。43.其中,第一区块链节点可以是区块链系统100中的任意一个区块链节点。具体地,如果区块链系统100是如图2所示的从链系统,第一区块链节点例如可以是骨干节点,在此情况下,访问请求最初可以是第一客户端向目标超级节点发送的,因此,第一区块链节点可以从目标超级节点处接收所述访问请求。可以理解,这里的第一客户端可以理解成访问对象。基于此,s301中第一区块链节点接收第一客户端发送的访问请求的步骤可以通过如下方式实现:骨干节点接收目标超级节点从所述第一客户端处接收并转发的所述访问请求。44.这里的第一客户端可以是个人用户的计算机终端中的应用程序或某个应用程序的进程,也可以是其他从链系统中的区块链节点。可以理解,其他从链系统是指与s301中骨干节点所属从链系统不同的从链系统。实施过程中,当所述第一客户端想要访问一个从链系统(如图2所示的320a)中的区块链节点(如图2所示的服务节点320a‑2)时,该第一客户端可以向从链系统320a的骨干节点320a‑1所锚定的目标超级节点(即超级节点312)发送所述访问请求,再由超级节点312将所述访问请求转发给骨干节点320a‑1,骨干节点320a‑1可以进一步将所述访问请求转发给服务节点320a‑2。45.所述访问请求中的角色确认信息可以用于确认所述访问对象的角色,如用户名,密码等。46.所述访问请求中的权限认证信息可以用于确认所述访问对象当前是否有访问所述访问内容所在的区块链节点(如图2所示的服务节点320a‑2)的权限,例如用于描述所述访问对象可以对数据进行何种处理(如,数据读取、数据删除或同时进行数据读取和删除等)的审批单。47.s302,第一区块链节点根据所述角色确认信息确定所述第一客户端具有访问所述区块链系统的第一权限后,基于所述指示信息从所述分布式存储系统中确定所述访问内容所在的分布式节点。48.第一区块链节点根据所接收访问请求中的角色确认信息确定第一客户端具有访问区块链系统100的第一权限的方式为现有方案,即根据用户名和密码确认用户身份的方案。如确认访问对象的用户身份为管理员,那么可以确定访问对象具有访问从链系统的权限。如果确认访问对象的用户身份为访客,那么可以确定其不具有访问区块链系统100的权限。49.本技术实施例中,区块链系统100的每个区块链节点存储有分布式账本(又被称为“区块链副本”或“本地区块链”,即由区块连接成的链),分布式账本包括多个内容标识以及每个内容标识与至少一个分布式节点标识之间的对应关系。这里的内容标识和分布式节点标识,均可以是采用相同算法生成的相同位数的唯一标识id。50.一种实施方式中,请参照图4,待存储数据可以通过如下流程进行存储。51.s401,第二客户端向区块链系统100中的区块链节点提交数据存储交易、第一密文和第二密文。52.其中,第二客户端可以是普通用户的客户端,在此相当于数据公布者。第一密文是利用第二客户端的第一加密密钥对待存储内容(content)加密而得到的密文。第二密文是利用第二客户端的私钥对第一解密密钥加密而得到的密文。53.数据存储交易包括id、描述(description)、访问策略(accesspolicy)、服务信息(serviceinformation)、时间戳(timestamp)、公钥(publickey)、签名(signature)等多个字段。其中,id、description、serviceinformation、timestamp、publickey、signature均为必选字段,accesspolicy为可选字段。进一步地,serviceinformation可以包括两个可选项,分别为kid和url。具体地,在待存储内容存储于分布式存储系统200的情况下,需要将待存储内容的hash值填充于serviceinformation中的kid字段。在待存储内容存储于本地存储的情况下,可以将待存储内容在本地存储中的url地址填充于serviceinformation中的url字段。54.数据存储交易中的id用于唯一地标识该交易。55.数据存储交易中的描述,是待存储内容的描述信息(也可以称为“元信息”、“元数据”或者“元描述”)。56.如上所述,数据存储交易中的serviceinformation为可选填充字段,当待存储内容被存储于分布式存储系统200的分布式节点的情况下,基于待存储内容的私密性确定是否设置accesspolicy字段的值。具体地,如果待存储内容是公开数据,则可以不设置accesspolicy字段的值,即accesspolicy字段为空。如果待存储内容是部分公开数据(即,包含隐私数据),则可以将该待存储内容对应的访问策略的url地址设置于数据存储交易的accesspolicy字段中。如此,后续进行数据访问时,可以通过数据存储交易中的accesspolicy字段的值获得所需访问的数据的访问策略的url地址,进而获得所需访问数据的访问策略,并基于该访问策略验证当前访问对象是否具有访问权限。57.s402,第二区块链节点对数据存储交易进行校验。58.其中,第二区块链节点可以是区块链系统100中的任意一个区块链节点。并且,第二区块链节点和第一区块链节点可以是同一个区块链节点,也可以是不同的区块链节点,本实施例对此没有限制。59.s403,若所述数据存储交易通过校验,所述第二区块链节点从所述分布式存储系统中确定第一存储节点,所述第一存储节点是用于存储所述第一密文的分布式节点。60.s404,所述第二区块链节点确定所述第一密文的内容标识,将所述第一密文及所述内容标识写入所述第一存储节点。61.具体地,如图5所示,每个分布式节点所在节点设备还可以部署有路由节点,节点设备可以存储有路由机制或算法、路由表,还可以部署有执行路由机制或算法的进程。这里,执行路由机制或算法的进程、路由表、运行进程的硬件和软件资源、存储路由表的资源可以视为一个整体,该整体即为一个路由节点。本实施例中,多个节点设备上的路由节点可以组成一路由寻址网络。62.本实施例中,具体可以采用dht、chord、pastry或kad等路由算法,每个路由节点按照相应算法维护路由节点信息,并存储路由节点id和ip地址的对应关系。63.以kad路由机制为例,根据节点标识二进制位数n,每个路由节点均维护n个k桶,每个k桶记录当前路由节点已知的与自身距离为的其他路由节点的网络信息,该网络信息包括nid(nodeid,节点id)、ip地址、udp端口号。本实施例中,每个k桶最多纪录k个对等节点信息,即每个路由节点最多记录与自身距离为的k个其他路由节点的网络信息。64.在存储过程中,第二区块链节点所在节点设备中的路由节点,计算第一密文的hash值,得到第一密文(即密文形式的待存储内容,后文称“ccontent”)的kid。将kid分别与本节点维护的多个路由节点的节点id(nid)进行异或运算,得到kid与多个nid的逻辑距离,选取与kid的逻辑距离最小的k个nid,将该k个nid指示的分布式节点确定为所述第一存储节点。然后,将<ccontent,kid>写入所确定的k个第一存储节点。其中,content即为待存储内容,kid即为content的hash值。可以理解,后续可以基于kid验证content是否被篡改,即确保content的完整性。65.s405,所述第二区块链节点生成所述第一密文的路由信息,所述路由信息包括所述第一密文的内容标识(kid)以及第一存储节点的节点标识(nid)、ip地址和udp端口。66.s406,所述第二区块链节点将所述第一密文的路由信息添加到路由节点存储的路由表中。67.示例性地,添加至路由表的路由信息可以为:<kid,nid,ip地址,udp端口号>。68.可以理解,在一些情形下,待存储内容对应的第一密文也可以存储于本地存储系统中。69.请再参照图6,其中示出了区块链访问权限控制方法包括的其他步骤。详细描述如下。70.s407,若第一密文被存储于本地存储系统,则将所述第一密文在本地存储系统的url地址填充于数据存储交易的服务信息(serviceinformation)字段中。71.s408,若第一密文被存储于所述分布式存储系统,则将所述第一密文的内容标识填充于所述数据存储交易的服务信息字段中。72.s409,若所述第一密文被存储于所述分布式存储系统且所述待存储内容为隐私数据,针对所述待存储内容的每个可访问对象,所述第二区块链节点利用该可访问对象的公钥将所述第二客户端的第一解密密钥加密为第三密文,并存储每个可访问对象的用户标识与该可访问对象的第三密文的对应关系。73.这里的可访问对象,可以是第二客户端指定的允许访问其待存储内容(content)的客户端。74.第一解密密钥是与第一加密密钥对应的解密密钥。一种场景中,第一加密密钥和第二解密密钥互为非对称密钥。另一种场景中,第一加密密钥和第一解密密钥是对称密钥,此时第一解密密钥和第一加密密钥相同。实施过程中,可以通过如下方式获得第一解密密钥:第二区块链节点利用第二客户端的公钥解密第二密文,将得到的明文确定为所述第一解密密钥。75.s410,所述第二区块链节点获取第一存储地址,并在所述数据存储交易的访问策略字段中设置所述第一存储地址,所述第一存储地址是所述对应关系的存储地址。76.s411,所述第二区块链节点确定该隐私数据的私密等级,并基于该私密等级获取第二存储地址,所述第二存储地址是该私密等级对应的权限验证规则的存储地址。77.s412,所述第二区块链节点在所述数据存储交易的访问策略字段中设置所述第二存储地址。78.s413,所述第二区块链节点在所述区块链系统中发布所述数据存储交易,以将所述数据存储交易上链。79.对应地,请参照图7,其中示出了将上述待存储内容的密文存储之后,查询上述待存储内容的具体流程。80.s701,普通用户(如,第一客户端)通过其客户端提交访问请求。81.访问请求可以携带第一客户端所需访问的访问内容的指示信息,指示信息例如可以是访问内容对应的数据存储交易的交易id(即标识),也可以是访问内容的元描述(或称为“元数据”或“元信息”),基于该交易id或该元描述,可以从区块链查找到相应的数据存储交易。82.s702,第一区块链节点接收访问请求,根据访问请求中的所述指示信息,从区块链上查询目标交易,所述目标交易为包含所述访问内容的指示信息的数据存储交易。83.s703,若目标交易中服务信息为kid,所述第一区块链节点从路由节点的路由表查询存储kid的目标分布式节点的路由信息。84.s704,路由节点返回路由信息,该路由信息包括nid、ip地址和udp端口。85.s705,所述第一区块链节点基于路由信息向分布式存储系统中的第二存储节点发起查询请求,所述查询请求携带有所述目标交易的交易id。86.其中,第二存储节点是指基于路由信息确定的分布式节点。87.s706,分布式存储系统中的第二存储节点接收到所述查询请求时,基于所述查询请求中的交易id确定所述目标交易,并获取目标交易中的访问策略字段的值,得到至少一个存储地址。88.s707,基于所述至少一个存储地址存储的信息,验证所述第一客户端是否具有访问第二存储节点的权限。89.详细地,请参照图8,s707可以通过以下步骤实现。90.s707‑1,若所述至少一个存储地址仅包括第一存储地址,则基于所述第一客户端的用户标识从所述第一存储地址查询对应的第三密文。91.s707‑2,若查询到所述第一客户端的用户标识对应的第三密文,则确定所述第一客户端具有访问所述访问内容所在的分布式节点的第二权限。92.s707‑3,若所述至少一个存储地址包括第一存储地址和第二存储地址,则基于所述第一客户端的用户标识从所述第一存储地址查询对应的第三密文。93.s707‑4,若查询到所述第一客户端的用户标识对应的第三密文,则从所述第二存储地址获取所述权限验证规则。94.s707‑5,若基于所述权限验证规则确定所述第一客户端通过验证,则确定所述第一客户端具有访问所述访问内容所在的分布式节点(即第二存储节点)的第二权限。95.s708,若确定所述第一客户端具有访问所述第二存储节点的权限,则将本次查询记录上链。96.可以理解,用户还可以通过客户端发起其他操作请求,例如创建、更新、转移、删除等操作请求。相应操作记录均会被上链。97.s709,第二存储节点经由所述第一区块链节点返回查询结果给第一客户端。98.示例性地,该查询结果可以是第一密文和第三密文,如此,第一客户端可以利用其私钥解密第三密文,得到第一解密密钥,并通过该第一解密密钥将第一密文解密为待存储内容。99.s710,若查找到的数据交易记录中服务信息为url,则返回url给第一客户端。100.s711,第一客户端根据所接收url发起查询请求。101.s712,本地存储系统根据第一客户端的用户标识,返回相应查询结果。102.可以理解,s702至s709与s710至s712是择一执行的关系。103.在本技术实施例的另一种实施方式中,数据记录在分布式存储系统200中的存储位置可以通过如下方式确定:可以从0开始,采用自然数依次为分布式存储系统200中的各分布式节点编号,例如,当分布式存储系统200包括三个分布式节点时,其编号依次为0,1,2。又如图1所示,四个分布式节点的编号可以是0,1,2,3。实施过程中,区块链节点可以对待存储数据记录的特定字段(如id字段)的值做哈希(hash),然后利用得到的hash值对分布式存储系统200中分布式节点的数量做取余,以得到的余数为编号的分布式节点即为目标存储节点。区块链节点将待存储数据记录存储到目标存储节点,再在区块链系统100中发布待存储数据记录的id字段的值与目标存储节点的节点id之间的对应关系。104.s303,第一区块链节点根据所述权限认证信息确定所述第一客户端具有访问所述访问内容所在的区块链节点的第二权限后,从所述访问内容所在的分布式节点获取所述访问内容,并返回给所述第一客户端。105.可选地,本技术实施例中,区块链系统100可以与其他区块链系统进行交互。在此情况下,区块链系统100可以被称为第一区块链系统,与区块链系统100通信的所述其他区块链系统则可以称为第二区块链系统。其中,第一区块链系统可以包括多个公证人节点,这多个公证人节点同时也是第二区块链系统的区块链节点。多个公证人节点组成了公证人联盟。换句话说,公证人联盟中的多个公证人节点是同时属于第一区块链系统和第二区块链系统的区块链节点。106.请再次参照图1,区块链系统100中的每个区块链节点可以部署有第一智能合约,该第一智能合约用于与该区块链节点所在节点设备中的分布式节点的守护进程通信连接,每个分布式节点的守护进程用于将运行数据实时发送给与本节点通信连接的第一智能合约。107.例如图1所示场景中,区块链节点110中部署有与分布式节点210的守护进程通信连接的第一智能合约。区块链节点120中部署有与分布式节点220的守护进程通信连接的第一智能合约。区块链节点130中部署有与分布式节点230的守护进程通信连接的第一智能合约。区块链节点140中部署有与分布式节点240的守护进程通信连接的第一智能合约。108.实施过程中,所述第一智能合约还可以用于将守护进程发送的运行数据,进一步发送给区块链系统100中的公证人联盟中的各公证人节点,由所述公证人联盟达成共识后存储于第二区块链系统。109.可选地,每个分布式节点的守护进程的运行数据例如可以包括以下至少一项:报错记录、查询失败记录。其中,报错记录至少包括分布式节点的节点id、报错原因和报错时间戳。查询失败记录至少包括分布式节点的节点id、失败原因和失败时间戳。110.基于此,上述步骤s303中,根据所述权限认证信息确定所述访问对象具有访问所述访问内容所在的区块链节点的第二权限(也就是上文描述的访问策略)的另一种实现方式可以包括如图9所示的子步骤。111.步骤s901,第一区块链节点从第二区块链系统查询所述访问内容所在的分布式节点在预设时间段内的运行数据。112.其中,预设时间段可以是预先指定的,例如是接收到访问请求的时间点之前的预设时长,如一天、一个周、半个月或一个月,本实施例对此没有限制。113.步骤s902,根据获取到的运行数据,计算所述访问内容所在的分布式节点在所述预设时间段内的报错频率和/或查询失败频率。114.实施时,第一区块链节点可以从第二区块链系统中查找目标报错记录,所述目标报错记录包括所述访问内容所在分布式节点的节点id,并且所述目标报错记录中的报错时间戳所表示的时间点处于所述预设时间段内,可以将查找到的所述目标报错记录的数量确定为第一数量,将该第一数量除以所述预设时间段的时间长度(即上述的预设时长),即可得到所述访问内容所在分布式节点在所述预设时间段内的报错频率。115.类似地,第一区块链节点可以从第二区块链系统中查找目标查询失败记录,所述目标查询失败记录包括所述访问内容所在分布式节点的节点id,并且所述目标查询失败记录中的失败时间戳所表示的时间点处于所述预设时间段内,可以将查找到的所述目标查询失败记录的数量确定为第二数量,将该第二数量除以所述预设时长,即可得到所述访问内容所在分布式节点在所述预设时间段内的查询失败频率。116.步骤s903,基于所述报错频率和/或查询失败频率,确定所述访问内容所在分布式节点的可信度。117.实施过程中,可以按照预先设置的报错频率与可信度的第一对应关系,得到所述报错频率对应的第一可信度;按照预先设置的查询失败频率与可信度的第二对应关系,得到所述查询失败频率对应的第二可信度。按照预先设置的权重,对第一可信度和第二可信度加权求和,即可得到所述访问内容所在分布式节点的可信度。可以理解,上述的第一对应关系、第二对应关系均可以通过预先测试获得。118.可选地,第一可信度的权重与所述访问内容所在的分布式节点在所述预设时间段内的各目标报错记录所包含的报错原因相关。第二可信度的权重与所述访问内容所在的分布式节点在所述预设时间段内的各目标查询失败记录所包含的失败原因相关。119.步骤s904,根据所述访问内容所在分布式节点的可信度确定对应的第一安全等级。120.本实施例中,不同报错频率与不同第一可信度之间的第一对应关系可以记录在第一对应表中,不同查询失败频率与不同第二可信度之间的第二对应关系可以记录在第二对应表中。实施过程中,将第一对应表中的各第一可信度与第二对应表中的第二可信度随机组合,可以得到多个组合。对于每个组合,将该组合中的第一可信度和第二可信度求和,可以得到多个和值。将所得的多个和值按照大小进行排序,以排序后的各和值作为数据切分点,划分出多个安全等级。具体而言,假设最终获得的数据切分点为n(,且为整数),则可以有n‑1个安全等级。换言之,一个安全等级对应的是两个相邻数据切分点形成的可信度区间。可信度处于同一可信度区间的两个分布式节点具有相同的安全等级。121.在执行步骤s903之后,从多个安全等级分别对应的可信度区间中,确定所述访问内容所在分布式节点的可信度所处的第一区间,将第一区间对应的安全等级确定为第一安全等级。122.步骤s905,根据所述访问对象的历史访问日志,确定所述访问对象的第二安全等级。123.区块链系统100还可以存储有每个访问对象的历史访问日志,包括该访问对象的对象标识(如身份id)及其在一段时间内的历史访问记录,每条历史访问记录包括查询内容标识、查询结果。查询结果为查询失败时,历史访问记录还包括查询失败记录。查询结果为报错时,历史访问记录还包括报错记录。124.第一区块链节点获取所述访问对象在所述预设时间段内的报错记录和查询失败记录,并进一步计算出所述访问对象在所述预设时间段内针对区块链系统100的访问报错频率以及查询失败频率。按照上述的第一对应关系,确定所述访问对象在所述预设时间段内对区块链系统100的访问报错频率所对应的第三可信度;按照上述的第二对应关系,确定所述访问对象在所述预设时间段内对区块链系统100的查询失败频率所对应的第四可信度。将第三可信度和第四可信度加权求和,即可得到所述访问对象的可信度,再从上述多个安全等级分别对应的可信度区间中确定所述访问对象的可信度所处的第二区间,将第二区间对应的安全等级确定为第二安全等级。125.步骤s906,若所述第二安全等级大于或等于所述第一安全等级,则检测所述权限认证信息是否包括读取操作信息,若是,则确定所述访问对象具有访问所述访问内容所在分布式节点的第二权限。126.实施过程中,在分别获得第一安全等级和第二安全等级之后,将两者进行比较。如果确定访问对象的安全等级(也就是第二安全等级)大于访问内容所在分布式节点的安全等级(也就是第一安全等级),则访问对象的安全等级是否符合条件的,此时可以进一步检查权限认证信息中是否带有读取操作信息,若是,表示访问对象可以对区块链系统的相关内容或数据进行读取,从而可以确定访问对象具有访问所述访问内容所在分布式节点的权限(即第二权限)。127.通过上述设计,可以进一步提升链下存储场景的数据安全度,降低一次性权限验证方式带来的成员敏感数据泄露的风险。128.请参照图10,图10示出了区块链系统100中区块链节点的功能模块示意图。以上文描述的第一区块链节点为例,第一区块链节点1000可以包括接收模块1010、分布式节点确定模块1020以及访问权限控制模块1030。129.接收模块1010用于接收第一客户端发送的访问请求,所述访问请求包括访问内容的指示信息、所述第一客户端的角色确认信息和权限认证信息。130.分布式节点确定模块1020用于在根据所述角色确认信息确定所述第一客户端具有访问所述区块链系统的第一权限后,基于所述指示信息从所述分布式存储系统中确定所述访问内容所在的分布式节点。131.访问权限控制模块1030用于在根据所述权限认证信息确定所述访问对象具有访问所述访问内容所在的分布式节点的第二权限后,从所述访问内容所在的分布式节点获取所述访问内容,并返回给所述第一客户端。132.关于区块链系统1000的功能模块架构及其与其他区块链系统的交互,具体可以参照上文中对应内容的描述,在此不再赘述。133.可选地,区块链系统100可以作为从链系统与主链系统通信,所述主链系统包括多个超级节点,所述第一区块链节点为骨干节点,所述骨干节点与所述多个超级节点中的目标超级节点锚定。基于此,接收模块1010接收访问请求的方式可以为:接收目标超级节点从所述访问对象处接收并转发的所述访问请求。134.可选地,区块链系统100中的每个区块链节点部署有智能合约,所述智能合约用于与该区块链节点所在节点设备中的分布式节点的守护进程通信连接,每个分布式节点的守护进程用于将运行数据发送给与本节点通信连接的智能合约。135.可选地,所述智能合约还用于将所述守护进程发送的运行数据,发送给所述第一区块链系统中的公证人联盟,由所述公证人联盟达成共识后存储于第二区块链系统;其中,所述公证人联盟包括多个公证人节点,每个公证人节点是所述第一区块链系统中的区块链节点且是所述第二区块链系统中的区块链节点。136.可选地,每个分布式节点的守护进程的运行数据包括以下至少一项:报错记录、查询失败记录。在此情况下,访问权限控制模块1030根据所述权限认证信息确定所述访问对象具有访问所述访问内容所在的分布式节点的第二权限的方式可以是:从第二区块链系统查询所述访问内容所在的分布式节点在预设时间段内的运行数据;根据获取到的运行数据,计算所述访问内容所在的分布式节点在所述预设时间段内的报错频率和/或查询失败频率;基于所述报错频率和/或查询失败频率,确定所述访问内容所在分布式节点的可信度;根据所述可信度确定对应的第一安全等级;根据所述访问对象的角色,确定所述访问对象的第二安全等级;若所述第二安全等级大于或等于所述第一安全等级,则检测所述权限认证信息是否包括读取操作信息,若是,则确定所述访问对象具有访问所述访问内容所在分布式节点的第二权限。137.应当理解,本技术实施例的上述功能模块的实现细节与上文描述的对应方法步骤相似,具体可以参照上文对对应方法步骤的相关描述,在此不再赘述。138.通过上述设计,可以有效地对链下存储场景中访问对象的访问权限进行有效控制,降低了数据泄露的风险。139.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd‑rom、光学存储器等)上实施的计算机程序产品的形式。140.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。141.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。142.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。143.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。144.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献