写点什么

谁说区块链保护隐私的?

  • 2020-06-12
  • 本文字数:2881 字

    阅读完需:约 9 分钟

谁说区块链保护隐私的?

我们当然知道隐私保护很重要,但是我以为区块链技术其实是放大了隐私保护的需求,并没有有效地解决这个问题。隐私保护里面有多少是区块链技术的功劳,就看我们往区块链这个概念里塞多少东西了。

思考

这一年,我看过不少媒体的报道,基本言必谈区块链能力之一 ——隐私保护。作为区块链从业者,我一方面很好奇那些文字背后的严肃技术;一方面也很怀疑区块链在隐私保护方向的具体价值。我们当然知道隐私保护很重要,但是我以为区块链技术其实是放大了隐私保护的需求,它并没有有效地解决这个问题。这就好比,医生告诉我一个真理 —— 睡眠很重要,然后给我开了一个疗程的兴奋剂,过了一周后,他言之凿凿地跟濒临崩溃的我说道,“看吧,睡眠很重要”。


在深入探讨区块链的隐私保护技术时,我想让大家思考两个问题。


  1. 区块链保证了数据归用户所有吗?

  2. 区块链用的加密学工具可以保护用户隐私吗?


在论述之前,我们有必要事先澄清隐私保护的定义。

隐私保护是什么?

隐私权是一个社会在数字时代维持其开放性的必要条件。隐私权不等于守密权(secrecy)。隐私是你不想公开给全世界知道的事情,而秘密是你不想让任何人知道的事情;换言之,隐私关乎的是选择性自我呈现的权力。 —— 摘自 1993 年《密码朋克宣言》


隐私保护(Privacy Protection)其实严格来讲,应该说成隐私权保护。隐私权是个人选择性呈现个人事务、信息和领域的权力。换句话说,我和你做了一笔买卖,奉行“天知地知,你知我知”的行事原则,但我其实仍被赋予了权力,将买卖细节拿出来公开讨论。聪明如你不禁疑惑:照这么做,对方的隐私权不就被侵犯了?是的,权力的规定里就暗合了不可能杜绝单方面披露的行径。为此,密码朋克们切割开了隐私的主体和客体,将个人的身份进行隐藏,创造出了匿名交易系统的概念。而 2008 年诞生的比特币,就是对匿名交易系统的一种实现。而且作为比特币后继者,如:门罗币(Monero)和 Zcash 等也基本沿用了这种匿名的设计原则。所以才会有人形象地把这种匿名交易系统形容成戴着面具做买卖。

去中心化是说你可以控制自己的数据吗?

常识告诉我们,区块链技术具有去中心化(Decentralized)的特征。提到去中心化,大多数人脑中立刻就闪现出某某互联网巨头泄露用户数据的邪恶数据垄断者的形象。中心化的对立面——去中心化立马登上了道德和智商的制高点,摇旗呐喊,去中心化可以把数据的所有权归还到用户手中,所以区块链可以帮助用户控制自己的数据。然而,事实果真如此?


我来分析一下去中心化的含义。在我看来,区块链的去中心化特征具有两层含义,第一它具备分布式(Distributed)的特征,第二它具备分权(Decentralized)的特征。


分布式理解起来比较简单,区块链网络是多个节点部署的,不怕单点故障。而这个分权比较难以理解,区块链上的数据(多指交易)和应用(即智能合约)的变更不受单个人或者机构的控制,需要多方达成共识才能升级,这几乎就是不可篡改性的来源。你可以这样想象,以前数据库的写入操作只需要用一个授权的用户身份完成,但是在区块链上就行不通了,它需要多个身份达成共识后授权才能写入。听上去,数据的确更加安全了,但这不意味着用户可以控制自己的数据,至少不是这句话语义中的控制,控制数据意味着你可以授权其他人使用与你相关的数据,而且最好是在不暴露原始数据的情况下,例如,不复制数据而是直接返回计算后的结果(安全多方计算)。然而,你所用数据的所有权只是从单中心移到了多中心里面去了,你并不能选择在合适的时候披露你的数据,也无法阻止其他人获取你的数据。所以去中心化的特性并没有赋予你个人数据的控制权。


除非你对自己的数据进行加密。那么问题又规约到个人数据隐私的保护。既然要加密,何必非得放到区块链上才进行呢?我们完全可以先把数据哈希后上链,然后使用对称加密的方式把加密后的数据单独存在第三方存储上,那样只有拥有私钥的用户才能查看,并对比区块链上的哈希进行是否篡改的验证。


那么区块链不可能三角(去中心化,可扩展性和安全)中安全是否关注个人数据的隐私保护呢?很遗憾,也不是。安全的原始定义是“being secure against attackers with up to O(n) resources”,它真正解决的问题是在去中心化程度较低的情况下,区块链网络是否可以抵抗攻击者的攻击。在比特币中,PoW (Proof of Work,工作量证明)共识算法增加了潜在攻击者的成本,同时又通过分配比特币的激励方式鼓励矿工主动维护网络的稳定;在一些基于 PoS(Proof of Stake,权益证明)算法的区块链网络中,它们通过质押代币的方式增加攻击者的成本,同时也利用代币激励矿工,甚至通过币天销毁解决记账权垄断等问题。这些才是区块链本身试图解决的安全问题。

区块链中的密码学工具是为了个人数据隐私保护吗?

区块链中的常见密码学工具有哈希函数,梅克尔树,非对称加密。还有一些不常见但是势头正劲的工具,如:零知识证明,环签名,CoinJoin,多重签名,多方计算,秘密共享,安全多方计算和同态加密等。


如果遵循我们上面对隐私保护的基本释义,可以得出一个结论:类似比特币、以太坊这类假名(非匿名)系统而言,它们的实现中确实保证了某种程度的匿名性。它们省去了注册账号的步骤,这些链上的交易账户可以通过非对称加密的方式在链下自行生成,所以确实没法直接将实体的人和账户联系起来。而且比特币为了增加隐私,使用了一次性账户来存储资金。也就是说,在每一次花费比特币的时候,你都可以将比特币分拆转入自己的另一个账户里,这样就更不可能追溯到哪个链上账户是你的,从而增大了匿名性。不过,这样简单的处理也会存在弊端,因为一旦你准备归集资金进行支付时,就必然会需要进行账户的关联。为了解决这里的匿名性问题,零知识证明和环签名、CoinJoin 等技术就被引入区块链。


而多重签名和多方计算等技术更多是来帮助用户解决私钥的盗窃和不小心丢失的风险。倒是秘密共享(以给定的 N 个用户(例如,M = 5,N = 9)的 M 个可以合作来解密数据)、安全多方计算(SMC,一组互不信任的参与方之间保护隐私的协同计算问题)以及同态加密(对明文的运算的结果和对明文进行加密之后进行运算并解密的结果是相同的)等技术对于个人数据的隐私保护起着关键作用。


这些加密工具因为自身的成熟度等问题,在商业环境中的使用情况还有待检验。而且最重要的一点是,它们并非区块链的核心技术。这些加密技术都是在区块链火热之后才慢慢引起人们的关注的。

透明和隐私

密码朋克中说:“强者要透明,弱者要隐私”,隐私保护是数字时代的必需品,而密码学确实可以贡献良多。我当然期望密码学大发展,能够将用户对个人数据的控制权完全交还给用户。但是这里面有多少是区块链技术的功劳,就看我们往区块链这个概念里塞多少东西了。


参考链接


密码朋克宣言


作者介绍


鄢倩,ThoughtWorks 中国区块链团队的技术专家,《Java 线程与并发编程实践》和《七周七语言 卷二》译者,《架构整洁之道》技术审校者。主要关注区块链,领域驱动设计,微服务架构等方向,致力于帮助企业接入区块链生态,引领商业变革。"


本文转载自 ThoughtWorks 洞见。


原文链接


https://insights.thoughtworks.cn/blockchain-privacy-protection/


2020-06-12 10:062808

评论

发布
暂无评论
发现更多内容

新人问一般都用哪些 Linux 命令,我把这个扔了过去,linux基础及应用教程课后答案

Java 程序员 后端

是什么让普通的链表也能达到二分查找的效率,你知道吗?

Java 程序员 后端

月薪60k的Java开发在阿里是什么级别?对技术能力有哪些要求?

Java 程序员 后端

查询太慢?看看ES是如何把索引的性能压榨到极致的!,java基础程序设计

Java 程序员 后端

数据库中间件MyCat实战笔记(第一步),arm架构linux系统

Java 程序员 后端

数据源的概念是什么?Springcloud+Mybatis如何使用多数据源

Java 程序员 后端

无论你是什么职业,这篇职场生存法则都是你必备的,java微服务架构技术

Java 程序员 后端

来自北京大学NOIP金牌选手yxc的常用代码模板4——数学知识

Java 程序员 后端

栈实现队列(队列实现栈),java编程规范pdf百度云

Java 程序员 后端

数据库索引的原理,springcloud视频百度云

Java 程序员 后端

是什么Java面试题PDF被Git全面封杀?刷完这套题已经拿完9个Offer!

Java 程序员 后端

最近被安排搞搜索接口优化,压测了4次,才勉强达到要求

Java 程序员 后端

服了!阿里资深架构师发布SpringCloud笔记,在GitHub标星已达81

Java 程序员 后端

极速体验docker容器健康,高并发分布式系统架构

Java 程序员 后端

架构师成长之路-docker 搭建es集群,rocketmq教程教程

Java 程序员 后端

数据结构系列第六部分:排序,Github爆火的《高并发秒杀顶级教程》

Java 程序员 后端

数论 - 约数基础 【 试除法求所有约数 + 约数个数和约数之和

Java 程序员 后端

架构设计基础知识整理,java常用设计模式面试

Java 程序员 后端

普通程序员就不能有拥有架构师光环?想要建立架构思维,这份京东架构技术精髓一定不能错过

Java 程序员 后端

最新基准测试:Kafka、Pulsar-和-RabbitMQ-哪个最快,阿里Java笔试题目

Java 程序员 后端

本科毕业斩获字节offer的我做了什么准备?大厂面试经验试题分享(1)

Java 程序员 后端

数据结构的栈和队列(这不进来看一看),计算机java语言入门

Java 程序员 后端

普通本科,毕业六年,复盘一个月,mybatis一级缓存和二级缓存面试题

Java 程序员 后端

有个厉害的程序员老婆是什么体验?,mysql性能优化面试题

Java 程序员 后端

本科毕业斩获字节offer的我做了什么准备?大厂面试经验试题分享

Java 程序员 后端

Go channel,面试官会这样问

Rayjun

channel Go 语言

斯坦福高效睡眠法-读书笔记,这可能是目前最全的

Java 程序员 后端

最新版SpringBoot开发实战:阿里技术官从基础到项目综合实战pdf

Java 程序员 后端

如何用内网渗透突破安全策略

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

来自北京大学NOIP金牌选手yxc的常用代码模板3——搜索与图论

Java 程序员 后端

来自阿里大牛20000字总结-+-40张图文详解,我就不信你还参透不了并发编程

Java 程序员 后端

谁说区块链保护隐私的?_区块链_张凯峰_InfoQ精选文章