用Rust语言开发可扩展性的隐私保护服务|极客说

6月19日,Manta Network 开发工程师 Jamie Deng 参加了由 Bixin Ventures 主办的「RUST 区块链开发者 Matching Day」,与来自 Parity 等平台的开发者一起,共话 Rust 这门当下区块链非常热门的新兴编程语言的魅力。

Jamie 与到场的100多位开发者分享了 Manta 如何用Rust语言开发可扩展性的隐私保护服务,以下为演讲全文:

很荣幸能代表 Manta Network 来北京参加这次的 Meetup。今天,我要讲的主题是用 Rust 语言开发可扩展性的隐私保护服务,同时也是 Manta 如何使用 Rust 和零知识证明这个技术来做到隐私保护的。

首先做下简单的自我介绍。我叫 Jamie,目前在 Manta 担任软件工程师,主要工作是后台服务的开发,截至目前使用 Rust 大概有三年时间。

众所周知,区块链提供了一定程度上的匿名信,但这种伪匿名信和真实的隐私保护还是有着很大的差距的。比如很多的人尝试追踪 DeFi 大户的交易地址,他们的资产和交易很容易暴露于公众之下,造成隐私的泄露。

之前 Manta 也在社区发起了一个关于隐私重要性的问卷调查,有超过400人参与了回答。从我们的统计数据来看,有超过83%的人担忧自己的区块链地址和实际的个人身份关系被泄漏;90%的人或多或少都查询过别人地址下的余额和交易记录;还有72%的人因为隐私问题而避免或者犹豫发起交易。

Manta 愿景是希望在波卡生态中做一个即插即用的隐私保护 DeFi 平台,如果大家对波卡生态有所了解的话,就知道波卡完全是一个由 Rust 语言开发的区块链项目,所以 Manta 使用的开发语言也是 Rust。

我们目前正在做的事情之一是匿名支付 MantaPay。

这个就是 MantaPay 匿名支付的工作过程:我们会以一个 public token 为 base token,然后1:1铸币得到对应的 private token,然后用户得到 private token 就可以去做转账了。如果用户想赎回,则可以按照1:1的比例拿回原来的 token。MantaPay 会支持波卡生态里面主流的资产,比如 DOT,AUSD,USDT 等等。

然后再来看下 private token 的转账如何做到的。在传统区块链里,用户发起一笔转账,转账前后的状态在公链里面是属于公开的数据,任何人都可以查询到,所以毫无隐私可言。

那么 Manta 是如何做到的呢?我们这边当发起交易时,L1 到 L2 的状态都是被加密的,别人想窥探他的数据,也只能看到一堆哈希值。然后我们如何做到交易的正确性呢?这里我们就使用到了零知识证明这个技术。在下图的π里包含零知识证明所需的一些参数,比如生成交易 proof 所需的prove key,还有链上验证所需的 verify key。

我们目前使用的是 ZK-Snarks 算法,在这里也稍微讲下其工作原理。f(x)可以看做是一个 np 问题,如果把y=f(x)在坐标系里绘制出来,那么x就是这个公式的解的合集,所以我们不希望暴露x,y。然后如何证明 f(x) = y的情况下,不暴露 x,y呢?

我举一个简单的例子,Bob 想要告诉自己喜欢 Alice,但自己有比较害羞,不想把这么肉麻的话直接说出来。所以我们可以把这句肉麻的话转换成这样一个待公式f(x)=y,在此之前,我们做 key generation,一个是 prove key,给 Bob 生成交易的proof 用的,另外一个 verify key 给 Alice 证明 Bob 喜不喜欢她,但 Alice 至始至终不知道 Bob 到底说了什么。

我们目前已经实现了 MantaPay,使用的是 Groth16 算法,在零知识证明算法里面,Groth16 是使用非常广泛的算法,目前我们使用 arkworks 的 Rust 来实现。

接下来讲下我们目前正在做的另外一个事情——去中心化的隐私交易平台(Decentralized Anonymous Exchange)——MantaSwap。

我们回顾下之前 Manta1.0 部分的内容。因为1.0里面我们只能从一个A token->A token,但在 Manta2.0,我们希望在保护隐私的同时也能够提供流动性,即 A token -> B token。

在 Manta2.0中,我们采用了类似于 Uniswap 的 AMM 技术。在这里,我们想象一个交易池中包含了代币 A x 个数量,代币 B y 个数量,我们确保交易池中实时保持着一个恒定量:既x*y=k。当兑换发生时,既池子中 A 代币的量会增加,而 B 代币的量会减少。AMM 可以准确的给出当前用户能够兑换出的 B 的数量。

AMM 带了一些好处,除了带来了一定的 front-running resistance,并有着一定的市场效应,最为关键的是为ZK-SNarks 提供了一个很好的证明依据,我们通过证明 x*y=k 的这个状态在交易前后合法性来保证兑换过程可以顺利进行。这种 zk(zero-knowledge)实现起来比较容易且 zk proof 的过程也可以很高效。

下面介绍了 DAX scheme 的一些细节,跟 Manta1.0相同,π包含来一个零知识证明,用于确保交易前后钱包状态是正确的所需的 prove key 和 verify key,同时我们也加入了 AMM 的 proof,简单来说这个 proof 如下所示。我们这里仅进行简单的介绍,具体的细节可以去我们的白皮书中参看。

Manta 最终的愿景是希望做一个隐私保护的智能合约平台,而不仅仅是一个隐私保护产品。

我们希望能从1.0和2.0产品里把常用的接口都抽象出来,另外我们也会开发一些基于 ZK-Snarks 的基础设施,从而可以降低零知识证明的使用门槛。整体来讲,零知识证明目前开发的门槛还是比较高的,Manta 希望可以降低这个门槛,让更多的项目享受即插即用的隐私保护服务。

这是 Manta 目前产品的进度,我们此前已经完成了产品设计和验证,并计划在7月份上线测试网,让用户来体验,届时也会上线针对测试网的激励活动。

如果你对 Manta 在做的事情感兴趣,欢迎关注和联系我们。

关于 Manta

Manta Network 是即插即用的隐私保护平行链,旨在为整个 DeFi 网络提供隐私服务。Manta Network 建立在波卡上作为平行链保证互操作性,基于 zkSNARKs (零知识证明技术)保障隐私性。Manta 的早期产品包括隐私支付 MantaPay 和隐私去中心化交易所 MantaSwap。

Manta 的创始团队由多位加密货币资深人士,教授和学者组成,他们的经验包括哈佛大学,麻省理工学院和 Algorand。Manta 的顾问包括 Hypersphere Ventures 联合创始人 Jack Platts,Polychain 合伙人 Tekin Salimi,前 Web3 基金会联合创始人 Ashley Tyson,Consensys 的 Shuyao Kong。Manta 之前已经完成了由 Polychain 领投,三箭资本,Multicoin,Alameda,Hypersphere 参与的百万美元种子轮融资。Manta 也是波卡官方 Web3 基金会资助获得者,Substrate Builder Program 成员,伯克利大学区块链加速器成员。

欢迎关注我们的频道了解有关 Manta Network 的更多信息:

Website:https://manta.network/

Github:https://github.com/Manta-Network

Twitter:https://twitter.com/MantaNetwork?s=20

Medium:https://medium.com/@mantanetwork

Telegram:https://t.me/mantanetworkDiscord 中文频道:https://discord.gg/ZtSuSKRy8X

官方公众号:MantaNetworkProtocol

微信助手:boboo936

据欧易OKEx数据显示,发文时比特币价格:34226.37USDT
本文来源:陀螺财经 文章作者:Manta_Network
收藏
举报
Manta_Network
累计发布内容7篇 累计总热度10万+

陀螺财经现已开放专栏入驻,详情请见入驻指南: https://www.tuoluocaijing.cn/article/detail-27547.html

Manta_Network专栏: https://www.tuoluocaijing.cn/columns/author1286714/

本文网址: https://www.tuoluocaijing.cn/article/detail-10060921.html

免责声明:
1、本文版权归原作者所有,仅代表作者本人观点,不代表陀螺财经观点或立场。
2、如发现文章、图片等侵权行为,侵权责任将由作者本人承担。

相关文章