看到这里肯定有人要问了: 那微信猜拳呢? 它比上面的用 commitment 的解法简单粗暴多了:我可以直接发送一个猜拳的表情,然后这个表情会随机变化成石头剪刀布中的一个。为什么还需要引入承诺系统呢?
其实最大的不同在于:微信在猜拳里扮演的是一个 公正的第三方, 即对话的双方需要都信任微信不会作弊 。 其实在有公正的第三方存在的情况下,上面提到的所有问题都可以简单解决。从之前那个古董买卖的例子来看,如果有一个买卖双方都信任的交易行,那么他们只需要把自己的报价 a,b 提交给交易行,交易行作为一个诚实可靠的机构,会诚实的比较报价并得出最终结论。
然而这个公正第三方往往不是免费的:无论是法官,交易中介,古董拍卖行,都是收取手续费的。 而且这些第三方也不是百分之百可以信任:他们有可能和博弈双方的其中一边合作,来损害另一边的利益。
而上面的通过 commitment 来博弈的方法是不需要公正第三方的!这也是为什么它在现代密码学中的应用如此的广泛。