麦克阿瑟奖得主Dawn Song:区块链能保密和保护隐私?图样图森破!

做为一种新事物,人们一般对区块链都存在或多或少的误解,其中最具争议的莫过于区块链的安全性。安全

 

有些人认为区块链是划时代的创造,经过一系列先进的密码学机制保障了整个系统的安全性;而有些人则认为,区块链只具备化名性而没有匿名性,因此区块链是不安全的。服务器

 

为何会产生这种撕裂呢?由于此“安全”非彼“安全”,这些人对区块链安全的定义是不一样的,天然得不到统一的结论。网络

那什么才是区块链的安全?区块链又是否安全,让“互联网安全教母”,加州大学伯克利分校计算机系教授 Dawn Song 为你揭开区块链安全的神秘面纱。架构

 

Dawn Song,加州大学伯克利分校计算机系教授,Oasis Labs创始人兼CEO,被媒体誉为“互联网安全教母”。研究方向包括深度学习、机算机和网络安全、区块链等。机器学习

 

曾获麦克阿瑟奖 (MacArthur Fellowship),古根海姆奖(GuggenheimFellowship),斯隆研究奖 (Alfred P. Sloan Research Fellowship),《麻省理工科技评论》“35岁如下科技创新35人”奖 (TR-35 Award)等;是计算机安全领域中论文被引用次数最多的学者(AMinerAward)。640?wx_fmt=jpegide

 

针对上文人们对于“安全”定义的感官撕裂,做为安全教母,Dawn Song和她的团队不久前发表了一篇博文,力求拨乱反正,让开发者真正了解区块链安全的本质。学习

 

下面咱们就一块儿跟着Dawn Song教授和她的团队,一块儿看看她的思考。原文虽然只有短短2000来字,却一语道破了区块链安全面临的尴尬处境。区块链

 

如下为原文。云计算

安全是计算机科学体系中老生常谈的一个话题,尤为在区块链领域中。当一个项目大肆宣传安全性时,它提供了怎样的安全保证呢?换句话说,现有的区块链是否在核心的安全性方面仍存然很欠缺?加密

 

要回答这些问题,首先咱们须要清晰地定义什么是安全性。

在这篇文章中,咱们主要讨论如下3个话题:

当前区块链的安全性;

为何说保密性和隐私性是当前区块链最核心但也是最欠缺的属性,以及,

咱们该如何来完善区块链。

安全性的经典定义

 

在安全性的经典定义中,咱们假设 Alice 和 Bob 想要共同运行程序 f(x,y)。该程序的输入是保密的:其中 Alice 仅知道 x , Bob 仅知道 y 。

 

这里的挑战在于 Alice 和 Bob 都但愿在不让对方知晓本身输入数据的状况下获得计算的结果。 

 

若是咱们有一个想象中的可信第三方( Trusted Third Party,TTP )存在,这个问题就会简单地多,这个可信第三方会同时接收 Alice 和 Bob 的输入数据,诚实地执行该程序,并可靠地向双方返回计算结果。

 

除了这些操做以外,这个可信第三方不会作任何其余事情,特别是,可信第三方不会告诉别人任何有关 x 和 y 的信息。

640?wx_fmt=png

 

Alice 和 Bob 在可信第三方(TTP)的帮助下使用保密的输入运行程序 f(x,y)

 

因此,定义协议安全性的一种方法,就是将其与这个可信第三方进行比较。上述可信第三方定义的安全性具备如下三个关键属性(有时它们被称为 CIA 属性):

640?wx_fmt=png

保密性( Confidentiality ):Alice 和 Bob 除了各自的输入数据和计算的结果以外,得不到任何有关计算的信息;

诚实性( Integrity ):可信第三方返回的结果是程序 f(x,y) 在给定输入下的正确计算;

可用性( Availability ):Alice 和 Bob 能够随时访问这个可信第三方。

但在现实世界中是否真的存在咱们想象中的可信第三方呢?事实上,并不存在。

 

但若是咱们作出一些具体的假设,就能够近似获得一些可信第三方。好比说,银行和政府部门的声誉、社会地位以及其余相关因素,让许多人将他们视为可信第三方。

 

另外一方面,智能合约是在不须要信任中心化实体的状况下实现可信第三方的核心手段。但智能合约并非万能的,在有些状况下,智能合约面对某些状况也无能无力。

 

智能合约的短板

 

当人们谈论比特币和以太坊的安全性时,实际上他们只是在谈论区块链的诚实性( integrity  )和可用性( availability ),而不是保密性( confidentiality  )和隐私性( privacy )。

 

好比说,以太坊拥有一个由数千个节点组成的区块链网络,每一个节点都独立维护着以太坊区块链的完整备份。当你经过以太坊网络上的某一帐户执行智能合约时,在智能合约被记录在区块链中以前,它的执行将被全部挖矿节点验证。

 

所以,若是大多数的哈希算力都由遵照以太坊协议的诚实节点掌控,那么你智能合约的运行结果将会是正确的,这种正确计算实现了区块链的诚实性。

 

以太坊网络还提供了一些可用性保证:与中心化实体(多台服务器可能位于同一个数据中心中)不一样,以太坊网络的“服务器”去中心化地分布在世界各地。所以,虽说某些节点可能会由于某些突发状况宕机,但全部节点同时宕机的状况不太可能发生。

但以太坊和许多其余区块链项目缺少的都是保密性和隐私性。

 

人们一般都对区块链存在一个错误的认识,就是说由于参与到区块链网络中不须要提供姓名和身份证号,因此它是隐私的。不幸的是,这是一种极具误导性甚至是危险性的谬论。

 

仅仅由于人们使用假名并不意味着他们在区块链上的活动是不可见的。实际上,因为交易活动中的每个数据(例如在以太坊上:交易双方的地址,交易金额,燃料价格等信息)都被记录在公共帐本之上并向全部人公开,所以有一些方法能够用来推断出用户的隐私信息(就好比说,使用易信交易网络结构来检索明文交息)。

 

此外,随着愈来愈多复杂的去中心化应用程序的上线,用户的数据逐渐成为信用评分,保险业务和身份管理等去中心化应用的重要推进力,而在以太坊上,智能合约的输入数据须要被保存在区块链上并向全部人公开,由于只有这样全部节点才能够执行交易的验证。

 

在过去的几年中,许多加密货币项目试图经过使用诸如零知识证实之类的密码学技术来解决区块链上数据保密性不足的问题。但其中许多项目都聚焦于简单的支付交易,而不是像机器学习和数据分析这类更为复杂的应用。

 

数据隐私性如何实现?

 

上文中提到的保密性是实现数据隐私性的重要先决条件,但须要指出的一点是保密性一般不足以实现数据的隐私性。

 

具体而言,保密性侧重于保护在计算过程当中不泄漏敏感信息,它保证除了计算的输出以外,计算过程当中不会泄露任何内容。可是它并无解决计算输出中存在的潜在数据泄漏。

 

换句话说,即便有彻底保密的计算过程,攻击者仍可能会从其输出中复原出有关敏感输入的信息。

 

再回到上文中提到的 Alice 和 Bob 的例子,保密性意味着 Alice 和 Bob 只能获得计算的结果 f(x,y) ,而攻击者什么都得不到。除此以外,数据的隐私性还要求,不能从计算结果 f(x,y) 中复原出 x 和/或 y 。

 

一个简单的反例是 f(x,y)= x + y ,其中 Alice (知道她的输入 x )能够在给定结果 x + y 的状况下当即推算出 Bob 的输入 y 。举一个咱们最近和Google一块儿研究的例子,机器学习模型可能会泄漏出训练数据中的敏感信息。咱们将那些不会经过计算结果泄漏出输入数据的计算称为隐私性的计算。例如,差分隐私( Differential Privacy ,  DP )是实现隐私性计算的一种方法。

 

那么区块链上的数据隐私性该如何实现呢?一个想法是,在区块链上构建一个隐私第一的云计算平台。为了实现数据的隐私性,开发者能够在云计算平台的每一层都创建了隐私保护措施,在计算层中启用了保密性措施保护智能合约的执行,以防止在计算过程当中泄漏任何敏感信息,并在应用层中实现了隐私保护的数据分析和机器学习,包括差分隐私,以防止在计算输出中泄露敏感的输入信息。

 

关于这一点,Oasis Labs专门设计了一种新的区块链架构,以实现具备高可扩展性的去中心化信任。