本说明书实施例属于区块链,尤其涉及一种以可验证方式获取区块链数据的方法、用户设备和服务器。
背景技术:
1、区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
2、去中心化金融(defi)、web 3.0和其他基于区块链的应用的兴起,激发了对链上数据分析的需求。随着各种区块链应用的快速发展,对跨多个链查询数据的需求也在不断增长,例如跨多个链的数据聚合和关联分析等。
技术实现思路
1、本发明的目的在于提供一种以可验证方式获取区块链数据的方案。
2、本说明书第一方面提供一种以可验证方式获取区块链数据的方法,包括:
3、用户设备向第一服务器发送数据获取请求;
4、所述第一服务器响应于所述数据获取请求,将第一数据、第一证明和第一证书发送给所述用户设备,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述第一证明从所述ads数据获取,用于证明所述第一数据的正确性,所述第一证书在可信执行环境tee内生成,包括与所述ads数据对应的验证数据和所述tee对所述验证数据的第一签名;
5、所述用户设备基于所述第一证明、所述第一证书和最近从区块链系统获取的区块头对所述第一数据进行验证,在验证通过的情况中,确定所述第一数据为请求获取的数据。
6、本说明书第二方面提供一种以可验证方式获取区块链数据的方法,由第一服务器执行,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述方法包括:
7、从用户设备接收数据获取请求;
8、响应于所述数据获取请求,将所述数据库中的第一数据、第一证明、和第一证书发送给所述用户设备,所述第一证明从所述ads数据获取,用于证明所述第一数据的正确性,所述第一证书在可信执行环境tee内生成,包括与所述ads数据对应的验证数据和所述tee对所述验证数据的第一签名。
9、本说明书第三方面提供一种以可验证方式获取区块链数据的方法,由用户设备执行,包括:
10、向第一服务器发送数据获取请求,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述读取请求用于请求所述数据库中的数据;
11、从所述第一服务器接收第一数据、第一证明和第一证书,所述第一证明从所述ads数据获取,用于证明所述第一数据的正确性,所述第一证书在可信执行环境tee内生成,包括与所述ads数据对应的验证数据和所述tee对所述验证数据的第一签名;
12、基于所述第一证明、所述第一证书和最近从区块链系统获取的区块头对所述第一数据进行验证,在验证通过的情况中,确定所述第一数据为请求获取的数据。
13、本说明书第四方面提供一种以可验证方式获取区块链数据的方法,由第二服务器中的tee执行,所述第二服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述方法包括:
14、从所述区块链系统接收第二区块,基于所述第二区块更新所述数据库;
15、从所述ads数据读取与所述数据库的更新数据对应的关联数据、及所述关联数据的第二证明数据,所述第二证明数据用于证明所述关联数据的正确性;
16、基于所述第二证明数据和在先生成的与所述ads数据对应的第一证书验证所述关联数据;在验证通过的情况下,基于所述更新数据和所述关联数据更新所述ads数据和所述第一证书。
17、本说明书第五方面提供一种第一服务器,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述第一服务器包括:
18、接收单元,用于从用户设备接收数据获取请求;
19、发送单元,用于响应于所述数据获取请求,将所述数据库中的第一数据、第一证明、和第一证书发送给所述用户设备,所述第一证明从所述ads数据获取,用于证明所述第一数据的正确性,所述第一证书在可信执行环境tee内生成,包括与所述ads数据对应的验证数据和所述tee对所述验证数据的第一签名。
20、本说明书第六方面提供一种用户设备,包括:
21、发送单元,用于向第一服务器发送数据获取请求,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述读取请求用于请求所述数据库中的数据;
22、接收单元,用于从所述第一服务器接收第一数据、第一证明和第一证书,所述第一证明从所述ads数据获取,用于证明所述第一数据的正确性,所述第一证书在可信执行环境tee内生成,包括与所述ads数据对应的验证数据和所述tee对所述验证数据的第一签名;
23、验证单元,用于基于所述第一证明、所述第一证书和最近从区块链系统接收的区块头对所述第一数据进行验证,在验证通过的情况中,确定所述第一数据为请求获取的数据。
24、本说明书第七方面提供一种第二服务器中的tee,所述第二服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述tee包括:
25、更新单元,用于从所述区块链系统接收第二区块,基于所述第二区块更新所述数据库;
26、读取单元,用于从所述ads数据读取与所述数据库的更新数据对应的关联数据、及所述关联数据的第二证明数据,所述第二证明数据用于证明所述关联数据的正确性;
27、所述更新单元还用于,基于所述第二证明数据和在先生成的与所述ads数据对应的第一证书验证所述关联数据;在验证通过的情况下,基于所述更新数据和所述关联数据更新所述ads数据和所述第一证书。
28、本说明书第八方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述第一方面至第四方面任一方面所述的方法。
29、本说明书第九方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述第一方面至第四方面任一方面所述的方法。
30、本说明书第十方面提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面至第四方面任一方面所述方法的步骤。
31、通过本实施例所述的方案,基于数据库中存储的数据生成可验证数据结构的数据,基于可验证数据结构数据生成数据证书,从而可高效的对数据库中存储的各个区块链系统的相关数据进行验证。
1.一种以可验证方式获取区块链数据的方法,包括:
2.根据权利要求1所述的方法,所述ads数据包括第一默克尔树,所述第一证明包括所述第一数据对应的所述第一默克尔树的路径数据,所述验证数据包括所述第一默克尔树的第一根哈希值、所述区块链系统的块高信息,
3.根据权利要求1或2所述的方法,所述第一证书由所述第一服务器从第二服务器接收,所述第二服务器包括所述tee,所述第二服务器中在所述tee的外部存储有所述数据库和所述ads数据,所述方法还包括:
4.根据权利要求3所述的方法,还包括:
5.根据权利要求3所述的方法,还包括:
6.根据权利要求5所述的方法,还包括:
7.根据权利要求1所述的方法,所述区块链系统包括第一区块链系统和第二区块链系统。
8.根据权利要求2所述的方法,所述数据获取请求中包括所述第一数据的第一标识,所述用户设备向第一服务器发送数据获取请求包括:
9.根据权利要求8所述的方法,还包括:
10.根据权利要求9所述的方法,所述用户设备本地缓存有默克尔子树,所述默克尔子树包括所述树节点哈希值,所述用户设备将所述树节点哈希值发送给所述第一服务器包括,所述用户设备将所述默克尔子树发送给所述第一服务器,
11.根据权利要求8所述的方法,还包括:
12.一种以可验证方式获取区块链数据的方法,由第一服务器执行,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述方法包括:
13.一种以可验证方式获取区块链数据的方法,由用户设备执行,包括:
14.一种以可验证方式获取区块链数据的方法,由第二服务器中的tee执行,所述第二服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述方法包括:
15.一种第一服务器,所述第一服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述第一服务器包括:
16.一种用户设备,包括:
17.一种第二服务器中的tee,所述第二服务器中包括数据库和可验证数据结构ads数据,所述数据库基于当前已经从区块链系统接收的区块生成,所述ads数据基于所述数据库包括的数据生成,所述tee包括:
