一种半中心化的可信数据管理系统
技术领域
本发明涉及数据处理领域,尤其是中心化数据管理系统。
背景技术
传统的数据应用系统,形式上无论是单中心系统还是分布式系统,就管理主体而言实质都是中心化存储模式,即数据的存储、维护和查询都由管理中心来统一实施。该模式的优势是数据管理方面的高效性,但存储的数据对外是一个黑箱,缺乏可监督性与透明性,客户只能被动接受,难以保证数据的真实性和正确性。新兴的区块链技术是一种由多方共同维护、以块链结构存储数据、以密码学方式保证不可篡改和不可伪造的分布式存储模式。该种模式下,人人都是资源的提供方和获取方,没有绝对的中心。当某个节点被篡改时,该节点会显得“格格不入”,因而会被排斥且不被承认。但是去中心化模式在高度安全、透明的同时,也造成时间、空间和能耗上的极大浪费。此外,作为一个完全分布式的自治系统,该模式缺乏一个可靠的、公正的责任组织来协调各方利益和处理各种紧急事务。
发明内容
针对上述技术问题,本发明提供一种中心化数据存储结合去中心化数据验证的半中心化可信数据管理系统。
本发明能够以多种方式实现,包括方法、系统、设备、装置或计算机可读介质,在下面论述本发明的几个实施例。
一种半中心化的可信数据管理系统,包括数据存储模块、用户请求接收模块和用户请求执行模块,所述数据存储模块包括可更新的加载有数据有效记录的区块,所述用户请求接收模块可接收用户的更新请求和/或验证请求,接收到用户验证请求后,所述用户请求执行模块根据用户验证请求内容提供当前区块的连续有效记录片段和前一区块中的对应连续有效记录片段供用户比对验证有效记录是否合法,所述用户验证请求内容包括待验证有效记录片段的起始有效记录名称和有效记录片段长度。
进一步地,所述区块加载的有效记录名称唯一确定不重复且可根据记有效录名称精确检索到对应记录,不同区块加载的有效记录名称根据相同规则进行排序。
进一步地,根据权利要求1所述的一种半中心化的可信数据管理系统,其特征在于,当前区块有效记录不存在用户验证请求内容中的起始有效记录名称时,选取的当前区块连续有效记录片段的实际起始有效记录名称为距离用户验证请求内容中的起始有效记录名称最近的在前有效记录名称,片段长度等于用户验证请求内容中的有效记录片段长度。
进一步地,前一区块中的对应连续有效记录片段的起始有效记录名称与当前区块连续有效记录片段的实际起始有效记录名称相同,末尾有效记录名称与由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称相同。
进一步地,前一区块有效记录不存在当前区块连续有效记录片段的实际起始有效记录名称时,对应的连续有效记录片段的起始有效记录名称为与当前区块连续有效记录片段的实际起始有效记录名称距离最近的在前有效记录名称。
进一步地,前一区块有效记录不存在由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称时,对应的连续有效记录片段的末尾有效记录名称为与由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称距离最近的在后有效记录名称。
进一步地,验证当前区块加载的有效记录是否合法包括验证当前区块增删的记录信息是否合法、验证当前区块修改的记录信息是否合法、验证当前区块更新的记录公钥是否合法。
进一步地,验证当前区块修改的记录信息是否合法的方法包括比对用户签名的更新时间与系统签名的审批时间是否在同一有效日期内,所述有效日期为区块上一次更新距本次更新之间的时间段。
进一步地,验证当前区块更新的记录公钥是否合法的方法包括验证更新后记录中的旧私钥签名备案信息是否合法。
本发明实施例具有的积极有益效果包括:(1)数据存储模块的数据应用系统实现了中心化数据存储,“类区块链”的存储结构保证了数据的完整性、可追溯性和不可篡改性;(2)用户可验证当前区块加载的有效记录是否合法,去中心化的数据验证方式保证了数据的真实性和透明性。
本发明的其他方面和优点根据下面结合附图的详细的描述而变得明显,所述附图通过示例说明本发明的原理。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为本发明实施例提供的半中心化有效数据管理系统结构框图;
图2为本发明实施例提供的区块结构示意图;
图3为本发明实施例提供的区块有效记录更新过程示意图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
一种半中心化的可信数据管理系统,包括数据存储模块、用户请求接收模块和用户请求执行模块,所述数据存储模块包括可更新的加载有数据有效记录的区块,所述用户请求接收模块可接收用户的更新请求和/或验证请求,接收到用户验证请求后,所述用户请求执行模块根据用户验证请求内容提供当前区块的连续有效记录片段和前一区块中的对应连续有效记录片段供用户比对验证有效记录是否合法,所述用户验证请求内容包括待验证有效记录片段的起始有效记录名称和有效记录片段长度。
数据存储模块通过存储有效数据的记录链,建立数据与记录之间的映射关系来实现一种便捷、透明的数据记录管理系统。例如,现有的银行卡交易与虚拟货币交易中,转账时常用银行账号/卡号长度多为16-20位的数字,新兴的区块链资产账号更是长达30多位的无序数字、字母组合,这使得普通用户难以记忆,且难以判断转账地址的真实性,进而滋生一系列资金安全问题。同时,由于虚拟货币的匿名性,其地址本身不包含任何身份信息,这容易滋生非法洗钱、行贿受贿、敲诈勒索等违法行为,给国家金融监管带来巨大困难。本发明通过建立账户与账户记录之间的映射关系,建立一种安全、便捷的记录链管理系统。
数据存储模块中区块包括区块头和区块体,区块体记录有有效日期内的有效记录,区块头记录有相邻区块区块头哈希值,区块生成时间戳、有效记录个数和记载有效记录哈希值的默克尔树(如图2所示)。本发明中有效记录是指排除掉已更新、已失效的记录。数据存储模块可在固定时间生成新的区块,新生成区块存储有距离上一次区块更新时间段内的所有有效记录,并把新生成的区块加载到原区块链上。作为实施例,加载有效记录的区块在每天下午3:00自动更新,则数据存储模块中的区块体记录有前一日下午3:00至今日下午3:00之间的所有有效记录,即有效日期为区块上一次更新距本次更新之间的时间段。数据存储模块会保留由所有历史区块区块头构成的块头链,同时会保留部分最新区块,例如保存最近的10个区块,而无需保存全部区块。同时,数据存储模块还会周期性保留一些关键时间点的区块映像,例如保留每个月或每个季度第一天的区块,结合每一个周期内的对应更新记录,可以迅速还原到任一天的区块信息,便于历史查验。数据存储模块中区块头记录有相邻区块区块头哈希值,即每一区块的块头记录“父区块“的哈希值(前一区块的哈希值),通过引用前一区块哈希值,可形成有效记录体系中的区块链和哈希链,有效保证了记录数据的完整性、可追溯性和不可篡改性。同时区块头中记录有该区块生成时间对应的时间戳,可以有效避免第三方以旧充新。
数据存储模块中区块加载的有效记录名称唯一确定不重复且可根据记有效录名称精确检索到对应记录,同时,不同区块加载的有效记录名称根据相同规则进行排序。作为实施例,区块中加载的有效记录名称为SWUFE01、SWUFE02、SWUFE03、…、SWUFE20,可根据有效记录名称SWUFE02精确检索到对应记录,且有效记录名称具有序号性,与有效记录SWUFE02距离最近的前一个有效记录的名称为SWUFE01。
用户请求接收模块可接收用户通过手机、电脑、平板等终端发送的更新或验证请求,更新请求包括注册、查询、修改请求。当用户请求接收模块接收到用户的注册请求后,用户请求执行模块开始执行用户的注册请求,用户可利用自己的私钥加密其写入数据存储模块的记录单元,数据存储模块再利用其私钥加密存储的完整有效记录。作为实施例,用户请求接收模块接收到用户通过手机客户端发送的注册、更新请求,用户请求执行模块允许用户利用自己的私钥签名该用户的身份、账号、更新时间等基本信息,以确保该用户数据对应记录的归属。系统认证成功后,数据存储模块对加载的包含基本信息、注册信息、认证信息的完整记录再次利用自身私钥签名,保证数据的来源可靠,防范第三方攻击。
用户请求接收模块接收到用户的注册请求后,用户提交利用自身私钥签名的基本记录信息,有效数据存储模块审批通过后,利用其中心私钥签名形成一条双签名的完整有效记录,并在下一个更新时间加载到新生成区块中;用户请求接收模块接收到用户的查询请求后,用户提交包含指定记录名称的查询请求,有效数据存储模块返回该记录的完整信息和从当前默克尔树该记录节点到默克尔根完整路径的所有哈希值;用户请求接收模块接收到用户的更新请求后,验证用户请求中的签名信息是否合法以及验证该用户是否具有相关操作权限,当满足所有条件时,允许用户提交利用自身私钥签名的已更新的记录基本信息,有效数据存储模块审批通过过,利用其中心私钥签名形成一条双签名的完整有效记录,并在下一更新时间加载到新生成区块中,更新当前区块记录的有效记录信息包括但不限于增加、删除、修改记录和更新用户自身密钥对(如图3所示)。
验证当前区块记录的有效记录是否合法包括验证当前区块增删的记录信息是否合法、当前区块修改的记录信息是否合法、当前区块更新的记录公钥是否合法。用户请求接收模块接收到用户的验证请求后,用户提交当前区块待验证有效记录片段的起始记录名称和片段长度值,用户请求执行模块返回当前区块和前一区块中对应有效记录片段中所有有效记录的完整信息和默克尔树中每一个记录节点到默克尔根的完整路径。当前区块有效记录不存在用户验证请求内容中的起始有效记录名称时,选取的当前区块连续有效记录片段的起始有效记录名称为距离用户验证请求内容中的起始有效记录名称最近的在前有效记录名称,片段长度等于用户验证请求内容中的有效记录片段长度;前一区块中的对应连续有效记录片段的起始有效记录名称与当前区块连续有效记录片段的实际起始有效记录名称相同,末尾有效记录名称与由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称相同;前一区块有效记录不存在当前区块连续有效记录片段的实际起始有效记录名称时,对应的连续有效记录片段的起始有效记录名称为与当前区块连续有效记录片段的实际起始有效记录名称距离最近的在前有效记录名称,在前有效记录名称是指位于当前区块连续有效记录片段的实际起始有效记录名称之前的有效记录名称;前一区块有效记录不存在由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称时,对应的连续有效记录片段的末尾有效记录名称为与由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称距离最近的在后有效记录名称,在后有效记录名称是指位于由当前区块连续有效记录片段的实际起始有效记录名称和片段长度决定的末尾有效记录名称之后的有效记录名称。区块中加载的有效记录数量值远远大于用户验证请求内容中的待验证有效记录片段长度值,用户请求执行模块在当前区块中提取的待验证连续有效记录片段的起始有效记录名称与用户请求验证内容中的起始有效记录名称相同或者距离最近,长度与用户请求验证内容中的片段长度相同,用户请求执行模块在前一区块中抽取的待验证连续有效记录片段包含当前区块待验证连续有效记录片段在内,其长度可能大于用户请求验证内容中的片段长度。
作为实施例,用户请求验证当前区块中起始有效记录名称为SWUFE01,片段长度为10的连续有效记录片段是否合法,当前区块中以SWUFE01为起始有效记录名称、片度长度为10的连续有效片段的末尾有效记录名称为SWUFE10,(1)SWUFE01、SWUFE10均存在于前一区块中,用户请求执行模块提取当前区块中起始有效记录名称为SWUFE01,片段长度为10的连续有效记录片段,提取前一区块中起始有效记录名称为SWUFE01,末尾有效记录名称为SWUFE10的连续有效记录片段给用户供其比对判断当前区块加载的有效记录是否合法;(2)用户验证请求内容中的起始有效记录名称SWUFE01不存在于当前区块,距离SWUFE01最近的在前有效记录SWUFE00存在于当前区块,选取SWUFE00、SWUFE02、SWUFE03、…、SWUFE10作为当前区块的有效连续片段,此时前一区块的对应连续有效记录片段的起始有效记录名称为SWUFE00,末尾有效记录名称为SWUFE10;(2-1)实际起始有效记录名称SWUFE00不存在于前一区块,距离SWUFE00最近的在前有效记录名称SWUF000存在于前一区块,SWUFE10存在于前一区块,用户请求执行模块提取当前区块实际起始有效记录名称为SWUFE00,片段长度为10的连续有效记录片段,提取前一区块中起始有效记录名称为SWUFE000,末尾有效记录名称为SWUFE10的连续有效记录片段给用户供其比对判断当前区块加载的有效记录是否合法;(3)实际起始有效记录名称SWUFE00存在于前一区块,末尾有效记录名称SWUFE10不存在于前一区块,距离SWUFE10最近的在后有效记录名称SWUFE12存在于前一区块,用户请求执行模块提取当前区块实际起始有效记录名称为SWUFE00,片段长度为10的连续有效记录片段,提取前一区块中起始有效记录名称为SWUFE00,末尾有效记录名称为SWUFE12的连续有效记录片段给用户供其比对判断当前区块加载的有效记录是否合法;(4)实际起始有效记录名称SWUFE00不存在于前一区块,距离SWUFE00最近的在前有效记录名称SWUFE000存在于前一区块,末尾有效记录名称SWUFE10不存在于前一区块,距离SWUFE10最近的在后有效记录名称SWUFE12存在于前一区块,用户请求执行模块提取当前区块实际起始有效记录名称为SWUFE00,片段长度为10的连续有效记录片段,提取前一区块中起始有效记录名称为SWUFE000,末尾有效记录名称为SWUFE12的连续有效记录片段给用户供其比对判断当前区块加载的有效记录是否合法;。
用户验证当前区块记录的有效记录是否合法时,随机抽取当前区块中的一个连续有效记录片段,通过与前一区块中对应的连续记录片段比对,比对结果包括(1)没有变化、正常延续;(2)存在新增、删减记录记录,通过验证相应区块中该记录的注册日期和到期日期是否准确来判断当前区块增删的记录信息是否合法;(3)除用户公钥以外的内容更新,通过比对用户签名的更新时间与系统签名的审批时间是否在同一个有效日期内来判断当前区块修改的记录信息是否合法;(4)用户公钥更新,通过验证更新后记录中的旧私钥签名备案信息是否合法来判断当前区块更新的用户记录公钥是否合法。每一区块中至少有三个时间记录,一是整个区块的对应时间,表明该区块的生成时间,另外两个存在于每一条有效记录中,分别是用户签名的修改时间(如注册或更新)和中心签名的批准用户修改的时间,后两个时间存在一定先后性,但至少会在一个更新周期内。通过大量用户端的零星查验,达到对区块所有有效记录的整体普查效果,其实质是对中心分布式的民主监督,可以保证有效数据管理系统在任何时候都不能伪造数据,实现数据了的中心化可信存储。
优化地,区块中利用Merkle树(默克尔树)存储所有有效记录的哈希值,形成该区块存储的每一个有效记录的数字指纹,便于在该区块中高效校验某一记录记录的真实性。
本发明的不同方面、实施例、实施方式或特征能够单独使用或任意组合使用。
本发明优选由软件实现,但是也能够以硬件或硬件和软件的组合实现。本发明也能够被实施为计算机可读介质上的计算机可读代码。计算机可读介质是能够存储之后可由计算机系统读取的数据的任何数据存储设备。计算机可读介质的示例包括:只读存储器、随机存储存储器、CD-ROM、DVD、磁带、光学数据存储设备和载波。计算机可读介质也可分布在网络连接的计算机系统上,从而以分布式方式存储和执行计算机可读代码。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。