[发明专利]一种数据存储方法、装置及设备在审
申请号: | 201910473001.0 | 申请日: | 2019-05-31 |
公开(公告)号: | CN110245518A | 公开(公告)日: | 2019-09-17 |
发明(设计)人: | 李亿泽;杨新颖;张渊;俞本权;闫文远 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 陈冲 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 装置及设备 数据存储 可信执行环境 数据记录存储 数据记录 应用服务 用户数据 中心化 块链 账本 篡改 | ||
1.一种数据存储方法,应用于包括应用服务端和数据库服务端的系统中,所述方法包括:
应用服务端,获取携带用户标识的第一数据记录;
应用服务端,根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;
应用服务端,发送所述第二数据记录至数据库服务端;
数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;
数据库服务端,当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
2.如权利要求1所述的方法,数据库服务端,在确定待写入数据块中的各第二数据记录之前,所述方法还包括:
根据用户标识确定对应的用户公钥,采用所述用户公钥对第二数据记录进行验证。
3.如权利要求1所述的方法,所述预设的成块条件包括:
待存储的第二数据记录数量达到数量阈值;或者,
距离上一次成块时刻的时间间隔达到时间阈值。
4.如权利要求1所述的方法,所述方法还包括:
数据库服务端返回所述第二数据记录的哈希值至应用服务端;
应用服务端转发第二数据记录的哈希值至所述用户标识所对应的第一客户端。
5.如权利要求1所述的方法,所述方法还包括:
应用服务端,接收第二客户端所发送的包含第二数据记录的哈希值的查询请求,并转发所述查询请求至数据库服务端;
数据库服务端,根据所述第二数据记录的哈希值查询得到对应的第二数据记录,并返回所述数据记录至应用服务端;
应用服务端转发所述查询得到的第二数据记录至所述第二客户端,以便所述第二客户端采用第一客户端的公钥对所述第二数据记录进行解密验证。
6.如权利要求1所述的方法,所述可信执行环境包括Intel SGX或AMD SEV或ARMTrustzone。
7.一种数据存储系统,包括应用服务端和数据库服务端,在所述系统中,
应用服务端,获取携带用户标识的第一数据记录;根据用户标识获取对应的用户私钥,在可信执行环境中执行预设的签名代码,生成包含用户数字签名的第二数据记录,其中,所述签名代码用于根据用户私钥对所述第一数据记录进行数字签名;发送所述第二数据记录至数据库服务端;
数据库服务端,接收所述第二数据记录,确定所述第二数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各第二数据记录,生成包含数据块的哈希值和各第二数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的第二数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各第二数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
8.如权利要求7所述的系统,数据库服务端还用于,根据用户标识确定对应的用户公钥,采用所述用户公钥对第二数据记录进行验证。
9.如权利要求7所述的系统,在数据库服务端中,所述预设的成块条件包括:
待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910473001.0/1.html,转载请声明来源钻瓜专利网。