前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以太坊暗网? 这群北大才子做到了...

以太坊暗网? 这群北大才子做到了...

作者头像
区块链大本营
发布2019-07-11 16:30:23
1.7K2
发布2019-07-11 16:30:23
举报
文章被收录于专栏:区块链大本营区块链大本营

记者 | 乔治

出品 | 区块链大本营(blockchain_camp)

说到比特币暗网,你能想到什么?丝绸之路、华尔街市场、贩毒、杀人、情色交易,一直以来,这些都是经常被人诟病的一面。但事物都有两面性,“暗”的另一面,是对现实世界的真实解决方案,是利用“暗”的特性解决当前存在的某个痛点。

你知道比特币暗网,但你了解以太坊暗网吗?

为解决主流数字货币过于透明、隐私泄露等问题,一群北大高材生创建了这个“以太坊暗网”。“以太坊暗网”是什么?具有哪些特性?能帮你解决什么问题?

近期,营长对这个北大背景的技术团队进行了专访。让我们从他们的想法与实践中得到启发,了解区块链开发者正在做的事情。

来自北大的师兄弟团队

营长:简单介绍一下你的个人背景和创建 PGC 之前的工作经历。

PGC:我2011年北大博士毕业,一直念的计算机,做的是信息安全和网络安全。毕业后曾在中国电子科学研究院做综合电子信息系统的顶层设计,之后在一个做信息安全的上市公司待了一阵,然后就开始创业了。从 2016 年到现在,一直在区块链领域创业,既做过联盟链,也做过公链,既做过智能合约开发,也做过 DApp 开发。

营长:PGC 团队有很多北大背景的成员,这个团队是如何组建的?

PGC:以北大的师兄师弟为主,他们是最核心的一些人,此外,我们也比较国际化,在英国伦敦、美国西雅图和德国斯图加特,也有一些远程协同办公的同事。

最初创业时,包括我在内团队只有两位主要成员,随着业务的开展,技术上需要的人才越来越多,我们优先从北大实验室和其他合作高校寻找技术人才,已经毕业的、没有毕业的、已经工作的、没有参加工作的师兄师弟,我们都联系了,好在他们对数字货币也比较认可,最后就加入到我们这个团队当中了。

因为数字货币、区块链不仅是密码学层面的事,还涉及到很多金融相关、市场推广、业务拓展的事,所以团队也需要一些业务层面的人才。我们在普华永道以及英国、澳大利亚、中国香港也有金融业、商业方面的同事,他们都远程加入了这个团队。所以我们算是一个以技术为主、业务上相对全球化的一个团队。

你根本不需要泄露密钥

营长:目前主流加密货币和现有隐私加密货币存在哪些问题?PGC 的解决方案是什么?

PGC:主流加密货币的历史相对比较早了,它可能只解决了转账和记账的问题,从实际功能来看,就是把账算清楚,我给你转了多少币,你收到了多少币,只要算清楚就 OK 了,并没有考虑智能合约之类的其他功能。

一个新事物的诞生,肯定要先解决它的可用性,等它跑起来再去考虑它的安全性和隐私性。所以,最初几年大家主要关注这个币如何用起来、如何产生金融效应以及如何让更多用户使用等等。此后,随着用户越来越多、生态越来越成熟,就会出现安全和隐私问题

目前来看,比较主流的几个币都不包含隐私属性,而最近比较火的 Grin 和 Beam 隐私币以及很早就有的门罗币、达世币、大零币 (Zcash) 等比较常见,门罗币和大零币已经存在一段时间了,也有相应比较大的市值,其价值也已经过一些验证,但仍存在一些问题

比如,它需要一个可信的初始设置,最开始建立网络时,就需要进行这样一个操作,这个操作通常是很难做到,这是一个问题。此外,因为它不是无状态的,每一笔交易都需要记录一些相应的随机值和加密值,这样就导致它在钱包设计和账本设计里显得非常复杂。

虽然门罗币、达世币、大零币、Grin、Beam 等隐私币可以通过混币、环签名、零知识证明、MimbleWimble 协议等改进隐私性,但与 ETC、ETH 和 USTD 相比,它们毕竟是一个小众币,用的人不多,为享受隐私功能,把主流币换成这些隐私币,还是不太方便。

所以,PGC 的做法是将隐私功能赋予主流币,而不是再弄一个其它的币种,说这个币比其它都好,大家来用这个币。因为推广这个币确实需要很长时间和很大精力,与其这样,还不如在主流币上增加一个隐私层,即插即用,想用就用,不想用就不用。

另外,现有隐私币所追求的隐私性太强了,隐私性太强就会产生一些问题,比如,如果 A 给 B 转帐,只有 A 和 B 知道,其他人不知道,就可能存在这样一个问题:如果 A 和 B 对交易有争议,A 说转给 B 了,B 说没收到,或者 A 说转了 10 个,B 说转了 5 个,这该怎么办?

在其它隐私币方案中,只能是双方找到第三方,通过提供私钥去查看历史交易,一旦这样操作,就意味着你的钱包以后不能再用了,因为有第三方知道了你的历史交易,你泄漏了自己的隐私,这个很不好。所以,隐私性很强的货币不具有可审计性,假如普华永道把数字货币作为财务去审计,又怎么做?链上根本看不到,也不可能冒险提供私钥,所以强隐私性和可审计性是冲突的。

PGC 追求的不是强隐私性,尽管隐私性弱化了,但机密性增强了。何为机密性?就是交易内容被隐藏,你转了多少币?你的账户余额和交易金额是多少?都被隐藏了。

但也存在一个问题,这是一把双刃剑。就比如说黑客盗了币安交易所的比特币,如果黑客将被盗的币放到了 PGC 钱包,虽然我们可以看到这个地址,但我们不知道这个地址内还有多少比特币,黑客可以将比特币转到其他地址,我们不知道其他地址收到多少比特币,只能通过一系列黑名单把这些地址封锁掉,这样就增加了被盗比特币的追踪难度。

详述 PGC 密码学解决方案

营长:请详细介绍 PGC 的密码学方案。

PGC:目前来看,有两种方法可以隐藏账户余额和交易金额。

其中一个是承诺。就像最早 Maxwell 提出的 CT,它使用 Pedersen commitments 的方式,但有一些不好的方面,比如在密码学层面,当你需要做这个承诺时,你需要离线给非链上发东西,这个东西要怎么发?如何保证它的安全?这又涉及到另外一套工程。所以,如果选用这个技术路线,除了要把链弄好,还得把另外一套东西弄好,这是比较复杂的事情。

我们选择了另外一条,即利用带有加法同态特性的公钥密码学将用户余额、交易金额加密什么是同态?举个例子,比如我把 1 加密成了一堆看不懂的字母,把 2 也加密成了一堆看不懂的字母,现在把 1 和 2 加起来,就等于 3 了。加法同态是指,可以把 1 加密出来的密文和 2 加密出来的密文做一个类似加法的操作,生成另外一个密文,也是一堆看不懂的乱码,被解码后就是 3,这就是加法同态。

加法同态相对比较复杂,特别是当你还要做乘法时,它的效率就非常低了。加法同态里有一个非常经典的 ElGamal 算法,是一个有几十年历史的公钥加密算法,它的一个变种在上世纪90年代就被美国的数字签名标准用作数字签名算法。

假如你要做机密交易,因为这是一笔交易,你就要把这个交易写在一个小纸条上交给矿工,让他记到链上,矿工不能看到你有多少钱,也不能看到你要转多少钱,PGC 会把交易金额加密,比如你原来有 100 块钱,转了 90 块,还剩 10 块,我原来有 10 块钱,收到 90 块,现在就是 100 块了。

我们各自有一对公私钥,我有 100 块钱,我把它加密了,我给你转 10 块钱,这 10 块钱我知道,你也知道,但不能让别人知道,所以这 10 块钱的交易被我的公钥加密了,你用你的公钥加密放到这个交易里,我们就相当于有 3 个数字了,再加上 1 个随机值,防止重放攻击等等,这就是交易的结构。

当其他人说你到底是不是转了 10 个币,该如何验证?此时就用到了零知识证明,就是他虽然不知道咱们的私钥,但他能够验证我俩说的是真的,他怎么验证?有几个最基本的假设

假设 1,我加密了 90 块钱,你也加密了 90 块钱,这就需要构造一个零知识证明去证明我们转的钱是一样的,不然就有问题了。可能是我说给你转 90,你也加密了一个 90,但其实我只加密了 10,如果矿工没有验证这笔交易就打包,你就损失了 80 块钱。

假设 2,矿工需要验证我们转出来的钱不是负数,我不能转一个负 10 块钱给你,我每转一次,我自己增加钱了。

针对第 1 个假设,我们使用了 Sigma协议,它可以去做一个高效的零知识证明,证明咱俩加密的东西是同一个数。

针对第 2 个假设,我发出的必须是一个大于 0 的数,而且不能超过一个上限。以比特币为例,比特币一共才 2100 万个,我不能给你转 1 亿个比特币,所以矿工要判断这个数在不在一个范围内,就需要一个范围证明 (Range Proof),它也要用零知识证明来做,目前最有效的 Range proof 叫做防弹协议 (Bulletproof),门罗币就在用这个协议,这是 2018 年的最新成果。Bulletproof 也是目前学界公认的最有效的一个加密办法,我们也会用 Bulletproof。

假设 3,假设矿工认可了,那把我的钱减掉 90,把你的钱加 90,这个加和减的操作也需要隐秘地完成,矿工却完全不知道,他只能知道拿了两个密文一减一加,这个就要用到 ElGamal 协议,带有加法同态特性的公钥密码学。

但又有一个问题,如果你把原版 ElGamal 协议直接拿来用,就不能使用 Range proof,不能使用 Bulletproof,因为调用时会不安全、会有漏洞。于是,我们把 ElGamal 协议进行了非常巧妙的修改,将它扭转一下,既让它保留加法同态特性,又能满足 Range proof 和 Bulletproof 的条件,这也是我们论文里非常有特色的一点。

此外,假如你给我转了钱,我说没收到,或者你给我转了 100块钱,我说我只收到 1 块钱,其他人看不到、也不能帮你证明怎么办?这时你可以生成一个零知识 statement,你把这个数据交给任何人,他使用零知识证明验证一下就 OK 了。比如你给我转的是 100,你只需要把数字 100 加上生成的数据一起发给验证者,然后验证者就能知道你是不是转了 100,这也是一个很强的特性,并不是所有密码学方案都可以针对单条交易做验证。

如果不使用这种方法,我只能把私钥给他,但他看到了我的交易记录,看到了我的余额,我为了去验证一条交易,也把其它交易的隐私性丧失了。所以,总结下来,我们用了数字签名技术加法同态公钥密码学非交互式零知识证明,这三者构成了 PGC 的密码学方案。

营长:PGC 目前还有哪些不足之处?如何解决这些问题?

PGC:不足之处肯定有,就像大家总嫌区块链太慢,所以做了分片,之前比特币不支持智能合约,所以以太坊有了智能合约,链太多了要跨链,所以大家做跨链,这是一样的。我们这个技术肯定也有自己的不足。

首先是性能问题,在智能合约层面上,无论是刚才我说的加法同态、非交互零知识证明、还是 ElGamal 协议和 Bulletproof,都需要耗费 gas。经过很多密码学优化后,如今最大的 gas 大概是 600 万左右,一个块里大概是 800 万 gas。我们需要用 600 万 gas 做一次转帐,金额大概是 0.01 个以太币,花费有点高,所以我们还要继续优化算法、降低 gas,这是一方面。

另一方面,EVM 也在升级和优化,下一版本 EIP 1108 也会做相应的优化,按照它优化的程度来看,我们可以再优化 6-10倍,这样一笔转帐大概要花 100 万 gas,就不贵了,一点都不贵。其实主要是性能问题和 gas 费的问题。

营长:PGC 目前主要有哪些应用场景?

PGC:目前来看,主要有以下 5 个应用场景。

  • 在钱包内实现机密交易功能,比如 Token fund 投项目,投了多少以太币?这应该是隐私的,不应该被别人看见;
  • 我给员工发工资或者发 token,员工彼此之间也是看不见的;
  • 慈善捐款、拍卖;
  • 交易所大额提币或充币,USDT 大额转帐,避免引发市场恐慌;
  • 以及机构间的隐私转帐。

以太坊暗网,来了!

营长:请从技术和生态两方面介绍 PGC 的整体路线

PGC:技术上,PGC 密码学方案已经设计完成了,相关论文近期会在国际会议上发表。

接下来要完善我们的 App,从表面上看它就是一个 imToken,是一个钱包,但你可以认为这是以太坊的暗网,你转什么?转给谁了?是什么情况?都可以在这个“暗网”看到,但你在 Etherscan 上查不到。当有人想查这笔钱,比如你转了多少个,你可以生成一个证明,告诉他转了10个,随便找一台手机就能验证了。

还要做跨链,我们要服务现有的比特币用户,通过跨链的方式把比特币接到一个支持智能合约的链上,之后再把它换过去,这是技术上要做的。

生态上,我们要努力扩展 PGC 应用,除了个人钱包外,我们还要接入诸如 Facebook 等企业的稳定币,和他们一起合作推出企业级钱包,这样企业与企业间的转账金额也是隐秘的,可以拓展各种各样的应用,也要和公链合作,帮助公链实现机密交易的功能。

尽管我们有自己的钱包,但也会和像 imToken 这样已有庞大用户群体的钱包合作,通过智能合约、接口实现机密交易的功能,即接入以太坊暗网网络。

营长:对中国的区块链开发者说几句寄语吧!

PGC:以太坊是未来的主流,如果你想深入了解区块链,学习以太坊就好了,此外,如果你把比特币看明白了,其它的也就都差不多了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 区块链大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档