麦克阿瑟奖得主Dawn Song:区块链能保密和保护隐私?_BTC:区块链域名

安全是计算机科学体系中老生常谈的一个话题,尤其在区块链领域中。当一个项目大肆宣传安全性时,它提供了怎样的安全保证呢?换句话说,现有的区块链是否在核心的安全性方面仍存然很欠缺?要回答这些问题,首先我们需要清晰地定义什么是安全性。在这篇文章中,我们主要讨论以下3个话题:当前区块链的安全性;为什么说保密性和隐私性是当前区块链最核心但也是最欠缺的属性,以及,我们该如何来完善区块链。安全性的经典定义

在安全性的经典定义中,我们假设Alice和Bob想要共同运行程序f(x,y)。该程序的输入是保密的:其中Alice仅知道x,Bob仅知道y。这里的挑战在于Alice和Bob都希望在不让对方知晓自己输入数据的情况下得到计算的结果。如果我们有一个想象中的可信第三方存在,这个问题就会简单地多,这个可信第三方会同时接收Alice和Bob的输入数据,诚实地执行该程序,并可靠地向双方返回计算结果。除了这些操作之外,这个可信第三方不会做任何其他事情,特别是,可信第三方不会告诉别人任何有关x和y的信息。

Alice和Bob在可信第三方的帮助下使用保密的输入运行程序f(x,y)所以,定义协议安全性的一种方法,就是将其与这个可信第三方进行比较。上述可信第三方定义的安全性具有以下三个关键属性:

保密性:Alice和Bob除了各自的输入数据和计算的结果之外,得不到任何有关计算的信息;诚实性:可信第三方返回的结果是程序f(x,y)在给定输入下的正确计算;可用性:Alice和Bob可以随时访问这个可信第三方。但在现实世界中是否真的存在我们想象中的可信第三方呢?事实上,并不存在。但如果我们做出一些具体的假设,就可以近似得到一些可信第三方。比如说,银行和政府部门的声誉、社会地位以及其他相关因素,让许多人将他们视为可信第三方。另一方面,智能合约是在不需要信任中心化实体的情况下实现可信第三方的核心手段。但智能合约并不是万能的,在有些情况下,智能合约面对某些情况也无能无力。智能合约的短板

当人们谈论比特币和以太坊的安全性时,实际上他们只是在谈论区块链的诚实性和可用性,而不是保密性和隐私性。比如说,以太坊拥有一个由数千个节点组成的区块链网络,每个节点都独立维护着以太坊区块链的完整备份。当你通过以太坊网络上的某一账户执行智能合约时,在智能合约被记录在区块链中之前,它的执行将被所有挖矿节点验证。因此,如果大多数的哈希算力都由遵守以太坊协议的诚实节点掌控,那么你智能合约的运行结果将会是正确的,这种正确计算实现了区块链的诚实性。以太坊网络还提供了一些可用性保证:与中心化实体不同,以太坊网络的“服务器”去中心化地分布在世界各地。因此,虽然说某些节点可能会因为某些突发情况宕机,但所有节点同时宕机的情况不太可能发生。但以太坊和许多其他区块链项目缺乏的都是保密性和隐私性。人们通常都对区块链存在一个错误的认识,就是说因为参与到区块链网络中不需要提供姓名和身份证号,所以它是隐私的。不幸的是,这是一种极具误导性甚至是危险性的谬论。仅仅因为人们使用假名并不意味着他们在区块链上的活动是不可见的。实际上,由于交易活动中的每一个数据都被记录在公共账本之上并向所有人公开,因此有一些方法可以用来推断出用户的隐私信息。此外,随着越来越多复杂的去中心化应用程序的上线,用户的数据逐渐成为信用评分,保险业务和身份管理等去中心化应用的重要推动力,而在以太坊上,智能合约的输入数据需要被保存在区块链上并向所有人公开,因为只有这样所有节点才可以执行交易的验证。在过去的几年中,许多加密货币项目试图通过使用诸如零知识证明之类的密码学技术来解决区块链上数据保密性不足的问题。但其中许多项目都聚焦于简单的支付交易,而不是像机器学习和数据分析这类更为复杂的应用。数据隐私性如何实现?

上文中提到的保密性是实现数据隐私性的重要先决条件,但需要指出的一点是保密性通常不足以实现数据的隐私性。具体而言,保密性侧重于保护在计算过程中不泄漏敏感信息,它保证除了计算的输出之外,计算过程中不会泄露任何内容。但是它并没有解决计算输出中存在的潜在数据泄漏。换句话说,即使有完全保密的计算过程,攻击者仍可能会从其输出中复原出有关敏感输入的信息。再回到上文中提到的Alice和Bob的例子,保密性意味着Alice和Bob只能得到计算的结果f(x,y),而攻击者什么都得不到。除此之外,数据的隐私性还要求,不能从计算结果f(x,y)中复原出x和/或y。一个简单的反例是f(x,y)=x+y,其中Alice可以在给定结果x+y的情况下立即推算出Bob的输入y。举一个我们最近和Google一起研究的例子,机器学习模型可能会泄漏出训练数据中的敏感信息。我们将那些不会通过计算结果泄漏出输入数据的计算称为隐私性的计算。例如,差分隐私(DifferentialPrivacy,DP)是实现隐私性计算的一种方法。那么区块链上的数据隐私性该如何实现呢?一个想法是,在区块链上构建一个隐私第一的云计算平台。为了实现数据的隐私性,开发者可以在云计算平台的每一层都建立了隐私保护措施,在计算层中启用了保密性措施保护智能合约的执行,以防止在计算过程中泄漏任何敏感信息,并在应用层中实现了隐私保护的数据分析和机器学习,包括差分隐私,以防止在计算输出中泄露敏感的输入信息。关于这一点,OasisLabs专门设计了一种新的区块链架构,以实现具有高可扩展性的去中心化信任。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-4:146ms