【技术实现步骤摘要】
有效保护用户隐私的比特币交易查询方法
本专利技术涉及比特币区块链
,尤其涉及一种有效保护用户隐私的比特币交易查询方法。
技术介绍
在比特币系统中,全节点需要下载和保存完整的区块链,并因此能独立验证新的交易和区块的有效性。截止2019年6月,一个全节点需要超过200GB的硬盘空间来存储完整的区块链,而且这一存储空间需求还在随着时间不断增长。因而,在资源受限的移动设备上存储整个区块链是不可行的,比如手机、平板电脑等。为了解决这个问题,简易支付验证(SimplifiedPaymentVerification,简称SPV)方法被提出以实现轻量级客户端。通过该方法,轻量级客户端只需下载和验证全部区块头而非整个区块链。当轻量级客户端需要验证一个交易是否被包含在区块链的一个区块中,它从保存整个区块链的全节点处下载对应的SPV证明。一个SPV证明是Merkle树的一个分支,该分支将该交易绑定到所在区块的区块头。在SPV中,为了实现支付验证或者账户余额查询,轻量级客户端需要从全节点处下载交易以及交易的SPV证明。轻量级客户端将交易的哈希或者比特币地址作为关键词发送给全节点,然后全节点根据这些关键词在比特币区块链上搜索匹配关键词的交易,随后根据完整的区块信息生成匹配交易的SPV证明。最后,全节点将匹配交易关键词的交易及其SPV证明返回给轻量级客户端。然而,这种基于SPV的交易查询方式使得服务轻量级客户端的全节点知道哪些交易与该轻量级客户端相关。这很明显泄露了轻量级客户端的隐私。全节点可以根据这些交易获知轻量级客户端所拥有的比特币地址。此外,全节点还可以把这些比特币地址与 ...
【技术保护点】
1.一种有效保护用户隐私的比特币交易查询方法,其特征在于,包括:由全节点创建安全飞地,由安全飞地读取全节点中存储的区块链,将区块链转换成访问模式不可见的交易文件数据库和交易索引树,并通过Path ORAM技术实现对交易文件数据库和交易索引树的读写操作;轻量级客户端与安全飞地执行远程认证协议,在协议中二者实现密钥共享,之后轻量级客户端与安全飞地的所有通信都采用共享的密钥进行加密;轻量级客户端向安全飞地发送交易查询请求;安全飞地根据交易查询请求中携带的交易关键词类型决定需要搜索的交易索引树,并产生相应的响应消息反馈给轻量级客户端;轻量级客户端接收响应消息,如果其中包含相应交易文件,则根据SPV原理验证SPV证明是否有效。
【技术特征摘要】
1.一种有效保护用户隐私的比特币交易查询方法,其特征在于,包括:由全节点创建安全飞地,由安全飞地读取全节点中存储的区块链,将区块链转换成访问模式不可见的交易文件数据库和交易索引树,并通过PathORAM技术实现对交易文件数据库和交易索引树的读写操作;轻量级客户端与安全飞地执行远程认证协议,在协议中二者实现密钥共享,之后轻量级客户端与安全飞地的所有通信都采用共享的密钥进行加密;轻量级客户端向安全飞地发送交易查询请求;安全飞地根据交易查询请求中携带的交易关键词类型决定需要搜索的交易索引树,并产生相应的响应消息反馈给轻量级客户端;轻量级客户端接收响应消息,如果其中包含相应交易文件,则根据SPV原理验证SPV证明是否有效。2.根据权利要求1所述的一种有效保护用户隐私的比特币交易查询方法,其特征在于,该方法还包括:预先进行区块链同步的步骤:全节点连接到比特币P2P网络并同步整个区块链;轻量级客户端连接到比特币P2P网路,并同步所有区块头。3.根据权利要求1所述的一种有效保护用户隐私的比特币交易查询方法,其特征在于,所述由安全飞地读取全节点中存储的区块链,将区块链转换成访问模式不可见的交易文件数据库和交易索引树,并通过PathORAM技术实现对交易文件数据库和交易索引树的读写操作包括:安全飞地进行数据结构的初始化;通过初始化生成两个访问模式不可见的数据结构:交易文件数据库和交易索引树;安全飞地能够为不同类型交易关键词分别生成一个交易索引树;交易关键词以前缀树的形式组织,并将前缀树运行PathORAM写入交易索引树中;安全飞地从全节点读取区块,并验证区块的有效性;验证通过后,安全飞地根据区块中的交易生成Merkle树,并为每个交易生成其SPV证明;然后,将交易、交易的SPV证明、区块高度以及区块哈希放在一起形成一个交易文件,并生成一个临时的文件编号;安全飞地计算交易的哈希作为交易哈希关键词,然后安全飞地扫描交易的每个输入脚本和输出脚本提取公钥哈希关键词;提取公钥哈希关键词过程中,输入输出脚本中的公钥将转换成公钥哈希,脚本哈希也被归类为公钥哈希中;随后,安全飞地生成<TxH,TxFID>或<(PKH1,PKH2,…,PKHm),TxFID>这样的表项,其中TxH是交易哈希,TxFID是交易文件编号,PKHi是交易中包含的第i个公钥哈希;安全飞地随机读取交易文件数据库中的一条路径,然后安全飞地将交易文件写入相应路径中的某个节点并记录该交易文件的位置图;随后,安全飞地将<TxH,TxFID>或<(PKH1,PKH2,…,PKHm),TxFID>中的交易文件编号TxFID替换成相应位置图;安全飞地根据保存的根节点位置图读取前缀树的根节点;根据交易哈希的第一个字符决定读取哪个孩子节点;每读取一个前缀树节点,安全飞地判断其是否是叶子节点,如果是则将<交易哈希,位置图>存储在相应叶子节点中,如果叶子节点已经存储足够的<交易哈希,位置图>,安全飞地将相应叶子节点分裂成n个孩子节点,并将<交易哈希,位置图>按照交易哈希的下一个字符分别存储在对应的孩子节点中;如果不是其叶子节点,安全飞地利用交易哈希的下一个字符判断读取哪个孩子节点;最后,安全飞地将前缀树的叶子节点写入交易索引树中,随后更新父亲节点中相应叶子节点的位置图;继续以上过程直到将前缀树的根节点也写入交易索引树,根节点的位置图仍将存储在安全飞地中。4.根据权利要求3所述的一种有效保护用户隐私的比特币交易查询方法,其特征在于,所述轻量级客户端向安全飞地发送交易查询请求中包括:查询交易的关键词以及查询的起始块;交易关键词为交易哈希或比特币地址;查询的起始块表明轻量...
【专利技术属性】
技术研发人员:张驰,牛玉坤,魏凌波,李旭东,张勇东,
申请(专利权)人:中国科学技术大学,
类型:发明
国别省市:安徽,34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。