有效保护用户隐私的比特币交易查询方法技术

技术编号:22218859 阅读:29 留言:0更新日期:2019-09-30 01:14
本发明专利技术公开了一种有效保护用户隐私的比特币交易查询方法,一方面,利用运行在全节点中的飞地作为代理执行交易查询,飞地将重组区块链数据结构,生成新交易文件数据库和对应的索引树结构,从而提高交易查询效率。另一方面,交易查询在飞地中进行,特权或非特权的软件都无法访问飞地,飞地采用Path ORAM操作访问加密存储在全节点中的索引树和交易文件数据库,从而保护对这些数据的访问模式,解决全节点对轻量级客户端交易查询的隐私威胁。

Bitcoin Trading Query Method to Protect Users'Privacy Effectively

【技术实现步骤摘要】
有效保护用户隐私的比特币交易查询方法
本专利技术涉及比特币区块链
,尤其涉及一种有效保护用户隐私的比特币交易查询方法。
技术介绍
在比特币系统中,全节点需要下载和保存完整的区块链,并因此能独立验证新的交易和区块的有效性。截止2019年6月,一个全节点需要超过200GB的硬盘空间来存储完整的区块链,而且这一存储空间需求还在随着时间不断增长。因而,在资源受限的移动设备上存储整个区块链是不可行的,比如手机、平板电脑等。为了解决这个问题,简易支付验证(SimplifiedPaymentVerification,简称SPV)方法被提出以实现轻量级客户端。通过该方法,轻量级客户端只需下载和验证全部区块头而非整个区块链。当轻量级客户端需要验证一个交易是否被包含在区块链的一个区块中,它从保存整个区块链的全节点处下载对应的SPV证明。一个SPV证明是Merkle树的一个分支,该分支将该交易绑定到所在区块的区块头。在SPV中,为了实现支付验证或者账户余额查询,轻量级客户端需要从全节点处下载交易以及交易的SPV证明。轻量级客户端将交易的哈希或者比特币地址作为关键词发送给全节点,然后全节点根据这些关键词在比特币区块链上搜索匹配关键词的交易,随后根据完整的区块信息生成匹配交易的SPV证明。最后,全节点将匹配交易关键词的交易及其SPV证明返回给轻量级客户端。然而,这种基于SPV的交易查询方式使得服务轻量级客户端的全节点知道哪些交易与该轻量级客户端相关。这很明显泄露了轻量级客户端的隐私。全节点可以根据这些交易获知轻量级客户端所拥有的比特币地址。此外,全节点还可以把这些比特币地址与轻量级客户端的IP地址关联起来。最后,结合一些公开的信息(如商店地址),全节点可以进一步推断轻量级客户端的购物习惯。目前减少基于SPV的交易查询中隐私泄露的方法主要有两类。第一类是采用Bloom过滤器来减轻轻量级客户端的隐私泄露。该技术允许轻量级客户端定义一个匿名集合来隐藏它的真实地址。轻量级客户端将比特币地址嵌入到Bloom过滤器中,然后发送给全节点。Bloom过滤器的误报率意味着通过过滤器的交易可能与轻量级客户端无关。当全节点同步到一个新生成的区块,它首先检查其中每个交易的输入或输出是否匹配Bloom过滤器。如果有匹配的输入或输出,全节点能把包含该输入或输出的交易发送给轻量级客户端。本质上,Bloom过滤器给出一个在隐私保护和通信开销之间做权衡的方法。这意味着实际使用中该方法不能同时实现轻量级客户端高的隐私保护效果和低的通信开销。另一类保护交易查询隐私的方法是采用匿名通信网络。轻量级客户端可以通过像Tor这样的匿名通信网络与全节点相连,然后发送查询请求来查询相应的交易。然而在2015年的IEEE安全与隐私研讨会(IEEESymposiumonSecurityandPrivacy)上,Biryukov和Pustogarov发表的《BitcoinoverTorisn’tagoodidea》表明比特币的黑名单机制使得采用Tor查询交易的轻量级客户端更易受到解匿名攻击。而且在2018年的IEEE安全与隐私研讨会,Henry等发表的《Blockchainaccessprivacy:Challengesanddirections》指出政府或组织机构经常阻塞Tor,这是因为Tor常被用于非法目的。这也是一些区块链系统不采用Tor的原因,比如Ripple区块链。最后,比特币节点数量远超过Tor的节点数量,因此Tor不能支持庞大的比特币网络。以英特尔SGX(SoftwareGuardExtensions)为代表的安全飞地(secureenclave)技术,为同时实现轻量级客户端交易查询的高强度隐私保护和低通信开销提供了有效方法。SGX提供了一种基于处理器硬件的可信执行环境,将应用程序执行环境隔离出来,形成安全飞地的抽象。安全飞地在初始化完成之后,处理器计算安全飞地内数据和代码的哈希值,该哈希值被称为安全飞地的度量,用于标识和区分安全飞地。SGX技术对安全飞地提供以下安全机制:1)隔离。SGX提供的隔离可以防止其他进程和特权代码(比如OS或管理程序)在安全飞地运行时读取或修改安全飞地的内存。安全飞地的安全边界只包含处理器和它自身。2)密封。SGX提供的密封允许安全飞地将需要长期存储的数据通过只有安全飞地知道的密钥加密后存储在安全飞地之外。为保证数据安全,安全飞地在读取这些加密数据时验证其完整性。3)认证。SGX提供的认证允许安全飞地发出可远程验证的断言声明。断言声明通常包括安全飞地的度量、安全飞地签发者的签名,以及用户自定义数据。经过验证的断言声明表明安全飞地按照预期安全地在支持SGX的平台上初始化并运行。而且在远程认证过程中,用户可以和安全飞地协商会话密钥,该密钥可用于实现一条用户与安全飞地间的安全信道。运行在全节点中的安全飞地可以充当轻量级客户端的可信查询代理。轻量级客户端将查询请求通过安全信道发送给安全飞地,安全飞地在全节点的区块链上执行交易搜索然后将结果返回给轻量级客户端。然而,单独使用安全飞地仍存在隐私泄露问题。由于安全飞地容量有限(截至2019年6月,安全飞地最大容量为128MB),区块链仍存储在不可信的全节点处。这种情况下,对区块链的访问模式仍然威胁到轻量级客户端的交易查询隐私。Matetic等在2019年USENIX安全大会(USENIXSecuritySymposium)上发表的《BITE:Bitcoinlightweightclientprivacyusingtrustedexecution》提出使用安全飞地保护轻量级客户端的隐私。他们提出安全飞地一块块地扫描区块链进行交易搜索来隐藏对区块链的访问模式,其隐藏效果与扫描的区块个数有关。然而,这意味着在飞地中执行交易搜索的输入/输出(I/O)开销与扫描区块的个数线性相关。
技术实现思路
本专利技术的目的是为轻量级客户端提供一种有效保护用户隐私的比特币交易查询方法,防止查询信息泄露给提供查询服务的全节点,并且提高了交易查询效率。本专利技术的目的是通过以下技术方案实现的:一种有效保护用户隐私的比特币交易查询方法,包括:由全节点创建安全飞地,由安全飞地读取全节点中存储的区块链,将区块链转换成访问模式不可见的交易文件数据库和交易索引树,并通过PathORAM技术实现对交易文件数据库和交易索引树的读写操作;轻量级客户端与安全飞地执行远程认证协议,在协议中二者实现密钥共享,之后轻量级客户端与安全飞地的所有通信都采用共享的密钥进行加密;轻量级客户端向安全飞地发送交易查询请求;安全飞地根据交易查询请求中携带的交易关键词类型决定需要搜索的交易索引树,并产生相应的响应消息反馈给轻量级客户端;轻量级客户端接收响应消息,如果其中包含相应交易文件,则根据SPV原理验证SPV证明是否有效。由上述本专利技术提供的技术方案可以看出,一方面,利用运行在全节点中的安全飞地作为代理,执行交易查询。安全飞地将重组区块链数据结构,生成新交易文件数据库和对应的交易索引树,从而提高交易查询效率。另一方面,交易查询在飞地中进行,特权或非特权的软件都无法访问飞地,飞地采用基于路径的访问模式不可见存储器(PathORAM)技术来访问加密存储在全节点中的交易本文档来自技高网
...

【技术保护点】
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

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

1