ANTA:如何用 zkSNARK 做一款链上德扑游戏?_MandoX V2

作者:曼达洛人,MantaNetworkProtocol

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

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

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

萨尔瓦多居民仍对如何使用比特币和Chivo钱包感到困惑:11月27日消息,萨尔瓦多政府此前通过Chivo钱包向当地居民发放了价值30美元的比特币,两个月后,许多人仍然对如何使用比特币和该应用感到困惑,他们在花掉或兑现比特币后,已经完全放弃使用Chivo。其他人则表示,他们仍在坐等价格上涨。30岁的机修工Luis Mauricio表示:“Chivo还不能完全运作,但我希望随着时间的推移,它能得到修复,这会让人们对它的使用更有信心。”他补充说,自己在周末使用Chivo ATM机时也遇到了问题。

此前消息,数百名萨尔瓦多人10月底表示,有黑客用其身份证号码打开了Chivo钱包,以获得政府提供的30美元比特币奖励。(Decrypt)[2021/11/28 12:36:42]

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

“华尔街之狼”:正研究如何“大规模”进入加密市场:美国亿万富翁、“华尔街之狼”Carl Icahn表示,正在研究如何“大规模”进入加密市场。 (金十)[2021/5/27 22:48:08]

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

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

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

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

经济日报:区块链的价值和前途取决于如何运用:4月20日,经济日报刊文“加密资产走热带来什么价值”。文章表示,加密资产市场正在见证投机与人性的疯狂。从技术进步的维度看,部分加密资产由于运用了区块链技术,的确为创作者乃至知识产权保护带来益处。事实上,无论如何炒作,区块链作为技术本身是中立的,其价值和前途取决于如何运用。目前,区块链技术还存在性能不足、普及尚浅、未获权威认可等问题。如果抛开加密资产市场的噱头与炒作,更多看到以NFT等为代表的确权体系对知识产权保护、重塑数字娱乐等产业的作用,进一步完善区块链建设,发挥出其更大的潜力,造福于人,可能会给这一轮热情烙印上更深远的意义。[2021/4/20 20:38:16]

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

ZKShuffle系统有三个功能:

现场丨中央美术学院副教授陈卓:我们该思考如何让加密艺术品拥有传统艺术品特性:金色财经现场报道,10月17日,BCA NFT艺术沙龙于京举办,在圆桌讨论环节,中央美术学院副教授陈卓表示,如今在艺术领域,用媒介去区分艺术,边界越发模糊,艺术正在向经典形态向新形态转变的趋势,媒介的转变和社会的变化会推动一波变迁。传统的艺术品有神秘感,但区块链是透明的,艺术展有仪式感,但线上艺术品会缺少仪式感。我们该思考如何让加密艺术具备传统艺术特性。例如艺术收藏的仪式感、艺术品生产过程的创造艺术。[2020/10/17]

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

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

声音 | Flexa CEO:采用加密货币最大的障碍是如何找出可使普通人受益的项目:据LongHash消息,Flexa首席执行官Tyler Spalding就“采用加密货币最大的阻碍”相关话题表示:这在很大程度上与价格投机有关。大多数人仍然认为加密货币是纯粹的投资或投机性资产,在某些情况下确实如此。所以更大的问题是如何让普通人使用加密货币,从而使其从中受益?加密货币不是一项投资,也不是投机,这些东西确实会存在,但还有哪些项目是对普通人有意义的呢?这就是真正的障碍,需要找出这些部分是什么。[2019/6/2]

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

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

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成员,伯克利大学区块链加速器成员。

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

区块博客

[0:31ms0-5:431ms