CN115168916B - 一种面向移动终端应用的数字对象可信存证方法和系统 - Google Patents
一种面向移动终端应用的数字对象可信存证方法和系统 Download PDFInfo
- Publication number
- CN115168916B CN115168916B CN202210888353.4A CN202210888353A CN115168916B CN 115168916 B CN115168916 B CN 115168916B CN 202210888353 A CN202210888353 A CN 202210888353A CN 115168916 B CN115168916 B CN 115168916B
- Authority
- CN
- China
- Prior art keywords
- digital object
- block
- record
- change
- digital
- 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.)
- Active
Links
Images
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种面向移动终端应用的数字对象可信存证方法和系统,本发明实施例涉及计算机技术领域,旨在提高存储数字对象的变化记录时的可信度。包括:根据用户的输入操作生成数字对象的变化记录,数字对象包括由移动终端应用产生的数据封装形成的数字对象;对变化记录进行校验,在校验通过后,将变化记录放入缓冲池中;根据缓冲池中的变化记录生成待共识区块;待共识区块包括对缓冲池中的变化记录进行打包得到普通区块,和通过Kmeans算法定期生成的状态树调整区块,状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;通过区块共识算法将待共识区块存储在各个节点中。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种面向移动终端应用的数字对象可信存证方法和系统。
背景技术
数字对象架构(Digital Object Architecture,DOA)是一种以数据为中心的软件体系架构,其基本元素是数字对象(Digital Object,DO)。数字对象可以对互联网上的数据资源的统一抽象,将互联网上的数据资源统一抽象为数字对象并建模为实体、元数据和状态信息三个部分并分配唯一的数字对象标识。通过对移动终端应用产生的数据进行统一抽象并建模为数字对象,可以为移动终端应用的互联互通提供基础,应用程序可以通过标准的协议,对从属不同主体的数字对象进行访问、解析和搜索,便于催生出更多的新应用。
移动终端及其上安装的应用程序往往从属于不同的主体,具有多主体的特征,在单一主体内部,主体对其管理的数据具有修改权限,所以在需要数据互联互通的场景下,不同主体之间对彼此提供的数据不信任,且应用程序对数字对象的历史状态变化存在使用需求。所以如何将移动终端应用产生的数据封装成数字对象,将数字对象的变化记录保存下来,并且保证多主体下数字对象变化记录的可信是需要解决的问题。
发明内容
本发明实施例提供一种面向移动终端应用的数字对象可信存证方法和系统,以解决相关技术中,对移动终端应用产生的数据封装而成的数字对象的变化记录进行保存时,变化记录的可信度较差的问题。
第一方面,本发明实施例提供了一种面向移动终端应用的数字对象可信存证方法,该方法包括:
根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象;
对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中;
根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;
通过区块共识算法将所述待共识区块存储在各个节点中。
在一种可选实施方式中,所述方法还包括:
将移动终端应用产生的数据封装形成数字对象;
对所述数字对象的元数据、状态信息和数据实体的内容分别进行扩展。
在一种可选实施方式中,所述方法还包括:
获取用户输入的数字对象编号,在当前维护的最新状态树中查找所述数字对象编号对应的数字对象的叶子节点,计算所述叶子节点的默克尔路径,将所述默克尔路径返回给所述用户,以使所述用户根据所述默克尔路径进行数据完整性和正确性检验;
获取用户输入的数字对象编号和变化记录范围,遍历所述变化记录范围内的所有区块,将所述所有区块中与所述数字对象编号匹配的变化记录添加到历史状态变化列表中,并将所述历史状态变化列表返回给所述用户。
在一种可选实施方式中,所述根据用户的输入操作生成数字对象的变化记录,包括:
在用户选择存证数字对象新增记录的情况下,接收所述用户输入的数字对象标识和数字对象的初始化状态信息,根据所述数字对象标识和所述初始化状态信息生成数字对象新增记录;
在用户选择存证数字对象更新记录的情况下,接收所述用户输入的数字对象的数字对象标识和所述数字对象的更新后的状态信息,根据所述数字对象标识和所述更新后的状态信息生成数字对象更新记录;
在用户选择存证数字对象注销记录的情况下,接收所述用户输入的数字对象的数字对象标识,根据所述数字对象标识生成数字对象注销记录。
在一种可选实施方式中,所述方法还包括:
基于所述普通区块对应的数字对象变化记录的类型,确定所述普通区块对应的最新的状态树根,并根据所述普通区块对应的最新的状态树根对所述普通区块进行验证;
基于所述状态树调整区块的叶子节点调整记录,得到所述状态树调整区块对应的最新的状态树根,并根据所述状态树调整区块对应的最新的状态树根对所述状态树调整区块进行验证。
第二方面,本发明实施例提供了一种面向移动终端应用的数字对象可信存证系统,该系统包括:
数字对象存证模块,用于根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象;对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中;
区块生成与验证模块,用于根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;
区块共识模块,用于通过区块共识算法将所述待共识区块存储在各个节点中。
在一种可选实施方式中,所述系统还包括:
数字对象生成模块,用于将移动终端应用产生的数据封装形成数字对象;对所述数字对象的元数据、状态信息和数据实体的内容分别进行扩展。
在一种可选实施方式中,所述系统还包括:
数字对象查验模块,用于获取用户输入的数字对象编号,在当前维护的最新状态树中查找所述数字对象编号对应的数字对象的叶子节点,计算所述叶子节点的默克尔路径,将所述默克尔路径返回给所述用户,以使所述用户根据所述默克尔路径进行数据完整性和正确性检验;获取用户输入的数字对象编号和变化记录范围,遍历所述变化记录范围内的所有区块,将所述所有区块中与所述数字对象编号匹配的变化记录添加到历史状态变化列表中,并将所述历史状态变化列表返回给所述用户。
在一种可选实施方式中,所述数字对象存证模块,还用于在用户选择存证数字对象新增记录的情况下,接收所述用户输入的数字对象标识和数字对象的初始化状态信息,根据所述数字对象标识和所述初始化状态信息生成数字对象新增记录;在用户选择存证数字对象更新记录的情况下,接收所述用户输入的数字对象的数字对象标识和所述数字对象的更新后的状态信息,根据所述数字对象标识和所述更新后的状态信息生成数字对象更新记录;在用户选择存证数字对象注销记录的情况下,接收所述用户输入的数字对象的数字对象标识,根据所述数字对象标识生成数字对象注销记录。
在一种可选实施方式中,所述区块生成与验证模块,还用于基于所述普通区块对应的数字对象变化记录的类型,确定所述普通区块对应的最新的状态树根,并根据所述普通区块对应的最新的状态树根对所述普通区块进行验证;基于所述状态树调整区块的叶子节点调整记录,得到所述状态树调整区块对应的最新的状态树根,并根据所述状态树调整区块对应的最新的状态树根对所述状态树调整区块进行验证。
在本发明实施例中,根据用户的输入操作生成数字对象的变化记录,变化记录包括新增记录、更新记录和注销记录,数字对象包括由移动终端应用产生的数据封装形成的数字对象;对变化记录进行校验,在校验通过的情况下,将变化记录放入缓冲池中;根据缓冲池中的变化记录生成待共识区块;其中,待共识区块包括对缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;通过区块共识算法将待共识区块存储在各个节点中。通过区块链技术对多主体下对移动终端应用产生的数据封装而成的数字对象的变化记录进行保存,提升了多主体中变化记录的可信度,还通过设计状态树调整算法,提高区块生成和验证的效率。改变传统状态树叶子节点位置固定的模式,使用Kmeans算法对数字对象的历史变化记录进行定期分析,将具有相似变化规律的数字对象调整到状态树相邻叶子节点位置,并将调整记录打包为区块,使得其他节点进行相同的状态树调整,减少未来时间中,更新状态树过程中影响到的中间节点数量,从而提高区块生成和验证效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种数字对象使用示意图;
图2是本发明实施例提供的一种数字对象体系结构的整体架构示意图;
图3是本发明实施例提供的一种场景示意图;
图4是本发明实施例提供的一种系统用例示意图;
图5是本发明实施例提供的一种存证流程示意图;
图6是本发明实施例提供的一种面向移动终端应用的数字对象可信存证方法的步骤流程图;
图7是本发明实施例提供的一种数字对象存证流程图;
图8是本发明实施例提供的一种区块结构图;
图9是本发明实施例提供的一种状态树示意图;
图10是本发明实施例提供的一种查验流程示意图;
图11是本发明实施例提供的一种普通区块的生成方式示意图;
图12是本发明实施例提供的一种记录树根生成方式示意图;
图13是本发明实施例提供的一种变化记录处理流程示意图;
图14是本发明实施例提供的一种新增算法示意图;
图15是本发明实施例提供的一种更新算法示意图;
图16是本发明实施例提供的一种注销方式示意图;
图17是本发明实施例提供的一种状态树更新示意图;
图18是本发明实施例提供的一种优化算法原理示意图;
图19是本发明实施例提供的一种区块验证流程示意图;
图20是本发明实施例提供的另一种面向移动终端应用的数字对象可信存证方法的步骤流程图;
图21是本发明实施例提供的一种资源抽象模型;
图22是本发明实施例提供的一种状态信息示意图;
图23是本发明实施例提供的一种数据实体示意图;
图24是本发明实施例提供的一种文件类型的资源封装示意图;
图25是本发明实施例提供的一种数据库类型的资源封装示意图;
图26是本发明实施例提供的一种API类型资源封装示意图;
图27是本发明实施例提供的一种移动终端应用数字对象扩展示意图;
图28是本发明实施例提供的一种历史记录追溯流程图;
图29是本发明提供的一种面向移动终端应用的数字对象可信存证系统结构图;
图30是本发明实施例提供的一种数字对象存证模块架构示意图;
图31是本发明实施例提供的一种区块生成与验证模块架构示意图;
图32是本发明实施例提供的一种主要类的UML关系示意图;
图33是本发明实施例提供的一种数字对象查验模块示意图;
图34是本发明实施例提供的一种面向移动终端应用的数字对象可信存证系统架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例需要说明的是,参照图1,图1示出了本发明实施例提供的一种数字对象使用示意图。使用数字对象(Digital Object,DO)来管理移动终端应用可以屏蔽底层系统之间的异构性。数字对象由三个部分组成,包括元数据、状态信息、数据实体。传统数字对象主要面向互联网上的静态数据资源,如图片、视频。比如一个短视频的数字对象,其元数据包括短视频的名称、发布作者、发布平台等;状态信息包括短视频文件的哈希值,短视频文件存储的服务器位置等信息;实体是短视频的内容文件,如xxx.mp3,具有不易变化的特征。但移动终端应用数字对象具有天然的动态变化的属性,例如移动终端的地理位置信息抽象而成的数字对象会不断发生变化,在移动终端应用中,不仅需要访问到数字对象的当前状态,且需要访问到数字对象的历史状态。
传统的互联网应用是单一主体提供的,应用的数据在应用提供商指定的服务器上存储,通过集中化的管理方式对数据进行管理,传统的应用数据在单一主体内部流动,缺少数据互联互通的需求,信任问题不凸显。移动终端应用往往需要融合多主体下的移动终端应用,不同主体的移动终端应用数据需要提供给其他需求方使用,由于不同主体之间存在不信任的问题,集中式的管理方式不适用于此场景,因为集中式的管理方式中存在管理方,管理方可能因为利益驱使,擅自修改数据,这给数据的可信造成了破坏,所以需要通过合理的方式对数字对象做可信存证,使得单一主体无法擅自修改数据,保证数据的可信。
参照图2,图2示出了本发明实施例提供的一种数字对象体系结构的整体架构示意图。包括一个数据模型、两个基础协议和三个核心系统,如图2所示。数据模型是数字对象模型,用标准化的方式对数据资源进行抽象和封装。数字对象包括三部分,为元数据、状态信息、数据实体。数字对象标识(Digital Object Identifier,DOI)用于标识数字对象,具有唯一性,同时DOI具有持久性,数字对象存储位置的改变、数字对象所有者的改变不会影响其DOI。数字对象接口协议(DOIP)和数字对象标识解析协议(IRP),构成了数字对象架构的两个基础协议,定义了数字对象的访问、解析、搜索行为的规范。
仓库系统(The Repository System)负责管理数字对象实体,注册表系统(TheRegistry System)负责管理数字对象元数据,标识/解析系统(The Identifier/Resolution System)负责管理数字对象标识,构成了数字对象架构的三个核心系统。
参照图3,图3示出了本发明实施例提供的一种场景示意图。如图3所示,在数据互联互通的场景下,数据具有提供方多主体的特征,例如智慧城市应用,需要融合交通局、公安局、环保局等主体下的数据,融合不同主体之间的数据困难重重,因为数字对象的相关数据托管在移动终端应用数据提供者的服务器上,移动终端应用数据提供者拥有数字对象的管理权限,可以对已有数字对象进行修改,这造成不同主体之间对于彼此提供的数字对象存在质疑与不信任的问题,缺乏有效的方式证明数字对象的正确性和未被修改。
移动终端应用产生的数据封装成的数字对象具有时空属性,随着时间的变化,数字对象中的元数据、实体、状态信息均存在发生变化的可能性,导致数字对象发送变化,需要将数字对象变化记录通过高效的方式做存证,并且支持对数字对象的最新状态和历史变化记录进行查验。
使用区块链技术对移动终端应用产生的数据封装成的数字对象的变化记录做可信存证,设置存证委员会负责区块链权威节点的维护,通过区块链共识算法让权威节点的数据达成同步,使得单一主体无法擅自修改已经在区块链上存证的数字对象变化记录,满足数字对象的新增、更新和注销记录的可信存证需求,并且变化记录可以在区块链上进行溯源、审计,用来提高数据的可信度,降低不同主体之间因为信任而产生的成本,为移动终端应用互联互通服务,便于催生更多应用。其中,共识算法可以包括工作量证明算法(Proofof Work,PoW)、权益证明算法(Proof of Stak,PoS)或委托权益证明(Delegated proof osStake,DPoS)算法等。
参照图4,图4示出了本发明实施例提供的一种系统用例示意图,如图4所示,通过对应用场景进行分析,系统的用例分析如图4所示。在系统中,有三种角色,存证记录提供者,存证记录使用者和存证委员会,分别拥有不同的功能。
首先是存证记录提供者,系统会提供数字对象存证功能供存证记录提供者使用。存证的内容是数字对象的状态,状态的定义是数字对象序列化后的哈希值,哈希值可以代表数字对象的某一时刻状态。存证的功能包括存证数字对象的新增记录,即提交一个新创建的数字对象,将其在系统中进行存证;存证数字对象的更新记录,移动终端应用数字对象会发生变化,存证记录提供者可以将数字对象的更新前后的状态变化提交到系统中进行存证;存证数字对象的注销记录,对于不再使用的数字对象,系统提供存证注销记录的功能,存证记录提供者可以将数字对象注销记录进行存证。
对于存证记录使用者,系统提供两方面的功能,分别是查验数字对象的最新状态和查验历史变化记录。当存证记录使用者出于数据可信的考虑,想对某一数字对象进行查验,那么他可以提交对某一数字对象最新状态的查验请求,系统会返回给使用者数字对象的最新状态和证明有效性的验证方式。同时存证记录使用者可以通过系统查询到某一数字对象在历史区块上的变化记录,进行历史状态变化的追溯。
存证委员会负责系统的运行和维护,由具有权威性的多方共同组成。区块链网络中的每个权威节点代表存证委员会的每个成员,权威节点处理来自存证记录提供者和使用者的请求,进行区块的生成与验证、区块的共识。
如图5所示,图5示出了本发明实施例提供的一种存证流程示意图,如图5所示,首先在移动终端应用有多主体的特征,每个主体内管理了若干移动终端应用数字对象,因为每个主体对于其内部管理的数字对象具有直接管理权,所以每个主体对其他主体的数据缺乏信任,通过多个主体共同组建一个存证委员会,共同搭建一个区块链网络,存证委员会的每个成员都运行一个权威节点,负责进行区块共识,存证所有的数字对象历史变化记录,并维护权威节点上用于维护系统中所有数字对象的状态树。
存证记录提供者通过系统的接口将数字对象的新增、修改、注销等变化记录提交到权威节点中,权威节点会收集这些记录,更新自己所维持的用于记录数字对象状态的状态树,将状态树根、区块号等信息打包成区块,交由区块共识模块,负责在多个权威节点之间进行区块的共识,其他权威节点会验证区块的合法性,并彼此交换意见,达成区块的共识,使得区块链网络中的多个节点维护相同的数字对象状态树。
图6示出了本发明实施例提供的一种面向移动终端应用的数字对象可信存证方法的步骤流程图,如图6所示,该方法包括:
步骤101、根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象。
在本发明实施例中,数字对象可以是指移动终端应用数字对象,移动终端应用数字对象是指移动终端应用产生的数据封装形成的数字对象,包括元数据、状态信息、数据实体三个部分,并赋予唯一的标识DOI。
可以向存证记录提供者提供数字对象新增、数字对象更新、数字对象注销的功能,通过数字对象存证模块将数字对象的新增、更新、注销记录提交到系统,交由系统对记录进行可信存证,并返回相应的存证结果。
在用户选择存证数字对象新增记录的情况下,接收所述用户输入的数字对象标识和数字对象的初始化状态信息,根据所述数字对象标识和所述初始化状态信息生成数字对象新增记录;在用户选择存证数字对象更新记录的情况下,接收所述用户输入的数字对象的数字对象标识和所述数字对象的更新后的状态信息,根据所述数字对象标识和所述更新后的状态信息生成数字对象更新记录;在用户选择存证数字对象注销记录的情况下,接收所述用户输入的数字对象的数字对象标识,根据所述数字对象标识生成数字对象注销记录。
具体地,参照图7,图7示出了本发明实施例提供的一种数字对象存证流程图,如图7所示,用户首先进行功能的选择,如果选择存证数字对象新增记录,需要输入数字对象标识(DOI),输入数字对象的初始化状态信息;如果选择存证数字对象更新记录,需要输入DOI和该DOI对应的数字对象的更新后的状态信息;如果选择存证数字对象注销记录,需要输入DOI。
此外,在接收到用户提交的数字对象变化记录之后,还可以进入数据签名环节,对用户提交的数据进行相应的序列化,利用签名算法对数据进行签名。然后通过网络模块将信息发送到区块链节点中。
步骤102,对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中。
在本发明实施例中,区块链节点接收到变化记录的数据后,会首先对数据进行合法性校验,校验数据是否在网络通信过程中被修改。通过反序列化的方式还原用户提交的信息,根据记录的类型再进行二次合法性校验。
具体地,若变化记录是新增数字对象操作,需要检查DOI是否与系统中存储的DOI冲突;若是更新数字对象操作,需要检查该数字对象所属的拥有者是否和发送请求的用户一致;若是注销数字对象操作,同样需要检查DOI是否存在、发送请求的用户是否是该DO的拥有者。对于未通过校验的记录,节点返回错误结果给用户。对于通过校验的记录,当前节点会向其他节点进行广播,同时将变化记录的数据放进节点的缓冲池,等待进行区块打包与共识,并返回处理结果。
步骤103,根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下。
参照图8,图8示出了本发明实施例提供的一种区块结构图,如图8所示,区块分为区块头和区块体两个部分,区块头中记录着前序区块的哈希,当前区块的高度,当前区块的哈希,出块节点的编号,出块时间,出块节点的签名,区块类型,版本号,区块中包含的记录数量,区块体包含的记录的默克尔树根,节点数字对象状态树的树根。区块体中记录着当前区块包含的记录,占据了大部分空间。
默克尔树被广泛用于分布式系统中,可以满足校验数据完整性的需求,在以太坊等区块链系统中,默克尔树可以作为状态树的实现方式用来管理系统中存储的账户信息状态,比如账户的当前余额等信息。
在本发明实施示例中,可以通过区块体中包含的记录来计算其默克尔树根,得到记录树,将记录树的树根添加到区块头中,其作用是其他节点校验区块体中包含的记录是否存在丢失、修改的情况,保证区块体在传输中不出现数据缺失和修改。还可以利用默克尔树来设计数字对象状态树,用于管理系统中维护的所有数字对象的最新状态。
参照图9,图9示出了本发明实施例提供的一种状态树示意图,如图9所示,默克尔树的每个叶子节点会和一个系统中管理的数字对象状态对应,存储数字对象序列化后的哈希值等信息,叶子节点的计算方式如公式1所示:
Hashk=Hash(DOIk,DOHashk,DOFlagk,Dwnerk,Timek)#(公式1)
其中,DOHashk代表数字对象序列化后经由散列算法得到的哈希值。DOIk代表数字对象标识,DOFlagk代表数字对象当前标记(是否被注销),Ownerk代表数字对象的所有者,Timek代表该最近修改时间。
通过状态树的方式管理数字对象状态的核心优势是如果想查验某一数字对象的状态,只需要获得区块中的状态树根、从该数字对象对应叶子节点到根节点的默克尔路径(Merkle Path)和证明集合。
举例说明,参照图10,图10示出了本发明实施例提供的一种查验流程示意图,如图10所示,如果想验证DO所对应的信息是否正确,那么需要找到图10中被圆圈圈出的节点,这些节点构成了证明集合,证明集合的生成方式如下:
步骤1:从目标叶子节点向父节点不断追溯,直到根节点,经过的节点就是默克尔路径。
步骤2:在自下而上经过默克尔路径的过程中,每个节点的兄弟节点添加到证明集合中。
在本发明实施例的区块设计中,根据区块的作用设计了两类区块,分别为普通区块和状态树调整区块,普通区块的作用是将记录缓冲区中的待存证的数字对象变化记录打包,并在节点间进行共识,状态树调整区块会根据系统设置的时间定期产生,作用是对节点的数字对象状态树做调整优化,下面会分别介绍两种区块的生成方式。
a、普通区块的生成
参照图11,图11示出了本发明实施例提供的一种普通区块的生成方式示意图,如图11所示,在节点的缓冲区中存储着目前未被打包存证的数字对象变化记录,当缓冲区内存储的记录数量达到触发区块生成的阈值,或者最近未出块的时间达到最长未出块的时间上限,将会触发普通区块生成操作。
区块生成组件会从缓冲区中读取若干数量的记录,包括数字对象的新增、修改、注销记录,首先会根据默克尔树生成算法,计算出记录树根。
参照图12,图12示出了本发明实施例提供的一种记录树根生成方式示意图,如图12所示,在计算记录树根时,首先要计算记录的哈希值,可以选用SHA-256哈希算法。然后将这些记录的哈希值按照在数组中的顺序每两个结合,如果总数是奇数的话,那么最后一个记录将与自己结合。然后计算上一层节点的哈希,不断重复直到本层只有一个节点,这个节点就是默克尔树的根节点。
在记录树中,除了叶子节点外,其余节点存储的是其左右子节点的哈希值,其计算方式如公式2所示。在公式2中,nodei,j代表树中第i层中从左往右第j个节点的值。
nodei,j=Hash(nodeleft,noderight)#(公式2)
接着根据缓冲池中的变化记录的类型,对这些变化记录进行处理,得到处理完这些记录后的状态树树根,参照图13,图13示出了本发明实施例提供的一种变化记录处理流程示意图,如图13所示,对缓冲池中的不同类型的变化记录的处理顺序可以是先处理新增记录,再处理更新记录,最后处理注销记录。
具体地,可以采用如下方式处理存证数字对象新增记录的请求:
参照图14,图14示出了本发明实施例提供的一种新增算法示意图,如图14所示,由于用户存证数字对象新增记录会在状态树中插入新的叶子节点,导致默克尔树结构的改变,需要设计适当的插入算法,例如在插入半黑色的DO后,树的结构如图14所示。hash(1,1)原本是叶子节点,变为了中间节点,其左右子节点分别为hash(0,1)和hash(0,2)。在系统中需要维护当前插入点的变量,用于确定处理下一个新增请求的时候,需要从哪个叶子节点执行,在这种新增算法中,需要重新计算哈希值的叶子节点为图14中半黑色标注的节点,重新计算哈希的次数为log(n),经过新增操作后的状态树仍然为平衡二叉树。
处理存证数字对象更新记录的请求:
如图15所示,图15示出了本发明实施例提供的一种更新算法示意图,如图15所示,由于提交的对数字对象更新的记录会在执行阶段影响到状态树中所对应叶子节点的值,若想更新半黑色的两个DO,首先需要更新hash(1,4)和hash(1,5)的值,然后更新其到根节点的路径上,所有节点的哈希值,更新操作不会更改状态树的结构。
更新算法流程如下:
1、更新最后一层中的叶子节点对应的数字对象,重新计算这些数字对象对应的叶子节点哈希值,然后更新这些叶子节点的父节点,添加到Queue1队列中。
2、更新倒数第二层中叶子节点对应的数字对象,重新计算叶子节点的哈希值,添加到Queue1队列中。
3、不断从Queue1中弹出节点,更新这些节点对应的父节点,将父节点压入Queue2队列中,用于下一轮次的更新。
4、当Queue1为空时,与Queue2进行交换。当Queue2也为空时,说明已经更新到了根节点,结束流程。
处理存证数字对象注销记录的请求:
参照图16,图16示出了本发明实施例提供的一种注销方式示意图,如图16所示,处理存证数字对象注销记录不会更改状态树的结构,处理方式是将状态树中数字对象的数据结构中用于标记是否注销的标记位从Active更改为Logout,同时参考更新算法,更新其到根节点的中间节点哈希值。
在本发明实施例中,还可以在获得记录的默克尔树根和状态树树根这两个区块头中的重要元素后,继续构建区块头中的其他元素,包括区块高度、计算区块哈希、获得出块节点对区块哈希做的签名,最后组装区块头和区块体形成区块,交由区块共识模块进行多节点间的区块同步。
b、状态树调整区块的生成
参照图17,图17示出了本发明实施例提供的一种状态树更新示意图,如图17所示,在处理存证数字对象更新记录的时候,需要对状态树进行更新,最右侧的DO发生了变化,在更新的过程中,对于未发生变化的节点,可以直接沿用上一个区块中状态树的相关节点,对于发生变化的节点,需要进行重新计算,所以带来了计算开销和磁盘读取写入带来的存储开销。
在本发明实施例中,通过设置状态树调整区块,可以通过状态树调整区块对过去的变化记录进行分析,分析数字对象的变化规律,对有相同变化规律的数字对象,可以对数字对象状态树中叶子节点的位置进行调整,将这些叶子节点放置到同一最小子树下,以减少未来在做状态树更新过程中造成的中间节点的计算开销。状态树调整模块的生成频率通过配置文件中配置的时间决定。具体设计思路如下:
在移动终端应用中,众多移动终端应用数字对象的变化规律会具有相似性,相似的定义是会在相近或相同的时间发生状态的更新,因为移动终端应用数字对象具有时空属性,会随着时间的流动发生变化,同时拥有不同的变化规律。
所以在考虑移动终端应用数字对象的内在联系的情况下,可以通过收集数字对象的历史变化数据,设计状态树调整算法,减少在未来进行更新操作时,可以有效减少中间节点的波动范围。
参照图18,图18示出了本发明实施例提供的一种优化算法原理示意图,如图18所示,在状态树更新的过程中,全黑节点是发生变化的数字对象,三角形节点是在状态树更新过程中,需要重新计算哈希值的节点。图18的左图中,两个全黑的节点在不同的子树下面,除叶子节点外需要重新计算哈希的节点数量是5个,即2n-1,n为树的深度;图18的右图中如果两个全黑的节点在同一子树下面,那么除叶子节点外重新计算哈希的节点数量是3个,即n个,n为树的深度。通过这种方式,可以减少重新计算哈希的次数,减少中间节点的存储开销。
Kmeans算法是一种基于距离的聚类算法,可以将样本中的对象根据设定的簇数K进行划分,对于本场景的需求,可使用Kmeans聚类算法通过对过去一段时间的区块中,数字对象的变化规律做分析,将具有相似变化规律的数字对象分成一类。在实际使用中无法提前知道簇树的数量,所以需要使用网格搜索的方式,找到最佳的簇数K。在得到数字对象的分类后,根据当前的数字对象在状态树中的位置,进行相应的调整,将同属一类的数字对象调整到同一子树下,如图18所示,需要将第四个为全黑的节点和第六个为半黑的节点做位置调换,同时调整操作也会影响到进行调整的叶子节点到根节点的路径上的节点,需要对这些节点做更新操作。调整所带来的重新计算哈希的节点上限为2m个,m为叶子节点数量。具体的算法流程设计如下,假设当前的区块号为height,需要根据最近n个区块内数字对象的变化情况分析数字对象的相似性。对于数字对象A来说,其在过去n个区块中的历史变化情况可记录为一个长度为n的数组arrays,arrays[i]的取值范围是0和1,0代表数字对象A在height-n+i号区块中未发生状态变化,1代表数字对象A在height-n+i号区块中发生了状态变化。
在本发明实施例中,可以对数字对象的变化记录进行收集并形成数字对象历史变化日志,数字对象历史变化日志中存储的历史变化数据处理成历史变化数据的二维数组Data(如下表1所示),每一行都代表一个数字对象在区块号为Height-N到区块号为Height的区块里的历史变化情况,Data[A][Height]表示数字对象A在Height号区块里是否发送了状态变化。
Height-N | Height-N+1 | … | Height-1 | Height | |
A | 0 | 1 | … | 1 | 0 |
B | 1 | 0 | … | 1 | 0 |
… | … | … | … | … | … |
X | 0 | 1 | … | 1 | 0 |
表1
对于数字对象A而言,可以将其在n个区块内的变化记录映射到一个n维空间,坐标如公式3所示。
A=(a0,a1,…,an)∈Rn#(公式3)
对于其他数字对象,同理可得相应的映射,构成了Kmeans所需要的样本集。首先需要从样本集中随机选择K个数字对象作为初始的簇中心。对于每个数字对象A找到距离最近的中心点,加入中心点所代表的簇中。采用汉明距离计算A和中心点C的距离,如公式4所示。
得到首次划分后,需要计算K个数字对象簇中的均值向量C′。作为下一轮迭代的中心点。迭代的终止条件是C′和C满足收敛要求。需要通过设置评价指标来评价划分效果,由于场景需求,需要簇内的数字对象到中心的距离和最小,目标函数target计算方式如公式5所示,保证簇内的数字对象相似度最大。
其中,d(DOi,Ck)代表簇中的一个数字对象到簇中心Ck的距离。
在得到聚类算法的分类结果后,需要根据数字对象的原先位置做调整,形成若干条调整记录,如公式6所示,根据调整记录将同属一类的数字对象放置在状态树的同一子树下。
AdjustmentRecord={LeafNodebefore,LeafNodeafter}#(公式6)
其中,LeafNodebefore代表调整前的位置,LeafNodeafter代表调整后的位置。发生调整的节点需要重新计算其到根节点的路径上的哈希值,最终得到调整后的状态树结构。在系统中,根据预设的优化频率,若频率为一天,则状态树调整算法会每隔24小时,计算出需要调整的叶子节点,和调整后的状态树根,将叶子节点调整前后的位置形成若干条调整记录,参考上一小节生成普通区块的方式,获得记录树根,以及其他区块相关参数包括区块高度、计算区块哈希、获得出块节点对区块哈希做的签名,最后组装区块头和区块体形成区块,交由区块共识模块进行多节点间的区块同步,使得其他节点做相同的状态树调整,保证状态树的一致性。在本发明实施例中,对上述频率的具体数值并不进行具体限定。
在本发明实施例中,由于Kmeans的距离计算会带来开销,作用是找到在状态树中需要进行位置调换的数字对象。Kmeans算法的复杂度为k*n*d*t,其中k为聚类的簇数,n为样本的数量,d为距离计算的复杂度(本发明实施例用的汉明距离,复杂度和历史变化数据中的区块数量线性相关),t为迭代次数。这部分任务是由当前轮次中负责进行生成状态树调整区块的节点负责的,其他节点在收到状态树调整区块后,不用重复进行Kmeans算法训练的过程,只需要根据状态树调整区块中的调整记录做相应的状态树调整,状态树调整的复杂度与发生调整的叶子节点数量c有关,复杂度为c*logn,n为叶子节点总数,同时由于若干叶子节点到根节点之间的默克尔路径上的中间节点存在重合性,通过底层向上层的计算,实际的复杂度最大为2*n,其在应用中是为了通过优化树中叶子节点的分布,换取系统在生成普通区块时,减少更新状态树时进行的哈希运算和磁盘读写开销,以缩短普通区块生成的时间。状态树调整会定时执行,执行周期通过配置文件决定,例如24小时执行一次。按照本发明实施例提出的方式调整的结果,同类数字对象趋向被放置于树中的同一分支,因为每个区块链节点上都会维护一个数字对象状态树用于维护系统中所有的数字对象,趋向于同一分支的优势是在更新过程中可以影响到更少的状态树中间节点,使得重新计算哈希的开销更小。
步骤104,通过区块共识算法将所述待共识区块存储在各个节点中。
在本发明实施例中,当节点在区块共识阶段收到当前轮次获得打包权节点所生成的待共识区块时候,会触发验证区块的操作。
参照图19,图19示出了本发明实施例提供的一种区块验证流程示意图,如图19所示,区块验证流程可以包含以下步骤A1至A7:
步骤A1,区块共识组件收到待共识区块,触发验证区块操作并将区块传给区块验证组件。
步骤A2,区块验证组件验证区块头中的签名是否是由主节点签署的,通过则进入步骤A3。
步骤A3、区块验证组件通过解析区块体中包含的记录,通过上述步骤103中描述的状态树生成算法计算出状态树根,与区块头中的状态树根进行比对,通过则进入步骤A4。
步骤A4,区块验证组件验证块高、区块哈希、前一区块哈希等信息,通过验证的进入步骤A5。
步骤A5,基于所述普通区块对应的数字对象变化记录的类型,确定所述普通区块对应的最新的状态树根,并根据所述普通区块对应的最新的状态树根对所述普通区块进行验证;基于所述状态树调整区块的叶子节点调整记录,得到所述状态树调整区块对应的最新的状态树根,并根据所述状态树调整区块对应的最新的状态树根对所述状态树调整区块进行验证。
具体地,在步骤A5中,区块验证组件判断区块类型,将普通区块和状态树调整区块交由状态树模块的不同处理函数,获得最新的状态树根。对于普通区块,状态树组件会处理区块中的数字对象变化记录,根据每条记录的不同类型,交由上一小节描述的状态树模块中处理新增、更新、注销记录的不同流程中,获得最新的状态树根。对于状态树调整区块,状态树组件会解析区块中包含的叶子节点调整记录,根据上小节描述的调整算法,对本区块链节点维护的状态树叶子节点进行调整优化,获得最新的状态树根。
步骤A6,在获得最新的状态树根后,区块验证模块会将计算出的状态树根与区块头中记录的状态树根进行比对,判断区块的合法性。
步骤A7,根据步骤A2至A6中的验证合法与不合法的结果,将区块和验证结果组装成消息传递给区块共识组件,进入共识的下一阶段。
区块共识的目的是使得不同节点对当前区块链的状态达成一致性的意见,节点会对区块进行验证,包括检查区块哈希、检查区块内包含的事务的合法性等,根据系统采用的共识算法对待共识的区块进行共识。在完成共识过程后,节点会将该区块存储到本地,更新当前区块高度,进入下一轮的区块产生流程。需要说明的是,本发明实施例中对具体的共识算法并不进行具体限定,技术人员可以根据实际需要选择合适的共识算法。
在本发明实施例中,公开了一种面向移动终端应用的数字对象可信存证方法,可以根据用户的输入操作生成数字对象的变化记录,变化记录包括新增记录、更新记录和注销记录,数字对象包括由移动终端应用产生的数据封装成的移动终端应用数字对象;对变化记录进行校验,在校验通过的情况下,将变化记录放入缓冲池中;根据缓冲池中的变化记录生成待共识区块;其中,待共识区块包括对缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;通过区块共识算法将待共识区块存储在各个节点中。通过区块链技术对多主体下对移动终端应用产生的数据封装而成的数字对象的变化记录进行保存,提升了多主体中变化记录的可信度,还通过设计状态树调整算法,提高区块生成和验证的效率。改变传统状态树叶子节点位置固定的模式,使用Kmeans算法对数字对象的历史变化记录进行定期分析,将具有相似变化规律的数字对象调整到状态树相邻叶子节点位置,并将调整记录打包为区块,使得其他节点进行相同的状态树调整,减少未来时间中,更新状态树过程中影响到的中间节点数量,从而提高区块生成和验证效率。
图20示出了本发明实施例提供的另一种面向移动终端应用的数字对象可信存证方法的步骤流程图,如图20所示,该方法包括:
步骤201、将移动终端应用产生的数据封装形成数字对象。
参照图21,图21示出了本发明实施例提供的一种资源抽象模型,如图21所示,可以对移动终端应用数据进行抽象和封装,得到对应的数字对象,在数字对象的抽象和封装方面,可以从元数据、数据实体、状态信息三个角度来对资源进行抽象,为达到统一管理资源的目的服务。
状态信息记录了资源的存储位置、访问方式、资源类型等信息。参照图22,图22示出了本发明实施例提供的一种状态信息示意图,如图22所示,“10.1012/do.hello”是该资源的标识,由标识解析系统来进行标识的分配。Type表示资源的类型,URL代表该资源为统一资源标识符类资源。资源的权限信息由Permission字段记录,PUBLIC_READ代表该资源可由任何人访问,ADMIN_WRITE代表该资源只能由管理员修改。资源所存储的位置由data字段记录。在本发明实施例中,可以根据CNRI(Corporation for National ResearchInitiatives)提供的规范生成状态信息。
元数据被数字对象注册表所管理,也被称为描述信息,是用来描述数据的数据,一般记录着资源的分类、来源、格式、采集方式、所在的领域等信息,通过对资源的简要描述来表达资源可以使用的用途,在实际使用中,可以通过在数字对象注册表中检索元数据的方式,从众多资源中找到想要使用的资源,进而访问到资源的数据实体。在本发明实施例中,可以采用都柏林核心元数据(Dublin Core,DC)作为元数据的生成标准。其中,都柏林核心元数据,是一个被广泛使用的元数据标准,被DCMI组织管理,主要用于描述数字资源,SimpleDublinCore通过标题、创建者、主题、发布者等15个元素对元数据进行描述,只使用纯文本字符串作为值。QualifiedDublinCore通过使用额外的限定符,规定了元数据中元素的编码方式,增加了描述的丰富度和精确度。
数据实体中有数字对象标识、修改时间、创建时间等固有属性,也可根据用户实际需求自行定义属性。可以通过多个元素(Element)来表示结构较为复杂的数据实体,同时为了方便细粒度的控制,每个Element也可以单独进行管理。参照图23,图23示出了本发明实施例提供的一种数据实体示意图,根据ITU标准中关于数据实体的规定,数据实体的模型可以如图23所示。
在实际应用环境中,资源通常可以包含文件数据和数据库数据。
参照图24,图24示出了本发明实施例提供的一种文件类型的资源封装示意图,如图24所示,对于文件类型的资源,可以通过对文件类型的资源增加描述信息的方式,对文件类型的数字对象进行封装,并遵循数字对象接口协议,提供标准化的访问方式。在文件资源发生变化时(比如一个文件被编辑、修改内容),该文件所封装的数字对象也会受到影响,以反映该文件类型的数字对象的状态变化。通过对文件资源进行抽象和封装,配合标识解析系统分配标识,可以将原有基于文件的应用改造为基于数字对象的应用,屏蔽不同类型文件系统的异构性。
参照图25,图25示出了本发明实施例提供的一种数据库类型的资源封装示意图,如图25所示,对于数据库类型的资源,在封装数据库类型的资源时,用户可以根据自己的粒度需求,决定按照库级别、表级别进行不同粒度的封装。同时可以对数据采取不同的存放方式,比如可以在数字对象仓库中存储完整的数据库数据,也可以在数字对象仓库中存储数据库的调用方法,以满足访问需求。如果用户需要共享数据库中某一张表的指定几行数据,那么可以对指定的几行数据通过标识解析系统分配标识,在数字对象仓库中创建数字对象实体用于存储需要共享的数据库数据的调用方法。
在本发明实施例中,需要封装的移动终端应用数据不同于上述文件资源和数据库资源,因此封装方式也不同于文件资源和数据库资源的封装方式,移动终端应用数据在进行封装时,可以把资源的调用信息封装在数字对象中。
参照图26,图26示出了本发明实施例提供的一种API类型资源封装示意图,如图26所示,例如对于打印机这一物理资源,具有制作打印指定文件的功能,可以使用“云-端融合的资源反射机制及高效互操作技术”,将该功能封装为一个API接口,把打印何种文件的调用指令封装为对打印机这一数字对象的操作。
步骤202,对所述数字对象的元数据、状态信息和数据实体的内容分别进行扩展。
在本发明实施例中,还可以对数字对象模型进行扩展。
对于数字对象中的状态信息,可以扩展物理位置、时空状态两个属性,用于体现移动终端在真实世界中的位置。在访问移动终端应用数字对象时,其数字映射在信息空间的位置,连同移动终端在真实世界的物理位置、所处的时间空间状态,一同用来作为能否进行移动终端应用数字对象实体的访问的判定依据。
数据实体是通过互操作技术,用API接口的形式封装移动终端应用数据和服务得到的。通过调用API接口的方式来获取移动终端应用数据的数据实体。
参照图27,图27示出了本发明实施例提供的一种移动终端应用数字对象扩展示意图,如图27所示,可以对元数据进行自然和社会属性的扩展,对状态信息进行物理位置和时空状态的扩展,对数据实体进行移动终端应用数据API的扩展。
步骤203,根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象。
此步骤可参见步骤101,本发明实施例不再赘述。
步骤204,对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中。
此步骤可参见步骤102,本发明实施例不再赘述。
步骤205,根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下。
此步骤可参见步骤103,本发明实施例不再赘述。
步骤206,通过区块共识算法将所述待共识区块存储在各个节点中。
此步骤可参见步骤104,本发明实施例不再赘述。
步骤207,获取用户输入的数字对象编号,在当前维护的最新状态树中查找所述数字对象编号对应的数字对象的叶子节点,计算所述叶子节点的默克尔路径,将所述默克尔路径返回给所述用户,以使所述用户根据所述默克尔路径进行数据完整性和正确性检验。
用户通过输入指定的数字对象编号,接收到用户输入的数字对象编号之后,可以在当前维护的最新状态树中查找对应的数字对象对应的叶子节点后,根据上述步骤103中的方式计算出对应的默克尔路径和证明集合,一并返回给用户,用户可以根据默克尔路径和证明集合进行数据完整性和正确性检验。
步骤208,获取用户输入的数字对象编号和变化记录范围,遍历所述变化记录范围内的所有区块,将所述所有区块中与所述数字对象编号匹配的变化记录添加到历史状态变化列表中,并将所述历史状态变化列表返回给所述用户。
参照图28,图28示出了本发明实施例提供的一种历史记录追溯流程图,如图28所示,用户输入指定的数字对象编号和需要获取的变化记录范围,系统通过遍历满足范围内的所有区块,遍历每个区块内的记录,将与指定DOI匹配的记录添加到历史状态变化列表中,返回给用户。
用户输入DOI和历史数据获取范围,系统通过获取范围计算出满足范围内的区块编号(a,b),从b号区块开始遍历,查找区块中与目标DOI相关的记录,添加到记录列表中,然后搜索b-1号区块内的记录,直到搜索完a号区块,将记录列表返回给用户,列表中记录的是目标数字对象在指定范围内的所有变化记录。
综上,为本发明实施例提供的另一种面向移动终端应用的数字对象可信存证方法,可以根据用户的输入操作生成数字对象的变化记录,变化记录包括新增记录、更新记录和注销记录,数字对象包括由移动终端应用产生的数据封装形成的数字对象;对变化记录进行校验,在校验通过的情况下,将变化记录放入缓冲池中;根据缓冲池中的变化记录生成待共识区块;其中,待共识区块包括对缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;通过区块共识算法将待共识区块存储在各个节点中。通过区块链技术对多主体下对移动终端应用产生的数据封装而成的数字对象的变化记录进行保存,提升了多主体中变化记录的可信度,还通过设计状态树调整算法,提高区块生成和验证的效率。改变传统状态树叶子节点位置固定的模式,使用Kmeans算法对数字对象的历史变化记录进行定期分析,将具有相似变化规律的数字对象调整到状态树相邻叶子节点位置,并将调整记录打包为区块,使得其他节点进行相同的状态树调整,减少未来时间中,更新状态树过程中影响到的中间节点数量,从而提高区块生成和验证效率。
与上述本发明的面向移动终端应用的数字对象可信存证方法实施例所提供的方法相对应,参见图29,图29示出了本发明提供的一种面向移动终端应用的数字对象可信存证系统结构图,在本实施例中,该系统可以包括:
数字对象存证模块301,用于根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象;对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中;
区块生成与验证模块302,用于根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;
区块共识模块303,用于通过区块共识算法将所述待共识区块存储在各个节点中。
在一种可选实施方式中,所述系统还包括:
数字对象生成模块,用于将移动终端应用产生的数据封装形成数字对象;对所述数字对象的元数据、状态信息和数据实体的内容分别进行扩展。
在一种可选实施方式中,所述系统还包括:
数字对象查验模块,用于获取用户输入的数字对象编号,在当前维护的最新状态树中查找所述数字对象编号对应的数字对象的叶子节点,计算所述叶子节点的默克尔路径,将所述默克尔路径返回给所述用户,以使所述用户根据所述默克尔路径进行数据完整性和正确性检验;获取用户输入的数字对象编号和变化记录范围,遍历所述变化记录范围内的所有区块,将所述所有区块中与所述数字对象编号匹配的变化记录添加到历史状态变化列表中,并将所述历史状态变化列表返回给所述用户。
在一种可选实施方式中,所述数字对象存证模块,还用于在用户选择存证数字对象新增记录的情况下,接收所述用户输入的数字对象标识和数字对象的初始化状态信息,根据所述数字对象标识和所述初始化状态信息生成数字对象新增记录;在用户选择存证数字对象更新记录的情况下,接收所述用户输入的数字对象的数字对象标识和所述数字对象的更新后的状态信息,根据所述数字对象标识和所述更新后的状态信息生成数字对象更新记录;在用户选择存证数字对象注销记录的情况下,接收所述用户输入的数字对象的数字对象标识,根据所述数字对象标识生成数字对象注销记录。
在一种可选实施方式中,所述区块生成与验证模块,还用于基于所述普通区块对应的数字对象变化记录的类型,确定所述普通区块对应的最新的状态树根,并根据所述普通区块对应的最新的状态树根对所述普通区块进行验证;基于所述状态树调整区块的叶子节点调整记录,得到所述状态树调整区块对应的最新的状态树根,并根据所述状态树调整区块对应的最新的状态树根对所述状态树调整区块进行验证。
可选地,参照图30,图30示出了本发明实施例提供的一种数字对象存证模块架构示意图,如图30所示,数字对象存证模块的功能是收集存证记录提供者向系统节点提交的数字对象变化记录,将其进行数据的编码,通过网络模块提交到系统节点上,系统节点对数据的合法性做校验,对于合法的记录将其送入记录的缓冲区。
存证记录提供者需要经过请求构建、请求签名、请求发送的步骤,将消息发送到存证模块的消息处理接口中。请求构建需要构建如下表2所示的待存证的数字对象记录。
属性名 | 类型 | 含义 |
Sender | String | 记录的发起方 |
Payload | Payload | 变化记录 |
Signature | Bytes | 签名 |
Result | String | 记录的结果 |
表2
对于Payload来说,包含了该记录的类型type,包括add、update、logout三种类型,分别代表新增、更新和注销;包含了该记录所操作的数字对象标识;包含了所提交的数字对象的状态。
在数据的签名方面,用该记录提供方的私钥对Payload进行签名,构成Signature的内容,通过网络模块将记录提交给系统节点的存证模块消息处理接口中,首先通过请求类型判断函数判断属于何种类型的存证请求,分别交由校验新增类型记录函数verifyAddTypeRecord,校验更新类型记录函数verifyUpdateTypeRecord和校验注销类型记录函数verifyLogoutTypeRecord对记录的合法性校验。对于Signature的正确性校验是共同的流程,在verifyAddTypeRecord函数中,对Payload中的DOI是否与已有的冲突进行检查;在verifyUpdateTypeRecord函数中,会校验该Sender是否有对应DO的权限,及该DO是否存在;verifyLogoutTypeRecord函数中会校验DO是否存在。对于通过合法性校验的记录提交到本节点的记录缓冲区recordPool中,并对此记录进行广播,以广播到网络中的其他节点上,然后等待区块打包。
可选地,参照图31,图31示出了本发明实施例提供的一种区块生成与验证模块架构示意图,如图31所示,记录缓冲区中的记录达到一定数量或一定时间没有新区块生成会触发区块生成操作。在区块生成模块中,区块组装子模块需要根据当前要生成的区块类型,对普通区块或状态树调整区块进行不同的组装。区块验证模块会接受来自区块共识模块的调用,对两种区块进行不同的验证。存储模块负责处理状态树更新、调整过程中对LevelDB的读写请求。历史变化分析子模块包含Kmeans算法的实现和生成数字对象位置调整记录的实现。
区块包括区块头和区块体两部分,区块头的数据格式如下表3所示。区块体中存储当前区块所包含的数字对象变化记录。不同的模块之前通过protobuf提供的序列化和反序列化接口,对结构化数据进行编码和解码,实现数据在不同模块之前的流动。
属性名 | 类型 | 含义 |
PreviousHash | Bytes | 前一区块的哈希 |
BlockHash | Bytes | 当前区块的哈希 |
StateRootHash | Bytes | 状态树的根哈希 |
BlockNumber | Int64 | 当前区块的块号 |
Time | String | 出块时间 |
Proposer | String | 出块节点 |
BlockType | Enum | 区块类型 |
RecordCount | Int64 | 记录数量 |
RecordHash | Bytes | 记录树根哈希 |
Version | String | 版本 |
Signature | Bytes | 签名 |
表3
参照图32,图32示出了本发明实施例提供的一种主要类的UML关系示意图,如图32所示,主要包含接口类Content、数字对象类DO、数字对象变化记录类Record、状态树调整记录类AdjustmentRecord、默克尔树节点类Node、默克尔树类MerkleTree。
Content接口代表了可以被默克尔树存储和验证的数据需要实现的必要接口,包含如下方法:CalculateHash方法在实现的时候可以根据需求选择不同的哈希算法;Equals方法用于检验两个Content对象是否相等,在实现的时候用户可以设计满足场景需求的比较算法,通过不同的Content接口的实现类,实现了系统的拓展性。
DO类代表了系统所管理的数字对象,用于记录数字对象的状态。包含如下属性:数字对象标识DOI、序列化后的数字对象的哈希DOHash、上次发生状态变化的时间Time、当前数字对象的管理者Owner,当前标记Flag。包含如下方法:CalculateHash、Equals、GetID、GetDOHash、GetTime、GetOwner方法。
Node类代表了默克尔树中的一个节点,如果Node是叶子节点的话,会存储一个Content的对象,如果Node是中间节点,会存储当前Node的父节点、左右子节点,如果Node是根节点,其父节点为空。Node类的数据格式如下表4所示。Node类包含如下方法:calculateNodeHash,作用是计算当前节点的哈希值,通过读取所属默克尔树的哈希策略,如果是叶子节点,则通过Content对象的CalculateHash方法计算哈希值,如果不是叶子节点,通过拼接左右子节点的哈希值,计算出本节点的哈希值。
属性名 | 类型 | 描述 |
Tree | *MerkleTree | Node所属默克尔树 |
Parent | *Node | 节点的父节点 |
Left | *Node | 节点的左孩子 |
Right | *Node | 节点的右孩子 |
Leaf | Bool | 是否是叶子节点 |
Hash | []byte | 节点的哈希值 |
C | Content | 对应的Content |
表4
MerkleTree类代表了默克尔树,包含一个指向根节点的节点指针,一个叶子节点列表的数组、当前默克尔树采用的哈希策略、默克尔树根哈希的值、当前做使用的持久化数据库。MerkleTree类的数据结构如下表5所示。MerkleTree类包含如下方法:GetMerklePath方法的输入是某个数字对象,输出是默克尔树路径和左右节点的标记。该方法会首先查找到该数字对象的所对应的叶子节点Node,进入查找MerklePath的循环中,循环的终止条件是当前Node为空,说明查找到了根节点,在每次循环内部,会首先判断当前节点是其父节点的左节点还是右节点,将该节点的兄弟节点添加到MerklePath中,添加标记到index中,然后用当前Node的Parent更新本节点;UpdateIntermediate方法的作用是更新中间节点,输入是发生变化的叶子节点数组,输出是更新后的默克尔树根节点Node;AddTree方法负责处理添加节点的请求;AdjustTree方法是对默克尔树进行叶子节点调整的实现,输入是AdjustmentRecord数组。
属性名 | 类型 | 描述 |
Root | *Node | 根节点 |
merkleRoot | []byte | 根节点的哈希值 |
Leafs | []*Node | 叶子节点数组 |
HashStrategy | Func() | 采用的哈希策略 |
DB | *leveldb.DB | 数据库对象 |
表5
可选地,参照图33,图33示出了本发明实施例提供的一种数字对象查验模块示意图,如图33所示,数字对象查验模块提供给存证记录使用者查验某一数字对象最新状态和查验某一数字对象历史变化记录的接口。
存证记录使用者需要经过请求构建、请求封装、请求发送的步骤,将消息发送到查验模块的消息处理接口中。对于查验某一数字对象的最新状态,使用者仅需要提供DOI,对于查验历史变化记录来说,使用者需要提供DOI、起始时间、终止时间,请求类型type为枚举类型,current代表查询最新状态,history代表查询历史状态变化记录。
数字对象查验模块中的消息处理接口,会对消息进行解析。交由请求类型判断函数checkRequestType进行类型的判断。分别交由查验最新状态函数checkCurrentState和查验历史状态函数checkHistoryState处理。对于查验最新状态函数来说,首先对找到该数字对象的当前状态DOState,和对应的叶子节点,通过步骤104中描述的查验方式,获得在状态树中的默克尔路径Merkle Path数组和标记index数组,index数组和MerklePath数组一一对应,负责标记当前中间节点是左叶子还是右叶子,将这两个数组连同最新区块中的状态树树根stateTreeRootHash送入结果组装函数packagingResult将查验结果封装,通过网络模块返回给存证记录使用者。对于查验历史状态函数来说,首先需要根据时间范围通过找到对应的区块号范围{Blocka,Blockb}对于其中的每个区块,通过区块获取函数获得该区块内包含的数字对象变化记录,通过扫描的方式找到该区块内和目标DOI相关的变化记录,将其添加到结果数组historyRecord中,完成扫描后,交由结果组装函数将历史变化记录返回给存证记录使用者。
对于存证记录使用者而言,在获得默克尔路径MerklePath、标记数组index、状态树树根哈希stateTreeRootHash后,可以自行对数字对象的当前状态DOState进行验证。验证方式如下:
1、计算出DO对应的叶子节点哈希HashDO
2、获得MerklePath的长度length,从0下标开始遍历MerklePath数组,如果index[i]为0,则HashDo=Hash(MerklePathi,HashDO),如果index[i]为1,则HashDo=Hash(HashDO,MerklePathi),这个过程相当于从叶子节点逐层遍历。
3、最终计算的HashDo和stateTreeRootHash比对,如果相同则代表验证通过。
综上,本发明实施例提供的一种面向移动终端应用的数字对象可信存证系统,本发明可以根据用户的输入操作生成数字对象的变化记录,变化记录包括新增记录、更新记录和注销记录,数字对象包括由移动终端应用产生的数据封装形成的数字对象;对变化记录进行校验,在校验通过的情况下,将变化记录放入缓冲池中;根据缓冲池中的变化记录生成待共识区块;其中,待共识区块包括对缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;通过区块共识算法将待共识区块存储在各个节点中。通过区块链技术对多主体下对移动终端应用产生的数据封装而成的数字对象的变化记录进行保存,提升了多主体中变化记录的可信度,还通过设计状态树调整算法,提高区块生成和验证的效率。改变传统状态树叶子节点位置固定的模式,使用Kmeans算法对数字对象的历史变化记录进行定期分析,将具有相似变化规律的数字对象调整到状态树相邻叶子节点位置,并将调整记录打包为区块,使得其他节点进行相同的状态树调整,减少未来时间中,更新状态树过程中影响到的中间节点数量,从而提高区块生成和验证效率。
参照图34,图34示出了本发明实施例提供的一种面向移动终端应用的数字对象可信存证系统架构图,如图34所示,系统自上而下包括展示层、接入层、逻辑层、存储层,同时安全管理贯穿其中。
其中,展示层是系统呈现给用户的使用的可视化界面,根据用户需求可以通过浏览器页面和客户端等不同方式与系统进行交互,系统的数据通过接入层传递到展示层展示给用户。
接入层主要是提供系统的外部访问模式,通常是将系统提供的功能通过RPC接口或者HTTP接口的方式,对外暴露数字对象记录存证和查验的接口,供外部系统或展示层进行调用。
逻辑层包括系统各个模块的业务逻辑处理单元,逻辑处理过程中会与存储层进行数据的输入和输出交互。对于本系统,逻辑层包括了存证新增记录、存证更新记录、存证注销记录、查验最新状态、查验历史状态、区块生成、区块验证、区块共识、状态树管理、签名验签、配置管理、日志管理等逻辑处理单元,是系统的核心所在。
存储层负责存储系统中的各类数据,本系统的数据层包括键值对型数据库LevelDB,文件存储。LevelDB用于存储系统运行期间产生的各类区块数据、默克尔树相关数据。文件主要存储各类日志数据,便于数据的审计。
安全管理贯穿各个层级,负责身份验证、权限控制、操作审计,身份验证包括验证数字对象变化记录存证提供方的身份,验证区块共识过程中共识消息的信息来源;权限控制包括控制数字对象变化记录提供方对数字对象拥有权的权限检查,区块生成过程中出块节点的选择;操作审计是对系统中设计的相关操作进行日志化保存,便于操作合法性的审计。
综上,本发明实施例提供的一种面向移动终端应用的数字对象可信存证系统,本发明可以根据用户的输入操作生成数字对象的变化记录,变化记录包括新增记录、更新记录和注销记录,数字对象包括由移动终端应用产生的数据封装形成的数字对象;对变化记录进行校验,在校验通过的情况下,将变化记录放入缓冲池中;根据缓冲池中的变化记录生成待共识区块;其中,待共识区块包括对缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;通过区块共识算法将待共识区块存储在各个节点中。通过区块链技术对多主体下对移动终端应用产生的数据封装而成的数字对象的变化记录进行保存,提升了多主体中变化记录的可信度,还通过设计状态树调整算法,提高区块生成和验证的效率。改变传统状态树叶子节点位置固定的模式,使用Kmeans算法对数字对象的历史变化记录进行定期分析,将具有相似变化规律的数字对象调整到状态树相邻叶子节点位置,并将调整记录打包为区块,使得其他节点进行相同的状态树调整,减少未来时间中,更新状态树过程中影响到的中间节点数量,从而提高区块生成和验证效率。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种面向移动终端应用的数字对象可信存证方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种面向移动终端应用的数字对象可信存证方法,其特征在于,所述方法包括:
根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象;
对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中;
根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;
通过区块共识算法将所述待共识区块存储在各个节点中。
2.根据权利要求1所述的一种面向移动终端应用的数字对象可信存证方法,其特征在于,所述方法还包括:
将移动终端应用产生的数据封装形成数字对象;
对所述数字对象的元数据、状态信息和数据实体的内容分别进行扩展。
3.根据权利要求1所述的一种面向移动终端应用的数字对象可信存证方法,其特征在于,所述方法还包括:
获取用户输入的数字对象编号,在当前维护的最新状态树中查找所述数字对象编号对应的数字对象的叶子节点,计算所述叶子节点的默克尔路径,将所述默克尔路径返回给所述用户,以使所述用户根据所述默克尔路径进行数据完整性和正确性检验;
获取用户输入的数字对象编号和变化记录范围,遍历所述变化记录范围内的所有区块,将所述所有区块中与所述数字对象编号匹配的变化记录添加到历史状态变化列表中,并将所述历史状态变化列表返回给所述用户。
4.根据权利要求1所述的一种面向移动终端应用的数字对象可信存证方法,其特征在于,所述根据用户的输入操作生成数字对象的变化记录,包括:
在用户选择存证数字对象新增记录的情况下,接收所述用户输入的数字对象标识和数字对象的初始化状态信息,根据所述数字对象标识和所述初始化状态信息生成数字对象新增记录;
在用户选择存证数字对象更新记录的情况下,接收所述用户输入的数字对象的数字对象标识和所述数字对象的更新后的状态信息,根据所述数字对象标识和所述更新后的状态信息生成数字对象更新记录;
在用户选择存证数字对象注销记录的情况下,接收所述用户输入的数字对象的数字对象标识,根据所述数字对象标识生成数字对象注销记录。
5.根据权利要求1所述的一种面向移动终端应用的数字对象可信存证方法,其特征在于,所述方法还包括:
基于所述普通区块对应的数字对象变化记录的类型,确定所述普通区块对应的最新的状态树根,并根据所述普通区块对应的最新的状态树根对所述普通区块进行验证;
基于所述状态树调整区块的叶子节点调整记录,得到所述状态树调整区块对应的最新的状态树根,并根据所述状态树调整区块对应的最新的状态树根对所述状态树调整区块进行验证。
6.一种面向移动终端应用的数字对象可信存证系统,其特征在于,所述系统包括:
数字对象存证模块,用于根据用户的输入操作生成数字对象的变化记录,所述变化记录包括新增记录、更新记录和注销记录,所述数字对象包括由移动终端应用产生的数据封装形成的数字对象;对所述变化记录进行校验,在校验通过的情况下,将所述变化记录放入缓冲池中;
区块生成与验证模块,用于根据所述缓冲池中的变化记录生成待共识区块;其中,所述待共识区块包括对所述缓冲池中的变化记录进行打包得到普通区块,以及通过Kmeans算法定期生成的状态树调整区块,所述状态树调整区块用于将数字对象状态树中具有相同变化规律的数字对象对应的叶子节点调整到同一最小子树下;
区块共识模块,用于通过区块共识算法将所述待共识区块存储在各个节点中。
7.根据权利要求6所述的一种面向移动终端应用的数字对象可信存证系统,其特征在于,所述系统还包括:
数字对象生成模块,用于将移动终端应用产生的数据封装形成数字对象;对所述数字对象的元数据、状态信息和数据实体的内容分别进行扩展。
8.根据权利要求6所述的一种面向移动终端应用的数字对象可信存证系统,其特征在于,所述系统还包括:
数字对象查验模块,用于获取用户输入的数字对象编号,在当前维护的最新状态树中查找所述数字对象编号对应的数字对象的叶子节点,计算所述叶子节点的默克尔路径,将所述默克尔路径返回给所述用户,以使所述用户根据所述默克尔路径进行数据完整性和正确性检验;获取用户输入的数字对象编号和变化记录范围,遍历所述变化记录范围内的所有区块,将所述所有区块中与所述数字对象编号匹配的变化记录添加到历史状态变化列表中,并将所述历史状态变化列表返回给所述用户。
9.根据权利要求6所述的一种面向移动终端应用的数字对象可信存证系统,其特征在于,所述数字对象存证模块,还用于在用户选择存证数字对象新增记录的情况下,接收所述用户输入的数字对象标识和数字对象的初始化状态信息,根据所述数字对象标识和所述初始化状态信息生成数字对象新增记录;在用户选择存证数字对象更新记录的情况下,接收所述用户输入的数字对象的数字对象标识和所述数字对象的更新后的状态信息,根据所述数字对象标识和所述更新后的状态信息生成数字对象更新记录;在用户选择存证数字对象注销记录的情况下,接收所述用户输入的数字对象的数字对象标识,根据所述数字对象标识生成数字对象注销记录。
10.根据权利要求6所述的一种面向移动终端应用的数字对象可信存证系统,其特征在于,所述区块生成与验证模块,还用于基于所述普通区块对应的数字对象变化记录的类型,确定所述普通区块对应的最新的状态树根,并根据所述普通区块对应的最新的状态树根对所述普通区块进行验证;基于所述状态树调整区块的叶子节点调整记录,得到所述状态树调整区块对应的最新的状态树根,并根据所述状态树调整区块对应的最新的状态树根对所述状态树调整区块进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210888353.4A CN115168916B (zh) | 2022-07-26 | 2022-07-26 | 一种面向移动终端应用的数字对象可信存证方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210888353.4A CN115168916B (zh) | 2022-07-26 | 2022-07-26 | 一种面向移动终端应用的数字对象可信存证方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115168916A CN115168916A (zh) | 2022-10-11 |
CN115168916B true CN115168916B (zh) | 2023-01-13 |
Family
ID=83498011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210888353.4A Active CN115168916B (zh) | 2022-07-26 | 2022-07-26 | 一种面向移动终端应用的数字对象可信存证方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168916B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800277A (zh) * | 2018-12-18 | 2019-05-24 | 合肥天源迪科信息技术有限公司 | 一种机器学习平台及基于该平台的数据模型优化方法 |
CN111666415A (zh) * | 2020-06-28 | 2020-09-15 | 深圳壹账通智能科技有限公司 | 话题聚类方法、装置、电子设备及存储介质 |
CN112052891A (zh) * | 2020-08-28 | 2020-12-08 | 平安科技(深圳)有限公司 | 机器行为识别方法、装置、设备及计算机可读存储介质 |
CN112631719A (zh) * | 2020-12-23 | 2021-04-09 | 平安银行股份有限公司 | 数据预测模型调用方法、装置、设备和存储介质 |
CN113704272A (zh) * | 2021-10-25 | 2021-11-26 | 北京大学 | 一种人机物融合环境下的数字对象状态表达方法及装置 |
CN115221558A (zh) * | 2022-07-29 | 2022-10-21 | 北京大学 | 一种面向多主体科技资源的数字对象高效存证方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11175910B2 (en) * | 2015-12-22 | 2021-11-16 | Opera Solutions Usa, Llc | System and method for code and data versioning in computerized data modeling and analysis |
US11106438B2 (en) * | 2020-03-27 | 2021-08-31 | Intel Corporation | Integration of automated complier dataflow optimizations |
-
2022
- 2022-07-26 CN CN202210888353.4A patent/CN115168916B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800277A (zh) * | 2018-12-18 | 2019-05-24 | 合肥天源迪科信息技术有限公司 | 一种机器学习平台及基于该平台的数据模型优化方法 |
CN111666415A (zh) * | 2020-06-28 | 2020-09-15 | 深圳壹账通智能科技有限公司 | 话题聚类方法、装置、电子设备及存储介质 |
CN112052891A (zh) * | 2020-08-28 | 2020-12-08 | 平安科技(深圳)有限公司 | 机器行为识别方法、装置、设备及计算机可读存储介质 |
CN112631719A (zh) * | 2020-12-23 | 2021-04-09 | 平安银行股份有限公司 | 数据预测模型调用方法、装置、设备和存储介质 |
CN113704272A (zh) * | 2021-10-25 | 2021-11-26 | 北京大学 | 一种人机物融合环境下的数字对象状态表达方法及装置 |
CN115221558A (zh) * | 2022-07-29 | 2022-10-21 | 北京大学 | 一种面向多主体科技资源的数字对象高效存证方法和系统 |
Non-Patent Citations (2)
Title |
---|
Blockchain-based secure equipment diagnosis mechanism of smart grid;Xiaohong Zhang;《IEEE ACCESS》;20180101;1-12 * |
Internet of Things and Blockchain Integration:Security,Privacy,Technical,and Design Challenges;Yehia Ibrahim Alzoubi;《Future Internet》;20220721;第7卷(第14期);1-48 * |
Also Published As
Publication number | Publication date |
---|---|
CN115168916A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886421B2 (en) | Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT) | |
US11803537B2 (en) | Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT) | |
US11783024B2 (en) | Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration | |
US11876910B2 (en) | Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT) | |
CN113711536B (zh) | 从区块链网络中提取数据 | |
US11431486B2 (en) | System or method to implement consensus on read on distributed ledger/blockchain | |
US11811769B2 (en) | Systems, methods, and apparatuses for implementing a declarative, metadata driven, cryptographically verifiable multi-network (multi-tenant) shared ledger | |
US11824864B2 (en) | Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT) | |
US11562293B2 (en) | Adaptation of machine learning algorithms | |
US11451398B2 (en) | Management of interoperating machine learning algorithms | |
US11823017B2 (en) | Interoperation of machine learning algorithms | |
US20210081400A1 (en) | Search method using data structure for supporting multiple search in blockchain-based iot environment, and device according to method | |
CN111931220B (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
CN112070608B (zh) | 信息处理方法、装置、介质及电子设备 | |
CN111680041A (zh) | 面向异构数据的安全高效存取方法 | |
CN110046155A (zh) | 特征数据库的更新、数据特征的确定方法、装置及设备 | |
Edward et al. | Practical MongoDB: Architecting, Developing, and Administering MongoDB | |
CN115221558B (zh) | 一种面向多主体科技资源的数字对象高效存证方法和系统 | |
CN113011960A (zh) | 基于区块链的数据访问方法、装置、介质及电子设备 | |
CN115168916B (zh) | 一种面向移动终端应用的数字对象可信存证方法和系统 | |
CN116467026A (zh) | 一种基于区块链的云桌面数据安全共享、溯源方法和系统 | |
Yan et al. | Handling conditional queries and data storage on Hyperledger Fabric efficiently | |
Reina et al. | Modeling and enforcing integrity constraints on graph databases | |
CN115017185A (zh) | 一种数据处理方法、装置及存储介质 | |
CN110489608A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |