一种键值生成方法、数据库防篡改方法设备和存储介质技术

技术编号:21200076 阅读:45 留言:0更新日期:2019-05-25 01:18
本发明专利技术提供一种一种键值生成方法、数据库防篡改方法设备和存储介质,该方法包括:根据第一交易生成第一键值;第一键值包括合约标识信息,合约标识信息用于标识执行第一交易的第一合约的合约名称。本发明专利技术诸多实施例通过在设计键值时,添加合约标识信息,以此来标识执行合约的合约名称,有效的阻止了跨合约篡改数据的可能,保证了数据库的安全性。

A Key Value Generation Method, Database Tamper-proof Method, Equipment and Storage Media

The invention provides a key value generation method, a database tamper-proof method device and a storage medium. The method includes: generating the first key value according to the first transaction; the first key value includes contract identification information, which is used to identify the contract name of the first contract to execute the first transaction. Many embodiments of the invention effectively prevent the possibility of tampering with data across contracts and ensure the security of database by adding contract identification information when designing key values to identify the contract name for executing contracts.

【技术实现步骤摘要】
一种键值生成方法、数据库防篡改方法设备和存储介质
本申请涉及通信
,具体涉及一种键值生成方法、数据库防篡改方法设备和存储介质。
技术介绍
目前,区块链系统中普遍存在原生态合约和动态部署合约混合的多合约平台,区块链系统在执行完一笔交易后一般以key-value的形式保存到数据库中,在这种多合约的情况下,当不同的合约使用同一key值时,区块链系统不能及时区分,会造成不同合约执行的数据遭到篡改,致使数据库遭到篡改,给用户带来很大的损失。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种防止执行数据库时遭到篡改的键值生成方法、设备和存储介质。第一方面,本专利技术提供一种键值生成方法,在区块链系统中部署的各合约的合约名称各不相同,该方法包括:根据第一交易生成第一键值;第一键值包括合约标识信息,合约标识信息用于标识执行第一交易的第一合约的合约名称。进一步,在根据第一交易生成第一键值之前,该方法还包括:判断第一合约的合约名称是否与区块链系统中现有的合约的合约名称不同:若是,则部署第一合约成功。进一步,合约标识信息包括第一合约的合约名称,根据第一交易生成第一键值包括:根据第一交易生成第二键值;在第二键值前添加第一合约的合约名称以生成第一键值。第二方面,本专利技术提供一种数据库防篡改的方法,已被执行的第一交易包含若干第一键值,该方法包括:获取执行第一交易的第一合约的第一合约名称;判断第一合约名称与第一键值的合约标识信息所标识的第二合约名称是否相同;是,则提交执行第一交易的执行结果;否,则不提交第一交易的执行结果。进一步,合约标识信息包括第一合约的合约名称。第三方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的键值生成方法和数据库防篡改的方法。第四方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的键值生成方法和数据库防篡改的方法。专利技术的有益效果本专利技术诸多实施例通过在设计键值时,添加合约标识信息,以此来标识执行合约的合约名称,使区块链系统能快速正确的区分交易是由哪个执行合约执行的,另外,还通过判断被执行的交易的执行合约的合约名称与键值的标识信息所代表的合约是否一致,从而阻止跨合约操作,有效的阻止了跨合约篡改数据的可能,保证了数据库的安全性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术一实施例提供的一种键值生成方法的场景示意图。图2为本专利技术一实施例提供的一种键值生成方法的流程图。图3为图2所示方法一优选实施方式的流程图.图4为本专利技术提供的一优选实施例的步骤S11的流程图。图5为本专利技术提供的一种数据库防篡改方法的流程图。图6为本专利技术一实施例提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1为本专利技术一实施例提供的一种键值生成方法的场景示意图。如图1所示,一笔交易tx1中可能包含账户信息,金额信息,合约信息,地址信息等若干信息,根据这些信息,再加上执行该合约的合约名称,如user.wasm.dice,构成key值,如:user.wasm.dice-accountA-addr,通过该键值,区块链系统可以识别tx1是由合约user.wasm.dice执行的。图2为本专利技术一实施例提供的一种键值生成方法的流程图。如图2所示,在本实施例中,本专利技术提供一种键值生成方法,在区块链系统中部署的各合约的合约名称各不相同,该方法包括:S11、根据第一交易生成第一键值;第一键值包括合约标识信息,合约标识信息用于标识执行第一交易的第一合约的合约名称。具体地,如图1所示场景,步骤S11中所描述的根据第一交易生成第一键值,除了可以为获取第一交易的账户信息,地址信息,也可以是获取其第一交易的金额信息,还可以是第一交易的币种信息symbol、合约信息等第一交易的信息,还可以是这些信息的任意组合,所述第一键值包括合约标识信息,如user.wasm.dice,该合约标识信息能够用于识别该交易是由该合约user.wasm.dice执行的。图3为图2所示方法一优选实施方式的流程图。如图3所示,在本实施例中,在根据第一交易生成第一键值之前,该方法还包括:S12、判断第一合约的合约名称是否与区块链系统中现有的合约的合约名称不同:若是,则部署第一合约成功。具体地,区块链系统接收到部署新合约的请求时,不会直接将合约部署到系统中,要先判断该合约是否与系统中已经存在的合约的合约名称是否重复,如果重复,则拒绝部署该合约,若没有重复,则部署该合约成功。在部署合约前先对合约名称进行筛选判断,进一步避免相同合约名称下进行数据库执行会遭到篡改的情况。图4为本专利技术提供的一优选实施例的步骤S11的流程图。如图4所示,在本实施例中,合约标识信息包括第一合约的合约名称,步骤S11包括:S111、根据第一交易生成第二键值;S112、在第二键值前添加第一合约的合约名称以生成第一键值。具体地,如图1所示场景,步骤S112中可以是整个合约名称user.wasm.dice,在更多优选实施例中,还可以是代表该合约名称的关键词,如dice,还可以是区块链系统在设定规则下对不同合约进行编码,如1,2,3,A,B,C等,只要该合约标识信息能够用于识别该交易是由该合约执行的即可,并不局限于合约名称的限制。在更多实施例中,还可以在区块链系统中在第二键值的规定的位置上添加合约标识信息,不一定局限于第二键值前。图5为本专利技术提供的一种数据库防篡改方法。如图5所示,在本实施例中,提供一种数据库防篡改的方法,已被执行的第一交易包含若干第一键值,该方法包括:S21、获取执行第一交易的第一合约的第一合约名称;S22、判断第一合约名称与第一键值的合约标识信息所标识的第二合约名称是否相同;是,则提交执行第一交易的执行结果;否,则不提交第一交易的执行结果。具体地,当第一交易被第一合约执行后,要将执行后的数据以key,value的形式发送到数据库中,这时,获取已经被执行过的第一交易中执行合约,即第一合约的合约名称;判断第一交易中第一键值的合约标识信息所标识的合约名称是否约第一合约名称相同,若相同,则代表该第一合约是处理该第一交易的执行合约,将执行结果发送至数据库,若不相同,则不提交第一交易的执行结果。如,第一交易的执行合约为user.wasm.dice,第一键值的合约标识信息标识的合约名称是user.wasm.trade,则说明执行合约user.wasm.dice篡改了本应由user.wasm.trade合约执行的交易数据,则不提交由user.wasm.dice合约提交的执行结果。同样的,合约标识信息可以是整个合约名称user.wasm.dice,还可以是代表该合约名称的关键词,如dice,还可本文档来自技高网...

【技术保护点】
1.一种键值生成方法,其特征在于,在区块链系统中部署的各合约的合约名称各不相同,所述方法包括:根据所述第一交易生成第一键值;所述第一键值包括合约标识信息,所述合约标识信息用于标识执行所述第一交易的第一合约的合约名称。

【技术特征摘要】
1.一种键值生成方法,其特征在于,在区块链系统中部署的各合约的合约名称各不相同,所述方法包括:根据所述第一交易生成第一键值;所述第一键值包括合约标识信息,所述合约标识信息用于标识执行所述第一交易的第一合约的合约名称。2.根据权利要求1所述的方法,其特征在于,在所述根据所述第一交易生成第一键值之前,所述方法还包括:判断所述第一合约的合约名称是否与所述区块链系统中现有的合约的合约名称不同:若是,则部署所述第一合约成功。3.根据权利要求1或2所述的方法,其特征在于,所述合约标识信息包括所述第一合约的合约名称,所述根据所述第一交易生成第一键值包括:根据所述第一交易生成第二键值;在所述第二键值前添加所述第一合约的合约名称以生成所述第一键值。4.一种数据库防篡改...

【专利技术属性】
技术研发人员:何正军王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:浙江,33

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

1