
1408
Journal of Software 软件学报 Vol.31, No.5, May 2020
1 区块链隐私及威胁
传统的区块链系统中通常采用假名机制和广播机制保护用户隐私
[1]
,其中,
• 假名机制指用户可以独立生成任意数量的区块链地址,不需要通过注册或者认证机制.同一用户生成
的不同地址可以单独使用,彼此间不存在任何关联关系.因此,仅通过区块链地址无法关联到用户的真
实身份,该机制能够隔离用户在区块链上不同操作的记录.
• 广播机制指区块链系统通过 P2P 网络传输数据,网络中采用洪水广播协议传播消息,接受节点无法判
断消息来源是消息的直接发起者还是转发者,从而保护消息真实发起者的身份.
假名机制和广播机制能够在一定程度上保护区块链用户的隐私安全,但在实际应用中,用户隐私仍面临各
类威胁,主要存在于记录数据的分布式账本和区块链去中心化网络中各节点的相关信息.为了保证去中心化系
统的正确性和安全性,区块链系统中的所有节点共同维护一致的分布式账本,记录区块链系统中的所有历史数
据,用于验证用户提交的新事务的合法性.为了所有节点都能验证账本的正确性,账本中所有数据保持公开,因
此账本数据能够被攻击者轻易获取,攻击者通过分析公开账本中的记录严重威胁用户隐私.此外,区块链系统采
用去中心化网路进行通信,在非许可链系统中,节点加入网络不需要任何身份认证,这在增强了扩展性的同时也
导致攻击者可以自由部署节点加入网络,监听网络中各节点隐私信息以及网络中通信信息.本节围绕这两部分
介绍需要保护的隐私内容及对应的威胁方式.
1.1 账本隐私及威胁
区块链账本记录了区块链系统中的各类事务数据,由于目前区块链系统主要应用于密码货币领域,因此区
块链账本主要记录交易数据.交易模型主要分为未花费交易输出(unspent transaction output,简称 UTXO)模型和
账户(account)模型两类
[34]
.部分攻击方式针对特定的交易模型,例如交易网络构造攻击和资产追踪攻击针对
UTXO 模型.账本隐私主要包含以下内容.
• 交易内容隐私:账本记录的单笔交易内容,包含交易发起方、交易接受方、交易金额以及附带数据等隐
私信息.
• 账户地址隐私:区块链地址与交易的关联关系,包含账户地址的交易记录、账户余额以及不同账户地址
间交易关联等隐私信息.
• 用户身份隐私:用户和区块链地址、交易的关联关系,含同一用户的交易记录、资金余额等隐私信息.
在区块链系统的实际应用中,用户常需要发起多输入交易,即存在多个输入资产的交易.该交易需要每个输
入地址的签名,可以由 1 个或多个用户生成.由于多个用户对同一交易进行签名的过程较为复杂,通常多输入交
易由同一用户生成.此外,在基于 UTXO 模型的交易系统中,未花费资产只能使用 1 次,因此当花费资产超过交易
所需资产时,用户将超出部分的资产转移到自己的另一账户地址中.用于接受超出部分资产的账户地址通常称
为找零地址.针对账本隐私包含的各类隐私,目前的主要攻击方式为账本分析攻击,通过分析区块链账本数据,
利用用户常见的交易规律,构建账户地址与交易之间以及用户与账户地址之间的一对多对应关系,威胁账本地
址隐私与用户身份隐私.攻击者根据区块链系统的设计与上述使用特征提出以下假设.
• 假设 1. 多输入交易的所有输入地址为同一用户所持有.
• 假设 2. 交易的找零地址和输入地址为同一用户所持有.
2013 年,Reid 等人
[7]
下载了比特币系统 2009 年 1 月 3 日~2011 年 7 月 12 日的全部账本数据,通过分析数据,
首先构建交易网络.交易网络中节点表示单次交易,节点间的有向边为交易间的输出-输入对,表示前一次交易
的输出作为后一次交易的输入,每条边同时记录了交易金额以及交易时间.
在交易网络(如图 1 所示)的基础上提取所有多输入交易,构建账户地址间的非完全网络,非完全网络中节点
表示地址,节点间有向边表示地址间交易的时间和金额.Reid 等人根据中本聪提到的多输入交易关联风险
[1]
提
出假设 1,即假设多输入交易的所有输入地址为同一用户所有.基于这一假设,在非完全网络的基础上,可以聚合
属于同一用户的所有地址,进而构建用户网络,用户网络中节点表示一个用户,节点间的有向边表示用户间资产
评论