最近,在reddit论坛上出现了一篇关于如何使用BCH区块链进行在线原子竞猜的文章,该文章介绍了由Jonald Fyookball和其他人设计的无需信任的投注协议Chainbet。受到该文章启发,Openbazaar的开发者Chris Pacia利用BCH网络在5月份硬分叉升级中重新启用的OP_Codes进行了一次尝试,结果运行成功。
运行原理以及具体操作方法
该方案的运作原理为,Alice和Bob会分别生成一组秘密的随机数字,并且将这些数字的哈希值提交给投注的输出脚本。要确定获胜者,需要他们各自揭示自己的随机数字,设定好的代码会将这些数字自动相加,如果结果为偶数,则Alice获胜,奇数为Bob获胜。
具体的操作方法为,Bob先签署交易并将其签名发送给Alice,Alice随后签署她的输入并将交易广播到区块链。通过签署交易,Alice向Bob展示了她的秘密号码,然后Bob可以使用该号码来确定他是赢了还是输了赌注。如果Bob赢了,他可以立即获得奖金,而如果Alice赢了,Bob不能做任何事,但是Alice可以在一段时间(6个区块)后获得奖金。如果Bob愿意将自己失败的秘钥发送给Alice,Alice也可以直接获得奖金,但一般不需要这个过程。
只有在BCH区块链上可以进行,BCE无法运行协议
在视频解说中,Chris Pacia补充说道,这种无需信任的原子竞猜只适用于BCH,而不适用于BCE,因为BCE的算术运算只接受带有符号的32位整数,这意味如果直接采用这个32位随机数,区块链上会直接显示双方的结果,并告知双方输赢。
BCH之所以能这么做,是由于BCH在今年5月份的硬分叉扩容升级中,重新增添和启用了一些代码。新增添的OP_SPLIT和OP_BIN2NUM,可以将256位的随机数列转换为带符号的32位整数,重新启用的OP_MOD代码用于确定结果的奇偶性。
应用前景
比特币现金的支持者很高兴能看到Pacia成功完成了这一程序并分享了他的演示,Chainbet的创造者Jonald Fyookball也感谢Pacia为他的概念增添了生命。
传统的游戏竞猜领域具有天然的吸引力,相信大多数人对这一点深有感触,而区块链世界和传统竞猜相比,其去中心化、不可篡改的特性能轻松的解决传统竞猜的不透明、不公平;基于区块链的账本特征,用户还可以在区块链上查询到各种投注,从而保证个人利益。
Chainbet这种无需信任的投注方式会进一步推动和改善像“Satoshi Dice”(中本聪骰子)这样的竞猜应用,加速BCH的推广和使用。另外,这样的概念也会给其他的技术人员提供另外一种应用思路,即在基于BCH良好的兼容性之上,开发出更多关于竞猜方面的应用或者是提出一些有意思的想法。