本文作者东泽,来自安比技术社区的小伙伴,目前就读于斯坦福大学,研究方向密码学,本系列文章源于作者在斯坦福知名的课程《CS 251: Cryptocurrencies and blockchain technologies》上的自学笔记,该课程教学老师是密码学大拿 Dan Boneh。上个学期在斯坦福回来Dan Boneh自学了区块链和数字货币涉及的技术。和以往的课程有所不同的是,今年的课程新的加到了一个章节,叫作零科学知识证明。
萌萌的Dan和他的大神phd Ben Fisch给我们轮流放学,花上了两周时间谈完了零科学知识的起源、概念和zkSNARK的构建。这两天考完期末考试,学好的过程中在脑海中一再难忘一整堂课,实在最精彩的部分还是零科学知识证明。
就让最近趁着假期总结一下,共享给大家。前言写完第一稿之后,共享给朋友Proofread的时候,找到很多朋友对系统到说道,背景科学知识不过于不够。
所以我在开始之前额外加到了这一章节,标示了一下为了能背诵这篇文章所需的背景读者:1. Merkle Tree/Merkle Proof: https://blog.csdn.net/wo541075754/article/details/546329292. 比特币的交易: https://blog.csdn.net/liduanwh/article/details/811419723. UTXO模型: https://www.jianshu.com/p/02fd289e88534. 一些基本的加密解密概念: https://www.jianshu.com/p/f7c729a41c9f读过了前言之后,我们就可以开始正文了。要说零科学知识证明确实火热的经常出现在大家的视野里,只不过还要从比特币开始想起。比特币的严重不足如果熟知比特币的话,大家应当不会告诉,在比特币网络上,每一笔交易都是公开发表的。如果A要支付B一笔钱,那么A就不会拿着大喇叭向全网发布,她要创立一笔新的交易(Tx),并且这个交易的受益人是B的公钥(P2PK),或者是公钥的哈希值(P2PKH)。
B只要看见了这笔交易,就可以用自己的私钥签订一份数字签名,证明自己知道是这个公钥的主人,从而赚到这笔钱。当A递交了借钱给B的这笔交易后,作为一个网络上的旁观者M,她不能看见一串乱码地址aaaaa要付x个币给一串乱码地址bbbbb。随后当B再行打钱给C的时候,他也不能看见bbbbb打了一笔钱给ccccc。
我们可以看见比特币里的交易是有很强的连接性的。虽然不告诉谁打钱给了谁,但是我们可以顺藤摸瓜寻找很多条交易链条。如果每个用户都只是心地善良的往返打钱,比特币只不过还是较为安全性的。
一旦有用户看穿了,想玩游戏了,想要去交易所买入了,那么这一整条链的交易信息都会被曝露。交易所往往都有KYC(Know Your Customer)政策,每个数字货币和法币展开外币的用户要展开实名制证书。一旦C从ccccc这个地址付款跑路了,那么交易所就掌控了bbbbb曾多次打钱给C的事实。
如果C因涉嫌洗黑钱,这个时候只必须静静等候B买入出来,然后一把逃跑。美国现在早已有很多公司在做到比特币上的交易链条分析,比如Chainalysis。毕竟说道到这里,大家都能感受到比特币的严重不足了:随机分解的收款公钥只是一个假象(网名),一旦在哪里实名制证书了,把网名和发帖联系一起了,那么之前在网上所有的所作所为也就一览无余,没什么隐私可言。
这就只不过有人用网名在贴吧上发帖子喷人,然后被人用密健寻找了手机号,再行用手机号寻找了登记的发帖,从而被人肉是一个道理。电子邮件(Anonymous) 与片假名(Pseudonymous)我们对于隐私的解读,只不过分两种。第一种是电子邮件(Anonymous),意思是用户不必透漏任何和自己涉及的信息,只不过是学校的求婚墙,你总有一天无法告诉究竟是谁写出了上去,网卓新闻网,当真字就是写在了上面。
第二种是片假名(Pseudonymous),意思是用户通过自己建构的片假名来公开发表信息,只不过是贴吧,如果你不理解这个用户,你无法创建网名到发帖的联系,你也就不告诉发帖的人是谁。这么分析一看,比特币只不过是一种片假名机制:每个用户都会随机分解自己的公钥(片假名),并且通过公钥地址来收款。这就只不过是A/B/C/D四个人分别化名为小明/小红/二狗/小刚在网上电子邮件交易,只要D一旦在任何一个环节暴露出了自己的身份(比如在交易所提现),那么小明/小红/二狗和D之间的关系就不会立刻曝露出来。我们对于如何强化比特币的保密性,可以从这两种方法来辩论。
减少隐秘性的方法CoinJoin既然A给B借钱不会被人看见,C给D借钱也不会被人看见,有人就想起了说道那索性把ABCD这四个人全部扔到到一笔交易里面去。因为比特币的交易可以多个输入输出,所以一个旁观者不会看见一个交易里,aaaaa和ccccc都往里面打了x个币,然后bbbbb和ddddd收款。这样一来,就算交易所获知了这几个地址分别对应ABCD四人,也很难辨别究竟谁缴了谁的钱。
本文来源:万博app|官方网站IOS/安卓通用版/手机APP,官网-www.wingcoo.com