CN109491996A - 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质 - Google Patents
用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质 Download PDFInfo
- Publication number
- CN109491996A CN109491996A CN201811130962.3A CN201811130962A CN109491996A CN 109491996 A CN109491996 A CN 109491996A CN 201811130962 A CN201811130962 A CN 201811130962A CN 109491996 A CN109491996 A CN 109491996A
- Authority
- CN
- China
- Prior art keywords
- block
- block data
- cryptographic hash
- data
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
Abstract
一种用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质,所述区块生成方法包括:A.获取前一区块的哈希值;B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;C.确定至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表;D.存储至少一个区块数据至预设的私有存储空间;E.根据至少一个区块数据的哈希值、标识和关联的设备列表以及前一区块的哈希值生成当前区块的哈希值;F.基于前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,生成当前区块。通过本发明的方案能够对区块数据设置访问权限并与区块分离存储,利于改善区块数据的数据安全性和隐私性。
Description
技术领域
本发明涉及区块链技术领域,具体地涉及一种用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质。
背景技术
区块链网络是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。
根据现有的区块链系统,通常区块链中各个区块上的数据对所有的节点都是可获得的,也即,区块链上每增加一个新的区块,所有的节点就需要从该区块下载其中存储的数据,以完成同步。
发明内容
本发明的实施例提供了一种用于区块链网络的区块生成方法、区块数据访问方法。
本发明实施例的第一方面提供一种用于区块链网络的区块生成方法,包括:A.获取前一区块的哈希值;B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;C.确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;D.存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;E.根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;F.基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
本实施例所述方案通过设备列表对区块数据设置访问权限,并通过将区块数据存储至预设的私有存储空间的方式使得区块数据与区块分离存储,使得区块向区块链网络的所有区块链节点公开的同时,区块关联的区块数据仍具有私密性,利于改善区块数据的数据安全性和隐私性。进一步,通过区块包含的与区块数据的存储地址关联的标识,能够在不直接暴露区块数据的实质信息的前提下,公开用于指示该区块数据的指示符,利于请求设备通过标识查找和请求访问需要的区块数据。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取前一区块的哈希值;B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;C.确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;D.存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;E.根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;F.基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
本发明实施例还提供一种用于区块链网络的区块数据访问方法,包括:
A.接收请求访问所述区块数据的访问请求,所述访问请求包括所述区块数据的标识以及发出所述访问请求的请求设备的签名,所述区块数据存储于预设的私有存储空间;B.根据所述区块数据的标识确定包含所述区块数据的区块,所述区块包括前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备,所述预设的私有存储空间仅允许生成所述区块的区块链节点访问;C.根据所述签名和设备列表判断所述请求设备对所述区块数据是否具有访问权限;D.当判断结果表明所述请求设备具有访问权限时,确定所述区块数据的标识关联的存储地址,并访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,以获取所述区块数据;E.将获取的所述区块数据发送至所述请求设备。
本实施例所述方案通过设备列表对区块数据设置访问权限,使得仅记录于所述设备列表的请求设备能够获取所述区块数据,从而有效保证区块数据的数据安全性和隐私性。
本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.接收请求访问区块数据的访问请求,所述访问请求包括所述区块数据的标识以及发出所述访问请求的请求设备的签名,所述区块数据存储于预设的私有存储空间;B.根据所述区块数据的标识确定包含所述区块数据的区块,所述区块包括前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备,所述预设的私有存储空间仅允许生成所述区块的区块链节点访问;C.根据所述签名和设备列表判断所述请求设备对所述区块数据是否具有访问权限;D.当判断结果表明所述请求设备具有访问权限时,确定所述区块数据的标识关联的存储地址,并访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,以获取所述区块数据;E.将获取的所述区块数据发送至所述请求设备。
本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。
附图说明
图1是本发明实施例的一种用于区块链网络的区块生成方法的流程图;
图2是图1所示区块生成方法的原理示意图;
图3是基于图1所示方法生成的当前区块的结构示意图;
图4是本发明实施例的一种用于区块链网络的区块数据访问方法的流程图;
图5是本发明实施例的一个典型的应用场景的示意图。
具体实施方式
本申请发明人经过分析发现,现有的区块链系统中,区块链网络的各个区块链节点可以不受限制的访问区块链账本上的所有区块数据,不利于对区块数据的隐私性保护,对区块数据的数据安全性也会造成影响。
具体而言,现有的区块生成流程主要包括:获取前一区块的哈希值;确定区块数据;对前一区块的哈希值以及区块数据进行哈希计算,以生成当前区块的哈希值;基于前一区块的哈希值、当前区块的哈希值以及区块数据生成当前区块。
基于现有的区块构建方式,前一区块的哈希值、当前区块的哈希值(一般称为区块头信息)和区块数据(一般称为区块体信息)是一并封装成所述区块的。也即,所述区块数据同样作为区块的一部分上链并向所有区块链节点公开,任何一个区块链节点均可以通过同步区块的方式获取所述区块中的区块数据。
而基于本发明实施例的方案生成的区块可以仅包含所述前一区块的哈希值、当前区块的哈希值等类似于现有区块的区块头信息。对于现有区块中的区块数据等区块体信息,本实施例的方案将所述区块数据自现有区块中剥离并存储至预设的私有存储空间。也即,基于本实施例的方案,作为区块公开在区块链的链上的内容主要包含前一区块的哈希值、当前区块的哈希值以及区块数据的哈希值、标识和关联的设备列表,而所述区块数据本身则存储在链下的私有存储空间中。
本发明实施例提供一种用于区块链网络的区块生成方法,包括:A.获取前一区块的哈希值;B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;C.确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;D.存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;E.根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;F.基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
本领域技术人员理解,本实施例所述方案通过设备列表对区块数据设置访问权限,并通过将区块数据存储至预设的私有存储空间的方式使得区块数据与区块分离存储,使得区块向区块链网络的所有区块链节点公开的同时,区块关联的区块数据仍具有私密性,利于改善区块数据的数据安全性和隐私性。进一步,通过区块包含的与区块数据的存储地址关联的标识,能够在不直接暴露区块数据的实质信息的前提下,公开用于指示该区块数据的指示符,利于请求设备通过标识查找和请求访问需要的区块数据。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者他们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。还应当注意,流程图中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
本文所使用的术语“包含”、“包括”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。在本公开内容中,术语“基于”是“至少部分地基于”;术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。
本文中出现的“区块数据”是指:与区块关联的数据。进一步地,单个区块可以关联一个或多个区块数据。也即,通过同步所述区块,可以获取所述区块关联的一个或多个区块数据中每个区块数据的标识。具体而言,所述区块数据可以包括至少一个事务中的事务数据。所述区块数据存储于预设的私有存储空间,通过区块内的标识能够确定所述区块数据在所述私有存储空间的存储地址。
例如,所述区块数据可以包括单个事务关联的全部区块链节点在所述单个事务中的事务数据,如完成单笔交易的两个或多个区块链节点在完成所述单笔交易期间产生的所有交易数据。
又例如,所述区块数据还可以包括单个区块链节点在预设时间段内的全部事务中的事务数据,如所述区块链网络中的一个区块链节点在所述预设时间段内与区块链网络中其他任一个或任多个区块链节点的所有交易数据。其中,所述预设时间段可以是各种适当的时间区间,例如由产生所述区块数据的区块链节点自定义产生,可以是1天、1个月、半年等。
再例如,所述区块数据还可以包括单个业务包含的全部事务中的事务数据,如单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据,或单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据等。
本文中出现的“事务数据”是指:事务(transaction)进行过程中产生的各种数据。进一步地,事务数据可以包括事务进行过程中产生的各种中间数据,以及事务进行完成后得到的各种结果数据。
本文中出现的“区块数据的标识”是指:用于指示所述区块的指示符。具体而言,标识和区块数据是一一对应的,也即,通过所述标识可以唯一地确定与其对应的区块数据。例如:所述标识可以为自定义的编号、字符、字符串及其组合等,也可以根据区块链网络内统一适用的索引规则确定。将所述标识而非存储地址添加至所述区块的优点在于:可以不将存储地址直接公开在区块上,从而更好的保障区块数据的数据安全性。当然,对于一些敏感度不高的区块数据,所述标识也可以为所述区块数据的存储地址。
本文中出现的“存储地址”是指:区块数据在所述预设存储空间中的存储位置的标识符(例如字符串或者字符串的组合),根据所述存储地址能够唯一地确定该区块数据在所述预设的私有存储空间中的存储位置。例如,所述存储地址至少可以基于以下一种或多种协议表示:文件协议(如file://...);超文本传输协议(Hyper Text Transfer Protocol,简称HTTP);文件传输协议(File Transfer Protocol,简称FTP)
进一步地,所述区块数据的标识与所述区块数据的存储地址相关联,通常为一一对应。由此,通过所述标识可以索引获得所述区块数据的存储地址,进而通过访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,获取所述区块数据。非限制性地,所述区块数据的标识可以为所述区块数据的存储地址本身,或者,所述区块数据的标识与所述存储地址之间具有一一对应的映射关系。
本文中出现的“设备列表”记录有对所述区块数据具有访问权限和/或访问限制的各个请求设备。进一步而言,所述设备列表内可以记录各个请求设备的标识、签名等。当所述设备列表记录有对所述区块数据具有访问权限的各个请求设备时,所述设备列表可以为白名单,也即,仅允许记录于设备列表的请求设备获取该区块数据。当所述设备列表记录有对所述区块数据具有访问限制的各个请求设备时,所述设备列表可以为黑名单,也即,允许除记录于设备列表的请求设备之外的请求设备获取该区块数据。进一步地,通过对所述区块数据设置访问权限,能够有效确保区块数据的数据私密性。例如:所述设备列表可以记录有对所述区块数据具有访问权限的各个请求设备的互联网协议地址(Internet ProtocolAddress,又译为网际协议地址,简称IP地址)等能够唯一性地证明请求设备的身份属性的信息。
本文中出现的“预设的私有存储空间”是指:仅允许生成当前区块的区块链节点访问的数据存储空间。例如,所述预设的私有存储空间可以是生成当前区块的区块链节点本地的存储器。又例如,所述预设的私有存储空间还可以是生成当前区块的区块链节点耦合的外部服务器(例如,云端服务器,或云端服务器中的一部分存储空间)。
本文中出现的“完整区块的哈希值”是指:对所述前一区块的哈希值、所述每个区块数据的哈希值、标识和关联的设备列表以及所述每个区块数据进行哈希计算得到的结果。所述完整区块的哈希值是区块中的可选内容,其能够进一步提高当前区块及区块数据的数据安全性。
本文中出现的“业务”包括为了达成特定的目的或实现特定的功能而进行的一系列(即一个或多个,通常为多个)事务的集合。例如,为了达成资产转移目的而进行的资产转移业务可以包括签约事务、交付事务等一系列事务。
应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。
本发明实施例的区块链技术方案可以应用于不同的领域中,在本实施例中,以供应链金融领域和资产转移业务领域为例进行说明。
图1是本发明实施例的一种用于区块链网络的区块生成方法的流程图。其中,所述区块链网络可以由多个可通信的区块链节点构成,本实施例的方案可以由所述区块链节点执行。
具体地,在本实施例中,所述用于区块链网络的区块生成方法可以包括:
在101处,执行步骤A,获取前一区块的哈希值;
在102处,执行步骤B,确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;
在103处,执行步骤C,确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;
在104处,执行步骤D,存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;
在105处,执行步骤E,根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;
在106处,执行步骤F,基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
更为具体地,对于单个区块,所述区块的哈希值可以是对该区块进行哈希加密处理后得到的结果,也可以是指向该区块的哈希指针(hashpointer)。
在一个非限制性实施例中,可以选用消息摘要算法第五版(Message DigestAlgorithm MD5,简称MD5)、密码杂凑算法(senior middle 3,简称SM3)、安全哈希算法(Secure Hash Algorithm,简称SHA)1、SHA256、SHA384、SHA128、SHA2567等算法(以下统称为哈希算法)对需要处理的数据进行哈希计算,以获取对应的哈希值。
例如,可以采用SHA256算法对所述区块数据进行哈希计算,以生成所述区块数据的哈希值。
又例如,可以采用MD5算法对所述至少一个区块数据中每个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值一并进行哈希计算,以生成所述当前区块的哈希值。
进一步地,所述事务可以为在区块链上的任一操作。
在一个非限制性的实施例中,在资产转移业务领域的一个应用场景中,所述事务数据可以涉及一个或多个附加文件。具体而言,所述附加文件可以是合同的电子文件、资料的照片等;或者,该附加文件可以是数据资产交易中的数据,例如版权交易中作为交易对象的图片、音乐、视频等。由于这些附加文件可能涉及诸多细节和隐私问题,不能够完全公开,因而,采用本实施例的方案生成区块时,可以设置相应的访问权限,通过所述设备列表确保只有特定用户才能访问并获取所述附加文件,极大提高数据安全性。其中,所述特定用户可以包括生成所述区块的区块链节点以及经其授权的设备。
在基于区块链系统的一个视频业务场景中,用户可以通过手机端访问购买过的视频,而由于区块链上的视频文件普遍较大,假设每个用户的手机端为一个区块链节点,则每一区块链节点无需同步区块链上的所有视频文件,而是可以通过权限控制实现仅同步自己购买过的视频文件,减轻手机端的存储负担。
在供应链金融领域的一个应用场景中,所述事务数据可以是供应链金融业务中上下游区块链节点在交易过程中附加的各种文件,例如订单、合同等等。这些事务数据中可能存在部分不适于公开的敏感数据,如利率等,则通过本实施例所述方案,在生成所述区块时将不适于公开的事务数据与其他可公开的事务数据分离存储。其中,可公开的事务数据仍作为区块数据存储于区块上,而不适于公开的事务数据则通过设备列表对其设置访问权限后与区块分离存储于预设的私有存储空间,使得只有设备列表记录的设备可以访问并获取所述不适于公开的事务数据。由此,可以有效防止他人不受限制的获取供应链金融交易中产生的利率信息等敏感数据。
在一个非限制性实施例中,所述步骤B可以包括:对于所述至少一个区块数据中的每个区块数据,确定并压缩需要包含的所述至少一个事务以生成所述区块数据,并采用上述哈希算法对所述区块数据进行哈希计算,以生成所述区块数据的哈希值。
在一个非限制性实施例中,所述区块数据的哈希值可以指对所述区块数据进行哈希加密处理的结果。
在一个非限制性实施例中,所述预设的私有存储空间与所述区块链网络中的区块链账本可以是相互独立的。
具体地,所述区块链账本可以由区块链节点上传的可公开(或部分公开)的区块组成,区块链网络中的其他区块链节点可以同步所述区块链账本上的区块。
进一步地,可以对所述预设的私有存储空间进行权限管理,以限制除被授权的区块链节点之外的区块链节点访问所述预设的私有存储空间。其中,对所述区块链节点的授权可以是由将数据存储至所述预设的私有存储空间的区块链节点(即生成当前区块的区块链节点)控制的。
在一个非限制性实施例中,参考图2,采用本实施例所述方案的区块链节点在执行所述步骤F以生成当前区块23时,所述当前区块23中可以并不包含区块数据22,也即,采用本实施例生成的当前区块23可以仅包括类似于现有区块的区块头信息21。
而与现有技术的一个区别在于,结合图2和图3,采用本实施例生成的所述当前区块23可以包含如下信息:前一区块(如图2所示当前区块23的前一个区块24)的哈希值31、当前区块(如图2所示当前区块23)的哈希值32、至少一个区块数据(如图2示出的区块数据22)中每个区块数据(如图2示出的区块数据221至22n)的哈希值33、标识34以及关联的设备列表35。其中,对于区块数据22x(1≤x≤n),关联的所述设备列表35记录有对所述区块数据22x具有访问权限和/或访问限制的至少一个请求设备。
进一步地,所述区块数据221至22n则与所述当前区块23相分离的存储于预设的私有存储空间,对于区块数据22x,所述区块数据22x在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述区块数据22x的标识34相关联。
本领域技术人员理解,实际上,基于本实施例的方案,所述当前区块23与所述区块头信息21实质上可以是等同的,也即,基于本实施例所述方案生成的当前区块23仅包含所述区块头信息21,而所述区块头信息21关联的区块数据22则分离地存储于所述预设的私有存储空间。
在一个非限制性实施例中,所述至少一个区块数据221-22n可以是整体地存储于所述预设的私有存储空间。如以一个文件或文件夹的形式存储于所述预设的私有存储空间。
此时,所述当前区块23中包括的区块数据的哈希值33可以为1个,对应的所述标识34和关联的设备列表35也可以为1个。
在一个变化例中,所述至少一个区块数据221-22n也可以相分离地独立存储于所述预设的私有存储空间的不同位置。进一步地,每一个区块数据22x均具有一个存储地址,该存储地址对应于一个标识并与该区块数据22x的哈希值和关联的设备列表相对应地记录于所述当前区块23中。
例如,参考图3,对于关联所述区块数据221-22n的当前区块23,所述当前区块23可以包括所述区块数据221的哈希值33、标识34及关联的设备列表35、所述区块数据222的哈希值33、标识34及关联的设备列表35、...、所述区块数据22n的哈希值33、标识34及关联的设备列表35。
其中,通过所述区块数据221的标识34可以获取所述区块数据221的存储地址,所述存储地址用于指示所述区块数据221在所述预设的私有存储空间的存储位置;通过所述区块数据222的标识34可以获取所述区块数据222的存储地址,所述存储地址用于指示所述区块数据222在所述预设的私有存储空间的存储位置;…;通过所述区块数据22n的标识34可以获取所述区块数据22n的存储地址,所述存储地址用于指示所述区块数据22n在所述预设的私有存储空间的存储位置。
在一个非限制性实施例中,继续参考图2,在生成所述当前区块23后,可以将所述当前区块23上传至所述区块链20并连接在前一个区块24之后。
在一个非限制性实施例中,在所述步骤F之后,本实施例所述区块生成方法还可以包括步骤G:广播所述当前区块的生成事件。由此,可以通知所述区块链网络中的各个区块链节点及时验证、同步所述当前区块。
在一个非限制性实施例中,继续参考图3,所述步骤F还可以包括:将所述当前区块(如图2所示的当前区块23)的属性信息36添加至所述当前区块23中,以进一步防止所述当前区块23(和/或关联的区块数据22)被肆意篡改。
例如,所述当前区块的属性信息36可以包括所述当前区块23的生成时间等。
又例如,所述当前区块的属性信息36还可以包括所述区块数据22的文件属性信息。其中,所述文件属性信息可以包括以下一项或多项:所述区块数据22关联的至少一个区块链节点的签名;所述至少一个区块数据(如区块数据221至22n)存入所述预设的私有存储空间的存储时间(或打包时间);所述至少一个区块数据(如区块数据221至22n)占用的存储空间大小等。
在一个非限制性实施例中,继续参考图3,所述步骤F还可以包括:将完整区块的哈希值37添加至所述当前区块23中,其中,所述完整区块的哈希值37可以是对所述前一区块的哈希值31、所述区块数据22中的每个区块数据22x的哈希值33、标识34和关联的设备列表35以及区块数据22中的每个区块数据22x进行哈希计算生成的。
所述完整区块的哈希值37与所述当前区块的哈希值32的区别在于,用于生成所述当前区块的哈希值32的数据并不包括所述当前区块(如图2所示的当前区块23)所关联的区块数据22,而用于生成所述完整区块的哈希值37的数据则可以是包括所述当前区块23关联的区块数据22的。
由此,通过在所述当前区块23中增加所述完整区块的哈希值37,能够起到加强校验的效果。
在一个非限制性实施例中,所述步骤D可以进一步包括:将所述至少一个区块数据关联的设备列表与所述区块数据一并存储至所述预设的私有存储空间。
例如,参考图3,在将所述区块数据221存储至预设的私有存储空间时,可以将所述区块数据221关联的设备列表一并存储至所述预设的私有存储空间,以便后续访问时能够对请求访问区块数据221的设备进行二次验证。
具体地,在请求访问所述区块数据221时,可以先根据当前区块23中记录的区块数据221关联的设备列表35对请求设备进行第一次验证。验证通过后,再通过区块数据221的标识34确定关联的存储地址,进而访问区块数据221在预设的私有存储空间的访问位置。进一步地,在获取区块数据221的同时,获取存储在所述预设的私有存储空间的区块数据221关联的设备列表,并再进行一次验证。当第二次验证也通过时,向请求设备发送所述区块数据221。
本领域技术人员理解,采用本示例的方案进行二次验证的优点在于,能够进一步提高数据安全性,避免记录于当前区块23中的设备列表被篡改而对区块数据22x的访问安全性造成不利影响。
在一个变化例中,所述区块数据22x关联的设备列表与所述区块数据22x可以分别存储于所述预设的私有存储空间的不同位置,通过在两者之间设置跳转路径,可以便于二次验证时方便、快捷地获取所述区块数据22x关联的设备列表。
由此,采用本实施例的方案,通过设备列表对区块数据设置访问权限,并通过将区块数据存储至预设的私有存储空间的方式与区块分离存储,能够实现区块向区块链网络的所有区块链节点公开而区块数据加密的效果,利于改善区块数据的数据安全性和隐私性。进一步,通过区块包含的与区块数据的存储地址关联的标识,能够在不直接暴露区块数据的实质信息的前提下,公开用于指示该区块数据的指示符,利于请求设备通过标识查找和请求访问需要的区块数据。
本发明实施例还提供一种计算设备,用于实施上述图1至图3所示实施例中所述的方法技术方案。
具体地,在本实施例中,所述计算设备可以包括:处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:A.获取前一区块的哈希值;B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;C.确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;D.存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;E.根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;F.基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
在一个非限制性实施例中,所述步骤D可以进一步包括:将所述至少一个区块数据关联的设备列表与所述区块数据一并存储至所述预设的私有存储空间。
在一个非限制性实施例中,所述步骤F可以进一步包括:将所述当前区块的生成时间、所述至少一个区块数据存入所述预设的私有存储空间的存储时间以及所述至少一个区块数据的大小添加至所述当前区块中。
在一个非限制性实施例中,所述步骤F可以进一步包括:将完整区块的哈希值添加至所述当前区块中,其中,所述完整区块的哈希值是对所述前一区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述至少一个区块数据进行哈希计算生成的。
在一个非限制性实施例中,所述处理器运行所述计算机指令时还可以执行以下步骤:G.广播所述当前区块的生成事件。
在一个非限制性实施例中,所述预设的私有存储空间与所述区块链网络中的区块链账本可以是相互独立的。
在一个非限制性实施例中,所述区块数据可以包括至少一个事务中的事务数据。
在一个非限制性实施例中,所述区块数据可以包括:单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据。
在一个非限制性实施例中,所述区块数据可以包括:单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图1至图3中的相关描述,这里不再赘述。
图4是本发明实施例的一种用于区块链网络的区块数据访问方法的流程图。其中,所述区块链网络可以由多个可通信的区块链节点构成,本实施例的方案可以由所述区块链网络中的特定区块链节点执行。
所述特定区块链节点可以为生成所述区块数据的区块链节点,或者,区块链网络中专用于执行区块数据访问的区块链节点。
具体地,在本实施例中,所述用于区块链网络的区块数据访问方法可以包括:
在401处,执行步骤A,接收请求访问所述区块数据的访问请求,所述访问请求包括所述区块数据的标识以及发出所述访问请求的请求设备的签名,所述区块数据存储于预设的私有存储空间;
在402处,执行步骤B,根据所述区块数据的标识确定包含所述区块数据的区块,所述区块包括前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备,所述预设的私有存储空间仅允许生成所述区块的区块链节点访问;
在403处,执行步骤C,根据所述签名和设备列表判断所述请求设备对所述区块数据是否具有访问权限;
在404处,执行步骤D,当判断结果表明所述请求设备具有访问权限时,确定所述区块数据的标识关联的存储地址,并访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,以获取所述区块数据;
在405处,执行步骤E,将获取的所述区块数据发送至所述请求设备。
具体地,本实施例中与上述图1至图3所示实施例中相同的特征的具体说明可以参见前述实施例中的相关描述,在此不予赘述。
在一个非限制性实施例中,所述步骤C可以进一步包括:根据所述签名判断所述请求设备是否落入所述设备列表,如果落入,则确定所述请求设备具有访问权限和/或访问限制;否则,确定所述请求设备不具有访问权限和/或访问限制。
例如,当所述设备列表记录有对所述区块数据具有访问权限的至少一个请求设备时,若发送所述签名的请求设备属于前述允许访问的至少一个请求设备时,则可以确定所述请求设备具有访问权限;否则,可以确定所述请求设备不具有访问权限。
又例如,当所述设备列表记录有对所述区块数据具有访问限制的至少一个请求设备时,若发送所述签名的请求设备属于前述限制访问的至少一个请求设备时,则可以确定所述请求设备具有访问限制,即被限制访问所述区块数据;否则,可以确认所述请求设备不具有访问限制,即可以访问所述区块数据。
再例如,当所述设备列表记录有对所述区块数据具有访问权限的至少一个请求设备以及对所述区块数据具有访问限制的至少一个请求设备时,若发送所述签名的请求设备即不属于前述允许访问的至少一个请求设备,又不属于前述被限制访问的至少一个请求设备,则可以通过与所述请求设备的进一步交互来确定所述请求设备是否对所述区块数据具有访问权限。
在一个非限制性实施例中,所述访问请求可以是经由所述请求设备用私钥签名处理过的,以防止所述请求设备的签名被他人冒用来请求获取所述区块数据。
在一个非限制性实施例中,所述访问请求还可以包括所述请求设备的证书,以进一步提高安全性。
在一个非限制性实施例中,所述请求设备可以为所述区块链网络中的区块链节点,或者,所述请求设备可以为独立于所述区块链网络的设备。采用本实施例的方案,在生成区块时,通过将区块数据关联的设备列表添加至所述区块,使得后续任一请求设备请求访问所述区块数据时,能够通过与所述设备列表的比较来确定是否向所述请求设备发送所述区块数据,使得对区块数据设置访问权限成为可能。
在一个非限制性实施例中,所述预设的私有存储空间还可以存储有所述至少一个区块数据关联的设备列表,所述步骤E可以进一步包括:从所述预设的私有存储空间获取所述区块数据关联的设备列表,并根据所述签名和从所述预设的私有存储空间获取的设备列表判断所述请求设备对所述区块数据是否具有访问权限;当判断结果表明所述请求设备具有访问权限时,将获取的所述区块数据发送至所述请求设备。
由此,在根据区块中记录的区块数据关联的设备列表验证通过后,实际向请求设备发送区块数据之前,还可以根据记录于预设的私有存储空间的区块数据关联的设备列表进行二次验证,以弥补区块中记录的设备列表被他人篡改而产生的安全漏洞。
在一个非限制性实施例中,所述预设的私有存储空间与所述区块链网络中的区块链账本可以是相互独立的。
由上,采用本实施例的方案,通过设备列表对区块数据设置访问权限,使得仅记录于所述设备列表的请求设备能够获取所述区块数据,从而有效保证区块数据的数据安全性和隐私性。
本发明实施例还提供另一种计算设备,用于实施上述图4所示实施例中所述的方法技术方案。
具体地,在本实施例中,所述计算设备可以包括:处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时可以执行以下步骤:A.接收请求访问区块数据的访问请求,所述访问请求包括所述区块数据的标识以及发出所述访问请求的请求设备的签名,所述区块数据存储于预设的私有存储空间;B.根据所述区块数据的标识确定包含所述区块数据的区块,所述区块包括前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备,所述预设的私有存储空间仅允许生成所述区块的区块链节点访问;C.根据所述签名和设备列表判断所述请求设备对所述区块数据是否具有访问权限;D.当判断结果表明所述请求设备具有访问权限时,确定所述区块数据的标识关联的存储地址,并访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,以获取所述区块数据;E.将获取的所述区块数据发送至所述请求设备。
在一个非限制性实施例中,所述步骤C可以进一步包括:根据所述签名判断所述请求设备是否落入所述设备列表,如果落入,则确定所述请求设备具有访问权限和/或访问限制;否则,确定所述请求设备不具有访问权限和/或访问限制。
在一个非限制性实施例中,所述请求设备可以为所述区块链网络中的区块链节点,或者,所述请求设备可以为独立于所述区块链网络的设备。
在一个非限制性实施例中,所述预设的私有存储空间还可以存储有所述至少一个区块数据关联的设备列表,所述步骤E可以进一步包括:从所述预设的私有存储空间获取所述区块数据关联的设备列表,并根据所述签名和从所述预设的私有存储空间获取的设备列表判断所述请求设备对所述区块数据是否具有访问权限;当判断结果表明所述请求设备具有访问权限时,将获取的所述区块数据发送至所述请求设备。
在一个非限制性实施例中,所述预设的私有存储空间与所述区块链网络中的区块链账本可以是相互独立的。
在一个非限制性实施例中,所述区块数据可以包括至少一个事务中的事务数据。
在一个非限制性实施例中,所述区块数据可以包括:单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据。
在一个非限制性实施例中,所述区块数据可以包括:单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据。
关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图4中的相关描述,这里不再赘述。
在一个非限制性实施例中,所述计算设备可以为个人计算机、智能手机、服务器等。
在一个典型的应用场景中,在执行上述图1所示步骤B确定所述至少一个区块数据后,所述区块链节点可以判断是否需要对所述至少一个区块数据设置访问权限。
对于判断需要设置访问权限的区块数据,可以执行上述图1所示步骤C和步骤D,以确定所述区块数据的标识和关联的设备列表,并将所述区块数据存储至所述预设的私有存储空间。
对于判断不需要设置访问权限的区块数据,在执行所述步骤F时可以直接将所述区块数据一并添加至所述当前区块。此时,所述当前区块中可以不包含该区块数据的标识和关联的设备列表。在所述当前区块连接到前一区块后,该区块数据可以被区块链网络中的所有区块链节点同步并访问。
在一个典型的应用场景中,所述区块链网络中的所有区块链节点均可以同步区块链上的所有区块,所述所有区块链节点中的部分区块链节点可以拥有所述区块链上所有区块关联的区块数据,其余区块链节点可以根据各个区块中区块数据关联的设备列表访问区块数据。
其中,拥有区块数据是指:无需同步所述区块即可访问所述区块数据。例如,可以通过将所述区块数据另行存储在本地的方式拥有所述区块数据。
作为一个变化例,所述所有区块链节点中的部分区块链节点可以拥有所述区块链上所有区块关联的区块数据可以指:多个区块链节点各自拥有的区块数据之和为所述区块链上所有区块关联的区块数据的全量。
例如,生成区块的区块链节点可以天然拥有该区块关联的区块数据。
作为又一个变化例,为更好的提高数据安全性,也可以所有区块链节点均仅同步区块,所有的区块数据都存储在所述预设的私有存储空间,即使对于生成所述区块的区块链节点,也需要执行上述图4所示实施例的方案来访问所述区块数据。
在一个典型的应用场景中,参考图5,区块链网络中具有4个区块链节点(图5中以区块链节点A-D示出),所述4个区块链节点A-D分别对应四家企业的计算设备,接下来以其中区块链节点A需要将一笔交易写进区块链(如区块链账本)为例做具体阐述。
具体地,所述区块链节点A可以具有多个子节点,其中一个子节点A1可以用于生成区块、多个子节点(图未示)可以用于查询区块数据、一个子节点(图未示)可以用于同步区块链上的新增区块。
在本场景中,响应于与区块链节点B就一笔交易达成共识,所述区块链节点A和区块链节点B一致确认所述交易中的各项事务数据后,将所述各项事务数据一并发送至所述子节点A1。
进一步地,所述子节点A1基于所述各项事务数据确定区块数据610,生成所述区块数据610的哈希值,确定所述区块数据610的标识和关联的设备列表,将所述区块数据610存储至外部服务器620,并记录用于指示所述区块数据610在所述外部服务器620的存储位置的存储地址,将所述存储地址与所述区块数据610的标识相关联。所述外部服务器620仅允许子节点A1访问。
进一步地,所述子节点A1从区块链账本上获取前一区块(图未示)的哈希值。
进一步地,所述子节点A1将所述前一区块的哈希值、区块数据610的哈希值、标识和关联的设备列表打包生成所述当前区块612的哈希值。
进一步地,所述子节点A1基于所述前一区块的哈希值、当前区块612的哈希值、区块数据610的哈希值、标识和关联的设备列表生成所述当前区块612。
进一步地,所述子节点A1可以将所述当前区块612连接至所述前一区块之后。
其中,所述子节点A1可以称为块生成节点。
由此,子节点A1可以将区块(即所述当前区块612)和区块数据610分离存储,其中,所述区块数据610存储于所述外部服务器620,所述当前区块612连接至区块链账本上,通过所述当前区块612中的标识关联的存储地址指示所述区块数据610在所述外部服务器620中的存储位置,通过所述当前区块612中的设备列表实现对区块数据610的访问权限控制。
进一步地,所述子节点A1还可以将所述当前区块612的属性信息和/或所述当前区块612和区块数据610整体的哈希值(即所述完整区块的哈希值)一并添加至所述当前区块612,以达到加强校验的效果。
进一步地,在生成并将所述当前区块612连接至所述区块链后,所述子节点A1可以向所示4个区块链节点A-D进行广播。
响应于接收到所述广播,所述区块链节点A-D可以分别从所述区块链账本上获取所述当前区块612并验证,当验证通过时,可以将所述当前区块612连接至所述前一区块。
当产生业务需求时,区块链节点D可以向子节点A1发送访问请求,所述访问请求包括所述区块链节点D的签名以及请求访问的区块数据的标识。在本场景中,假设区块链节点D请求访问的是区块数据610,则所述访问请求包含所述区块数据610的标识。
响应于接收到所述访问请求,所述子节点A1可以确定在所述当前区块612中记录有所述区块数据610的标识,则根据所述访问请求中包含的签名和所述当前区块612中包含的设备列表判断所述区块链节点D对所述区块数据610是否具有访问权限。
在本场景中,假设所述区块数据610关联的设备列表中对所述区块数据610具有访问权限的为区块链节点A、B和D,则可以确定所述区块链节点D对所述区块数据610具有访问权限。
进一步地,所述子节点A1可以获取所述区块数据610的标识关联的存储地址,并访问所述存储地址指示的所述区块数据610在所述外部服务器620中的存储位置,以获取所述区块数据610并发送至所述区块链节点D。
另一方面,当产生业务需求时,区块链节点C也可以向子节点A1发送访问请求,所述访问请求包括所述区块链节点C的签名以及请求访问的区块数据的标识。在本场景中,假设区块链节点C请求访问的是区块数据610,则所述访问请求包含所述区块数据610的标识。
响应于接收到所述访问请求,所述子节点A1可以确定在所述当前区块612中记录有所述区块数据610的标识,则根据所述访问请求中包含的签名和所述当前区块612中包含的设备列表判断所述区块链节点C对所述区块数据610是否具有访问权限。
在本场景中,假设所述区块数据610关联的设备列表中对所述区块数据610具有访问限制的为区块链节点C,则可以确定所述区块链节点C不被允许访问所述区块数据610。
进一步地,所述子节点A1可以拒绝所述区块链节点C的访问请求。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1和图4所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(Non-Volatile)存储器或者非瞬态(Non-Transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
Claims (35)
1.一种用于区块链网络的区块生成方法,其特征在于,包括:
A.获取前一区块的哈希值;
B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;
C.确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;
D.存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;
E.根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;
F.基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
2.根据权利要求1所述的区块生成方法,其特征在于,所述步骤D进一步包括:将所述至少一个区块数据关联的设备列表与所述区块数据一并存储至所述预设的私有存储空间。
3.根据权利要求1所述的区块生成方法,其特征在于,所述步骤F进一步包括:将所述当前区块的生成时间、所述至少一个区块数据存入所述预设的私有存储空间的存储时间以及所述至少一个区块数据的大小添加至所述当前区块中。
4.根据权利要求1或3所述的区块生成方法,其特征在于,所述步骤F进一步包括:将完整区块的哈希值添加至所述当前区块中,其中,所述完整区块的哈希值是对所述前一区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述至少一个区块数据进行哈希计算生成的。
5.根据权利要求1所述的区块生成方法,其特征在于,还包括:
G.广播所述当前区块的生成事件。
6.根据权利要求1所述的区块生成方法,其特征在于,所述预设的私有存储空间与所述区块链网络中的区块链账本是相互独立的。
7.根据权利要求1所述的区块生成方法,其特征在于,所述区块数据包括至少一个事务中的事务数据。
8.根据权利要求1所述的区块生成方法,其特征在于,所述区块数据包括:单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据。
9.根据权利要求1所述的区块生成方法,其特征在于,所述区块数据包括:单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据。
10.一种计算设备,其特征在于,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.获取前一区块的哈希值;
B.确定至少一个区块数据,并生成所述至少一个区块数据的哈希值;
C.确定所述至少一个区块数据的标识以及与所述至少一个区块数据关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备;
D.存储所述至少一个区块数据至预设的私有存储空间,所述至少一个区块数据在所述预设的私有存储空间中的存储位置通过存储地址指示,所述存储地址与所述标识相关联;
E.根据所述至少一个区块数据的哈希值、标识和关联的设备列表以及所述前一区块的哈希值生成当前区块的哈希值;
F.基于所述前一区块的哈希值、所述当前区块的哈希值、所述至少一个区块数据的哈希值、标识和关联的设备列表,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后,所述预设的私有存储空间仅允许生成所述当前区块的区块链节点访问。
11.根据权利要求10所述的计算设备,其特征在于,所述步骤D进一步包括:将所述至少一个区块数据关联的设备列表与所述区块数据一并存储至所述预设的私有存储空间。
12.根据权利要求10所述的计算设备,其特征在于,所述步骤F进一步包括:将所述当前区块的生成时间、所述至少一个区块数据存入所述预设的私有存储空间的存储时间以及所述至少一个区块数据的大小添加至所述当前区块中。
13.根据权利要求10或12所述的计算设备,其特征在于,所述步骤F进一步包括:将完整区块的哈希值添加至所述当前区块中,其中,所述完整区块的哈希值是对所述前一区块的哈希值、所述至少一个区块数据的哈希值、
标识和关联的设备列表以及所述至少一个区块数据进行哈希计算生成的。
14.根据权利要求10所述的计算设备,其特征在于,所述处理器运行所述计算机指令时还执行以下步骤:
G.广播所述当前区块的生成事件。
15.根据权利要求10所述的计算设备,其特征在于,所述预设的私有存储空间与所述区块链网络中的区块链账本是相互独立的。
16.根据权利要求10所述的计算设备,其特征在于,所述区块数据包括至少一个事务中的事务数据。
17.根据权利要求10所述的计算设备,其特征在于,所述区块数据包括:单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据。
18.根据权利要求10所述的计算设备,其特征在于,所述区块数据包括:单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据。
19.一种用于区块链网络的区块数据访问方法,其特征在于,包括:
A.接收请求访问所述区块数据的访问请求,所述访问请求包括所述区块数据的标识以及发出所述访问请求的请求设备的签名,所述区块数据存储于预设的私有存储空间;
B.根据所述区块数据的标识确定包含所述区块数据的区块,所述区块包括前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备,所述预设的私有存储空间仅允许生成所述区块的区块链节点访问;
C.根据所述签名和设备列表判断所述请求设备对所述区块数据是否具有访问权限;
D.当判断结果表明所述请求设备具有访问权限时,确定所述区块数据的标识关联的存储地址,并访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,以获取所述区块数据;
E.将获取的所述区块数据发送至所述请求设备。
20.根据权利要求19所述的区块数据访问方法,其特征在于,所述步骤C进一步包括:根据所述签名判断所述请求设备是否落入所述设备列表,如果落入,则确定所述请求设备具有访问权限和/或访问限制;否则,确定所述请求设备不具有访问权限和/或访问限制。
21.根据权利要求19所述的区块数据访问方法,其特征在于,所述请求设备为所述区块链网络中的区块链节点,或者,所述请求设备为独立于所述区块链网络的设备。
22.根据权利要求19所述的区块数据访问方法,其特征在于,所述预设的私有存储空间还存储有所述至少一个区块数据关联的设备列表,所述步骤E进一步包括:从所述预设的私有存储空间获取所述区块数据关联的设备列表,并根据所述签名和从所述预设的私有存储空间获取的设备列表判断所述请求设备对所述区块数据是否具有访问权限;当判断结果表明所述请求设备具有访问权限时,将获取的所述区块数据发送至所述请求设备。
23.根据权利要求19所述的区块数据访问方法,其特征在于,所述预设的私有存储空间与所述区块链网络中的区块链账本是相互独立的。
24.根据权利要求19所述的区块数据访问方法,其特征在于,所述区块数据包括至少一个事务中的事务数据。
25.根据权利要求19所述的区块数据访问方法,其特征在于,所述区块数据包括:单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据。
26.根据权利要求19所述的区块数据访问方法,其特征在于,所述区块数据包括:单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据。
27.一种计算设备,其特征在于,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:
A.接收请求访问区块数据的访问请求,所述访问请求包括所述区块数据的标识以及发出所述访问请求的请求设备的签名,所述区块数据存储于预设的私有存储空间;
B.根据所述区块数据的标识确定包含所述区块数据的区块,所述区块包括前一区块的哈希值、当前区块的哈希值、至少一个区块数据的哈希值、标识和关联的设备列表,所述设备列表记录有对所述区块数据具有访问权限和/或访问限制的至少一个请求设备,所述预设的私有存储空间仅允许生成所述区块的区块链节点访问;
C.根据所述签名和设备列表判断所述请求设备对所述区块数据是否具有访问权限;
D.当判断结果表明所述请求设备具有访问权限时,确定所述区块数据的标识关联的存储地址,并访问所述存储地址指示的所述区块数据在所述预设的私有存储空间中的存储位置,以获取所述区块数据;
E.将获取的所述区块数据发送至所述请求设备。
28.根据权利要求27所述的计算设备,其特征在于,所述步骤C进一步包括:根据所述签名判断所述请求设备是否落入所述设备列表,如果落入,则确定所述请求设备具有访问权限和/或访问限制;否则,确定所述请求设备不具有访问权限和/或访问限制。
29.根据权利要求27所述的计算设备,其特征在于,所述请求设备为所述区块链网络中的区块链节点,或者,所述请求设备为独立于所述区块链网络的设备。
30.根据权利要求27所述的计算设备,其特征在于,所述预设的私有存储空间还存储有所述至少一个区块数据关联的设备列表,所述步骤E进一步包括:从所述预设的私有存储空间获取所述区块数据关联的设备列表,并根据所述签名和从所述预设的私有存储空间获取的设备列表判断所述请求设备对所述区块数据是否具有访问权限;当判断结果表明所述请求设备具有访问权限时,将获取的所述区块数据发送至所述请求设备。
31.根据权利要求27所述的计算设备,其特征在于,所述预设的私有存储空间与所述区块链网络中的区块链账本是相互独立的。
32.根据权利要求27所述的计算设备,其特征在于,所述区块数据包括至少一个事务中的事务数据。
33.根据权利要求27所述的计算设备,其特征在于,所述区块数据包括:单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据。
34.根据权利要求27所述的计算设备,其特征在于,所述区块数据包括:单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据。
35.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至9任一项所述方法或权利要求19至26任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130962.3A CN109491996A (zh) | 2018-09-27 | 2018-09-27 | 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130962.3A CN109491996A (zh) | 2018-09-27 | 2018-09-27 | 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109491996A true CN109491996A (zh) | 2019-03-19 |
Family
ID=65690027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811130962.3A Pending CN109491996A (zh) | 2018-09-27 | 2018-09-27 | 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491996A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022315A (zh) * | 2019-03-26 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种块链式账本中的权重管理方法、装置及设备 |
CN110059089A (zh) * | 2019-03-27 | 2019-07-26 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110650097A (zh) * | 2019-09-20 | 2020-01-03 | 腾讯科技(深圳)有限公司 | 一种数据传播方法、装置以及计算机可读存储介质 |
CN111049902A (zh) * | 2019-09-16 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据存储方法、装置、存储介质和设备 |
CN111448565A (zh) * | 2020-02-14 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 基于去中心化标识的数据授权 |
CN111541756A (zh) * | 2020-04-17 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 区块生成方法、装置、节点设备及存储介质 |
CN111881472A (zh) * | 2020-07-22 | 2020-11-03 | 云账户技术(天津)有限公司 | 一种数据访问控制方法、系统及权限管理系统、介质 |
CN112203280A (zh) * | 2020-10-10 | 2021-01-08 | 北京航空航天大学 | 一种面向边缘网关的数据可信传输机制 |
CN112277881A (zh) * | 2020-12-25 | 2021-01-29 | 上海银基信息安全技术股份有限公司 | 一种身份认证方法及装置、车辆、用户设备 |
CN112989404A (zh) * | 2019-12-18 | 2021-06-18 | 中移雄安信息通信科技有限公司 | 基于区块链的日志管理方法及相关设备 |
CN113094394A (zh) * | 2021-03-19 | 2021-07-09 | 广东省重工建筑设计院有限公司 | 数据访问方法、装置、计算机设备和存储介质 |
CN114073023A (zh) * | 2019-04-26 | 2022-02-18 | 株式会社赛斯 | 电子设备和信息处理系统 |
US11423015B2 (en) | 2019-09-12 | 2022-08-23 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160112455A1 (en) * | 2013-06-08 | 2016-04-21 | Beijing Gupanchuangshi Science And Technology Development Co., Ltd. | Public and Private Hybrid Distributed Cloud Storage System and Cloud Storage Method |
CN106503574A (zh) * | 2016-09-13 | 2017-03-15 | 中国电子科技集团公司第三十二研究所 | 区块链安全存储方法 |
CN106796688A (zh) * | 2016-12-26 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | 区块链的权限控制方法、装置、系统及节点设备 |
CN106992990A (zh) * | 2017-05-19 | 2017-07-28 | 北京牛链科技有限公司 | 数据共享方法和系统以及区块链系统和计算设备 |
CN108062202A (zh) * | 2017-12-15 | 2018-05-22 | 中链科技有限公司 | 一种文件分块存储方法及系统 |
-
2018
- 2018-09-27 CN CN201811130962.3A patent/CN109491996A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160112455A1 (en) * | 2013-06-08 | 2016-04-21 | Beijing Gupanchuangshi Science And Technology Development Co., Ltd. | Public and Private Hybrid Distributed Cloud Storage System and Cloud Storage Method |
CN106503574A (zh) * | 2016-09-13 | 2017-03-15 | 中国电子科技集团公司第三十二研究所 | 区块链安全存储方法 |
CN106796688A (zh) * | 2016-12-26 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | 区块链的权限控制方法、装置、系统及节点设备 |
CN106992990A (zh) * | 2017-05-19 | 2017-07-28 | 北京牛链科技有限公司 | 数据共享方法和系统以及区块链系统和计算设备 |
CN108062202A (zh) * | 2017-12-15 | 2018-05-22 | 中链科技有限公司 | 一种文件分块存储方法及系统 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022315B (zh) * | 2019-03-26 | 2021-06-29 | 创新先进技术有限公司 | 一种块链式账本中的权重管理方法、装置及设备 |
CN113726751B (zh) * | 2019-03-26 | 2023-08-18 | 创新先进技术有限公司 | 一种块链式账本中的权重管理方法、装置及设备 |
CN113726751A (zh) * | 2019-03-26 | 2021-11-30 | 创新先进技术有限公司 | 一种块链式账本中的权重管理方法、装置及设备 |
CN110022315A (zh) * | 2019-03-26 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种块链式账本中的权重管理方法、装置及设备 |
CN110059089A (zh) * | 2019-03-27 | 2019-07-26 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110059089B (zh) * | 2019-03-27 | 2021-01-22 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN114073023B (zh) * | 2019-04-26 | 2024-05-31 | 株式会社赛斯 | 电子设备和信息处理系统 |
CN114073023A (zh) * | 2019-04-26 | 2022-02-18 | 株式会社赛斯 | 电子设备和信息处理系统 |
US11423015B2 (en) | 2019-09-12 | 2022-08-23 | Advanced New Technologies Co., Ltd. | Log-structured storage systems |
CN111049902A (zh) * | 2019-09-16 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据存储方法、装置、存储介质和设备 |
CN110650097A (zh) * | 2019-09-20 | 2020-01-03 | 腾讯科技(深圳)有限公司 | 一种数据传播方法、装置以及计算机可读存储介质 |
CN112989404A (zh) * | 2019-12-18 | 2021-06-18 | 中移雄安信息通信科技有限公司 | 基于区块链的日志管理方法及相关设备 |
CN111448565B (zh) * | 2020-02-14 | 2024-04-05 | 支付宝(杭州)信息技术有限公司 | 基于去中心化标识的数据授权 |
CN111448565A (zh) * | 2020-02-14 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 基于去中心化标识的数据授权 |
CN111541756B (zh) * | 2020-04-17 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 区块生成方法、装置、节点设备及存储介质 |
CN111541756A (zh) * | 2020-04-17 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 区块生成方法、装置、节点设备及存储介质 |
CN111881472A (zh) * | 2020-07-22 | 2020-11-03 | 云账户技术(天津)有限公司 | 一种数据访问控制方法、系统及权限管理系统、介质 |
CN111881472B (zh) * | 2020-07-22 | 2024-04-26 | 云账户技术(天津)有限公司 | 一种数据访问控制方法、系统及权限管理系统、介质 |
CN112203280A (zh) * | 2020-10-10 | 2021-01-08 | 北京航空航天大学 | 一种面向边缘网关的数据可信传输机制 |
CN112203280B (zh) * | 2020-10-10 | 2024-02-09 | 北京航空航天大学 | 一种面向边缘网关的数据可信传输机制 |
CN112277881A (zh) * | 2020-12-25 | 2021-01-29 | 上海银基信息安全技术股份有限公司 | 一种身份认证方法及装置、车辆、用户设备 |
CN113094394A (zh) * | 2021-03-19 | 2021-07-09 | 广东省重工建筑设计院有限公司 | 数据访问方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491996A (zh) | 用于区块链网络的区块生成方法、区块数据访问方法、计算设备、存储介质 | |
Lashkari et al. | A comprehensive review of blockchain consensus mechanisms | |
CN109327528B (zh) | 一种基于区块链的节点管理方法和装置 | |
CN110599147B (zh) | 一种基于区块链的密文检索公平支付方法及系统 | |
TWI694350B (zh) | 基於區塊鏈的資訊監管方法及裝置 | |
CN106503574B (zh) | 区块链安全存储方法 | |
KR101987692B1 (ko) | 블록체인 집행의 스마트 계약을 위한 레지스트리 및 자동화 관리 방법 | |
CN107145768B (zh) | 版权管理方法和系统 | |
JP7075393B2 (ja) | ブロックチェーンにより実現されるシステム及び方法 | |
CN109086585A (zh) | 履历数据处理方法、系统及计算机可读存储介质 | |
CN108848080A (zh) | 基于联盟链存储校验的数据共享系统 | |
CN108848081A (zh) | 基于联盟链存储校验和积分激励机制的数据共享方法 | |
CN109344647A (zh) | 用于区块链网络的访问凭证生成方法、数据访问方法、存储介质、计算设备 | |
CN109460405A (zh) | 用于区块链网络的区块生成方法、同步方法、存储介质、计算设备 | |
Panda et al. | Bitcoin and blockchain: history and current applications | |
CN107967416A (zh) | 版权维权检测的方法、装置和系统 | |
WO2018031409A1 (en) | Distributed data store for managing media | |
CN109242404B (zh) | 履历信息管理方法、装置、计算机设备与可读存储介质 | |
CN111192146B (zh) | 区块链数据的订正方法及装置 | |
US11640475B1 (en) | Systems and processes for providing secure client controlled and managed exchange of data between parties | |
CN110245843B (zh) | 一种基于区块链的信息管理的方法及相关装置 | |
JP2018112827A (ja) | 情報処理システム | |
JP7311745B2 (ja) | 管理者端末、参加者端末、権利者端末、利用者端末、コンテンツ利用システム、管理者プログラム、参加者プログラム、権利者プログラムおよび利用者プログラム | |
Daraghmi et al. | A Blockchain‐Based Editorial Management System | |
CN114239044B (zh) | 一种去中心化的可追溯共享访问系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190319 |
|
WD01 | Invention patent application deemed withdrawn after publication |