区块链技术在数据隐私保护方面的效果是怎样的?
最近看了一些区块链方面的paper,有一个疑问:既然区块链上的数据是全网同步的,那么讲解保证数据的隐私性呢?我的理解是在区块链商业应用中,肯定会涉及到隐私数据,特别是在金融领域。答案:这是一个非常好的问题,区块链的隐私性也是社区最关注的话题之一。从区块链理论本身来说,它根本无法保证数据的隐私性。因此需要结合一些其他技术来解决这个问题。Zcash通过零知识证明za-SNARKs(零知识简洁非互动性知识参数)实现UTXO模式下交易信息的完全隐藏。在Zcash网络中发起一笔转账不需要写明转账的目标地址,而是将一个零知识证明链下发送给对方即可。当然发送交易的同时需要在区块链记录一些信息,但这些信息不会泄露交易的具体信息,包括对方帐号和交易金额。Corda解决链上数据隐私的方法是只在有权阅读数据的双方间建立共识网络,这样从根本上避免了数据泄露的风险。Hyperledger Fabric 0.6版中通过普通加密的方法解决区块链上数据隐私的问题,通过维护一棵分层的密钥树,实现对数据的分级加密。Monero通过两个关键技术:隐蔽地址和环签名,实现了不依赖于中心节点的加密混合方案。隐蔽地址是为了解决输入输出地址关联性的问题,环签名是用于保证交易地址的不可追踪性。除了交易地址,交易金额也会暴露部分隐私。门罗币还提供了一种叫做环状保密交易(RingCT)的技术来同时隐藏交易地址以及交易金额。闪电网络和最近的Aeternity 项目利用状态通道保护交易数据。状态通道的原理是,不在区块链上记录每一笔交易记录,而是隔一段时间记录一次状态变化,这样就不会透露单笔交易信息。交易双方会链下保存交易信息,当发生纠纷时,链下保存的信息可以结合链上信息一起解决问题。除了上面这些解决方案外,目前业内讨论的比较多的方案还有同态加密。但是由于噪声问题,目前全同态加密计算深度有限(可以理解为乘法计算次数)和密钥空间过大。因此距离商业应用还有很远的距离。全同态加密的一个替换方案是半同态加密,即只支持加法或乘法的同态加密,但半同态加密可落地的场景并不多。