ANT:如何用 zkSNARK 做一款链上德扑游戏?

作者:曼达洛人,MantaNetworkProtocol

在过去一年多时间里,越来越多人意识到ZK这种密码学工具的强大,我们也看到很多零知识证明应用的兴起,比如隐私社交、隐私投票、隐私DAO等等。实际上,零知识证明的应用非常广阔,有链上隐私需求的应用都可能会用到零知识证明。

在刚刚结束的ETHSanFrancisco2022期间的ETHGlobal黑客松活动中,MantaNetwork密码学开发团队的小伙伴们就在短短36个小时的时间里做出了一款基于zkSNARK的德扑游戏,并在ApeCoin、ENS、SKALE、Optimism主办的四个竞赛单元拿到奖项。

很多人所熟知的DarkForest就是基于zkSNARK的一款实时策略游戏。非完全信息游戏即玩家不掌握全部状态的游戏,比如在扑克中,玩家手中的牌是私密信息,摸牌的过程也是完全隐私的。非完全信息的有趣之处就在于可以催生一系列复杂的游戏策略。

直播|Andrey Belyakov :如何制定DeFi 规则:金色财经 · 直播主办的金点Trend《以太坊之外的DeFi,香吗? 》15:00准时开播!本场嘉宾Opium Protocol 的创始人分享Andrey Belyakov “如何制定DeFi 规则”,请扫码移步收听![2020/9/1]

在公共区块链上,由于链上数据的公开透明,很难构建非完全信息游戏。但是,通过零知识证明技术,玩家可以保持在保持隐私状态的同时,公开提交可验证的有效动作。

在此次的黑客松活动中,MantaNetwork基于zkSNARK构建了一款链上德扑洗牌和发牌系统。这套系统主要解决了链上德扑游戏中存在的两个问题:如何公平地进行洗牌以及如何隐蔽地在玩家间发牌。

掌柜调查署 | Matrixport如何实现0息借贷:4月23日18:00,金色财经将邀请Matrixport高级副总裁林榕做客「掌柜调查署」。本期调查署将针对Matrixport推出的“0息借贷”进行深入“拷问”,带大家一起了解Matrixport如何做到0息借贷惠泽大众。详情见原文链接。[2020/4/23]

本质上,基于零知识证明的链上德扑,让发牌主体去中心化,庄家无法通过控制发牌来控制牌局。

在Web2中心化客户端里玩德扑,会遇到这样的情况,可能性极小的牌,刚好就发给你了。大概率能得到的牌,却出不来。

目的就是借发牌操纵牌局,让你的对手,在线下赢牌概率极低的情况下,在线上恰好赢你。

这就是为什么我们需要去中心化德扑。

大咖零距离 | 宝二爷,李笑来的成功我们能复制吗?该如何抓住减半行情?:3月3日18:00,金色盘面邀请币圈KOL老俞说币做客金色财经《大咖零距离》直播间,将分享《宝二爷,李笑来的成功我们能复制吗?该如何抓住减半行情?》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2020/3/3]

ZKShuffle系统有三个功能:

ZKShuffle.setup:每位玩家都生成一个密钥对,并将每个人对应的公钥放在一起生成一副聚合公钥。

ZKShuffle.shuffle_encrypt:在进行洗牌时,每位玩家都需要依次调用shuffle_encrypt。

为了保证加密和解密可以任意顺序进行,这里我们用到的是同态加密方案。比如说,本局游戏中有三位玩家,在经过一轮加密后,每张牌都会有三个加密锁:Card{Alice,Bob,Charlie}。

动态 | Cryptopia清算跟进:总资产为170万美元 清算人需向法院咨询如何支付欠款:据rnz消息,Cryptopia清算公司Grant Thornton需要就如何现款支付客户欠款向法庭寻求法律咨询,因为世界上还未有任何法律先例。来自Grant Thornton的清算人David Ruscoe和David Ruscoe发布报告称,Cryptopia目前欠款超过400万美元,而总资产为170万美元。本周,法院下达命令,允许他们使用该公司持有的比特币为清算提供资金。 据此前消息,Grant Thornton发布清算报告显示,Cryptopia欠69名无担保债权人债务超过210万美元,有担保债权人的债务超过140万美元。此外,该公司欠员工未付工资、假期工资以及无担保债务近60万美元,预计无担保债权人的数量将会增加。在今年1月份遭黑客入侵损失1600万美元后,Cryptopia目前已申请美国破产保护。[2019/6/1]

ZKShuffle.decrypt:如果想要向一位指定玩家发牌,每个玩家都需要调用解密功能。比如说,如果游戏的逻辑是要将牌发给Charlie,正确的顺序应该是:Alice拿到加密牌Card{Alice,Bob,Charlie},用她的密钥进行解密,然后将解密后的牌Card{Bob,Charlie}在链上进行提交,同时提交一个零知识证明来验证解密的有效性。

声音 | 加拿大央行副行长:加拿大央行正在考虑如何应对加密资产的风险:据温哥华太阳报报道,加拿大银行副行长Timothy Lane在卡尔加里大学Haskayne商学院讲话时表示:加拿大央行正在考虑如何应对加密资产的风险。[2018/10/2]

Bob在链上拿到Alice提交的这张部分解密的牌Card{Bob,Charlie}后,再用自己的密钥进行解密,并在链上提交这张牌Card{Charlie}以及验证解密有效性的零知识证明。最后Charlie就拿到了Card{Charlie},只用他自己的密钥解密就可以查看他的牌了。

MantaNetwork密码学开发团队用ZKShuffle构建了一套德州扑克demo,这是一个基于Solidity,React和Ether.js的去中心化应用。在这个demo中,每当一轮新的游戏开始,所有的玩家都要进行一轮设置,以保证在链上的这幅扑克牌是公平洗过的。然后,每位玩家都需要进行一轮解密后拿到两张牌。这些,玩家就可以在一条EVM区块链上玩德州扑克啦。

Manta目前已将这个DApp部署在了OptimismGoerli,EthereumGoerli和Skale区块链上。

实现原理

整个项目由3部分组成:

ZK电路;

用于验证解密和洗牌的智能合约,包括ZKShuffle合约和游戏逻辑合约DApp前端,使用React和ether.js以及CircomlibJS库构建的Demo;

CircomlibcryptographicJS库。

在Circom的实现中,采用ElGamal加密方案,并使用现有的Circom库,如poseidonhashes。

加密电路有87308个R1CS约束,在DApp中的证明生成时间为4.5秒。解密电路有1522个R1CS约束,在DApp中的证明生成时间为0.1秒。使用SnarkJs来生成DApp中的零知识证明。

智能合约由两部分组成:ZKShuffle框架合约和德扑游戏逻辑合约。ZKShuffle合约简易封装了ZKP验证逻辑和两个电路。逻辑合约部署了一个状态机,从RPC节点获得游戏当前阶段和轮到哪个玩家的次序。

DApp使用React框架和Ether.js实现,展示德扑桌面以及每位玩家的动作动画。当需要玩家做出动作时,这个玩家只需点击UI中的按钮,使用metamask进行交易签名即可。

观看Demo

关于MantaNetwork

MantaNetwork致力于通过隐私保护构建一个更好的Web3世界。Manta的产品设计从第一性原理出发,通过zkSNARK等领先的密码学架构为区块链用户提供端对端的隐私保护。在保障隐私的同时,Manta兼具互操作性、便捷性、高性能以及可审计性,允许用户进行任意平行链资产间的隐私转账和交易。Manta的愿景是为整个区块链世界提供更便捷的隐私保护服务。

Manta的创始团队由多位加密货币资深人士,教授和学者组成,他们的经验包括哈佛大学,麻省理工学院和Algorand。Manta的投资机构包括Polychain、ParaFi、BinanceLabs、Multicoin、CoinFund、Alameda、DeFiance以及Hypersphere等。Manta也是波卡官方Web3基金会资助获得者,SubstrateBuilderProgram成员,伯克利大学区块链加速器成员。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

火币APP下载GEN:DCG 删除其团队介绍页面

ChianCatcher消息,推特用户表示,灰度母公司DigitalCurrencyGroup疑似近日删除其团队介绍页面。该页面原本显示其团队、董事会成员、董事会顾问的姓名、职位和图片等信息.

[0:46ms0-0:790ms