扑克是世界上最流行的游戏之一,在赌场和互联网上都很受欢迎。尤其2000年后在线扑克迎来一阵风潮,产生了一个上百亿美元的市场。 然而目前的在线游戏形式要求用户无条件地信任在线赌场提供商,赌场可以随意进行暗箱操作,就算赌场不想,也难保他的员工不会想要赚点快钱。这些在现实世界中都有先例。
使用密码学安全的扑克协议可以让你安全地进行线上扑克,不需要信任任何第三方。事实上这方面的研究在现代密码学早期的时候就已经开始。 就在著名的RSA公钥加密模式提出几年后,Shamir, Rivest和Adleman就提出了第一代这种协议,并引发后续许多的相关研究。 然而由于下列原因,这方面的应用一直没有落地:
我们最近给金融密码学2018会议上提交了一篇论文,其中构建了叫Kaleidoscope的协议, 这是第一个能解决上面三个问题的密码学扑克协议。Kaleidoscope是第一个在扑克游戏通常需要的安全模型下被证明安全的协议,另外通过使用区块链技术,可以保证赢家得到奖励,并且作弊者收到经济上的惩罚。同时它还比以前那些不能证明安全性的方案更加高效。
设计Kaleidoscope的第一步,就是要形式化地定义扑克协议需要做到的安全保证。 因为这种形式定义目前还不存在,所以我们提供了“仿真”模型下首个针对扑克协议的安全性定义。 我们的安全性定义考虑到了扑克游戏的所有阶段。并且只要有一方是诚实的,这个安全模型就不会被打破。 在扑克游戏中,所有玩家联合起来针对一个玩家作弊的情况并不少见。
有了这个的形式化模型后,我们又进一步开发了一套能够实现这些安全保证的协议。 这套协议建立在最新的洗牌零知识证明上,并且做到了计算和通讯两方面最佳的效率。 事实上,我们随后的工作表明,Kaleidoscope在提供极高安全性保证的同时, 计算量比以前的协议少了三倍,通讯量少了八倍。
Kaleidoscope另一个重要特性是能够保证赢家收到奖励,同时作弊者得到惩罚并被踢出游戏。 大概流程是这样的:游戏开始前,玩家先要把用于下注的资金和一定量的押金打到一个智能合约里。 游戏结束后,智能合约会根据游戏结局分发下注资金并返还押金, 如果有玩家被发现作弊,他的押金会被分给正常游戏的人。 我们的协议把对智能合约通讯量和链上存储的需求降到了最低。
虽然Kaleidoscope协议成功地解决了以上扑克协议面临的三个问题,但它只能用来玩扑克游戏。 有些人错误地认为扑克协议一定可以用来玩各种牌类游戏,但其实这会导致一些严重的安全问题。 但是具体到我们这个协议,还是能够把它的安全性模型、协议和证明扩展到通用的牌类游戏。 在这个过程中,我们创建了Royale, 一种能够安全地玩各种牌类游戏的协议,并且和Kaleidoscope一样高效。 我们会在后续的视频和博客中继续描述Royale的特性。
转载请注明出处,收藏或分享这篇文章到:
Website content copyright © by 黄毅. All rights reserved.