区块链中数据是公开透明的,那么咋能实现对这些数据的隐私保护呢( 二 )


ZCash改进了这个,公共区块链来展示交易,但会隐藏掉交易的金额,而查看地址密钥的所有者,可允许他人查看这个密钥相关联的信息。

■网友
【区块链中数据是公开透明的,那么咋能实现对这些数据的隐私保护呢】 区块链是一个公开数据库,每个账户里的资产、交易记录都是公开的。这样的公开透明带来了一个隐私问题:当你把你的账户地址告知交易对方时,对方就能通过区块链查询到这个账户里的所有资产和历史交易了。这是题目想表达的问题?
解决这个隐私问题,区块链项目客户端可以建议用户每次收款都使用新的地址。这样每次和你交易的对方就只能看到该笔交易,而不是全部;支付协议Ripple由于设计成了新账户需要充值激活,使得用户不得不重复使用同一个账户,导致了Ripple账户的隐私性相当脆弱。
那么实名化的区块链上通过了身份认证的账户怎么办呢?总不能每次交易都换个新账户,做一次身份认证吧?
所幸密码学给了我们强有力的工具。通过使用一些巧妙的密码学方案,完全能够做到保持区块链的公开透明,同时让用户可以重复使用进行过身份认证的账户,而不必担心名下资产、历史交易的隐私泄露。

■网友
首先,有必要对区块链中存储的数据类型加以区分。对于那些无结构的不需要进行有效性验证等逻辑运算的,仅仅在数据相关方之间通过密钥协商方案共享密钥之后,对数据进行加密即可做到。但对于那些需要进行有效性验证的(如普通的交易数据),以及更复杂的,需要利用该数据进行某种逻辑运算的(如,会触发智能合约执行的交易数据),就需要一些更高级的密码学工具了。目前已经被使用的主要有同态加密、零知识证明、环签名、承诺方案等。

■网友
区块链公链的数据确实是公开透明的,只要知道地址就可以知道这个地址下的所有交易数据,但是这些交易地址没有个人隐私信息,只有交易信息,在一定程度上确保了交易人的隐私安全。为了确保交易数据安全和数据隐私保护,就产生了联盟链和私链。公链是完全去中心化的,而联盟链和私链是部分去中心化的。

■网友
公开透明就代表这些源码希望被看见,这些数据直接部署到智能合约上,是不可以更改的,也算是一种保护。


推荐阅读