基于区块链的数据存储方法技术

技术编号:25224411 阅读:9 留言:0更新日期:2020-08-11 23:13
本发明专利技术提供了一种基于区块链的数据存储方法,包括以下步骤:S1、按照多层嵌套的JOSN数据格式编写结构化的数据对象;S2、将第一JSON数据进行展平操作;S3、将第二JSON数据按照Key值的层级大小和字母大小进行排序;S4、使用以太坊的RLP编码方式对Key值和Value值进行编码;S5、将RLP(Key)和RLP(Value)作为叶子节点,构建出默克尔树,并计算出根哈希;S6、将所述根哈希作为第一Key,将所述第一JSON数据或者第二JSON数据作为第一Value存储在链下的K/V数据库中;S7、定义第一JSON数据的数据类型为第一类型,将所述根哈希和第一类型上传到区块链上。这种基于区块链的数据存储方法具有不可篡改性、隐私性、可验证性和高效性等优势。

【技术实现步骤摘要】
基于区块链的数据存储方法
本专利技术涉及区块链
,尤其涉及一种基于区块链的数据存储方法。
技术介绍
在区块链上存储数据需要尽量满足不可篡改性、隐私性、可验证性和高效性四个要求,由于数据类型不同,现在的数据存储方法很难满足上面四个要求。
技术实现思路
本专利技术要解决的技术问题是:为了解决现有技术中在区块链上存储数据存在的问题,本专利技术提供了一种基于区块链的数据存储方法来解决上述问题。本专利技术解决其技术问题所采用的技术方案是:一种基于区块链的数据存储方法,包括以下步骤:S1、按照多层嵌套的JOSN数据格式编写结构化的数据对象,得到第一JOSN数据;S2、将第一JSON数据进行展平操作,转化为单层的第二JSON数据;S3、将第二JSON数据按照Key值的层级大小和字母大小进行排序;S4、使用以太坊的RLP编码方式对Key值和Value值进行编码,得到RLP(Key)和RLP(Value);S5、按照排序,将RLP(Key)和RLP(Value)作为叶子节点,构建出默克尔树,并计算出根哈希;S6、将所述根哈希作为第一Key,将所述第一JSON数据或者第二JSON数据作为第一Value存储在链下的K/V数据库中;S7、定义第一JSON数据的数据类型为第一类型,将所述根哈希和第一类型上传到区块链上。作为优选,还包括以上步骤:构建非结构化数据的MerkleDAG文件,创建所述MerkleDAG文件的DAG哈希值;在所述步骤S1中,在第一JOSN数据定义DAG键值对,其中Key为MKDAG,Value为DAG哈希值;在步骤S5中,将所述DAG哈希值加入默克尔树,计算出所述根哈希;在步骤S4中,第一JOSN数据的数据类型为第二类型。作为优选,在所述步骤S3中,排序时,Key的层级越小越靠前,在同一层级中Key的字母越小越靠前。作为优选,在步骤S4中,对Value值进行编码前对Value值进行预处理:将数值类型的字符串转换为对应的数值;将数值类型转为对应的数值;true对应于1;false对应于0;null对应于0。作为优选,还包括以下步骤:建立用于验证的智能合约;数据提供者调用智能合约并将数据类型、MerkleProof和零知识proof传入智能合约中;智能合约验证数据类型和链上数据对象的数据类型是否一致;智能合约通过MerkleProof计算其根哈希,并验证计算结果和链上数据对象的根哈希是否一致;智能合约通过零知识proof验证第一JSON数据中对应的数据是否满足约束条件。本专利技术的有益效果是,这种基于区块链的数据存储方法具有不可篡改性、隐私性、可验证性和高效性等优势。附图说明下面结合附图和实施例对本专利技术进一步说明。图1是本专利技术的基于区块链的数据存储方法的一个实施例的结构示意图。图2是本专利技术的基于区块链的数据存储方法的一个实施例的默克尔树的举例视图。图3是本专利技术的基于区块链的数据存储方法的一个实施例的MerkleProof举例视图。图4是本专利技术的基于区块链的数据存储方法的一个实施例的零知识Proof举例视图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。在本专利技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。此外,在本专利技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本专利技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本专利技术的实施例所属
的技术人员所理解。如图1所示,本专利技术提供了一种基于区块链的数据存储方法,包括以下步骤:S1、按照多层嵌套的JOSN数据格式编写结构化的数据对象,得到第一JOSN数据;例如如下的JSON数据:S2、将第一JSON数据进行展平操作,转化为单层的第二JSON数据,例如将上述的第一JSON数据展平后得到:S3、将第二JSON数据按照Key值的层级大小和字母大小进行排序,Key的层级越小越靠前,在同一层级中Key的字母越小越靠前,例如将上述的第二JSON数据排序后得到:S4、使用以太坊的RLP编码方式对Key值进行编码,对Value值进行预处理:将数值类型的字符串转换为对应的数值;将数值类型转为对应的数值;true对应于1;false对应于0;null对应于0。然后使用以太坊的RLP编码方式对Value值进行编码,得到RLP(Key)和RLP(Value);S5、按照排序,将RLP(Key)和RLP(Value)作为叶子节点,构建出默克尔树,并计算出根哈希。此实例中默克尔树为二叉树,例如图2所示。如果在第一JSON数据这样的结构化数据中,要引入一个非结构化数据,构建非结构化数据的MerkleDAG文件,创建所述MerkleDAG文件的DAG哈希值;在步骤S1中,在第一JOSN数据定义DAG键值对,其中Key为MKDAG,Value为DAG哈希值,比如,在一个居民登记表中,需要引入一个对应的头像图片,将头像图片切片,切割成256KB大小的文件,之后循环调用(MerkleDAG.Add)方法构建文件MerkleDAG,将切片之后的文件进行sha-256运算,得到根哈希作为DAG哈希值:此时,应该将所述DAG哈希值加入默克尔树,计算出所述根哈希;S6、将所述根哈希作为第本文档来自技高网
...

【技术保护点】
1.一种基于区块链的数据存储方法,其特征在于,包括以下步骤:/nS1、按照多层嵌套的JOSN数据格式编写结构化的数据对象,得到第一JOSN数据;/nS2、将第一JSON数据进行展平操作,转化为单层的第二JSON数据;/nS3、将第二JSON数据按照Key值的层级大小和字母大小进行排序;/nS4、使用以太坊的RLP编码方式对Key值和Value值进行编码,得到RLP(Key)和RLP(Value);/nS5、按照排序,将RLP(Key)和RLP(Value)作为叶子节点,构建出默克尔树,并计算出根哈希;/nS6、将所述根哈希作为第一Key,将所述第一JSON数据或者第二JSON数据作为第一Value存储在链下的K/V数据库中;/nS7、定义第一JSON数据的数据类型为第一类型,将所述根哈希和第一类型上传到区块链上。/n

【技术特征摘要】
1.一种基于区块链的数据存储方法,其特征在于,包括以下步骤:
S1、按照多层嵌套的JOSN数据格式编写结构化的数据对象,得到第一JOSN数据;
S2、将第一JSON数据进行展平操作,转化为单层的第二JSON数据;
S3、将第二JSON数据按照Key值的层级大小和字母大小进行排序;
S4、使用以太坊的RLP编码方式对Key值和Value值进行编码,得到RLP(Key)和RLP(Value);
S5、按照排序,将RLP(Key)和RLP(Value)作为叶子节点,构建出默克尔树,并计算出根哈希;
S6、将所述根哈希作为第一Key,将所述第一JSON数据或者第二JSON数据作为第一Value存储在链下的K/V数据库中;
S7、定义第一JSON数据的数据类型为第一类型,将所述根哈希和第一类型上传到区块链上。


2.如权利要求1所述的基于区块链的数据存储方法,其特征在于,还包括以上步骤:
构建非结构化数据的MerkleDAG文件,创建所述MerkleDAG文件的DAG哈希值;
在所述步骤S1中,在第一JOSN数据定义DAG键值对,其中Key为MKDAG,Value为DAG哈希值;
在步骤S...

【专利技术属性】
技术研发人员:徐骏
申请(专利权)人:丝链常州控股有限公司
类型:发明
国别省市:江苏;32

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

1