一种基于以太坊与智能合约的数据存储系统、方法和装置制造方法及图纸

技术编号:33948869 阅读:19 留言:0更新日期:2022-06-29 21:58
本发明专利技术涉及区块链技术领域,公开了一种基于以太坊与智能合约的数据存储系统、方法和装置,其技术方案要点是包括:私有链,由以太坊节点搭建形成私有链,所述私有链对应的以太坊源码被设置修改,取消非货币交易性业务的交易成本;交互应用,用于连接私有链,以需要存储的数据发起交易并获取交易哈希值;智能合约,部署于所述私有链的可信任节点,用于存储交易哈希值,使用智能合约与以太坊交易两层不可篡改的保护机制,充分的保障数据的安全性。充分的保障数据的安全性。充分的保障数据的安全性。

【技术实现步骤摘要】
一种基于以太坊与智能合约的数据存储系统、方法和装置


[0001]本专利技术涉及区块链
,更具体地说,它涉及一种基于以太坊与智能合约的数据存储系统、方法和装置。

技术介绍

[0002]从计算机软件技术的角度来看,区块链是一种由众多节点参与的分布式数据库系统。区块链是去中心化的,所有加入到同一区块链网络的节点都会参与到系统的数据存储当中,而且节点彼此之间的数据将会是同步的。区块链内存储的信息是不可被篡改的,一旦数据写入区块链内,将不可被某一个节点擅自修改或者删除。区块链采用这样一种技术方案,以去中心化的方式由节点集体来维护一个可信任的数据库,对于其中的记录是否为真会由系统所有参与节点来共同认定。
[0003]区块链2.0基于原有的数字货币特点,在其之上加入可编程的智能合约,使得区块链技术可以运用到更为广泛的业务领域。以太坊是区块链2.0的代表,其目的并不是要创造某一具体的虚拟货币,而是致力于作为一种底层协议,在其之上提供图灵完备语言作为脚本执行。基于这一特点,用户可以在以太坊上创建货币以及包含高级智能合约的去中心化应用。智能合约就是由开发者所编写的一系列在以太坊虚拟机上面运行的代码,一旦被部署到区块上,合约将生效,会根据程序代码自动执行相应的规则逻辑。得益于智能合约,以太坊可以完成很多高级复杂的程序功能。
[0004]在当前主流的中心化数据存储系统,数据都存储在某些台特定的服务器中,此时如何保证服务器不被入侵,如何保证存储其中的数据不被篡改等问题不可避免地困扰着人们。并且假如服务器被入侵,数据被篡改,用户也难以发现自己的数据遭到了篡改,对于数据篡改的追踪溯源也更是困难。如果数据的安全性得不到保障,用户对所使用系统的信任感也会随之下降。

技术实现思路

[0005]本专利技术的目的是提供一种基于以太坊与智能合约的数据存储系统、方法和装置,使用智能合约与以太坊交易两层不可篡改的保护机制,充分的保障数据的安全性。
[0006]本专利技术的上述技术目的是通过以下技术方案得以实现的:一种基于以太坊与智能合约的数据存储系统,包括:
[0007]私有链,由以太坊节点搭建形成私有链,所述私有链对应的以太坊源码被设置修改,取消非货币交易性业务的交易成本;
[0008]交互应用,用于连接私有链,以需要存储的数据发起交易并获取交易哈希值;
[0009]智能合约,部署于所述私有链的可信任节点,用于存储交易哈希值。
[0010]作为本专利技术系统的一种优选技术方案,所述智能合约部署在所述私有链的初始节点。
[0011]作为本专利技术系统的一种优选技术方案,所述智能合约包括映射类型变量、地址类
型状态变量、构造函数、函数修饰符、修改映射类型变量函数、获取映射类型变量所存数据函数;
[0012]所述映射类型变量包括键值对类型成员变量,键值对类型成员变量的键为存储数据的序号,键值对类型成员变量的值为交易哈希值;
[0013]所述地址类型状态变量,用于保存合约创建者的地址;
[0014]所述构造函数,用于支持合约创建者创建所述智能合约,并上传合约创建者地址;
[0015]所述函数修饰符,作用于操作键值对成员变量的函数,使其仅可被合约创建者调用;
[0016]所述获取映射类型变量所存数据函数用于根据键获取对应键值对的值;
[0017]所述修改映射类型变量函数用于存储新的键值对、判断函数调用者的地址是否与合约创建者地址相同、用于修改映射类型变量所存数据。
[0018]作为本专利技术系统的一种优选技术方案,交互应用和私有链的连接方式为远程调用,采用Web3j框架在Java平台开发以太坊调用程序,交互应用通过开发得到的以太坊程序对私有链进行远程调用。
[0019]作为本专利技术系统的一种优选技术方案,交互应用对接有若干上层应用,所述交互应用用于响应所述上层应用的数据存储命令,从上层应用采集需要存储的数据并进行预处理,将预处理后的数据以交易的方式存储到私有链中;所述交互应用用于响应所述上层应用的数据读取命令,从私有链读取得到数据并进行反向处理,将反向处理的数据发送给所述上层应用。
[0020]作为本专利技术系统的一种优选技术方案,所述预处理为将初始格式的数据转化为字符串形式,所述反向处理为将字符串形式的数据转化为初始格式。
[0021]一种基于以太坊与智能合约的数据存储方法,包括如下步骤:
[0022]由以太坊节点搭建形成私有链;
[0023]在私有链的可信任节点部署智能合约,对私有链对应的以太坊源码进行修改,取消非货币交易性业务的交易成本;
[0024]利用交互应用连接私有链,以需要存储的数据发起交易并获取交易哈希值;
[0025]获取到交易哈希值后,通过智能合约保存交易哈希值。
[0026]作为本专利技术方法的一种优选技术方案,所述利用交互应用连接私有链,以需要存储的数据发起交易并获取交易哈希值的过程为:利用交互应用将需要存储的数据封装到一个交易当中,并选取两个可以信任的私有链节点,分别作为交易的发送方和接收方,构造形成一个交易,以远程调用的方式和私有链进行交互,将交易写入区块,获得交易产生的交易哈希值。
[0027]作为本专利技术方法的一种优选技术方案,在智能合约部署完成后,保存智能合约地址。
[0028]一种基于以太坊与智能合约的数据存储装置,包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
[0029]综上所述,本专利技术具有以下有益效果:(1)本专利技术的系统、方法和装置,基于区块链不可篡改、去中心化、公开透明、分布式存储的特点,将数据存储在区块链上。相比于中心化
数据存储系统,在防止数据遭到篡改方面有了显著的功能提升。
[0030](2)本专利技术的系统、方法和装置,首先由交互应用发起以太坊交易,把需要存储的数据存放在交易当中,并获取交易哈希值。然后以存储数据的序号为键,数据存储上链后生成的交易哈希值为值,通过合约部署节点把该键值对添加到智能合约中,达到保存交易哈希值的目的。修改映射类型变量函数设置为仅合约创建者可调用,可保证交易哈希值不被篡改。且根据区块链的特性,根据交易哈希值查询到交易中安全存储的数据,是不可被篡改的,则形成了包括智能合约与以太坊交易两层不可篡改的保护机制,充分的保障了数据的安全性。
[0031](3)本专利技术的系统、方法和装置,采用以太坊作为区块链的节点客户端,连接多个节点组成私有链,并修改其源码使得在私有链上部署合约、调用合约、发送交易等节点行为都无需支付交易手续费,使其更加适合在非交易性的业务场景使用。
附图说明
[0032]图1是本专利技术系统、方法的各个模块之间的交互关系示意图;
[0033]图2是本专利技术的方法流程图;
[0034]图3是本专利技术系统、方法的存储数据过程的时序图;
[0035]图4是本专利技术系统、方法的查询数据过程的时序图;
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于以太坊与智能合约的数据存储系统,其特征是:包括:私有链,由以太坊节点搭建形成私有链,所述私有链对应的以太坊源码被设置修改,取消非货币交易性业务的交易成本;交互应用,用于连接私有链,以需要存储的数据发起交易并获取交易哈希值;智能合约,部署于所述私有链的可信任节点,用于存储交易哈希值。2.根据权利要求1所述的一种基于以太坊与智能合约的数据存储系统,其特征是:所述智能合约部署在所述私有链的初始节点。3.根据权利要求2所述的一种基于以太坊与智能合约的数据存储方法,其特征是:所述智能合约包括映射类型变量、地址类型状态变量、构造函数、函数修饰符、修改映射类型变量函数、获取映射类型变量所存数据函数;所述映射类型变量包括键值对类型成员变量,键值对类型成员变量的键为存储数据的序号,键值对类型成员变量的值为交易哈希值;所述地址类型状态变量,用于保存合约创建者的地址;所述构造函数,用于支持合约创建者创建所述智能合约,并上传合约创建者地址;所述函数修饰符,作用于操作键值对成员变量的函数,使其仅可被合约创建者调用;所述获取映射类型变量所存数据函数用于根据键获取对应键值对的值;所述修改映射类型变量函数用于存储新的键值对、判断函数调用者的地址是否与合约创建者地址相同、用于修改映射类型变量所存数据。4.根据权利要求3所述的一种基于以太坊与智能合约的数据存储系统,其特征是:交互应用和私有链的连接方式为远程调用,采用Web3j框架在Java平台开发以太坊调用程序,交互应用通过开发得到的以太坊程序对私有链进行远程调用。5.根据权利要求4所述的一种基于以太坊与智能合约的数据存储系统,其特征是:交互应用对接有若干上层应用,所述交互应用用于...

【专利技术属性】
技术研发人员:张洁段楠荣国平周维杰
申请(专利权)人:南京铉盈网络科技有限公司
类型:发明
国别省市:

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

1