区块链隐私保护研究(一)

1、区块链技术
通过分析区块链技术的本质特征和目前的发展趋势,我们将区块链技术的架构分为3个层次,如下图所示:
在这里插入图片描述
(1)网络层
网络层的核心任务是确保区块链节点之间可以通过P2P网络进行有效通信.主要内容包括区块链网络的组网方式和节点之间的通信机制。
区块链网络采用P2P组网技术,具有去中心、动态变化的特点.网络中的节点是地理位置分散但是关系平等的服务器,不存在中心节点,任何节点可以自由加入或者退出网络.目前规模最大的区块链网络是比特币网络.比特币网络建立在公共互联网
之上,节点来自全球各地,每天对外提供服务的节点数量平均为5400个,总体节点数量(包括不对外提供服务的节点)估计为10万个左右.
区块链节点之间的通信类型主要分为2种:
①为了维持节点与区块链网络之间的连接而进行的通信,通常包括索取其他节点的地址信息和广播自己的地址信息(地址信息是指TCP/IP中的IP地址和端口号).节点新加入区块链网络时,首先读取硬编码在客户端程序中的种子地址并向这些种子节点索取其邻居节点地址,然后通过这些地址继续搜索更多的地址信息并建立连接,直到节点的邻居节点的数量达到稳定值.此后,节点会定期通过ping等方式验证邻居节点的可达性,并使用新的节点替代不可达节点.此外,为了保证新节点的信息被更多节点接收,节点将定期向自己的邻居节点广播自己的地址信息.
②为了完成上层业务而进行的通信,通常包括转发交易信息和同步区块信息(交易和区块是区块链中的数据结构,将在交易层介绍).节点转发交易信息时采用中继转发的模式.始发节点首先将交易转发给邻居节点,邻居节点收到交易后再转发给自己的邻居节点,以此类推,逐渐传遍整个网络.同步区块信息采用请求响应的模式.节点首先向邻居节点发送自己的区块高度(类似于ID),如果小于邻居节点的高度则索取自己欠缺的区块,如果大于邻居节点的高度则邻居节点将反向索取区块信息.所有
节点都不断地和邻居节点交换区块信息,从而保证整个网络中所有节点的区块信息保持同步.
(2)交易层
交易层实现区块链的核心业务,即在2个“地址”之间进行可靠的、具有公信力的数据传递.主要内容包括:地址格式、交易格式、智能合约、全局账本、共识机制和激励机制.
区块链中的“地址”,类似于银行卡账号,是用户参与区块链业务时使用的假名.通常是在用户的控制下利用公钥加密算法(例如ECC)生成.其中生成的公钥信息将用于交易的输入地址或者输出地址,私钥信息由用户自己保存,用于对交易签名。
区块链中的“交易”记录了用户之间数据交互的过程.通常包括输入地址、输出地址、交易内容等信息.交易内容在数字货币应用中主要包括交易的金额,在其他应用中可能代表一个字符串或者一个证书ID.例如在基于区块链技术的数据存储应用STORJ中,交易的内容主要包括存储数据的Hash值。
下图是一个简化的比特币交易格式:
在这里插入图片描述
①txhash:每个比特币交易都有一个交易Hash,此Hash值是针对整个交易内容计算得到,唯一指向此条交易.因此,在比特币中交易Hash通常作为交易的ID.
交易的正文主要包括2部分:输入地址信息和输出地址信息
②输入地址信息:pre-txhash代表输入资金的来源;index指定交易中对应的输出地址;sign(签名信息)证明用户对这笔资金的所有权。
③输出地址信息:account代表输出地址;amount代表输出金额。输出地址是由用户自行生成的公钥信息经过字符变换得到的一串字符串.输出地址经过反向变换后可以得到公钥的Hash,用于验证签名。
下图是比特币交易的一个实例:
在这里插入图片描述
其中,编号为“10002”的交易中第“0”个输入地址中的来源交易Hash是“3306ff5a64d900937ad1429466fd2c8f”,同时索引为“1”.因此,可以确定此输入地址的真实账户是编号“10001”交易中第“1”个输出地址“1A1RmbbVoL4pnMZf”。
(3)应用层
应用层提供针对各种应用场景的程序和接口,用户通过部署在应用层的各种应用程序进行交互,而不用考虑区块链底层技术细节.目前典型的区块链应用包括数字货币应用、数据存证应用、能源应用等。
2、区块链隐私定义
通过分析区块链技术的特点,本文将区块链中的隐私分为2类:
(1)身份隐私
身份隐私是指用户身份信息和区块链地址之间的关联关系。
区块链地址是用户在区块链系统中使用的假名,通常作为交易的输入账号或者输出账号。区块链系统中地址是由用户自行生成,与用户身份信息无关,用户创建和使用地址不需要第三方参与。因此,相对于传统的账号(例如银行卡号),区块链地址具有较好的匿名性。但是,用户在使用区块链地址参与区块链业务时,有可能泄露一些敏感信息,例如区块链交易在网络层的传播轨迹,这些信息有可能被用于推测区块链地址对应的真实身份。
(2)交易隐私
交易隐私是指区块链中存储的交易记录和交易记录背后的知识。在早期的区块链数字货币应用中,交易记录通常是公开的,不需要额外的保护措施.但是随着区块链技术被应用到银行等金融领域,交易记录属于重要的敏感数据,需要采取额外措施限制非授权用户的使用.此外,交易记录通常能够反映一些敏感知识,有可能泄露用户的隐私.例如用户购物的交易记录能够反映用户的消费水平、生活状态等。
3、区块链隐私威胁
3.1 区块链在隐私保护方面的优势:
①p2p网络很难实现网络窃听;
②区块链技术支持匿名交易;
③去中心化架构能够有效应对网络攻击;
3.2 区块链在隐私保护方面的不足:
①区块链网络中的节点容易遭受攻击;
②区块链交易之间的关联性可以被用于推测敏感信息;
③区块链应用面临多重安全威胁;
3.3 网络层面临的隐私威胁(以比特币为例)
(1)攻击者可以通过部署探针节点节点的IP地址容易通过探测到;
(2)探针节点采用主动获取和被动监听的方式得到节点之间的拓扑关系;
(3)攻击者可以读取网络中传播的交易信息,且这些信息在网络层传播时是不加密的;
3.4 交易层面临的隐私威胁
(1)攻击者可以通过分析交易记录获取有价值的信息,从而带来交易隐私威胁;
(2)攻击者在分析交易数据的基础上,可以通过结合一些背景知识获得交易者的身份信息,从而带来身份隐私威胁;
3.5 应用层面临的隐私威胁
(1)用户利用区块链技术时,由于不了解区块链的安全机制,进行一些可能泄露隐私信息的行为;
(2)提供区块链服务的网站存在显著的隐私泄露隐患;
4、区块链隐私保护机制
根据区块链技术的特点,我们将区块链中的隐私保护机制分为3类:
4.1 网络层的隐私保护
在早期的比特币系统中,任何通过运行比特币程序的节点都可以成为区块链中的节点,节点不需要经过审批的过程。这种机制导致攻击者不仅可以监听整个网络的通信信息,还可以主动和其他节点通信获取隐私数据。因此,网络层隐私保护的侧重点是限制节点的权利,对抗被动监听和主动攻击。
4.2 防御机制
(1)限制接入。对区块链中的节点进行授权控制,没有得到授权的节点无法接入网络,不能获得交易信息和区块信息。
(2)恶意节点监测和屏蔽。.在公有链架构中,不能直接限制节点接入网络,但是可以采取检测机制,发现恶意节点并加入黑名单,阻止恶意节点继续搜集敏感信息。
(3)网络层数据混淆。为了阻止攻击者通过发现网络拓扑获得身份隐私信息,一些研究人员提出可以将区块链运行在具有隐私保护特性的网络上,例如洋葱网络。
4.3 交易层的隐私保护
交易层包含区块链中数据产生、验证、存储和使用的整个过程,区块链设计了特殊的数据结构和共识机制保证交易的可靠性、不可篡改性和分布式一致性。.但是,这些机制也导致了隐私泄露风险。完整的、公开的交易账本不仅会泄露交易数据,还会泄露数据背后的交易者之间的关系,甚至泄露身份隐私。因此,交易层隐私保护的侧重点是满足区块链基本共识机制的条件下,尽可能隐藏数据信息和数据背后的知识。
4.4 防御机制
将不同的保护机制按照数据库隐私保护的分类方法进行3种分类:
(1)基于数据失真的技术
通过将交易内容的部分数据进行混淆,使攻击者无法获得准确的数据,增加分析难度;
(2)基于数据加密的技术
通过将交易信息加密,使攻击者无法获得具体的交易信息,从而无法开展分析。
(3)基于限制发布的技术
通过发布少量或者不发布交易数据,减少攻击者能够获得的交易数据,增加分析难度。
4.5 应用层的隐私保护
应用层包含区块链技术被外部使用的过程.外部使用即包括普通用户使用区块链程序,也包括其他应用程序调用区块链的接口。区块链被外部使用的过程存在泄露交易隐私和身份隐私的威胁。例如,用户在论坛等社交网站公布自己的比特币地址。因此,应用层隐私保护的侧重点包括提升用户的安全意识、提高区块链服务商的安全防护水平。
4.6 防御机制
(1)使用具有隐私保护机制的区块链应用。
(2)使用具有隐私保护机制的区块链程序。

猜你喜欢

转载自blog.csdn.net/weixin_43783865/article/details/84581344