LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 密码学解读:隐私危机下我们如何为数据穿上防弹衣

密码学解读:隐私危机下我们如何为数据穿上防弹衣

2020-03-31 Findoraorg 来源:区块链网络

最近5.38亿条微博用户信息在暗网出售消息可谓令人震惊。其中,1.72亿条有账户基本信息,售价仅为0.177比特币。涉及到的账号信息包括用户ID、账号发布的微博数、粉丝数、关注数、性别、地理位置等。从多个渠道流出的消息显示,微博用户信息或已泄露,黑客在暗网出售包括用户绑定微博的实名、联系方式及地址等信息,网上甚至还出现“7亿微博数据免费查询”链接。

“微博数据泄露事件”引发人们对于个人隐私信息安全的担忧,随着互联网技术的发展,社交应用不断更迭,所涉及的个人隐私信息成了“宝贵的财富”。而倘若这些数据涉及商业或者个人资产,那么带来的损失将不计其数。这不禁让人不寒而栗,网络信息时代,我们的数据隐私还能否真正的得到保证。

“The right to personal privacy is precious. Without it, we are all potential victims for a prying secret police.”

“个人隐私权非常宝贵。没有它,我们都是攫取秘密者的潜在受害者。”

— Lewis B. Smedes

然而正所谓“魔高一尺,道高一丈”,在面临数据隐私的高风险的同时,无数密码学与信息安全的研究者们,也在为捍卫隐私而努力。作为当前密码学进展最活跃的区块链行业,在隐私保护上,也涌现出各种不同的技术。接下来我们将为你娓娓道来它们的特点与区别。

在区块链上拥有“隐私”是什么意思?

近年来,诸如Monero,ZCash和Dash之类的加密货币通过承诺为用户提供比特币和以太坊等公共区块链无法提供的“隐私”而变得流行。但是,在介绍各种各样的技术解决方案之前,我们需要搞清楚在区块链上拥有隐私到底意味着什么?

其实这意味着用户可以(i)完成匿名交易和(ii)维护私人帐户余额。

隐私加密货币通过在执行每次交易时掩盖发送方的地址、接收方的地址和交易金额来做到这些隐私保护的功能。为了实现这一点,不同的项目在其协议中实施了多种复杂的加密技术。比如Monero使用Ring Signatures,Stealth Addresses和Ring Confidential Transactions,ZCash使用zk-SNARKs,Dash使用受信任的“masternodes”。

这就引出了一个重要的(且引起争议的)问题:如果我们没有做任何非法的事情,为什么我们需要匿名加密货币,为什么我们需要匿名区块链网络的存在。

为什么我们需要隐私区块链

问题一:非匿名性泄露隐私

公共区块链为我们使用的是”假名“而不是”匿名“,这很重要。为了解释这个概念,我们举一个简单的小例子。当我们说起成龙的时候,我们知道这不是他的本名陈港生,但是所有人都认识成龙,因此当成龙这个名字出现时,我们也会与他本人联系起来。然而,问题在于一旦人们知道了成龙的本名,就会使陈港生与成龙这个假名联系起来,一切成龙以自己本名的名义做的事情也都会被联系起来。相反,如果成龙以随机生成的一个乱码作为ID捐献了一笔钱,然后成龙自己不承认自己是捐款人,则没有人会知道这件事,此时我们认为成龙匿名进行了捐献

实际上,当前大部分的公共区块链使用的更像是假名。区块链协议通常使用公私密钥加密技术。使用公私密钥加密,每个用户的公钥本质上都充当其假名。他们发送或接收的每笔付款都将通过其公开密钥,并记录在比特币的透明分类帐中,以供所有人查看。

很显然,这种透明度将阻碍加密货币的广泛使用。大多数人认为财务透明性是对隐私的巨大侵犯,这会阻止他们从集中式服务转向分布式服务的意愿。另外,隐私对于企业至关重要。企业可能希望与客户和供应商使用智能合约;但是,如果这些合同对全世界都是可见的,他们将不愿意这样做。因为这种透明性可能会使他们的战略意图被竞争对手知晓,这将不利于他们在市场中的长期规划。

问题二:完全透明性威胁着加密货币的可替代性

对于美元或者人民币这样的货币来说,一美元就是一美元,它的价值由国际间汇率决定。事实上,对于一种货币,我们希望它是可以自由交换的,或者说具有可替代性。不幸的是,加密货币的公开透明性质可能会影响其可替代性。因为我们可以跟踪特定一笔加密货币相关的所有先前交易,所以人们有可能拒绝接受被盗的或先前用于非法活动的加密货币。在许多情况下,用户和交易所会因为其过去的历史而拒绝一笔加密货币。如果这种情况经常发生,则代表着那些来源“不干净”的货币失去了流动性,因此失去了100%的可替代性,这对于一种用于交易的货币来说是非常致命的一个缺点。

隐私区块链对比

事实上,在保证区块链的隐私特性上,目前已经有了多种技术方案:

“确定性钱包 Deterministic Wallets”

Deterministic wallet是从种子短语文本派生密钥的系统。用一个钱包系统派生出来多个公钥/秘钥配对的好处是不重复使用公钥,这样就不会被外界轻易追溯到交易历史。

一个种子短语的例子:

“witch collapse practice feed shame open despair creek road again ice least”

用户只需要记住这个种子短语便可登录钱包系统。随后的公共地址(公钥)生成和使用都是由软件系统来进行管理。用户可以在无需任何其他信息的情况下轻松备份和还原钱包,并且在某些情况下可以允许在不知道私钥的情况下创建公钥。

但是,这并不是基于系统的隐私保护解决方案。它需要用户自己采取措施比如不要将钱包地址组合在一起,因为这样的组合会留下非常明显的痕迹。

“混币机制 CoinJoin”

另外一种增加隐私的方式是使用混币交易。CoinJoin是一种割裂交易的输入地址和输出地址的关系的技术。CoinJoin 的解决办法,简单来说就是将多笔交易的输入和输出进行混合,让生成的交易无法溯源,从而达到有效的保护交易隐私的目的。

问题是,执行混合任务的服务器本身会看到交易的来源和去处。Dash解决这个问题的方案是利用masternode,masternode是一系列支撑区块链网络的服务器节点,通过它来进行分散治理。。但这并不解决隐私的问题,因为虽然交易不公开,但这些节点还是可以看到交易的信息。在比特币里,目前这个问题的解决方案是blind signature(盲签名)和不同的网络途径。发币者通过使用盲签名可以掩盖住收币者的地址。其次,因为要来回发送信息,需要至少有三个不同的网络途径用来保障匿名性。Wasabi Wallet是这个技术最被广泛使用的软件,Wasabi实施不同网络途径的方式是使用Tor网络。这对一般用户来讲应该是足够的隐私了,然而由于Tor网络被各国网络安全部门潜伏也是家喻户晓的事实,所以比特币的隐私还是有限的。

“环签名混合器 Ring Signature”

在密码学中,环形签名是一种可以由一组用户的任何成员执行的数字签名,而这组成员各自拥有密钥。具有环签名的消息被这组用户中的一个特定用户确认。环形签名的安全属性之一是确定是哪个组成员的密钥来生成的签名在计算上是不可行的。

举一个应用上的例子。Monero默认使用环签名,当用户发起交易时,他的帐户密钥和多个其他帐户公用密钥将使用环签名技术形成一个环状签名组。而外部观察者无法判断签名组中哪些可能的签名者属于发起者的帐户。因此,环形签名确保了交易输出的不可追踪

“环机密交易 Ring Confidential Transactions”

环签名掩盖交易中发币方和收币方的地址,而环机密方案掩盖交易金额。该技术最初由比特币核心开发人员Gregory Maxwell创建,不久后由Monero实施。

它是通过使用Pederson承诺来实现的。Pederson承诺实质上是对交易进行加密,以便只有交易发起者和接收者才能知道真实的交易金额。同时,其他网络参与者能够证明输入的总和等于输出的总和,从而确保并非凭空产生货币。这就像

这种加密使得除了交易的发起者和接收者没有人可以得知a和b的具体数值。

另外一个重要的机制是”范围证明”(range proof),这项技术可以防止有人提交了负值的交易金额。范围证明在加密学上保证了交易中的金额是大于零并小于特定的数字,以保护Monero的发行量。例如恶意方可以在原本总和为100的交易集里发出150和-50的两笔交易,然后将150那笔的收币方设置为自己,从而凭空印刷出原本没有的币。

值得一提的是,Monero的CT代码原本基于Maxwell的设计,随后Monero采用了Findora首席研究家Benedikt Bunz研发的Bulletproofs,大大减小了范围证明所需的计算空间和时间,也减少了交易费用

“交易集合 Transaction Aggregation”

重组区块链交易并将整个交易直接合并这个方式是由MimbleWimble区块链协议首次提出的。这个方法利用数字签名可以合并的属性。使用此系统挖的区块包括一个大的汇总交易,其中详细金额被完全混淆,不能被外界看到。任何试图从历史上分析这样的区块链都只能观察到组成每个区块的大型聚合交易,这为发送者和接收者提供了合理的隐私性。

数字签名合并是一个非常常见的工具,并且不需要特殊算法和特殊软件,所以整体交易的效率也较高。但是很大的一个问题是,虽然交易在进入区块链之后被混淆在大型聚合交易里,但在上链之前,也就是没有验证之前,交易是可以被验证者(挖矿的人)看到的。攻击者若想追溯交易信息,可以自己作为挖矿者去监视交易记录。

“零知识简洁非交互式知识论证 zk-SNARKs”

zk是零知识(zero knowledge)的缩写,SNARK是简洁非交互式知识论证(Succinct Non-interactive Argument of Knowledge)的缩写。简单来说,SNARK是一个证明计算正确的论证,但相比较遵守正常步骤的论证来讲,占用的空间更少,并且验证的速度也更快,这就是为什么它是“简洁”的。SNARK本身是不在意隐私性的,但是可以嵌入隐私的功能从而达到零知识的目的,这样的话不但加快了验证区块链正确性的速度,并同时达到了零知识证明的效果。

在区块链中使用zk-SNARK是由Zerocash首先提出的一种零知识证明技术,也是相比较以上的工具来讲隐私性最强的。所有的数据,包括发送方、接收方、资产类别和数量都不会在证明的过程中泄露。交易数据的掩盖是通过构建运算电路来实现的,该运算电路可以通过第三方有效地验证,而无需查看交易数据。这些电路(论证)是此系统里零知识交易的有效载荷。交易数据的所有部分都是匿名的,这意味着完全被zk-SNARK保护的的不同的交易是无法区分开来的。我们可以在对每一笔交易细节并不知情的情况下,验证每一笔交易的有效性。这是别的隐私技术做不到的。

传统的zk-SNARK是较低效的,再加上算法所需的数学比较复杂,并且需要使用不太常见的原生数据类型。在Zcash在创建zk-SNARK的时候,必须获取交易信息并将其“编译”到算术电路中,这需要数万行代码并进行大量的计算。在此之外,代码本身还需要大量的专业知识来进行审核。传统的zk-SNARK在安全上最关键的限制是可信设置(trusted setup)。这个阶段生成的一个数据若落到了恶意参与者手里的话,他可以在不影响现有交易的情况下伪造加密货币。

但也正是由于zk-SNARK的复杂证明量很大,对性能要求较高,消耗大量存储和带宽,也催生了更加简洁且可有效验证的零知识证明技术。Findora所部署的zk-SNARK叫做Supersonic,相比较Zcash所部署的Groth16算法更加安全,因为它直接跳过了可信设置这一步。并且,相比较其他无可信设置的算法,Supersonic的验证数据不但空间大小仅为10KB,评估证明和验证时间都达到了对数大小的效率,相比较其他无可信设置的算法最适合现实生活中的计算环境。

零知识方案效率对比

通过上述介绍的各种基本技术以及在此基础上衍生的各种工具,我们可以说,在区块链系统中我们之前的关于隐私方面的担心绝大部分都可以很好的解决。

然而区块链系统中的隐私工具日新月异,不断更迭。在这个技术快速进步的时段,每个人会根据自己的需求来选择适合自己的工具。但如果纯粹从保护隐私的角度来分析的话,零知识证明所赋能的简洁非交互式知识证明相比于其他采用混淆加密信息的加密工具拥有绝对优势。SNARK充分发挥了离散对数问题的原理,不像其他加密方法采取混淆加密信息的工具,而是完全掩盖住交易的所有信息,并且允许第三方进行验证,在保障超高隐私保护性的同时将来自各种途径的安全风险降到最低。

—-

编译者/作者:Findoraorg

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...