
技术摘要:
本发明涉及比特币区块链技术领域,尤其涉及一种可变因子调节的区块链轻量级节点隐私保护方法,该方法包括:在区块链轻量级节点初始化布隆过滤器参数,设定隐私度;根据初始化参数构造布隆过滤器,计算比特位数、哈希函数个数和可变因子值;插入查询地址,对布隆过滤器 全部
背景技术:
区块链技术通过运用数据加密、时间戳、分布式共识和智能合约等手段, 在节点 无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作。交易记 录由所有节点共同维护。 随着交易的增加,区块链节点存储完整账本信息需要的磁盘空间也逐渐增大,例 如,截止到2020年3月,比特币账本已超过266GB,同时,随着区块链使用规模的增长,验证网 络中广播的区块和交易的正确性,也给节点带来了相当大的开销。当用户使用资源受限的 设备,如移动终端、智能手机、传感器、嵌入式系统等时,完整下载账本几乎不可能完成。 通过简化的支付验证(SPV,Simplified Payment Verification)的方式可以使节 点在不必存储完整区块链的情况下进行工作。这种类型的节点被称为SPV节点或轻量级节 点。轻量级节点只需下载区块头,而不用下载包含在每个区块中的交易信息。由此产生的不 含交易信息的区块链,大小只有完整区块链的1/1000。简易支付验证是通过参考交易在区 块链中的深度,而不是高度,来验证它们。一个轻量级节点会验证所有区块的链(但不是所 有的交易),并且把区块链和与自己有关的交易链接起来。通过请求merkle路径证明以及验 证区块链中的工作量证明,来证实交易的存在性。 轻量级节点在与全节点的连接上设置过滤器,用以过滤从全节点发来的区块和交 易数据流。由于SPV节点需要读取特定交易从而选择性地验证交易,对特定数据的请求可能 无意中透露了钱包里的地址信息,因而产生隐私泄露风险。 布隆过滤器(Bloom Filters)允许轻量级节点通过使用模糊过滤机制接收交易的 一个子集,无需精确地泄露他们感兴趣的地址。布隆过滤器通过一个由N个二进制数字(bit 字段)的可变长度数组以及可变数量的M个哈希函数实现的。这些哈希函数的输出值始终在 1和N之间,该数值与二进制位数组相对应。布隆过滤器数组里的每一个数的初始值为零。地 址被加到布隆过滤器中之前,会依次通过每一个哈希函数运算一次。该输入经第一个哈希 函数运算后得到了一个在1和N之间的数,它在该数组(编号依次为1至N)中所对应的位被置 为1,从而把哈希函数的输出记录下来。接着再进行下一个哈希函数的运算,把另外一位置 为1,以此类推。 布隆过滤器可以判断一个元素可能在集合中,不会出现漏报,但可能会有误报。而 且随着插入的数据越多,误报的概率也越大。正是由于存在一定的误报率,布隆过滤器的使 用使得攻击者无法直接获取用户钱包的地址信息,因而在一定程度上保护了用户隐私。然 而,当布隆过滤器容量固定,且地址数较少时,攻击者如果能够收集足够的信息,仍有很高 的概率猜测出轻量级客户端的钱包中的地址,造成用户隐私信息的泄露。 3 CN 111581669 A 说 明 书 2/4 页
技术实现要素:
为了解决区块链轻量级节点从全节点获取交易数据时引发的隐私泄露风险的问 题,本发明提供一种可变因子调节的区块链轻量级节点隐私保护方法,通过该方法构造的 布隆过滤器,能够在地址数偏少时仍保持一定的误报率,大幅降低攻击者的猜测成功的概 率,从而保护用户隐私信息。 为了达到上述目的,本发明所采用的技术方案是:一种可变因子调节的区块链轻 量级节点隐私保护方法,包含以下步骤: 步骤S1、初始化参数,在轻量级客户端上设置布隆过滤器的容量m、目标误报率Pt和隐 私度P; 步骤S2、构建布隆过滤器,根据初始化参数,计算布隆过滤器的比特位数n、哈希函数个 数k和可变因子值α; 步骤S3、插入查询地址,将需要查询的地址插入布隆过滤器,依次计算地址元素的k个 哈希地址,并将布隆过滤器对应的k个位置置1; 步骤S4、隐私保护因子扰动,根据步骤S2得到的可变因子值α,将步骤S3中布隆过滤器 中置0的比特位随机选择置1; 步骤S5、查询地址相关交易,将布隆过滤器发送至区块链全节点,区块链全节点计算待 查交易中地址对应的k个哈希地址,核对布隆过滤器向量的k个对应位置,如果全部对应位 均为1,则将其放于查询结果集合中,查询结束后将结果集合返回轻量级节点。 进一步的,所述的步骤S1,初始化参数的设置方法包括但不仅限于用户自行设定 和由轻量级客户端根据自身资源情况自动生成。 进一步的,所述的步骤S2具体包括以下步骤: S201、根据步骤S1所设定的容量m和目标误报率Pt计算布隆过滤器的比特位数n; S202、根据步骤S1所设定的容量m和S201得到的布隆过滤器的比特位数n,计算布隆过 滤器的哈希函数个数k; S203、根据步骤S1所设定的容量m、目标误报率Pt和隐私度P计算可变因子值α。 进一步的,所述的步骤S3具体包括以下步骤: S301、从需要查询的地址集合中,选取一个查询地址,依次计算地址元素的k个哈希地 址; S302、根据得到的k个哈希地址,将布隆过滤器对应位置置1; S303、重复上述两步,直到所有需要查询的地址插入完毕。 进一步的,所述的步骤S5具体包括以下步骤: S501、区块链全节点从待查交易中选取一个交易,依次计算该交易中地址的k个哈希地 址; S502、将计算出的k个哈希地址和布隆过滤器的对应位比较,如果有任意哈希地址的对 应位为0,则跳转至步骤S504,否则跳转至步骤S503; S503、将待查交易放入查询结果集合中; S504、重复以上步骤,直到所有待查交易检查完毕。 与现有技术相比,本发明的有益效果是:本发明所构造的布隆过滤器,能够在地址 数偏少时仍保持一定的误报率,大幅降低攻击者的猜测成功的概率,从而保护用户隐私信息。 4 CN 111581669 A 说 明 书 3/4 页 附图说明 图1是基于布隆过滤器的区块链轻量级节点隐私保护模型图; 图2是本发明一种可变因子调节的区块链轻量级节点隐私保护方法的流程示意图; 图3是本发明实施例中可变因子调节的区块链轻量级节点隐私保护方法的插入查询地 址示意图; 图4是本发明实施例可变因子调节的区块链轻量级节点隐私保护方法的隐私保护因子 扰动示意图; 图5是本发明实施例可变因子调节的区块链轻量级节点隐私保护方法与未加保护方法 在隐私保护性能方面的对比图。