拒当透明人,区块链隐私保护该如何进行

前言:
隐私是现代社会的产物,也是自由社会的根基。隐私保护也是区块链行业的重要研究方向之一,那么到底如何进行以及实现隐私保护呢?

隐私保护的其中一种方式就是零知识证明。

其实可以用一句话来概括:

“证明者(Alice)在不透露秘密的情况下,说服验证者(Bob)相信证明者(Alice)知道这个秘密”。

为了更直观解释,接下来会用隐私保护的例子来说明。

什么是隐私保护

隐私通常指不愿对他人公开的事情,或者是不愿意告诉别人的事情,在数据传输中就是不愿意也不需要交换的敏感信息。

隐私保护的目的是切断数据交易中发送方与接受方的联系,提高交易数据的隐私性和匿名性,使第三方更难追踪交易数据的用途以及归属。

举个生活中的例子:

 游客向庙里功德箱中扔香火钱,所有的游客扔的都是同一个年份的一元硬币,这时有一个第三方在一旁观察,他可以知道谁在什么时间扔进去多少个硬币。但是当小沙弥从功德箱中取出混在一起的硬币时,他无法分辨取出的硬币分别是由谁扔进去的。

这里的功德箱就起到一个数据保护的功能。

游客使用功德箱可以快速高效地将自己的数据即硬币与其他的数据进行混合,但这里功德箱有个缺陷,游客扔进去的数据其实谁都可以取出没有限制,所以我们需要在接受者与混淆后的数据之间创建随机的联系,这时候可以使用零知识证明来解决在不暴露相关信息的情况下,解决证明隐私数据所有权的问题。

为什么需要隐私保护

最主要的原因是隐私保护帮我们解决了匿名与隐私问题。

匿名

目前公链的匿名只起到假名的作用,首先区分匿名与假名的不同。

匿名需要具备无关联性,无关联性指站在攻击者角度,无法将用户的任意两次操作进行关联。

假名很好理解,就是我们在网络上使用的一个与真实身份无关的身份。例如现实生活中的人可以生成任意多的公私钥对,用这些公钥在链上发送或接受每笔交易,这些公钥就充当他们的假名。如果外界不知道你和公钥的关系,他们就无法把你和你的交易历史关联起来,如果有人能把你跟公钥联系起来,就可以顺藤摸瓜找到你过去的交易历史。目前没有办法阻止第三方将我们和我们的公钥联系起来。

为了直观理解上面的文字,举一个例子来说明:

作家一般都会用一个假名与读者互动,比如《哈利波特》的作者乔安妮·罗琳总是以“J.K.罗琳”的名义出版作品。

她为什么这样做?

很可能是因为她想过正常人的生活,不让别人发现她是一个知名作家。不幸的是,一旦你被曝光,假名就变得毫无意义。就好像一旦我知道乔安妮·罗琳就是 J.K.罗琳,我会立即把她与她写过的每一件作品联系起来,并且意识到她一年的版税可能比我一辈子赚的钱都多。

到这里我们回答了需要隐私保护的理由:隐私保护可以实现完全匿名且不可追踪。

用零知识证明进行隐私保护

为了在接受者与隐私保护后的数据之间创建随机的联系,需要使用零知识证明在不暴露相关信息的情况下,来解决证明数据所有权的问题。

那什么是零知识证明?

为什么零知识证明可以在不揭露敏感信息的情况下也可以证明你知道某个秘密呢?

零知识证明

接下来只从使用零知识证明的角度来讲解,让大家能从一个宏观的视角看零知识证明是如何被使用的,至于零知识证明的细节,在之后的文章中我会用通俗的方法来分享!

上图是使用零知识证明的一般过程。

这里我们将circuit看作是一个黑盒,在circuit中会执行一些约束,这些约束是与要解决的问题是相关的,比如x+y=5。

接下来从Prover向circuit中传入两个值:Private input(值:2),public input (值:3),接下来circuit会进行一系列的运算并检查约束是否满足(2+3=5),然后输出一个proof。Prover将proof以及public input发送给Verifier,Verifier使用proof,public input 进行运算来验证proof是否正确,如果正确则返回true,错误则返回false。

这里Private input是不对外揭露的,只有prover自己知道这个值。public input是prover与Verifier之间共享的一个值。

所以上面的过程可以总结为,prover 在不揭露Private input 的情况下向Verifier证明自己知道一个值能满足(x+3=5)。

基于circuit的零知识证明被称为通用零知识证明,通用零知识证明会将一个计算问题转化成circuit。

接下来以zk-Snark为例来说明,下图是zk-Snark流程图:

首先,zk-SNARK不能直接用于解决任何计算问题,我们必须先把问题转换成正确的“形式”来处理,这种形式叫做 "quadratic arithmeticproblem"(QAP)。

在进行QAP 转换的同时,我们可以用Private input ,public input创建一个对应的解,称为QAP的witness。prover使用这个witness来生成proof。

如上图所示:

1. 首先得有一个计算问题,这个问题一般是NP问题;

2. 然后将计算问题做一个等价转换变成QAP,步骤如下:

  • 将计算问题拍平变成circuit;
  • 接下来把circuit转化成 R1CS(rank-1 constraint      system,一阶约束系统)。R1CS 是一个由三向量组      (a,b,c) 组成的序列,R1CS 有个解向量 s,s 必须满足符号表示向量的内积运算 a.s * b.s - c.s = 0,这里的解向量s就是witness;
  • 接下来将 R1CS转化成 QAP 形式,这两者的区别是 QAP 使用多项式来代替点积运算,他们所实现的逻辑完全相同。

3. 接下的是比较重要的一步trusted setup,trusted setup会生成两个值PK,VK,truseted setup的目的是实现零交互验证,它生成的PK,VK相当于是一个“上帝”,由它来帮我们做一些挑战,来验证prover;

4. Prover会用PK以及witness生成一个proof交给Verifier;

5. Verifier拿到这个proof会用VK做一些校验,这一步发生在链上,由链上的节点或智能合约来做校验。

到这里,你已经基本掌握了zk-Snark的运作原理,虽然还有些细节不明白,不过没关系,这并不影响你利用zk-snark来做项目,有关zk-snark的细节我将在之后的文章中介绍。

总结

隐私保护的目的是切断数据交易中发送方与接受方的联系。

发送方利用隐私保护系统将自己的数据与其他人的数据进行混合,接受方利用零知识证明来证明有某一个数据的所有权,从而进行转账交易。

Image placeholder
liukai56
未设置
  96人点赞

没有讨论,发表一下自己的看法吧

推荐文章
css中背景透明的图片不透明怎么解决

css中背景透明的图片不透明怎么解决一、使用滤镜解决img{ background:transparent; -ms-filter:"progid:DXImageTransform.Microsoft

分片技术如何解决区块链系统的可伸缩性问题?

区块链技术的应用可能将改变组织存储数据和执行分布式事务的方式。即使在公共网络上,区块链也可以保证所有参与者都以安全、可靠和可验证的方式访问记录。但是区块链有一个非常明显的限制:可伸缩性。随着交易数量的

区块链如何改变当今的业务安全

区块链已经扩展到多个行业,正在颠覆商业世界。下面是区块链如何改变当今的业务安全性。对区块链技术的需求持续增长。全球区块链技术市场的规模预计将增长,到2023年最终将达到233亿美元:区块链已经攻克的行

《如何开发区块链底层平台》

摘要:2019年11月26日,同济创业谷与PPIOCodeTalks联合举办了《创新X-区块链与创新创业》区块链技术分享会。在本次分享会中,我们有幸邀请到了四位重量级嘉宾来做主题分享。在本期文章中,我

区块链仍处于婴儿期,金融业是应用最多的两个领域之一

如果问你2018年什么技术比较火,答案中一定会有区块链。从春节“3点钟无眠区块链”的狂欢开始,伴随着过山车一般的币价逐渐走向沉寂,链圈、矿圈、币圈的鄙视链似乎也不再那么重要。10月24日下午过后,在国

区块链十问十答

数据库与区块链有何联系和不同?数据库是集中化记录数据的方案它的增删减更新完全由数据库管理员来操作,而区块链是分布式智能共识达成后才可记录数据的一种方式,他的增删减更新由区块链的矿工和区块链上的用户共同

当医疗医保数据共享难题遇上区块链

健康医疗大数据是国家重要的基础性战略资源。提升健康医疗服务效率和质量,扩大资源供给,有利于满足人民群众多层次、多样化的健康需求。福布斯发布名为《2019八大医疗保健预测》的报告,预测区块链作为近年来在

《零知识证明在区块链上的应用》

2019年11月26日,同济创业谷与PPIOCodeTalks联合举办了《创新X-区块链与创新创业》区块链技术分享会。在本次分享会中,我们有幸邀请到了四位重量级嘉宾来做主题分享。在本期文章中,我们先向

科普 | 关于联盟区块链你不知道的事

在分布账本技术发明十年后的今天,我们仍然处于大规模应用落地的早期。目前多数流行的公有区块链仍然无法落地,因此近年来越来越多的技术团队将目光集中在那类有使用场景的方向--联盟区块链。第1部分:行业分类从

《从PPTV网络视频,到PPIO区块链分布式存储》

摘要:2019年11月26日,同济创业谷与PPIOCodeTalks联合举办了《创新X-区块链与创新创业》区块链技术分享会,本期我们为读者带来主题分享--《从PPTV网络视频,到PPIO区块链分布式存

区块链+朵朵白“云”

前言:探索下一代的互联网基础架构,是突破行业增长瓶颈的重要战略方向。PPIO从云计算资源交易市场的角度来看,区块链能够从根本上解决中心化云的弊端。 生产力决定生产关系,当生产关系制约了生产力的发展,就

2020年,你是否更关注个人数据隐私了?

日前,阿里达摩院发布了2020年十大科技趋势,其中趋势九指出保护数据隐私的AI技术将加速落地。“数据流通所产生的合规成本越来越高。使用AI技术保护数据隐私正在成为新的技术热点,其能够在保证各方数据安全

企业应如何进行云迁移?小心这5个陷阱!

  国际数据公司(InternationalDataCorp)表示,到2022年,全球数字化转型支出将达到近2万亿美元。然而,各种各样的迁移事故仍然会对企业数字化转型过程造成阻碍,威胁着企业的生存与发

如何进行I/O评估、监控、定位和优化?

生产中经常遇到一些IO延时长导致的系统吞吐量下降、响应时间慢等问题,例如交换机故障、网线老化导致的丢包重传;存储阵列条带宽度不足、缓存不足、QoS限制、RAID级别设置不当等引起的IO延时。本文由社区

jquery如何进行字母大小写转换?

jquery如何进行字母大小写转换?1、大写转小写$('#in').val().toLowerCase()2、小写转大写$('#in').val().toUpperCase()使用案例:输入框失去焦点

项目管理最佳实践,企业如何进行有效的项目管理

前言:企业在划分项目时,可按照项目的复杂程度、管理范围等将项目分为三个级别,分别是企业级、部门级和小组级(与目标划分原则相同),然后将每一级的目标与项目对应起来。我们知道,企业制定的目标(OKR),一

保护Linux服务器的7个步骤

本文将向您介绍基本的Linux服务器安全保护措施,侧重于Debian/Ubuntu,但是您可以将本文介绍的所有内容应用于其他Linux发行版。1.更新你的服务器要保护服务器,您应该做的第一件事是更新本

程序员囤房养老:这届年轻人,真的很拼

35岁后混的好的码农,都是靠副业发家致富的。近日,杭州一名程序员的购房地图走红网络。在写代码之余,靠着研究这张自制地图捡漏拍卖房,据了解,该程序员目前已经靠拍卖房产赚了上百万。献上膝盖之前,先来看看视

形势逼人,这就是我想进大厂的原因

今天朋友圈里好多人都在讲,「人民币破7,经济如何如何」等巴拉巴拉的,说的还头头是道,其实没什么可焦虑的,好像你有很多人民币似的。说的直白点,没钱的,几乎不受什么影响。土哥就说一句,一顿分析猛如虎,涨跌

干了5年程序员,该如何转行?5个新工作方向了解一下

大数据文摘出品来源:Medium编译:灿灿、曹培信写了5年代码,年龄已近30,头发尚存几缕,除了写代码其他并无所长,职业未来在何方?对于从毕业就进入互联网公司,已经工作了5年甚至更久的程序员来说,现在

十年老网工突然提离职,我该如何劝阻?

  网工大哥病了  他得了非常严重的焦虑症  起初,我以为他只是处于  枸杞花茶,强行养生  槟榔配烟,法力无边  咖啡兑酒,天下我有  这种初级阶段  直到他把辞职信拍在我桌上  我才意识到问题的严

如何使用TensorFlow机器学习对图像进行分类?

本文将介绍如何使用迁移学习使用TensorFlow机器学习平台对图像进行分类。在机器学习环境中,迁移学习是一种技术,使我们能够重用已经训练的模型并将其用于另一个任务。图像分类是将图像作为输入并为其分配

开源复兴进行时

开源带来了惊人的技术创新,与此同时,商业创新——尤其是最近兴起的软件即服务——对这场运动的成功同样至关重要。由于开源的定义是任何人都可以免费使用、修改和分发的软件,因此,与其他类型的软件公司相比,开

GoWeb教程_05.5. 使用 Beego orm 库进行 ORM 开发

beegoorm是我开发的一个Go进行ORM操作的库,它采用了Gostyle方式对数据库进行操作,实现了struct到数据表记录的映射。beegoorm是一个十分轻量级的GoORM框架,开发这个库的本