主页 > 苹果imtoken钱包安装 > LVQ:一种轻量级的可验证比特币交易查询方法

LVQ:一种轻量级的可验证比特币交易查询方法

苹果imtoken钱包安装 2023-10-11 05:08:48

作为比特币系统中去中心化、不可篡改、可追溯的账本,交易查询是必不可少的功能。 例如比特币查询,轻节点用户查询某个地址的余额或者某个地址的相关历史交易。 但是对于轻节点来说,交易数据的查询必须依赖全节点返回的数据。 显然,这也增加了恶意节点作恶的几率。 恶意节点可以通过向轻节点返回错误的数据来获得相应的利益。 为了保证查询结果的正确性和完整性,本文提出了一种轻量级、可验证的比特币交易查询方法。 首先通过构造Merkle分支生成存在性证明,并与查询结果一起返回,保证查询结果的正确性; 其次,通过布隆过滤器和排序的默克尔树构建不存在证明,并与查询结果一起返回,供轻节点用来验证查询结果的完整性。 为了减小查询结果的大小,减少查询结果网络传输的开销,本文进一步提出以默克尔树的形式合并多个布隆过滤器块,以减少不存在证明中布隆过滤器的数量,从而减小查询结果的大小,减少网络传输的开销,实现轻量级的查询方式。 本文通过安全性分析表明LVQ能够实现交易查询的正确性和完备性,实验结果也表明LVQ能够实现轻量级查询,有效降低查询结果的网络传输开销。 成果“LVQ: A Lightweight Verifiable Query Approach for Transaction History in Bitcoin”发表于ICDCS 2020(第40届IEEE分布式计算系统国际会议),是实验室分布式系统组在分布式计算领域的研究成果区块链。

论文链接:

背景 区块链以其去中心化、不可篡改、可追溯等特点受到越来越多的关注,而作为区块链技术的先驱——比特币也受到了广泛关注。 在比特币系统中,节点分为全节点和轻节点两种角色。 全节点存储了比特币系统中的所有交易数据,因此对节点的存储要求较高,但是在一些需要验证交易的场景中,由于全节点拥有所有的交易数据,因此可以不依赖在其他节点上验证数据,减少了恶意节点作恶的机会。 另一方面,并​​非所有节点都具有存储全节点数据的存储能力。 为了减轻节点的存储压力,比特币系统中的轻节点只需要在区块链中存储区块头的数据,但这带来的缺点是当轻节点需要查询某个地址的余额或者某个地址的历史交易,轻节点只能依赖全节点,全节点返回相应的数据给轻节点。 恶意节点作恶风险,恶意全节点可能返回错误或不完整的数据。 例如,当使用比特币收款的商家需要检查客户的余额是否大于支付的金额时比特币查询,商家在运行轻节点时需要从全节点查询客户的余额。 ,恶意节点可能会向商户返回错误的余额信息,导致商户利益受损。 因此,如何保证设计一个可验证的查询方法来验证全节点返回数据的可靠性是极其重要的。 为了实现轻节点查询结果的可靠性和可验证性,当全节点响应轻节点查询请求并返回交易数据时,轻节点需要从两个方面对查询结果进行验证,以保证查询的可靠性结果,一是查询结果的正确性,二是查询结果的完整性。 其中,正确性是指返回的交易数据真实存在于比特币账本中,交易数据正确且未被篡改。 完整性是指返回的交易数据是完整的,没有遗漏。 此外,在保证查询可验证性的前提下,为减少网络传输的开销,还应尽可能减小查询结果的大小,实现轻量级查询。

设计与实现 针对上述轻节点查询的可验证性问题,为实现查询的正确性和完整性以及查询结果的轻量性,本文使用存在性证明来保证查询结果的正确性,同时使用不存在证明来验证查询结果的有效性。 保证查询结果的完整性。 最后,通过将 Bloom 过滤器与 Merkle 树 (BMT) 相结合来实现轻量级查询。 对于返回的查询结果,通过构造存在性证明来保证结果的正确性,即证明返回的查询结果确实存在于区块链账本中。 如图1所示,对于每一个返回的交易数据,都需要返回该交易对应的Merkle分支,以表明该交易真实存在。 另外,对于查询出现在多个交易中的区块中的单个地址,这种情况下,在查询与地址相关的历史交易的场景下,需要返回中的地址对应的已排序默克尔树(SMT)分支块作为证据。 轻节点收到查询结果后,根据自身保存的区块头,结合返回的查询结果和存在证明,验证查询结果的正确性。

比特币每十分钟产生多少个比特币_马斯克叫停比特币买车 比特币跳水_比特币查询

图1展示了不存在的证明,即对于某个查询,如何证明某个区块中不存在满足查询条件的交易数据。 本文通过引入布隆过滤器构造不存在证明。 其基本思想是为每个区块中的所有地址构造一个布隆过滤器,然后将布隆过滤器的哈希值存储到区块头中,供轻节点验证查询结果使用。 当Bloom filter工作正常,说明区块中没有对应地址的交易,此时返回Bloom filter即可。 当布隆过滤器出现误报,即区块中没有对应的交易时,布隆过滤器会误报有对应的交易。 此时通过对应区块中对应地址的SMT分支构造不存在证明。 但是,上述方法需要为大部分没有目标地址交易的区块返回相应的布隆过滤器,这会大大增加查询结果的大小。 为了减少查询结果网络传输的开销,本文将多个区块的布隆过滤器以默克尔树的形式组合起来,保证在可验证的前提下实现轻量级的查询方式。 不存在证明可以通过返回少量布隆过滤器来实现。 如图2所示,第8个区块保存的BMT根哈希是前8个区块布隆过滤器合并后构建的BMT根哈希,所以前8个区块的查询结果不存在 可以通过BMT构建证明. 如图所示,只需要返回对应BMT分支中少量的布隆过滤器和哈希值 ,有效降低了查询结果的大小,减少了网络传输时间。 高架。

马斯克叫停比特币买车 比特币跳水_比特币每十分钟产生多少个比特币_比特币查询

图 2