一种控制区块链底层资产数据状态一致性的方法及系统技术方案

技术编号:27740970 阅读:11 留言:0更新日期:2021-03-19 13:34
本发明专利技术提供了一种控制区块链底层资产数据状态一致性的方法及系统,根据接收到的区块链资产数据更改请求构建区块链交易,根据构建的交易确定要调用的具体合约类型;从已存储信息中调用该合约类型,并利用合约代码构建智能合约,所述已存储信息包括合约类型、资产数据状态和主体状态;将智能合约代码转换成底层区块链能够识别的程序代码,根据合约代码,判断相应的主体状态和资产数据状态是否符合合约执行条件,符合条件则执行合约并返回执行结果到应用层,并更新资产数据状态和主体状态存储信息,保持一致性,否则结束合约调用;本发明专利技术能够保证区块链底层数据状态的准确性和一致性。

【技术实现步骤摘要】
一种控制区块链底层资产数据状态一致性的方法及系统
本专利技术属于区块链数据处理
,具体涉及一种控制区块链底层资产数据状态一致性的方法及系统。
技术介绍
本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。智能合约是一种以计算机语言编写、由计算机自动验证和执行的代码化的合同,是纸质合同的数字化形式,能够节约合同执行成本,提高合同执行效率。而基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰,通过将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可篡改。同时,由区块链自带的共识算法构建出一套状态机系统,使智能合约能够高效地运行。但是在智能合约的使用过程中也产生了很多问题。其中最为重要的问题是,由于智能合约是一段计算机代码,无法排除编写代码方在编写过程中出现的人为逻辑漏洞,而这一问题导致了区块链智能合约界最大的一次黑客攻击——TheDAO攻击,这次攻击就是由于黑客识别出了TheDAO的智能合约代码进行调用时没有校验底层资产数据状态的一致性,从而导致TheDAO项目损失大量资金;其次,智能合约是一系列完全适用于底层的程序语言代码,很多应用调用区块链的智能合约时往往因为程序语言解释性不强的原因不能调通,而这样的智能合约就更无法提供不同应用之间的跨应用调用。据专利技术人了解,目前相关专利中更多的是对智能合约执行效率提高、增强信任、简化流程等方面进行优化,对于保证资产数据状态的一致性和准确性上,并无改善。
技术实现思路
本专利技术为了解决上述问题,提出了一种控制区块链底层资产数据状态一致性的方法及系统,本专利技术能够保证区块链底层数据状态的准确性和一致性。本专利技术中,所指的资产数据,是指以物理或电子的方式记录的数据资源,包括但不限于照片、文档、图纸、视频、数字版权等等以文件为载体的数据。根据一些实施例,本专利技术采用如下技术方案:一种控制区块链底层资产数据状态一致性的方法,包括以下步骤:根据接收到的区块链资产数据更改请求构建区块链交易,根据构建的交易确定要调用的具体合约类型;从已存储信息中调用该合约类型,并利用合约代码构建智能合约,所述已存储信息包括合约类型、资产数据状态和主体状态;将智能合约代码转换成底层区块链能够识别的程序代码,根据合约代码,判断相应的主体状态和资产数据状态是否符合合约执行条件,符合条件则执行合约并返回执行结果到应用层,并更新资产数据状态和主体状态存储信息,保持一致性,否则结束合约调用。一种控制区块链底层资产数据状态一致性的系统,包括:应用层,用于为上层发送区块链底层的相关资产数据状态更改请求;交互层,用于实现应用层与底层区块链的交互,并将应用层的资产数据状态更改请求进行规范化重建,将接收到的不同资产数据状态更改请求构建成底层区块链能够识别的规范数据,并请求调用涉及的智能合约;合约虚拟机,用于接收交互层发送的智能合约调用请求,构建智能合约并执行;数据库,用于存储区块链上智能合约、资产数据和主体相关信息。作为可选择的实施方式,所述交互层包括交互构建模块和合约调用模块,其中:交互构建模块,用于将应用层的资产数据状态更改请求进行规范重建,将各种不同应用发送的资产数据状态更改请求构建成底层区块链能够识别的规范数据;合约调用模块,用于根据交互构建模块构建的规范数据调用交互涉及的合约。作为可选择的实施方式,所述合约虚拟机包括合约构建模块、合约解释器和合约执行器,其中:合约构建模块,用于根据调用的合约从数据库中抽取相应的合约类型,构建具体的智能合约;合约解释器,用于将构建的智能合约转换为相应编程语言的具体代码;合约执行器,用于查询资产数据、主体的当前状态,智能合约实现条件符合时将构建完成的合约执行。作为可选择的实施方式,数据库包括合约状态库、资产状态库和主体状态库,其中:合约状态库,用于存储当前区块链所有的智能合约;资产状态库,用于存储当前区块链所有的资产及状态;主体状态库,用于存储当前区块链所有的主体及状态。基于上述系统的工作方法,包括以下步骤:应用层接收到用户发送的区块链资产数据更改请求;交互层根据接收到的请求构建区块链交易,根据构建的交易确定要调用的具体合约类型;合约构建模块根据需要调用的合约类型从合约状态库中查询该合约类型,并根据合约状态库的合约代码构建智能合约;合约解释器将智能合约代码转换成底层区块链能够识别的程序代码;合约执行器根据合约代码,查询世界状态库中的主体状态和资产状态是否符合合约执行条件,符合条件则合约执行器执行合约并返回执行结果到应用层,并且将合约执行后的资产和主体状态发送到资产状态库和主体状态库中,否则结束合约调用;主体状态库和资产状态库根据接收到的资产、主体状态,更新相应主体、资产的状态信息,始终保持底层资产、主体的状态一致性,结束本次合约的调用。一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的一种控制区块链底层资产数据状态一致性的方法的步骤。一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述一种控制区块链底层资产数据状态一致性的方法的步骤。与现有技术相比,本专利技术的有益效果为:本专利技术能够始终保证区块链底层资产状态的一致性,同一时间同一资产的状态保持全局一致性。本专利技术避免了TheDAO等区块链智能合约相关的攻击事故,实时校验底层资产数据状态的一致性,保证区块链智能合约执行的有效性;本专利技术通过合约解释器构建适用于底层的智能合约程序代码,以便更好的支持上层跨应用调用。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。图1为控制区块链底层资源状态一致性的系统架构图;图2为处理流程示意图。具体实施方式:下面结合附图与实施例对本专利技术作进一步说明。应该指出,以下详细说明都是例示性的,旨在对本专利技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本专利技术所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本专利技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。实施例一:<本文档来自技高网
...

【技术保护点】
1.一种控制区块链底层资产数据状态一致性的方法,其特征是:包括以下步骤:/n根据接收到的区块链资产数据更改请求构建区块链交易,根据构建的交易确定要调用的具体合约类型;/n从已存储信息中调用该合约类型,并利用合约代码构建智能合约,所述已存储信息包括合约类型、资产数据状态和主体状态;/n将智能合约代码转换成底层区块链能够识别的程序代码,根据合约代码,判断相应的主体状态和资产数据状态是否符合合约执行条件,符合条件则执行合约并返回执行结果到应用层,并更新资产数据状态和主体状态存储信息,保持一致性,否则结束合约调用。/n

【技术特征摘要】
1.一种控制区块链底层资产数据状态一致性的方法,其特征是:包括以下步骤:
根据接收到的区块链资产数据更改请求构建区块链交易,根据构建的交易确定要调用的具体合约类型;
从已存储信息中调用该合约类型,并利用合约代码构建智能合约,所述已存储信息包括合约类型、资产数据状态和主体状态;
将智能合约代码转换成底层区块链能够识别的程序代码,根据合约代码,判断相应的主体状态和资产数据状态是否符合合约执行条件,符合条件则执行合约并返回执行结果到应用层,并更新资产数据状态和主体状态存储信息,保持一致性,否则结束合约调用。


2.一种控制区块链底层资产数据状态一致性的系统,其特征是:包括:
应用层,用于为上层发送区块链底层的相关资产数据状态更改请求;
交互层,用于实现应用层与底层区块链的交互,并将应用层的资产数据状态更改请求进行规范化重建,将接收到的不同资产数据状态更改请求构建成底层区块链能够识别的规范数据,并请求调用涉及的智能合约;
合约虚拟机,用于接收交互层发送的智能合约调用请求,构建智能合约并执行;
数据库,用于存储区块链上智能合约、资产数据和主体相关信息。


3.如权利要求2所述的一种控制区块链底层资产数据状态一致性的系统,其特征是:所述交互层包括交互构建模块和合约调用模块,其中:
交互构建模块,用于将应用层的资产数据状态更改请求进行规范重建,将各种不同应用发送的资产数据状态更改请求构建成底层区块链能够识别的规范数据;
合约调用模块,用于根据交互构建模块构建的规范数据调用交互涉及的合约。


4.如权利要求2所述的一种控制区块链底层资产数据状态一致性的系统,其特征是:所述合约虚拟机包括合约构建模块、合约解释器和合约执行器,其中:
合约构建模块,用于根据调用的合约从数据库中抽取相应的合约类型,构建具体的智能合约;
合约解释器,用于将构建的智能合约转换为相应编程语言的具体代码;
合约执行器,用于查询资产数据、主体的当前状态,智能合约实现条件符合时将构建完成的合约执行。

<...

【专利技术属性】
技术研发人员:赵永光闵新平仪莉钱进李庆忠
申请(专利权)人:山大地纬软件股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1