CN111488608A - 业务数据区块链的数据验证方法及装置 - Google Patents

业务数据区块链的数据验证方法及装置 Download PDF

Info

Publication number
CN111488608A
CN111488608A CN202010270878.2A CN202010270878A CN111488608A CN 111488608 A CN111488608 A CN 111488608A CN 202010270878 A CN202010270878 A CN 202010270878A CN 111488608 A CN111488608 A CN 111488608A
Authority
CN
China
Prior art keywords
data
tree
object data
leaf node
user
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
Application number
CN202010270878.2A
Other languages
English (en)
Inventor
吉建勋
杨慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruice Technology Co Ltd
Original Assignee
Beijing Ruice Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ruice Technology Co Ltd filed Critical Beijing Ruice Technology Co Ltd
Priority to CN202010270878.2A priority Critical patent/CN111488608A/zh
Publication of CN111488608A publication Critical patent/CN111488608A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本发明提供了一种业务数据区块链的数据验证方法及装置,涉及区块链技术领域,包括客户端响应于用户校验请求操作;从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值;对所述对象数据进行哈希运算得到第二哈希值;校验所述第一哈希值与所述第二哈希值是否相同;若相同,则所述客户端通过用户界面显示所述对象数据真实。通过区块存储用户操作数据,树形结构存储用户操作后的状态及状态之间的关系,在客户端对数据进行验证时,可以对树形结构的节点进行验证,提升了数据验证的效率。并且保证了数据的真实性以及有效性,提升了数据的安全性。

Description

业务数据区块链的数据验证方法及装置
技术领域
本发明涉及区块链技术领域,尤其是涉及一种业务数据区块链的数据验证方法及装置。
背景技术
目前,区块链技术是运用加密算法、共识机制等技术的分布式存储账本。随着区块链技术的运用,越来越多的互联网数据会存储在区块链上。
现有的区块链中,只能存储交易数据,交易数据包括转账方地址、接收方地址以及转账金额;针对各种业务数据(例如:存证数据、溯源数据、金融数据、旅游数据、搜索数据、自媒体数据、调研数据、广告数据、电商数据、社区数据、知识问答数据、知识付费数据、共享单车数据、招聘数据、生活服务数据、租房数据、投票数据、OTO数据(也称为线上到线下数据)、社交数据、点赞数据、评价数据、网约车数据等互联网相关数据)而言,不仅需要在区块链上表达出数据本身,还需要在区块链上表达出数据之间的关联关系。
因此,如何实现在区块链上存储业务数据,换句话说,如何实现业务数据区块链,成为亟待解决的问题。
发明内容
本发明的目的在于提供一种业务数据区块链的数据验证方法及装置,以缓解了区块链中数据验证效率低的技术问题。
第一方面,实施例提供一种业务数据区块链的数据验证方法,应用于业务数据区块链系统,所述系统包括多个区块链节点,所述方法包括:
客户端响应于用户校验请求操作,所述用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;
从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,所述第一树形结构中叶子节点为所述对象数据对应的当前的叶子节点;
对所述对象数据进行哈希运算得到第二哈希值;
校验所述第一哈希值与所述第二哈希值是否相同;
若相同,则所述客户端通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
在可选的实施方式中,所述第一树形结构包括状态树,所述状态树存储的对象数据包括用户信息、实体信息以及积分信息的一种或多种;其中,所述客户端从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,具体包括:
所述客户端确定区块链节点是否存在所述对象数据对应状态树的叶子节点,若存在,则获取所述对象数据对应状态树中叶子节点的value的第一哈希值。
在可选的实施方式中,所述方法还包括:
所述客户端发送校验请求给区块链节点,所述校验请求包括所述第二哈希值和所述对象数据;
所述区块链节点获取所述对象数据对应的第二树形结构叶子节点的第三哈希值,且校验所述第二哈希值与所述第三哈希值是否相同;
若相同,所述客户端接收区块链节点发送的校验响应,并通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
在可选的实施方式中,所述第一树形结构包括关系树,所述关系树存储的对象数据包括用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息的一种或多种;其中,所述关系树中叶子节点的value以哈希表或数组的方式存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息;或,所述关系树的叶子节点的value用于存储关系子树的树根,所述关系子树存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息。
在可选的实施方式中,所述客户端从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,具体包括:
所述客户端确定区块链节点是否存在所述对象数据对应关系树中的叶子节点,若存在,则再确定所述关系树叶子节点的关系子树中是否存在所述对象数据对应的叶子节点,若存在,则获取所述对象数据对应所述关系树叶子节点中关系子树的叶子节点value的第一哈希值;
或者,所述客户端确定区块链节点是否存在所述对象数据对应的关系树中的叶子节点,若存在,则再确定所述关系树叶子节点的数组或哈希表中是否存在所述对象数据对应的元素,若存在,则获取所述对象数据对应的关系树中叶子节点的数组或哈希表元素的第一哈希值。
第二方面,实施例提供一种业务数据区块链的数据验证装置,应用于业务数据区块链系统,所述系统包括多个区块链节点,所述装置包括:
响应模块,用于响应于用户校验请求操作,所述用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;
获取模块,用于从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,所述第一树形结构中叶子节点为所述对象数据对应的当前的叶子节点;
运算模块,用于对所述对象数据进行哈希运算得到第二哈希值;
校验模块,用于校验所述第一哈希值与所述第二哈希值是否相同;
显示模块,用于若相同,则通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
在可选的实施方式中,所述第一树形结构包括状态树,所述状态树存储的对象数据包括用户信息、实体信息以及积分信息的一种或多种;其中,所述获取模块具体用于:
确定区块链节点是否存在所述对象数据对应状态树的叶子节点,若存在,则获取所述对象数据对应状态树中叶子节点的value的第一哈希值。
在可选的实施方式中,所述装置还包括:
发送模块,用于发送校验请求给区块链节点,所述校验请求包括所述第二哈希值和所述对象数据;
所述获取模块,用于获取所述对象数据对应的第二树形结构叶子节点的第三哈希值,且校验所述第二哈希值与所述第三哈希值是否相同;
接收模块,用于若相同,接收区块链节点发送的校验响应,并通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
在可选的实施方式中,所述第一树形结构包括关系树,所述关系树存储的对象数据包括用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息的一种或多种;其中,所述关系树中叶子节点的value以哈希表或数组的方式存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息;或,所述关系树的叶子节点的value用于存储关系子树的树根,所述关系子树存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息。
在可选的实施方式中,所述获取模块具体用于:
所述客户端确定区块链节点是否存在所述对象数据对应关系树中的叶子节点,若存在,则再确定所述关系树叶子节点的关系子树中是否存在所述对象数据对应的叶子节点,若存在,则获取所述对象数据对应所述关系树叶子节点中关系子树的叶子节点value的第一哈希值;
或者,所述客户端确定区块链节点是否存在所述对象数据对应的关系树中的叶子节点,若存在,则再确定所述关系树叶子节点的数组或哈希表中是否存在所述对象数据对应的元素,若存在,则获取所述对象数据对应的关系树中叶子节点的数组或哈希表元素的第一哈希值。
第三方面,实施例提供一种区块链节点,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施方式任意一项所述的方法。
第四方面,实施例提供一种区块链系统,包括多个区块链节点以及多个用户设备,所述区块链节点用于实现前述实施方式任意一项所述的方法。
第五方面,实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施方式任意一项所述的方法。
本发明提供的一种业务数据区块链的数据验证方法及装置。客户端响应于用户校验请求操作,所述用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,所述第一树形结构中叶子节点为所述对象数据对应的当前的叶子节点;对所述对象数据进行哈希运算得到第二哈希值;校验所述第一哈希值与所述第二哈希值是否相同;若相同,则所述客户端通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。通过区块存储用户操作数据,树形结构存储用户操作后的状态及状态之间的关系,在客户端对数据进行验证时,可以对树形结构的节点进行验证,提升了数据验证的效率。并且保证了数据的真实性以及有效性,提升了数据的安全性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开了一种应用场景示意图;
图2为现有的一种将区块链的账户状态数据组织成MPT状态树的示意图;
图3为现有的一种MPT状态树上的节点node复用的示意图;
图4为本申请公开了一种业务数据区块链的数据验证方法流程示意图;
图5为本申请公开了一种业务数据区块链的区块头结构示意图;
图6为本申请公开了一种业务数据区块链的数据验证装置结构示意图;
图7为本申请公开了一种区块链节点结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本申请实施例提供了一种业务数据区块链的数据验证方法及装置。图1示出了为本申请提供的区块链网络的示例性架构。
如图1所示,该示例性架构可以包括一个或多个用户设备101和一个或多个区块链节点102,当区块链节点102和用户设备101为多个时,形成区块链网络,其中,该区块链网络中的区块链节点可以包括存储节点和出块节点。用户设备101可以用于与区块链节点102进行交互,例如,用户设备101发送用户操作给区块链节点;区块链节点将该用户操作存储在区块链中;用户设备101还可以向区块链节点发送查询请求,该查询请求用于查询该区块链中的数据。
值得说明的是,本实施例架构并不限定其实现其他功能,例如用户设备101也可以作为区块链节点等。
为便于对本申请实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本申请实施例的限定。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。
而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
当然,对于一些基于以太坊的架构而衍生出的区块链项目,还可以对区块链支持的账户类型,进行进一步的扩展,在本说明书中不进行特别限定。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
以以太坊为例,账户的结构体通常包括Balance,Nonce,Code和storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击。
code字段,用于维护该账户的合约代码;在实际应用中,code字段中通常仅维护合约代码的hash值;因而,code字段通常也称之为codehash字段。对于外部账户而言,该字段为空值。
storage字段,用于维护该账户的存储(默认为空)。在实际应用中,storage字段仅维护基于账户的存储内容构建的MPT(Merkle Patricia Trie)树的根节点;因此,storage字段通常也称之为storageRoot字段。
其中,对于外部账户而言,以上示出的code字段和storage字段为空值。
而大多数区块链项目,通常都会使用Merkle树;或者,基于Merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了MPT树(一种Merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
以太坊针对区块链中需要存储和维护的数据,设计了三颗MPT树,分别是MPT状态树、MPT交易树和MPT收据树。
MPT状态树,是区块链中所有账户的账户状态数据(state),组织成的MPT树;MPT交易树是区块中的交易数据(transaction),组织成的MPT树;MPT收据树,是区块中的交易执行完毕后生成的与每笔交易对应的交易收据(receipt),组织成的MPT树。以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,都会被添加至区块头中。
其中,MPT交易树和MPT收据树,与区块相对应,每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。
对于组织成的MPT交易树、MPT收据树和MPT状态树,最终都会在采用多级数据存储结构的Key-Value型数据库(比如,LevelDB)中进行存储。
而采用多级存储结构的上述数据库,通常可以被划分为n级数据存储;例如,各级数据存储可以依次设为L0,L1,L2,L3....L(n-1);对于上述数据库中的各级数据存储而言,等级编号越小通常级别越高;例如,L0存储的是最新的若干区块的数据,L1存储的是次新的若干区块数据,依次类推。
其中,各级数据存储对应的存储介质的读写性能,通常也可以存在性能差异;级别高(即等级编号较小的)的数据存储对应的存储介质的读写性能,可以高于级别低的数据存储对应的存储介质的读写性能。
例如,在实际应用中,级别高的数据存储,可以使用读写性能较高的存储介质;而级别低的数据存储,可以使用单位成本低,且容量较大的存储介质。
在实际应用中,随着区块高度的增长,在数据库中存储的数据,会包含很多历史数据;而且,区块号越小的区块中的数据越久远,越不重要。因此,为了降低整体的存储成本,通常需要对不同区块高度的数据进行“区别对待”;
例如,可以将区块号较小的区块中的数据,存储至成本较低的存储介质上;而将区块号较大的区块中的数据,存储在成本较高的存储介质上。
在针对数据库中存储的MPT交易树、MPT收据树和MPT状态树等数据进行分级存储时,由于MPT交易树和MPT收据树,与各个区块相对应,实际上是“区块间无关”的数据;因此,对于MPT交易树和MPT收据树,很容易进行分级存储;例如,直接按照MPT交易树和MPT收据树上的node所属的区块号进行数据迁移即可完成分级存储。
基于此,本说明书将不再具体阐述MPT交易树和MPT收据树的分级存储,而重点阐述MPT状态树的分级存储。
请参见图2,图2为本说明书示出的一种将区块链的账户状态数据组织成MPT状态树的示意图。
MPT树,是一种经过改良的,融合了Merkle树和Trie字典树(也称之为前缀树)两种树形结构的优点的Merkle树变种。
在MPT树中通常包括三种数据节点,分别为叶子节点(leaf node),扩展节点(extension node)和分支节点(branch node)。
叶子节点,表示为[key,value]的一个键值对,其中key是种特殊十六进制编码。
扩展节点,也是[key,value]的一个键值对,但是这里的value是其他节点的hash值(hash指针)。也就是说通过hash指针链接到其他节点。
分支节点,因为MPT树中的key被编码成一种特殊的16进制的表示,再加上最后的value,所以分支节点是一个长度为17的list,前16个元素对应着key中的16个可能的十六进制字符(一个字符对应一个半字节nibble)。如果有一个[key,value]对在这个分支节点终止,最后一个元素代表一个value值,即分支节点既可以是搜索路径的终止也可以是路径的中间节点。
假设需要组织成MPT状态树的账户状态数据如下表1所示:
Figure BDA0002443122150000121
表1
在表1中,账户地址是由若干16进制的字符构成的字符串。账户状态state,是由上述Balance,Nonce,Code和storage等字段构成的结构体。
最终按照表1中的账户状态数据组织成的MPT状态树,参见图2所示;如图2所示,按照表1中的账户状态数据组织成的MPT状态树,是由4个叶子节点,2个分支节点,和2个扩展节点构成。
在图2中,prefix字段为扩展节点和叶子节点共同具有的前缀字段。该prefix字段的取值,在实际应用中可以用于表示节点类型。
prefix字段的取值为0,表示包含偶数个nibbles的扩展节点;如前所述,nibble表示半字节,由4位二进制组成,一个nibble可以对应一个组成账户地址的字符。
prefix字段的取值为1,表示包含奇数个nibble(s)的扩展节点;
prefix字段的取值为2,表示包含偶数个nibbles的叶子节点;
prefix字段的取值为3,表示包含奇数个nibble(s)的叶子节点。
而分支节点,由于其是并列单nibble的前缀节点,因此分支节点不具有上述prefix字段。
扩展节点中的Shared nibble字段,对应该扩展节点所包含的键值对的key值,表示账户地址之间的共同字符前缀;比如,上表中的所有账户地址均具有共同的字符前缀a7。Next Node字段中填充下一个节点的hash值(hash指针)。
分支节点中的16进制字符0~f字段,对应该分支节点所包含的键值对的key值;如果该分支节点为账户地址在MPT树上的搜索路径上的中间节点,则该分支节点的Value字段可以为空值。0~f字段中用于填充下一个节点的hash值。
叶子节点中的Key-end,对应该叶子节点所包含的键值对的key值,表示账户地址的最后几个字符。从根节点搜索到叶子节点的搜索路径上的各个节点的key值,构成了一个完整的账户地址。该叶子节点的Value字段填充账户地址对应的账户状态数据;例如,可以对上述Balance,Nonce,Code和storage等字段构成的结构体进行编号后,填充至叶子节点的Value字段。
进一步的,如图2所示的MPT状态树上的node,最终也是以Key-Value键值对的形式存储在数据库中;
其中,当MPT状态树上的node在数据库中进行存储时,MPT状态树上的node的键值对中的key,为node所包含的数据内容的hash值;MPT状态树上的node的键值对中的Value,为node所包含的数据内容。
也即,在将MPT状态树上的node存储至数据库时,可以计算该node所包含的数据内容的hash值(即对node整体进行hash计算),并将计算出的hash值作为key,将该node所包含的数据内容作为value,生成Key-Value键值对;然后,将生成的Key-Value键值对存储至数据库中。
由于MPT状态树上的node,是以node所包含的数据内容的hash值为Key,node所包含的数据内容为value进行存储;因此,在需要查询MPT状态树上的node时,通常可以基于node所包含的数据内容的hash值作为key来进行内容寻址。而采用“内容寻址”,对于一些“内容重复”的node,则通常可以进行“复用”,以节约数据存储的存储空间。
如图3所示,图3为本说明书示出的一种MPT状态树上的node复用的示意图。
在实际应用中,区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中与这些被执行的交易相关账户的账户状态,通常也会随之发生变化;
例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的取值),通常也会随之发生变化。
而节点设备在区块链产生的最新区块中的交易执行完毕后,由于当前区块链中的账户状态发生了变化,因此节点设备需要根据区块链中所有账户当前的账户状态数据,来构建MPT树,用于维护区块链中所有账户的最新状态。
也即,每当区块链中产生一个最新区块,并且该最新区块中的交易执行完毕后,导致区块链中的账户状态发生变化,节点设备都需要基于区块链中所有账户最新的账户状态数据,重新构建一颗MPT树。
换句话说,区块链中每一个区块,都有一个与之对应的MPT状态树;该MPT状态树,维护了在该区块中的交易在执行完毕后,区块链中所有账户最新的账户状态。
而需要说明的是,一个最新区块中的交易执行完毕后,可能仅仅会导致部分账户的账户状态发生变化;因此,在更新MPT状态树时,并不需要基于区块链中所有的账户当前的状态数据,重新构建一颗完整的MPT状态树,而只需要在该最新区块之前的区块对应的MPT状态树的基础上,对部分账户状态发生变化的账户对应的node进行更新即可。而对于MPT状态树上与账户状态未发生变化的账户对应的node而言,由于这些node为发生数据更新,可以直接复用该最新区块之前的区块对应的MPT状态树上相应的node即可。
如图3所示,假设表1中的账户状态数据,为Block N中的交易执行完毕后,区块链上所有账户的最新账户状态;基于表1中的账户状态数据组织成的MPT状态树,仍如图2所示。
假设当Block N+1中的交易执行完毕后,导致上述表1中的账户地址为“a7f9365”的账户状态,由“state3”更新为“state5”;此时,在Block N+1更新MPT状态树时,并不需要基于Block N+1中的交易执行完毕后,区块链中所有的账户当前的状态数据,重新构建一颗MPT状态树。
请参见图3,在这种情况下,可以仅将Block N对应的MPT树上(即图2示出的MPT状态树),“key-end”为“9365”的叶子节点中的Value,由“state3”更新为“state5”,并继续更新从root节点到该叶子节点的路径上的所有节点的hash指针;也即,当MPT状态树上的叶子节点发生更新,由于该叶子节点整体的hash值发生更新,那么从根节点到该叶子节点的路径上的所有的节点的hash指针也会随之发生更新。例如,请继续参见图3,除了需要更新“key-end”为“9365”的叶子节点中的Value值以外,还需要更新该叶子节点的上一个分支节点(Branch Node)的f字段中填充的,指向该叶子节点的哈希指针;进一步的,还可以继续向根节点追溯,继续更新该分支节点的上一个根节点(Root Extension Node)的“Next Node”字段中填充的,指向该分支节点的hash指针。
而除了以上发生更新的节点以外,其它未发生更新的节点,都可以直接复用BlockN的MPT状态树上对应的节点即可;
其中,由于Block N对应的MPT树,最终需要作为历史数据进行保留;因此,在BlockN+1更新MPT状态树时,对于这些发生更新的node,并不是对Block N对应的MPT状态树上原来的node的基础上,直接进行修改更新,而是在Block N+1对应的MPT树上重新创建这些发生更新的node。
也即,对于与Block N+1对应的MPT状态树上,实际上只需要重新创建少量发生更新的node,对于其它未发生更新的node,可以通过直接复用Block N对应的MPT状态树上对应的节点。
例如,如图3所示,对于Block N+1对应的MPT状态树上,实际上只需要重新创建少量发生更新的node;比如,图3中仅需要重新创建一个作为根节点的扩展节点、一个分支节点和一个叶子节点;对于未发生更新的node,可以通过在该MPT状态树上这些重新创建的node中,添加指向Block N对应的MPT状态树上的相应node的hash指针来完成node的复用。而Block N对应的MPT状态树上那些更新前的node,将作为历史账户状态数据进行保存;比如,图3示出的“key-end”为“9365”,且Value为“state3”的叶子节点,将作为历史数据进行保留。在以上例子中,以Block N+1的MPT状态树上的少量node发生内容更新,可以“复用”上一个区块Block N的大多数node为例进行了说明。而在实际应用中,Block N+1的MPT状态树上也可能会较上一个区块Block N新增node。
在这种情况下,该新增的node虽然无法直接从上一个区块Block N的MPT树中进行复用,但有可能从更早之前的区块的MPT状态树上进行“复用”;
例如,Block N+1的MPT状态树上新增的node,虽然在Block N的MPT状态树上出现过,但出现在更早的Block的MPT状态树上;比如,出现在Block N-1的MPT状态树上;因此,Block N+1的MPT状态树上新增的node,可以直接复用Block N-1的MPT状态树上对应的node即可。
以上是现有的区块链中的存储结构说明,下面对本申请中的业务数据区块链的存储结构进行说明。
图4为本申请提供的一种业务数据区块链的数据验证方法流程示意图。如图4所示,应用于业务数据区块链系统,区块链系统包括多个区块链节点,例如图1中的区块链节点102,该方法具体可以包括如下步骤:
S410,客户端响应于用户校验请求操作,用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;
该业务数据区块链可以用于存储用户操作数据,该用户操作数据可以为用户在互联网上的操作数据,用户操作数据包括存证数据、溯源数据、金融数据、旅游数据、搜索数据、自媒体数据、调研数据、广告数据、电商数据、社区数据、知识问答数据、知识付费数据、共享单车数据、招聘数据、生活服务数据、租房数据、投票数据、线上到线下数据、社交数据、点赞数据、评价数据以及网约车数据中的一种或多种。
在一个示例中,用户操作数据包括时间戳、操作用户地址、被操作地址、操作类型、转账的值、积分地址、用户对用户操作数据的签名以及用户操作数据的哈希值中的一种或多种;其中,操作类型包括用户对实体的操作和转账操作,被操作地址包括对实体的操作地址和其他用户的地址。
该对象数据为基于用户操作数据确定的统计数据,该统计数据可以分为状态和关系,并分别记录与状态树和关系树中。
S420,客户端从区块链节点获取对象数据对应的第一树形结构中叶子节点的第一哈希值,第一树形结构中叶子节点为对象数据对应的当前的叶子节点;
S430,客户端对对象数据进行哈希运算得到第二哈希值;
S440,客户端校验第一哈希值与第二哈希值是否相同;
S450,若相同,则客户端通过用户界面显示对象数据真实,以提示用户对象数据已存储在区块链上。
若不同则校验失败。则可以重新获取数据或者流程终止。
通过区块存储用户操作数据,树形结构存储用户操作后的状态及状态之间的关系,在对数据进行验证时,可以对树形结构的节点依次进行验证,提升了数据验证的效率。并且保证了数据的真实性以及有效性,提升了数据的安全性。
在一些实施例中,还可以通过区块链节点来进行校验。基于此,该方法还包括:
步骤1),客户端发送校验请求给区块链节点,校验请求包括第二哈希值和对象数据;
步骤2),区块链节点获取对象数据对应的第二树形结构叶子节点的第三哈希值,且校验第二哈希值与第三哈希值是否相同;
步骤3),若相同,客户端接收区块链节点发送的校验响应,并通过用户界面显示对象数据真实,以提示用户对象数据已存储在区块链上。
在一些实施例中,该对象数据可以为用户操作后的全局状态,其中,用户操作后的全局状态包括积分信息、用户信息以及实体信息中的一种或多种;其中,用户操作为用户对业务数据的操作。
举例来说,实体可以是互联网电子商务平台的商品,用户可以发起购买该商品的操作,就是针对该商品实体的转账操作;用户也可以发起针对该商品的评论或点赞操作,就是针对该商品实体的用户操作。
积分可以是用户发行的积分,例如:用户可以通过公证后,将房子证券化后,在区块链上发行一个积分,这个积分在区块链上唯一表示该房产;也可以是,将房子证券化,发行预定数量的积分,拥有该积分即拥有该房子的所有权,享有该房子租赁或者变卖的对等所有权。除此之外,区块链上拥有原生积分,该原生积分可以用于约束用户在区块链上的操作,避免用户无限制的使用区块链系统的资源;例如:区块链上的用户注册后,在区块链上进行操作,需要抵押原生积分,才能将用户操作数据上链。
作为一个示例,用户信息(如:Account字段)、积分信息(如:Asset字段)、实体信息(如:Object字段)中任意一种状态信息都可以采用MPT状态树来实现,各种MPT状态树的树根存储在区块头中。如图5所示,区块存储的用户操作(如:Action字段),和链上数据库存储的收据信息(如:Receipt字段)的MPT状态树的树根也存储在区块头中。
作为一个示例,第一树形结构包括状态树,状态树存储的对象数据包括用户信息、实体信息以及积分信息的一种或多种;其中,上述步骤S420具体可以包括如下步骤:
步骤a),客户端确定区块链节点是否存在对象数据对应状态树的叶子节点,若存在,则获取对象数据对应状态树中叶子节点的value的第一哈希值。
在一些实施例中,该关系树可以为用户操作后全局状态之间的关系。用户操作后全局状态之间关系包括用户信息-积分信息、实体信息-积分信息以及实体信息和用户信息中的一种或多种。
作为一个示例,实体信息-用户信息(如:Object-Account字段)、用户信息-积分信息(如:Account-Asset字段)、实体信息-积分信息(如:Object-Asset字段)中任意一种关联关系都可以采用MPT关系树来实现,各种MPT关系树的树根存储在区块头中。如图5所示,区块存储的用户操作(如:Action字段),和链上数据库存储的收据信息(如:Receipt字段)的MPT关系树的树根也存储在区块头中。
在一个示例中,关系树存储的关联关系包括实体信息和用户信息的关联关系;其中,一个实体信息对应一个或多个用户信息。
例如:在互联网的电子商务平台(如:淘宝、天猫、京东商城)上,一件商品,有多位不同用户购买;在互联网上的自媒体平台(如:微信、微博)上,一条自媒体数据,多位用户进行了点赞或评论;这类实体与用户之间的一对多关系,可以采用上述实体信息-用户信息的关联关系表达出来。不仅方便了业务数据上链,也方便了用户对业务数据进行查询。
在另一个示例中,关系树的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息。
此时,一位用户有可能拥有多种积分;例如:一位用户既拥有区块链上的原生积分,还拥有其他类型的积分。上述关联关系能够描述该用户与积分之间的一对多关系,同时也方便该用户查询。需要说明的是,在区块链系统中的用户,至少会拥有该区块链系统的原生积分;有可能拥有其他用户发行或者自己发行的积分。
在另一个示例中,关系树存储的关联关系包括实体信息和积分信息的关联关系;其中,一个实体信息对应一个或多个积分信息。
此时,相当于在区块链上,实现了实体的证券化;例如:一件商品的所有权,对应一个积分,积分的转账对应该商品所有权的转移;一套房子的所有权,对应预定数量的积分,拥有积分的数量对应该房子的所有权比例,即拥有该房子出售或者租赁同比例的价款。
需要说明的是,区块链系统中的区块包括区块头和区块体,区块头存储的是摘要信息,区块体存储的是转账信息(也称交易信息)。本说明书中用户操作是存储在区块的区块体中,用户操作的摘要值(也称哈希值)存储在区块头中;本说明书中的链上状态数据库也是区块链系统存储的一部分,每个区块链节点都有链上状态数据库和区块,来存储本说明书中的业务数据。
作为一个示例,第一树形结构包括关系树,关系树存储的对象数据包括用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息的一种或多种;其中,关系树中叶子节点的value以哈希表或数组的方式存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息;或,关系树的叶子节点的value用于存储关系子树的树根,关系子树存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息。
基于此,上述步骤S420具体可以通过如下步骤实现:
步骤A1),客户端确定区块链节点是否存在对象数据对应关系树中的叶子节点;
步骤A2),若步骤A1)中的结果为存在,则再确定关系树叶子节点的关系子树中是否存在对象数据对应的叶子节点;
步骤A3),若步骤A2)中的结果为存在,则获取对象数据对应关系树叶子节点中关系子树的叶子节点value的第一哈希值。
或者,上述步骤S420具体还可以通过如下步骤实现:
步骤B1),客户端确定区块链节点是否存在对象数据对应的关系树中的叶子节点;
步骤B2),若步骤B1)中的结果为存在,则再确定关系树叶子节点的数组或哈希表中是否存在对象数据对应的元素;
步骤B3),若步骤B2)中的结果为存在,则获取对象数据对应的关系树中叶子节点的数组或哈希表元素的第一哈希值。
作为一个示例,以实体信息和用户信息之间的对应关系来说,用户A校验用户B对实体C的操作数据是否保存在区块链上;这里第一次是判断实体C是否存在;存在实体C后,第二次是判断用户B是否对该实体C有操作;若用户B对实体C有操作了,最后获取用户B对实体C操作数据的哈希值来进行一致性校验。
图6为本申请实施例提供的一种业务数据区块链的数据验证装置结构示意图。如图6所示,应用于业务数据区块链系统,系统包括多个区块链节点,装置包括:
响应模块601,用于响应于用户校验请求操作,用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;
获取模块602,用于从区块链节点获取对象数据对应的第一树形结构中叶子节点的第一哈希值,第一树形结构中叶子节点为对象数据对应的当前的叶子节点;
运算模块603,用于对对象数据进行哈希运算得到第二哈希值;
校验模块604,用于校验第一哈希值与第二哈希值是否相同;
显示模块605,用于若相同,则通过用户界面显示对象数据真实,以提示用户对象数据已存储在区块链上。
在一些实施例中,第一树形结构包括状态树,状态树存储的对象数据包括用户信息、实体信息以及积分信息的一种或多种;其中,获取模块具体用于:
确定区块链节点是否存在对象数据对应状态树的叶子节点,若存在,则获取对象数据对应状态树中叶子节点的value的第一哈希值。
在一些实施例中,该装置还包括:
发送模块,用于发送校验请求给区块链节点,校验请求包括第二哈希值和对象数据;
获取模块,用于获取对象数据对应的第二树形结构叶子节点的第三哈希值,且校验第二哈希值与第三哈希值是否相同;
接收模块,用于若相同,接收区块链节点发送的校验响应,并通过用户界面显示对象数据真实,以提示用户对象数据已存储在区块链上。
在一些实施例中,第一树形结构包括关系树,关系树存储的对象数据包括用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息的一种或多种;其中,关系树中叶子节点的value以哈希表或数组的方式存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息;或,关系树的叶子节点的value用于存储关系子树的树根,关系子树存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息。
在一些实施例中,获取模块具体用于:
客户端确定区块链节点是否存在对象数据对应关系树中的叶子节点,若存在,则再确定关系树叶子节点的关系子树中是否存在对象数据对应的叶子节点,若存在,则获取对象数据对应关系树叶子节点中关系子树的叶子节点value的第一哈希值;或者,客户端确定区块链节点是否存在对象数据对应的关系树中的叶子节点,若存在,则再确定关系树叶子节点的数组或哈希表中是否存在对象数据对应的元素,若存在,则获取对象数据对应的关系树中叶子节点的数组或哈希表元素的第一哈希值。
可以理解,本实施例的业务数据区块链的数据验证装置与图4所示的方法实施例相对应,因此,以上关于图4所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。
图7示出了本申请实施例所提供的一种区块链节点结构示意图,该计算机设备可以包括:处理器710、存储器720、输入/输出接口730、通信接口740和总线750。其中处理器710、存储器720、输入/输出接口730和通信接口740通过总线750实现彼此之间在设备内部的通信连接。处理器710用于执行存储器720中存储的可执行模块,例如图4所示的方法实施例对应的计算机程序。
对于上述图7中,处理器可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行。
输入/输出接口用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线包括一通路,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器、存储器、输入/输出接口、通信接口以及总线,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的范围之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种业务数据区块链的数据验证方法,应用于业务数据区块链系统,所述系统包括多个区块链节点,其特征在于,所述方法包括:
客户端响应于用户校验请求操作,所述用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;
从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,所述第一树形结构中叶子节点为所述对象数据对应的当前的叶子节点;
对所述对象数据进行哈希运算得到第二哈希值;
校验所述第一哈希值与所述第二哈希值是否相同;
若相同,则所述客户端通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
2.根据权利要求1所述的数据验证方法,其特征在于,所述第一树形结构包括状态树,所述状态树存储的对象数据包括用户信息、实体信息以及积分信息的一种或多种;其中,所述客户端从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,具体包括:
所述客户端确定区块链节点是否存在所述对象数据对应状态树的叶子节点,若存在,则获取所述对象数据对应状态树中叶子节点的value的第一哈希值。
3.根据权利要求1所述的数据验证方法,其特征在于,所述方法还包括:
所述客户端发送校验请求给区块链节点,所述校验请求包括所述第二哈希值和所述对象数据;
所述区块链节点获取所述对象数据对应的第二树形结构叶子节点的第三哈希值,且校验所述第二哈希值与所述第三哈希值是否相同;
若相同,所述客户端接收区块链节点发送的校验响应,并通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
4.根据权利要求2所述的数据验证方法,其特征在于,所述第一树形结构包括关系树,所述关系树存储的对象数据包括用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息的一种或多种;其中,
所述关系树中叶子节点的value以哈希表或数组的方式存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息;或
所述关系树的叶子节点的value用于存储关系子树的树根,所述关系子树存储用户信息-积分信息、实体信息-积分信息以及实体信息-用户信息。
5.根据权利要求4所述的数据验证方法,其特征在于,所述客户端从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,具体包括:
所述客户端确定区块链节点是否存在所述对象数据对应关系树中的叶子节点,若存在,则再确定所述关系树叶子节点的关系子树中是否存在所述对象数据对应的叶子节点,若存在,则获取所述对象数据对应所述关系树叶子节点中关系子树的叶子节点value的第一哈希值;
或者,
所述客户端确定区块链节点是否存在所述对象数据对应的关系树中的叶子节点,若存在,则再确定所述关系树叶子节点的数组或哈希表中是否存在所述对象数据对应的元素,若存在,则获取所述对象数据对应的关系树中叶子节点的数组或哈希表元素的第一哈希值。
6.一种业务数据区块链的数据验证装置,应用于业务数据区块链系统,所述系统包括多个区块链节点,其特征在于,所述装置包括:
响应模块,用于响应于用户校验请求操作,所述用户校验请求为用户针对来自业务数据区块链系统的对象数据的校验请求;
获取模块,用于从区块链节点获取所述对象数据对应的第一树形结构中叶子节点的第一哈希值,所述第一树形结构中叶子节点为所述对象数据对应的当前的叶子节点;
运算模块,用于对所述对象数据进行哈希运算得到第二哈希值;
校验模块,用于校验所述第一哈希值与所述第二哈希值是否相同;
显示模块,用于若相同,则通过用户界面显示所述对象数据真实,以提示用户所述对象数据已存储在区块链上。
7.根据权利要求6所述的数据验证装置,其特征在于,所述第一树形结构包括状态树,所述状态树存储的对象数据包括用户信息、实体信息以及积分信息的一种或多种;其中,所述获取模块具体用于:
确定区块链节点是否存在所述对象数据对应状态树的叶子节点,若存在,则获取所述对象数据对应状态树中叶子节点的value的第一哈希值。
8.一种区块链节点,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-5任意一项所述的方法。
9.一种区块链系统,其特征在于,包括多个区块链节点以及多个用户设备,所述区块链节点用于实现权利要求1-5任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任意一项所述的方法。
CN202010270878.2A 2020-04-08 2020-04-08 业务数据区块链的数据验证方法及装置 Pending CN111488608A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010270878.2A CN111488608A (zh) 2020-04-08 2020-04-08 业务数据区块链的数据验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010270878.2A CN111488608A (zh) 2020-04-08 2020-04-08 业务数据区块链的数据验证方法及装置

Publications (1)

Publication Number Publication Date
CN111488608A true CN111488608A (zh) 2020-08-04

Family

ID=71798123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010270878.2A Pending CN111488608A (zh) 2020-04-08 2020-04-08 业务数据区块链的数据验证方法及装置

Country Status (1)

Country Link
CN (1) CN111488608A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035491A (zh) * 2020-09-30 2020-12-04 中山大学 基于区块链的数据存储方法、电子积分处理方法及系统
CN112133387A (zh) * 2020-11-20 2020-12-25 杭州太美星程医药科技有限公司 病例信息的数据迁移、存储方法及系统
CN113505138A (zh) * 2021-09-06 2021-10-15 支付宝(杭州)信息技术有限公司 区块链系统中状态证明及执行区块的方法及装置
WO2024066009A1 (zh) * 2022-09-30 2024-04-04 蚂蚁区块链科技(上海)有限公司 区块链系统中的状态验证方法、装置、节点和区块链

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109523341A (zh) * 2018-10-12 2019-03-26 广西师范大学 基于区块链技术的匿名跨域推荐方法
WO2019101229A2 (en) * 2019-03-04 2019-05-31 Alibaba Group Holding Limited Updating blockchain world state merkle patricia trie subtree
CN110009356A (zh) * 2019-04-16 2019-07-12 北京艾摩瑞策科技有限公司 一种基于区块链的业务数据上链方法及其系统
CN110493325A (zh) * 2019-07-31 2019-11-22 阿里巴巴集团控股有限公司 区块链状态数据同步方法及装置、电子设备
CN110688377A (zh) * 2019-08-30 2020-01-14 阿里巴巴集团控股有限公司 一种更新状态默克树的方法及装置
CN110889729A (zh) * 2019-11-29 2020-03-17 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109523341A (zh) * 2018-10-12 2019-03-26 广西师范大学 基于区块链技术的匿名跨域推荐方法
WO2019101229A2 (en) * 2019-03-04 2019-05-31 Alibaba Group Holding Limited Updating blockchain world state merkle patricia trie subtree
CN110009356A (zh) * 2019-04-16 2019-07-12 北京艾摩瑞策科技有限公司 一种基于区块链的业务数据上链方法及其系统
CN110493325A (zh) * 2019-07-31 2019-11-22 阿里巴巴集团控股有限公司 区块链状态数据同步方法及装置、电子设备
CN110688377A (zh) * 2019-08-30 2020-01-14 阿里巴巴集团控股有限公司 一种更新状态默克树的方法及装置
CN110889729A (zh) * 2019-11-29 2020-03-17 腾讯科技(深圳)有限公司 一种基于区块链网络的数据验证方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZHAOJUN LU 等: "A Blockchain-Based Privacy-Preserving", 《IEEE》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035491A (zh) * 2020-09-30 2020-12-04 中山大学 基于区块链的数据存储方法、电子积分处理方法及系统
CN112035491B (zh) * 2020-09-30 2021-12-28 中山大学 基于区块链的数据存储方法、电子积分处理方法及系统
CN112133387A (zh) * 2020-11-20 2020-12-25 杭州太美星程医药科技有限公司 病例信息的数据迁移、存储方法及系统
CN112133387B (zh) * 2020-11-20 2021-03-16 杭州太美星程医药科技有限公司 病例信息的数据迁移、存储方法及系统
CN113505138A (zh) * 2021-09-06 2021-10-15 支付宝(杭州)信息技术有限公司 区块链系统中状态证明及执行区块的方法及装置
WO2024066009A1 (zh) * 2022-09-30 2024-04-04 蚂蚁区块链科技(上海)有限公司 区块链系统中的状态验证方法、装置、节点和区块链

Similar Documents

Publication Publication Date Title
CN111488396B (zh) 业务数据区块链的数据同步方法及装置
CN111488608A (zh) 业务数据区块链的数据验证方法及装置
CN111488614A (zh) 基于业务数据区块链的数字身份存储方法及装置
CN111737726A (zh) 基于业务数据区块链的关系数据查询方法及装置
CN111488610A (zh) 基于业务数据区块链的状态数据查询方法及装置
CN111695136A (zh) 业务数据区块链的实现方法及其系统
CN111488611B (zh) 业务数据区块链的关系数据存储方法及装置
CN111523137A (zh) 基于业务数据区块链的数据推荐方法及装置
CN111488606B (zh) 基于业务数据区块链的数据共享方法及装置
CN111488607A (zh) 业务数据区块链的数据处理方法及其装置
CN111695132A (zh) 基于业务数据区块链的投票数据存储方法及系统
CN111488356A (zh) 业务数据区块链的数据存储方法及其装置
CN111695137A (zh) 基于业务数据区块链的旅游数据存储方法及系统
CN111737728A (zh) 基于业务数据区块链的自媒体数据存储方法及系统
CN111488345A (zh) 业务数据区块链的存储优化方法及装置
CN111737729A (zh) 基于业务数据区块链的评价数据存储方法及系统
CN111695139A (zh) 基于业务数据区块链的知识问答数据存储方法及系统
CN111488613A (zh) 业务数据区块链的数据高效查询方法及装置
CN111488352A (zh) 基于业务数据区块链的积分兑换方法及装置
CN111488605A (zh) 业务数据区块链的数据上链方法及装置
CN111695135A (zh) 基于业务数据区块链的关系数据查询方法及装置
CN111488612A (zh) 基于业务数据区块链的状态数据查询方法及装置
CN111737732A (zh) 基于业务数据区块链的合约数据存储方法及装置
CN111737733A (zh) 业务数据区块链的实现方法及其系统
CN111695143A (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