如何用 zkSNARK 做一款链上德扑游戏?_MAN:zks币要归零了

作者:曼达洛人,MantaNetworkProtocol

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

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

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

美国共和党人希望美联储给出如何证明数字美元合理性的答案:金色财经报道,众议员Patrick McHenry联合众议院金融服务委员会致信要求美联储副主席Lael Brainard,要求解释对中央银行权威的看法,并就如何证明数字美元的合理性给出答案。

鲍威尔回应了共和党立法者的主要担忧,表示“我们不打算在没有行政部门和国会明确支持的情况下继续发行CBDC,最好是以特定授权的形式”。(CoinDesk)[2022/9/9 13:18:00]

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

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

美国空军和雷神公司正在研究如何利用DLT技术帮助指挥天空:金色财经报道,美国空军(USAF)持续进行的一系列区块链投资正在进入战斗管理系统领,其已与美国大型国防合约商雷神(Raytheon)签订了近50万美元的合同。该合同的标题是“描述DLT(分布式分类帐技术)在Air C2中的适用性和相关性”。合同的标题表明,雷神公司的先进技术研究人员将考虑DLT如何可以使指挥官密切注视天空以及飞行员。[2020/9/4]

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

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

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

大咖零距离 | 如何尽量的以小博大:1月3日20:00,金色盘面邀请实盘大V爆哥做客金色财经《大咖零距离》直播间,将分享《如何尽量的以小博大》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2020/1/3]

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

ZKShuffle系统有三个功能:

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

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

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

声音 | Galaxy Digital创始人:山寨币需要向比特币学习如何逐步吸引用户建立生态系统:加密公司Galaxy Digital创始人Mike Novogratz认为,并不是所有的山寨币都会成功,但是一些具有潜力和价值的必须寻求建立渠道,以使人们和机构更容易购买它们。他表示:”有很多垃圾筹集了很多资金,但没有可持续性。他们承诺要建立许多协议和生态系统,然后吸引用户使用该生态系统,使之成为投机资产。为了保持投机市场的活力,需要时不时以新闻和更新的形式加油。我们必须将这些代币视为风险投资。”同时他补充说,这些山寨币之所以失败,是因为它们在如何将人们引入其生态系统方面没有发挥作用。他强调这样的山寨币必须仰赖比特币,并观察该生态系统如何为逐步采用奠定基础。(AMBCrypto)[2019/10/7]

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

声音 | 赵长鹏:无论市场如何变化,币安仍将在100年内存在:据CCN报道,币安首席执行官赵长鹏今日表示,无论行业发生什么变化,币安仍将在100年内存在。币安团队并没有对每日比特币的价格波动有所顾忌,基本上并没有真正关注市场,而是长期关注并专注于团队工作。赵长鹏表示,币安只是低着头,建立功能。[2019/2/8]

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:15ms0-4:750ms