CN110689349A - 一种区块链中的交易哈希值存储和搜索方法及装置 - Google Patents
一种区块链中的交易哈希值存储和搜索方法及装置 Download PDFInfo
- Publication number
- CN110689349A CN110689349A CN201910949539.4A CN201910949539A CN110689349A CN 110689349 A CN110689349 A CN 110689349A CN 201910949539 A CN201910949539 A CN 201910949539A CN 110689349 A CN110689349 A CN 110689349A
- Authority
- CN
- China
- Prior art keywords
- nth
- transaction
- index
- character string
- ciphertext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链中的交易哈希值存储和搜索方法及装置,其中方法为:客户端获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数;所述客户端获取所述索引参数对应的第N‑1状态字符串;所述客户端将所述第N‑1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据;所述客户端根据第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息;所述客户端使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。上述方法应用于金融科技(Fintech)时,上述方法中交易哈希值的存储更加安全,同时存储时保留了可搜索性。
Description
技术领域
本发明涉及金融科技(Fintech)领域和区块链(Blockchain)领域,尤其涉及一种区块链中的交易哈希值存储和搜索方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链(Blockchain)、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变。目前,金融科技的区块链领域中,常涉及到交易的搜索。每笔交易在执行完毕后,都会产生唯一标识该笔交易的交易哈希值。目前,搜索用户的交易日志的一般方式是根据用户的交易哈希值来搜索,因此用户的交易哈希值的存储安全至关重要。
现有技术中主要用两种方式存储交易哈希值,第一种是明文存储用户的交易哈希值,显然这种方式容易造成交易哈希值泄露;第二种是将用户的交易哈希值加密后,将交易哈希值存储为密文,但这样以来,便不能在密文上根据索引参数对交易哈希值进行搜索。因此,现有技术不能既满***易哈希值的存储安全性,又能按照索引参数搜索到相应的交易哈希值,这是一个亟待解决的问题。
发明内容
本申请实施例提供一种区块链中的交易哈希值存储和搜索方法及装置,解决了现有技术中不能既满***易哈希值的存储安全性,又能按照索引参数搜索到相应的交易哈希值的问题。
第一方面,本申请实施例提供一种区块链中的交易哈希值存储方法:客户端获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;N为正整数;所述客户端获取所述索引参数对应的第N-1状态字符串;所述第N-1状态字符串是针对第N-1次交易生成的;所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据;所述客户端生成第N状态字符串,并根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息;所述客户端使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。
上述方法中,客户端获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数对应的第N-1状态字符串后,再根据第N状态字符串和索引参数的搜索令牌,确定第N密钥和第N索引位置信息;并使用所述第N密钥将所述第N待加密数据加密为第N密文,由于第N-1状态字符串是针对第N-1次交易生成的,也就是说,对于每个N,第N密文都是需要第N-1状态字符串的参与,这种环环相扣的方式生成的明文保密性较高;另外,由于建立所述第N索引位置信息和所述第N密文的唯一映射关系,可以通过第N索引位置信息搜索到第N密文,因此,上述方法中交易哈希值的存储更加安全,同时存储时保留了可搜索性。
一种可选实施方式中,所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据,包括:所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据;所述客户端使用所述第N密钥将所述第N待加密数据加密为第N密文,包括:按照预设位运算,将所述第N待加密数据与所述第N密钥的位运算结果,作为所述第N密文。
上述方法中,所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据,并通过预设位运算得到第N密文,从而简单、高效的方法对第N待加密数据进行加密。
一种可选实施方式中,所述客户端根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息,包括:所述客户端将所述第N状态字符串和所述索引参数的搜索令牌按照第一预设哈希算法映射的结果,作为所述第N密钥;所述客户端将所述第N状态字符串和所述索引参数的搜索令牌按照第二预设哈希算法映射的结果,作为所述第N索引位置信息;所述第一哈希算法和所述第二哈希算法为不同的哈希算法。
上述方法中,客户端根据所述第N状态字符串和所述索引参数的搜索令牌,通过不同的第一哈希算法和第二哈希算法,分别确定第N密钥和第N索引位置信息,从而既与第N状态字符串和索引参数的搜索令牌建立了映射关系,又通过不同的哈希算法增强了保密性。
第二方面,本申请提供一种区块链中的交易哈希值搜索方法,包括:索引服务器获取来自客户端的索引参数的搜索令牌和第N状态字符串;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;N为正整数;所述第N状态字符串是用户在所述客户端上发起的第N次交易时生成的;所述索引服务器根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息;所述第N索引位置信息与第N密文唯一映射;所述第N密文是所述客户端对所述第N次交易的交易哈希值加密的密文;所述索引服务器根据所述第N索引位置信息,获取所述第N索引位置信息唯一映射的所述第N密文;所述索引服务器根据所述搜索令牌和所述第N状态字符串,生成第N密钥;所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据;所述索引服务器根据所述第N待加密数据,提取出所述第N次交易时的交易哈希值,使得完成所述第N次交易时的交易哈希值的搜索。
上述方式下,索引服务器获取来自客户端的索引参数的搜索令牌和第N状态字符串,并根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息,由于所述第N索引位置信息与第N密文唯一映射,因此可以根据第N索引位置信息搜索到第N密文,并通过搜索令牌和所述第N状态字符串生成第N密钥,再用第N密钥将所述第N密文解密为第N待加密数据,并提取出所述第N次交易时的交易哈希值,从而实现了对第N次交易时的交易哈希值的搜索。
一种可选实施方式中,所述索引服务器根据所述第N待加密数据,提取出所述第N-1状态字符串;所述索引服务器根据所述索引参数的搜索令牌和所述第N-1状态字符串,获取所述索引参数的第N-1索引位置信息;所述索引服务器根据所述第N-1索引位置信息,获取所述第N-1索引位置信息唯一映射的第N-1密文;所述索引服务器根据所述搜索令牌和所述第N-1状态字符串,将所述第N-1密文解密为第N-1待加密数据;所述索引服务器根据所述第N-1待加密数据,提取出第N-1次交易时的交易哈希值,使得完成所述第N-1次交易时的交易哈希值的搜索。
上述方式下,所述索引服务器根据所述第N待加密数据,提取出所述第N-1状态字符串,并获取所述索引参数的第N-1索引位置信息,获取所述第N-1索引位置信息唯一映射的第N-1密文,也就是说,索引服务器可以在对第N待加密数据解密后,再基于第N待加密数据获取第N-1密文,并提取出第N-1次交易时的交易哈希值,使得完成所述第N-1次交易时的交易哈希值的搜索。
一种可选实施方式中,所述第N密文是所述待加密数据与所述第N密钥按照预设位运算的位运算结果;所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据:所述索引服务器按照所述预设位运算,将所述第N密文与所述第N密钥的位运算结果,作为所述第N待加密数据。
上述方式下,由于所述第N密文是所述待加密数据与所述第N密钥按照预设位运算的位运算结果,所述索引服务器按照所述预设位运算再将第N密文解密,即将所述第N密文与所述第N密钥的位运算结果,作为所述第N待加密数据。
第三方面,本申请提供一种区块链中的交易哈希值存储装置,包括:获取模块,用于获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;获取所述索引参数对应的第N-1状态字符串;所述第N-1状态字符串是针对第N-1次交易生成的;N为正整数;加密模块,用于将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据;生成第N状态字符串,并根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息;使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。
一种可选实施方式中,所述加密模块具体用于:将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据;按照预设位运算,将所述第N待加密数据与所述第N密钥的位运算结果,作为所述第N密文。
一种可选实施方式中,所述加密模块具体用于:将所述第N状态字符串和所述索引参数的搜索令牌按照第一预设哈希算法映射的结果,作为所述第N密钥;将所述第N状态字符串和所述索引参数的搜索令牌按照第二预设哈希算法映射的结果,作为所述第N索引位置信息;所述第一哈希算法和所述第二哈希算法为不同的哈希算法。
上述第三方面及第三方面各个实施例的有益效果,可以参考上述第一方面及第一方面各个实施例的有益效果,这里不再赘述。
第四方面,本申请提供一种区块链中的交易哈希值存储装置,包括:获取模块,用于获取来自客户端的索引参数的搜索令牌和第N状态字符串;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;所述第N状态字符串是用户在所述客户端上发起的第N次交易时生成的;N为正整数;根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息;所述第N索引位置信息与第N密文唯一映射;所述第N密文是所述客户端对所述第N次交易的交易哈希值加密的密文;根据所述第N索引位置信息,获取所述第N索引位置信息唯一映射的所述第N密文;解密模块,用于根据所述搜索令牌和所述第N状态字符串,生成第N密钥;根据所述第N密钥将所述第N密文解密为第N待加密数据;根据所述第N待加密数据,提取出所述第N次交易时的交易哈希值,使得完成所述第N次交易时的交易哈希值的搜索。
一种可选实施方式中,所述获取模块还用于:根据所述第N待加密数据,提取出所述第N-1状态字符串;根据所述索引参数的搜索令牌和所述第N-1状态字符串,获取所述索引参数的第N-1索引位置信息;根据所述第N-1索引位置信息,获取所述第N-1索引位置信息唯一映射的第N-1密文;所述解密模块还用于:根据所述搜索令牌和所述第N-1状态字符串,将所述第N-1密文解密为第N-1待加密数据;根据所述第N-1待加密数据,提取出第N-1次交易时的交易哈希值,使得完成所述第N-1次交易时的交易哈希值的搜索。
一种可选实施方式中,所述第N密文是所述待加密数据与所述第N密钥按照预设位运算的位运算结果;所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据:所述索引服务器按照所述预设位运算,将所述第N密文与所述第N密钥的位运算结果,作为所述第N待加密数据。
上述第四方面及第四方面各个实施例的有益效果,可以参考上述第二方面及第二方面各个实施例的有益效果,这里不再赘述。
第五方面,本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例或者第二方面及第二方面各个实施例的方法。
第六方面,本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例或者第二方面及第二方面各个实施例的方法。
附图说明
图1为区块链的结构示意图;
图2为事件调用并生成日志的流程示意图;
图3为本申请实施例提供的一种交易哈希值的存储和搜索方法的过程示意图;
图4为本申请实施例提供的一种交易哈希值的存储方法的步骤流程示意图;
图5为本申请实施例提供的一种交易哈希值的搜索方法的步骤流程示意图;
图6为本申请实施例提供的一种交易哈希值的存储装置的结构示意图;
图7为本申请实施例提供的一种交易哈希值的搜索装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先解释本申请实施例中出现的名词。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希(Hash)值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。
智能合约:智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约具体形式为部署在区块链上,完成特定功能的代码。
日志:日志是以太坊定义的一种特殊的数据,日志与智能合约关联,是交易收据的一部分。包含某个特定日志的交易是唯一的,以太坊中的交易一般使用其交易哈希值表示。日志由客户端在执行交易时生成,可以在区块链存储中检索到它们。只要某个区块可以访问,其相关的日志就可以访问。但在合约中,并不能直接访问日志和事件数据(即便是创建日志的合约),一般只能通过交易哈希值来访问日志。日志包括主题(topic)和数据(data)两部分,其中topic部分用于快速查找,而data部分用于存储原始日志。
事件:事件是以太坊虚拟机在日志机制的基础上提供的一个接口,通过触发事件可以生成一条日志并将其写入到区块链中。在智能合约开发中,事件机制通常被用来记录用户的操作记录。如定义一个转账事件event transfer(address indexed from,addressindexed to,uint value),当该事件被触发时,参数from、to和value将会生成一条日志,该条日志将被写入到区块链。应用程序可以通过以太坊客户端的远程过程调用(remoteprocedure call,RPC)接口监听或调用事件,如图2所示。
事件的参数:在定义一个事件时,需要指定该事件的参数。参数分为两种,一种是被indexed修饰的,另外一种没有被indexed修饰。这两种参数的区别在于前者将被存储在日志的topic字段,而后者将会被存储在日志的data字段中。日志的topic字段可以用作搜索,而data字段不可以用作搜索。如定义一个转账事件event transfer(address indexedfrom,address indexed to,uint value),当该事件被触发时,参数from、to和value将会被写入到区块链的日志中。用户可以通过from或to过滤日志,如“搜索from等于地址A的所有记录(相当于搜索地址A的转出记录)”,而不能使用value进行过滤。
哈希函数:哈希函数又被称为散列函数,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。哈希函数可以被形式化地定义为:H:(0,1)x→(0,1)n。其中x为任意长度,而n为固定长度。
伪随机函数:伪随机函数是一种生成随机字符串的方式。和哈希函数不同,伪随机函数的输入中包括一个密钥k和消息m,k是被秘密保存的。伪随机函数的输出由k和m共同决定。伪随机函数可以形式化的定义为F:(0,1)λ×(0,1)x→(0,1)n。其中λ为密钥k的长度,x为消息m的长度,n为输出的长度。在本专利中,伪随机是利用哈希函数实现,即将密钥k和消息m拼接在一起作为函数的输入,F(k,m)=H(k||m)。在本申请实施例中,||表示连接,k||m表示将k与m连接的结果。
搜索令牌:搜索令牌是搜索关键词的一种变形。在搜索时,为了保证所搜索关键词的机密性,用户需要首先对关键词进行处理。生成搜索令牌的过程需要用户密钥的参与,以保证攻击者不能伪造。搜索令牌不会泄露原来的关键词的任何信息,在可搜索加密中,通常使用伪随机函数生成搜索关键词所对应的搜索令牌。如要搜索的关键词为w,用户密钥为k,则搜索令牌为F(k,w)。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,常涉及到交易的搜索。每笔交易在执行完毕后,都会产生唯一标识该笔交易的交易哈希值。目前,搜索用户的交易日志的一般方式是根据用户的交易哈希值来搜索,因此用户的交易哈希值的存储安全至关重要。
现有技术中主要用两种方式存储交易哈希值,第一种是明文存储用户的交易哈希值,显然这种方式容易造成交易哈希值泄露;第二种是将用户的交易哈希值加密后,将交易哈希值存储为密文,但这样以来,便不能在密文上根据索引参数对交易哈希值进行搜索。因此,现有技术不能既满***易哈希值的存储安全性,又能按照索引参数搜索到相应的交易哈希值,这种情况也会导致任务调度信号传输延迟过长。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
基于以上分析,本发明针对现有的事件机制,设计了一种区块链中支持交易哈希值的存储和搜索的方案。本方案确保在用户与区块链交互的整个过程中,传输的数据都是密文的。另外,用户可以同时对topic字段和data字段中的数据进行搜索。
本方案使用的一种具备前向安全性质的可搜索加密存储方案。如图3所示,每一个关键词都对应一个状态链。状态链中的一个节点就对应一个包含该关键词的文件,每一个节点都使用状态st唯一标识。在Update阶段,客户端首先产生出新的状态stc+1,然后根据关键词w、关键词w的搜索令牌tw、文件名ind、操作类型op(包括增加和删除两种情况)等信息生成新的节点,并将该节点添加到状态链中。在搜索时,只需要知道tw和stc+1,就可以得到最后一个节点,从而遍历得到该状态链上的所有的节点。
在本申请中,文件名对应于交易哈希值,关键词对应于用户定义的事件中被indexed修饰的参数。如定义一个转账事件event transfer(address indexed from,address indexed to,uint value)。想要搜索from=“0x1234..”的日志时,只需要搜索关键词w=“0x1234…”的所有交易哈希值,再从这些交易收据中取出对应的日志即可。另外,在本申请中,只有一种操作类型,即op一定为增加。
该方案主要包括三个主体:
区块链:任意一种具有事件机制的区块链,用于分布式存储数据。
用户:产生数据并以触发事件的形式写入到数据库中,检索满足某种条件的事件。需要注意的是,本发明中用户被要求有一定的存储能力,用于存储一些与关键词相关的信息。根据应用场景的不同,用户的存储形式也不同:如在客户机/服务器(Client/Server,C/S)架构的应用中可以使用服务器中;在浏览器/服务器结构(Browser/Server,B/S)架构的应用中可以使用浏览器储存在用户本地终端上的数据(cookie)等。
索引服务器:当用户的存储能力不足时,可以将索引位置信息外包给一个可信的服务器。在搜索时,首先由索引服务器搜索到满足条件的交易哈希值,之后用户根据交易哈希值查询到具体的日志。
在进行交易哈希值的存储或搜索之前,需要做***初始化。下面详细描述了***初始化的过程:
用户确定长期密钥k。
长期密钥本质上是一个二进制字符串。该密钥的长度与***参数λ有关,如λ=1024时,k为长度为1024的二进制串。该长期密钥需要用户妥善保管,将会被用作生成关键词对应的搜索令牌。
用户初始化本地存储结构。
举例来说,该存储结构是一个键-值(map)结构的数据结构,其中键(key)为关键词,值(value)为该关键词对应的最新状态。
下面结合图4和图5,详细介绍本申请实施例提供的一种交易哈希值的存储和搜索方法的步骤流程示意图。
本申请实施例提供的一种交易哈希值的存储方法的步骤如下:
步骤401:客户端获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数。
所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;N为正整数。
步骤402:所述客户端获取所述索引参数对应的第N-1状态字符串。
所述第N-1状态字符串是针对第N-1次交易生成的。
步骤403:所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据。
步骤404:所述客户端生成第N状态字符串,并根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息。
步骤405:所述客户端使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。
步骤401中,客户端指运行客户端前端软件的客户端主机。第N次交易中,N的计数是针对某一个事件及该事件的一个索引参数的具体参数值的。举例来说,第N次交易可以为转账事件在“from=A”的条件下的第N次触发对应的交易。当需要根据索引参数搜索交易日志时,可以为索引参数赋具体的值来搜索,举例来说,按照“form=A”搜索转账事件。
上述步骤401~步骤405中,加密为第N密文的一种可选实施方式如下:
所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据;按照预设位运算,将所述第N待加密数据与所述第N密钥的位运算结果,作为所述第N密文。举例来说,预设位运算为异或位运算。
步骤404的一种可选实施方式如下:
所述客户端将所述第N状态字符串和所述索引参数的搜索令牌按照第一预设哈希算法映射的结果,作为所述第N密钥;所述客户端将所述第N状态字符串和所述索引参数的搜索令牌按照第二预设哈希算法映射的结果,作为所述第N索引位置信息;所述第一哈希算法和所述第二哈希算法为不同的哈希算法。
相应地,本申请实施例提供的一种交易哈希值的搜索方法的步骤如下:
步骤501:索引服务器获取来自客户端的索引参数的搜索令牌和第N状态字符串。
所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;所述第N状态字符串是用户在所述客户端上发起的第N次交易时生成的;N为正整数。
步骤502:所述索引服务器根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息。
所述第N索引位置信息与第N密文唯一映射;所述第N密文是所述客户端对所述第N次交易的交易哈希值加密的密文。
步骤503:所述索引服务器根据所述第N索引位置信息,获取所述第N索引位置信息唯一映射的所述第N密文。
步骤504:所述索引服务器根据所述搜索令牌和所述第N状态字符串,生成第N密钥。
所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据。
步骤505:所述索引服务器根据所述第N待加密数据,提取出所述第N次交易时的交易哈希值,使得完成所述第N次交易时的交易哈希值的搜索。
需要说明的是,上述501~505中的搜索令牌、第N状态字符串、第N索引位置信息、第N密文、第N密钥和第N待加密数据。与步骤401~步骤404中的相对应。
步骤505之后,还可以继续搜索第N-1次交易时的交易哈希值,具体实施方式如下:
所述索引服务器根据所述第N待加密数据,提取出所述第N-1状态字符串;所述索引服务器根据所述索引参数的搜索令牌和所述第N-1状态字符串,获取所述索引参数的第N-1索引位置信息;所述索引服务器根据所述第N-1索引位置信息,获取所述第N-1索引位置信息唯一映射的第N-1密文;所述索引服务器根据所述搜索令牌和所述第N-1状态字符串,将所述第N-1密文解密为第N-1待加密数据;所述索引服务器根据所述第N-1待加密数据,提取出第N-1次交易时的交易哈希值,使得完成所述第N-1次交易时的交易哈希值的搜索。
步骤504中,一种可选实施方式为:所述第N密文是所述待加密数据与所述第N密钥按照预设位运算的位运算结果;步骤504可以按以下步骤执行:
所述索引服务器按照所述预设位运算,将所述第N密文与所述第N密钥的位运算结果,作为所述第N待加密数据。
下面通过具体例子,进一步说明本申请实施例提供的一种交易哈希值的存储和搜索方法。
当事件触发时,交易哈希值的存储过程如下。需要说明的是,以下过程是针对一个事件的一个索引参数的过程:
步骤401具体可以分为以下的第一步和第二步:
第一步:将该事件中以indexed修饰的参数作为关键词w。
具体来说,可以使用伪随机函数F,将长期密钥和关键词作为参数,计算其搜索令牌tw=F(k,w)。
例如在智能合约中定义了一个转账事件,event transfer(address indexedfrom,address indexed to,uint value)。当触发转账事件时,emit transfer("0x1111…ffffcccc","0x50…sd5adb20",100),即地址"0x1111…ffffcccc"向地址"0x50…sd5adb20"转账100eth。
由于参数from和to被indexed修饰,表示用户希望将来能够以这两个参数作为关键词进行搜索(如过滤出所有地址为"0x1111…FFFFCCCC"的转账记录)。对两个索引参数的每一个参数都执行上述第一步:用户生成两个搜索令牌tw=F(k,"0x1111…ffffcccc")和tw=F(k,"0x50…sd5adb20")。
第二步:用户获得交易的交易哈希值。
具体来说,在用户通过调用函数发起交易之后,会返回一个交易的交易哈希值,可以利用回调函数捕捉到该哈希值。该哈希值也可以手动计算出来,假设交易tx=[nonce,gasPrice,gas,to,value,data,v,r,s],其中nonce为随机数,gasPrice为当前gas的价格,gas为该交易可使用的最大gas数量限制,to为接收方地址(在本申请的场景中,可以是一个合约地址),value为交易发送的以太币数量,data为交易的数据,v,r和s可以代表椭圆曲线数字签名算法(elliptic curve digital signature,ECDSA)签名。在计算交易的哈希值时,首先对交易进行递归长度前缀(recursive length prefix,RLP)编码,然后对编码后的数据计算交易哈希值。举例来说,通过keccak256计算交易哈希值,即交易的哈希值简单表示为:hash(tx)=keccak256(rlp.encode(tx)),hash(tx)为2048比特的字符串。
第三步:用户检查本地存储中是否有关于w的记录,执行步骤402。
步骤402分两种情况:
第一种:如果没有关于w的记录,确定该索引参数是第一次出现,将预设的特殊符号⊥(代表该关键词第一次出现)作为第N-1状态字符串(图3中的stc)。
第二种:如果有关于w的记录,确定该索引参数不是第一次出现,则将随机生成的字符串作为第N-1状态字符串。
状态字符串的长度可以通过***参数λ设置,如λ=1024时,状态状态字符串是长度为1024的二进制串。
第四步:执行步骤403。
举例来说,将第N-1状态字符串与交易哈希值拼接得到第N待加密数据,即p=(⊥||hash(tx));或者将stc和交易的哈希值拼接得到第N待加密数据,即p=(stc||hash)。
第五步:执行步骤404~步骤405。
举例来说,u=H1(tw||stc+1),u为第N索引位置信息,stc+1为第N状态字符串,H1为第一哈希算法。
H1和H2必须是两个不同的哈希函数,如H1为SHA256哈希函数,而H2为MD5哈希函数。
第六步:用户将索引参数w对应的第N状态字符串stc+1存入用户的存储结构中,将(u,e)存储在索引服务器中。此时索引服务器的存储如图3所示,该图表示一个索引参数取一个具体参数值(如"0x1111…FFFFCCCC")的索引情况,其中每一个节点代表一个包含该参数值的日志。由于日志存储在交易的收据中,在本申请中每一个节点都保存一个该日志对应的交易哈希值hash(tx)。
交易哈希值的搜索过程如下。需要说明的是,以下过程是针对一个事件的一个索引参数的过程:
第一步:用户检查本地存储中是否有关于w的记录,如果没有,说明不存在关于该索引参数的日志,直接返回空。
第二步:如果有关于w的记录,则执行步骤501。
具体来说,取出某个状态字符串,如stc。特殊地,stc为w最新的状态字符串。利用长期密钥计算搜索令牌tw=F(k,w),其中F是伪随机函数。客户端将tw和stc提交给索引服务器;
第三步:执行步骤502~步骤503。
举例来说,索引服务器在收到(tw,stc)后,通过u=H1(tw||stc-1)获得第N索引位置信息。取出关于stc的记录密文e。
第四步:执行步骤504~步骤505。
对e进行解密,即H2(tw||stc)为第N密钥;p为第N待加密数据。其中p=(stc-1,hash(tx));hash(tx)即为满足条件的事件所生成的日志所在的交易的哈希值,将其存储在结果R中。
第五步:获取索引参数的参数值对应的日志。
索引服务器利用stc-1计算下一个位置u=H1(tw||stc-1),取出相对应的密文。如果有,则继续循环操作步骤三,并更新R,最后将搜索结果R返回,R就是所有满足条件的交易哈希值的集合。
用户在收到R之后,分别将R中的每个交易哈希值作为输入,使用相应的函数如(web3.eth.getTransactionReceipt)函数获得该交易的收据,进而获得具体的日志。
如图6,本申请提供一种区块链中的交易哈希值存储装置,包括:获取模块601,用于获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;获取所述索引参数对应的第N-1状态字符串;所述第N-1状态字符串是针对第N-1次交易生成的;N为正整数;加密模块602,用于将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据;生成第N状态字符串,并根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息;使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。
一种可选实施方式中,所述加密模块602具体用于:将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据;按照预设位运算,将所述第N待加密数据与所述第N密钥的位运算结果,作为所述第N密文。
一种可选实施方式中,所述加密模块602具体用于:将所述第N状态字符串和所述索引参数的搜索令牌按照第一预设哈希算法映射的结果,作为所述第N密钥;将所述第N状态字符串和所述索引参数的搜索令牌按照第二预设哈希算法映射的结果,作为所述第N索引位置信息;所述第一哈希算法和所述第二哈希算法为不同的哈希算法。
如图7,本申请提供一种区块链中的交易哈希值存储装置,包括:获取模块701,用于获取来自客户端的索引参数的搜索令牌和第N状态字符串;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;所述第N状态字符串是用户在所述客户端上发起的第N次交易时生成的;N为正整数;根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息;所述第N索引位置信息与第N密文唯一映射;所述第N密文是所述客户端对所述第N次交易的交易哈希值加密的密文;根据所述第N索引位置信息,获取所述第N索引位置信息唯一映射的所述第N密文;解密模块702,用于根据所述搜索令牌和所述第N状态字符串,生成第N密钥;根据所述第N密钥将所述第N密文解密为第N待加密数据;根据所述第N待加密数据,提取出所述第N次交易时的交易哈希值,使得完成所述第N次交易时的交易哈希值的搜索。
一种可选实施方式中,所述获取模块701还用于:根据所述第N待加密数据,提取出所述第N-1状态字符串;根据所述索引参数的搜索令牌和所述第N-1状态字符串,获取所述索引参数的第N-1索引位置信息;根据所述第N-1索引位置信息,获取所述第N-1索引位置信息唯一映射的第N-1密文;所述解密模块702还用于:根据所述搜索令牌和所述第N-1状态字符串,将所述第N-1密文解密为第N-1待加密数据;根据所述第N-1待加密数据,提取出第N-1次交易时的交易哈希值,使得完成所述第N-1次交易时的交易哈希值的搜索。
一种可选实施方式中,所述第N密文是所述待加密数据与所述第N密钥按照预设位运算的位运算结果;所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据:所述索引服务器按照所述预设位运算,将所述第N密文与所述第N密钥的位运算结果,作为所述第N待加密数据。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链中的交易哈希值存储或搜索方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链中的交易哈希值存储或搜索方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种区块链中的交易哈希值存储方法,其特征在于,包括:
客户端获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;N为正整数;
所述客户端获取所述索引参数对应的第N-1状态字符串;所述第N-1状态字符串是针对第N-1次交易生成的;
所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据;
所述客户端生成第N状态字符串,并根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息;
所述客户端使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。
2.如权利要求1所述的方法,其特征在于,
所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据,包括:
所述客户端将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据;
所述客户端使用所述第N密钥将所述第N待加密数据加密为第N密文,包括:
按照预设位运算,将所述第N待加密数据与所述第N密钥的位运算结果,作为所述第N密文。
3.如权利要求1或2所述的方法,其特征在于,所述客户端根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息,包括:
所述客户端将所述第N状态字符串和所述索引参数的搜索令牌按照第一预设哈希算法映射的结果,作为所述第N密钥;
所述客户端将所述第N状态字符串和所述索引参数的搜索令牌按照第二预设哈希算法映射的结果,作为所述第N索引位置信息;所述第一哈希算法和所述第二哈希算法为不同的哈希算法。
4.一种区块链中的交易哈希值搜索方法,其特征在于,包括:
索引服务器获取来自客户端的索引参数的搜索令牌和第N状态字符串;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;所述第N状态字符串是用户在所述客户端上发起的第N次交易时生成的;N为正整数;
所述索引服务器根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息;所述第N索引位置信息与第N密文唯一映射;所述第N密文是所述客户端对所述第N次交易的交易哈希值加密的密文;
所述索引服务器根据所述第N索引位置信息,获取所述第N索引位置信息唯一映射的所述第N密文;
所述索引服务器根据所述搜索令牌和所述第N状态字符串,生成第N密钥;所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据;
所述索引服务器根据所述第N待加密数据,提取出所述第N次交易时的交易哈希值,使得完成所述第N次交易时的交易哈希值的搜索。
5.如权利要求4所述的方法,其特征在于,还包括:
所述索引服务器根据所述第N待加密数据,提取出所述第N-1状态字符串;
所述索引服务器根据所述索引参数的搜索令牌和所述第N-1状态字符串,获取所述索引参数的第N-1索引位置信息;
所述索引服务器根据所述第N-1索引位置信息,获取所述第N-1索引位置信息唯一映射的第N-1密文;
所述索引服务器根据所述搜索令牌和所述第N-1状态字符串,将所述第N-1密文解密为第N-1待加密数据;
所述索引服务器根据所述第N-1待加密数据,提取出第N-1次交易时的交易哈希值,使得完成所述第N-1次交易时的交易哈希值的搜索。
6.如权利要求4或5所述的方法,其特征在于,所述第N密文是所述待加密数据与所述第N密钥按照预设位运算的位运算结果;所述索引服务器根据所述第N密钥将所述第N密文解密为第N待加密数据,包括:
所述索引服务器按照所述预设位运算,将所述第N密文与所述第N密钥的位运算结果,作为所述第N待加密数据。
7.一种区块链中的交易哈希值存储装置,其特征在于,包括:
获取模块,用于获取用户在所述客户端上发起的第N次交易的交易哈希值和所述第N次交易的索引参数;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;获取所述索引参数对应的第N-1状态字符串;所述第N-1状态字符串是针对第N-1次交易生成的;N为正整数;
加密模块,用于将所述第N-1状态字符串和所述第N次交易的交易哈希值作为第N待加密数据;生成第N状态字符串,并根据所述第N状态字符串和所述索引参数的搜索令牌确定第N密钥和第N索引位置信息;使用所述第N密钥将所述第N待加密数据加密为第N密文,并建立所述第N索引位置信息和所述第N密文的唯一映射关系。
8.如权利要求7所述的装置,其特征在于,所述加密模块具体用于:
将所述第N-1状态字符串和所述第N次交易的交易哈希值拼接后的字符串,作为所述第N待加密数据;按照预设位运算,将所述第N待加密数据与所述第N密钥的位运算结果,作为所述第N密文。
9.如权利要求7或8所述的装置,其特征在于,所述加密模块具体用于:
将所述第N状态字符串和所述索引参数的搜索令牌按照第一预设哈希算法映射的结果,作为所述第N密钥;将所述第N状态字符串和所述索引参数的搜索令牌按照第二预设哈希算法映射的结果,作为所述第N索引位置信息;所述第一哈希算法和所述第二哈希算法为不同的哈希算法。
10.一种区块链中的交易哈希值搜索装置,其特征在于,包括:
获取模块,用于获取来自客户端的索引参数的搜索令牌和第N状态字符串;所述索引参数是从交易的交易信息中确定出用于进行交易日志搜索的关键词;所述第N状态字符串是用户在所述客户端上发起的第N次交易时生成的;N为正整数;根据所述索引参数的搜索令牌和所述第N状态字符串,获取所述索引参数的第N索引位置信息;所述第N索引位置信息与第N密文唯一映射;所述第N密文是所述客户端对所述第N次交易的交易哈希值加密的密文;根据所述第N索引位置信息,获取所述第N索引位置信息唯一映射的所述第N密文;
解密模块,用于根据所述搜索令牌和所述第N状态字符串,生成第N密钥;根据所述第N密钥将所述第N密文解密为第N待加密数据;根据所述第N待加密数据,提取出所述第N次交易时的交易哈希值,使得完成所述第N次交易时的交易哈希值的搜索。
11.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至3或4至6中任意一项所述的方法被执行。
12.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至3中或4至6任意一项所述的方法被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910949539.4A CN110689349B (zh) | 2019-10-08 | 2019-10-08 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
PCT/CN2020/116236 WO2021068726A1 (zh) | 2019-10-08 | 2020-09-18 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910949539.4A CN110689349B (zh) | 2019-10-08 | 2019-10-08 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689349A true CN110689349A (zh) | 2020-01-14 |
CN110689349B CN110689349B (zh) | 2023-07-11 |
Family
ID=69111740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910949539.4A Active CN110689349B (zh) | 2019-10-08 | 2019-10-08 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110689349B (zh) |
WO (1) | WO2021068726A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526047A (zh) * | 2020-04-15 | 2020-08-11 | 杭州溪塔科技有限公司 | 一种基于区块链的消息队列设计方法及装置 |
WO2021068726A1 (zh) * | 2019-10-08 | 2021-04-15 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
CN112711648A (zh) * | 2020-12-23 | 2021-04-27 | 航天信息股份有限公司 | 一种数据库字符串密文存储方法、电子设备和介质 |
CN112765271A (zh) * | 2020-12-31 | 2021-05-07 | 杭州趣链科技有限公司 | 区块链交易索引的存储方法、装置、计算机设备及介质 |
CN114116367A (zh) * | 2020-08-25 | 2022-03-01 | 荣耀终端有限公司 | 一种生成日志的方法及电子设备 |
CN115225258A (zh) * | 2022-09-19 | 2022-10-21 | 中电科新型智慧城市研究院有限公司 | 一种基于区块链的跨域可信数据的安全管理方法及*** |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468571B (zh) * | 2021-07-15 | 2023-05-12 | 湖北央中巨石信息技术有限公司 | 基于区块链的溯源方法 |
CN114491613B (zh) * | 2021-11-11 | 2024-04-16 | 北京航空航天大学 | 高效可搜索的代理隐私集合求交方法及装置 |
CN114726865B (zh) * | 2022-03-29 | 2024-05-31 | 杭州安恒信息技术股份有限公司 | 数据质押方法、***、电子装置和存储介质 |
CN114710357B (zh) * | 2022-04-12 | 2023-07-21 | 河北大学 | 一种可编辑区块链中支持分块验证的动态可搜索加密方法 |
CN117077179B (zh) * | 2023-10-11 | 2024-01-02 | ***紫金(江苏)创新研究院有限公司 | 基于差分隐私排序的可搜索加密方法、装置、设备及介质 |
CN117574413B (zh) * | 2024-01-17 | 2024-04-05 | 杭州易靓好车互联网科技有限公司 | 一种车辆交易客户信息动态加密防护方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015055762A1 (en) * | 2013-10-18 | 2015-04-23 | Robert Bosch Gmbh | System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption |
WO2015108052A1 (ja) * | 2014-01-16 | 2015-07-23 | 株式会社日立ソリューションズ | 検索可能暗号処理システムおよび検索可能暗号処理方法 |
CN106610995A (zh) * | 2015-10-23 | 2017-05-03 | 华为技术有限公司 | 一种创建密文索引的方法、装置及*** |
US9946720B1 (en) * | 2015-12-04 | 2018-04-17 | Ionu Security, Inc. | Searching data files using a key map |
CN109218010A (zh) * | 2017-07-04 | 2019-01-15 | 百度在线网络技术(北京)有限公司 | 数据加密方法和装置、数据解密方法和装置 |
US20190042620A1 (en) * | 2017-08-01 | 2019-02-07 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
CN109815723A (zh) * | 2019-02-28 | 2019-05-28 | 东北大学 | 一种基于后缀树的可搜索加密***及方法 |
CN109936457A (zh) * | 2019-02-20 | 2019-06-25 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
EP3543890A1 (fr) * | 2018-03-22 | 2019-09-25 | Sagemcom Energy & Telecom SAS | Procédés et système de gestion de données permettant un contrôle temporel des données |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10848321B2 (en) * | 2017-11-03 | 2020-11-24 | Mastercard International Incorporated | Systems and methods for authenticating a user based on biometric and device data |
CN108573741A (zh) * | 2017-12-25 | 2018-09-25 | 北京金山云网络技术有限公司 | 业务数据记录方法、装置、设备和存储介质 |
CN108389059A (zh) * | 2018-02-26 | 2018-08-10 | 成都大学 | 基于权属的数字版权作品保护、交易和发行方法及*** |
CN110245489B (zh) * | 2019-05-20 | 2021-04-27 | 创新先进技术有限公司 | 基于明文日志的收据存储方法、节点和*** |
CN110689349B (zh) * | 2019-10-08 | 2023-07-11 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
-
2019
- 2019-10-08 CN CN201910949539.4A patent/CN110689349B/zh active Active
-
2020
- 2020-09-18 WO PCT/CN2020/116236 patent/WO2021068726A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015055762A1 (en) * | 2013-10-18 | 2015-04-23 | Robert Bosch Gmbh | System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption |
WO2015108052A1 (ja) * | 2014-01-16 | 2015-07-23 | 株式会社日立ソリューションズ | 検索可能暗号処理システムおよび検索可能暗号処理方法 |
CN106610995A (zh) * | 2015-10-23 | 2017-05-03 | 华为技术有限公司 | 一种创建密文索引的方法、装置及*** |
US9946720B1 (en) * | 2015-12-04 | 2018-04-17 | Ionu Security, Inc. | Searching data files using a key map |
CN109218010A (zh) * | 2017-07-04 | 2019-01-15 | 百度在线网络技术(北京)有限公司 | 数据加密方法和装置、数据解密方法和装置 |
US20190042620A1 (en) * | 2017-08-01 | 2019-02-07 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
EP3543890A1 (fr) * | 2018-03-22 | 2019-09-25 | Sagemcom Energy & Telecom SAS | Procédés et système de gestion de données permettant un contrôle temporel des données |
CN109936457A (zh) * | 2019-02-20 | 2019-06-25 | 深圳前海微众银行股份有限公司 | 区块链多方见证方法、装置、设备及计算机可读存储介质 |
CN109815723A (zh) * | 2019-02-28 | 2019-05-28 | 东北大学 | 一种基于后缀树的可搜索加密***及方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068726A1 (zh) * | 2019-10-08 | 2021-04-15 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
CN111526047A (zh) * | 2020-04-15 | 2020-08-11 | 杭州溪塔科技有限公司 | 一种基于区块链的消息队列设计方法及装置 |
CN111526047B (zh) * | 2020-04-15 | 2022-11-08 | 杭州溪塔科技有限公司 | 一种基于区块链的消息队列设计方法及装置 |
CN114116367A (zh) * | 2020-08-25 | 2022-03-01 | 荣耀终端有限公司 | 一种生成日志的方法及电子设备 |
CN112711648A (zh) * | 2020-12-23 | 2021-04-27 | 航天信息股份有限公司 | 一种数据库字符串密文存储方法、电子设备和介质 |
CN112765271A (zh) * | 2020-12-31 | 2021-05-07 | 杭州趣链科技有限公司 | 区块链交易索引的存储方法、装置、计算机设备及介质 |
CN115225258A (zh) * | 2022-09-19 | 2022-10-21 | 中电科新型智慧城市研究院有限公司 | 一种基于区块链的跨域可信数据的安全管理方法及*** |
CN115225258B (zh) * | 2022-09-19 | 2023-01-06 | 中电科新型智慧城市研究院有限公司 | 一种基于区块链的跨域可信数据的安全管理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
WO2021068726A1 (zh) | 2021-04-15 |
CN110689349B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
EP3669280B1 (en) | Shared blockchain data storage | |
US10880077B2 (en) | Processing blockchain data based on smart contract operations executed in a trusted execution environment | |
EP3673620B1 (en) | Shared blockchain data storage | |
EP3669281B1 (en) | Shared blockchain data storage | |
US10860710B2 (en) | Processing and storing blockchain data under a trusted execution environment | |
US8533489B2 (en) | Searchable symmetric encryption with dynamic updating | |
CN110881063B (zh) | 一种隐私数据的存储方法、装置、设备及介质 | |
US11108555B2 (en) | Performing map iterations in a blockchain-based system | |
CN112131227A (zh) | 一种基于联盟链的数据查询方法及装置 | |
EP3923546A1 (en) | Shared blockchain data storage based on error correction code | |
US11314885B2 (en) | Cryptographic data entry blockchain data structure | |
WO2020098819A2 (en) | Performing map iterations in a blockchain-based system | |
CN113169882A (zh) | 用于区块链的互操作性的***和方法 | |
US20190260715A1 (en) | Computer system, connection apparatus, and processing method using transaction | |
Peng et al. | LS-RQ: A lightweight and forward-secure range query on geographically encrypted data | |
CN111798236B (zh) | 交易数据加、解密方法、装置及设备 | |
CN117972747A (zh) | 基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |