最近在学习比特币和区块链相关知识的过程中,无意间想到狼人杀游戏和前者似乎有着非常相似的特点。于是大开脑洞,仔细思考了两者的联系和区别,一个很重要的收获是,这两者也许在某些场景下能互相印证,在某些问题上能相互提供解决方案或者思路。
先来看看基于比特币的区块链(仅讨论BTC的Blockchain技术)的重要特点:
1. 去中心化
区块链的decentralized应该翻译成分散式,区块链可能是分布式的,也可能是多中心或者弱中心。去中心这个词过于狭隘了。 联盟链和私有链,很多程度上是多中心或弱中心。
2. 防篡改
比特币采用非对称机密,数字签名和时间戳机制,保证了信息不被篡改
3. 交易可追溯
通过区块+链的方式,比特币的每一笔历史交易,都可以被追溯
4. 分布式记账和共识机制
比特币采用P2P分布式架构,节点与节点组成了极其坚韧的分布式网络。任何一个节点的数据被破坏,都不会影响整体网络的正常运转。因为,其他正常节点都保存了完整的账目数据。
共识机制主要保证各个正常节点记账的一致性,比特币采用POW的方式,让矿工们不断遍历尝试寻找一个随机数,使得新区块加上这个随机数的HASH满足一定条件,互相竞争,从而确定区块链的本轮记账权归谁。
那么,狼人杀的机制有啥可以类比的地方呢?
为简单,仅考虑基础狼人杀版本:预言家,白痴,守卫,女巫,狼人。先看看基础概念类比
1. 轮次 -- 比特币区块产生的固定周期
狼人杀通过第N天白天,黑夜的固定周期(N= 1,2,...,n),来执行某个操作:刀人/投票。这个和区块链的固定周期非常类似。
2. 投票的结果 - 记账的结果
狼人杀玩家每一轮白天进行投票,决定出局一名在场玩家。这个结果类似于区块链记账的某笔交易的结果。
3. 玩家 - 节点
这个概念很简单,每一个玩家就是不同的节点。玩家分为不同阵营,节点也有好/坏之分。
以下为更为高级的相似:
1. 分布式和自治 - 不存在一名玩家,能直接判定其他玩家的身份或者给出最终结果
狼人杀的最核心机制是投票,等同于每个玩家/节点有自己的规则和逻辑,选出自己认为不做好的身份玩家。虽然有时候警长拥有归票权,但最终结果还是以全体玩家的投票结果为基础。这个机制是弱中心制的。
2. 防篡改
第一,由于狼人杀是真实生活的游戏,因时空限制,玩家的发言都是来自其本人的发言,无须担心信道问题。
第二,每一轮的投票结果(谁出局),都印刻在每个玩家的脑子里,是不可能被篡改的。
3. 交易可追溯
还是由于时空关系,每一位玩家的投票和每一轮的投票结果,都是可以追溯的,并且玩家之间正式利用这种可追溯性来进行推理。
4. 分布式和共识机制
狼人杀的共识机制,实际上是投票机制和逻辑证明方式(虽然很多时候,打的不是逻辑而是情感煽动)形成某一个共识,但有多数玩家认同这个共识时,系统即正常下去。
5. 51%攻击机制
实际上,当某一方算力占据全网算力50+%,它就有足够的权限更改某些交易记录,甚至达到交易“双花”。 为了避免这个问题,中本聪采用巧妙的经济机制,即用成本-收益的限制,让这种理论上的可能在现实世界中几乎不存在。
思考到这里,我认为比特币和区块链和另一个桌游《决战阿瓦隆》有点相像。因为区块链的一个重要贡献,即提供了一个可行的拜占庭将军问题(Byzantine Generals Problem)的解决方案。关于拜占庭将军问题,网上资料很多,本文就不展开了。
当然,还有更高级的类比:
白天的辩论和投票等同于主链。 晚上狼人的共谋行动其实是侧链。猎人或者狼人自爆等等,其实是链上的一种智能合约,等等
总结来说,狼人杀的核心,是在众多节点中找出坏人/叛徒。而比特币和众多加密货币的核心,并不在于识别坏人,而是拥有一套机制(协议),在拥有坏人(不知道是谁)的节点网络中提供一种规则,节点按此规则计算后,达到一致且正确的结果。
以上。
PS,由于一直以来从事产品相关工作,不写代码,接触区块链不久;同时我的狼人杀经验也较少,平时看过一些《Panda Kill》的视频,玩过一两次面杀。所以我非常明白,自己对两者缺乏深刻的理解,有些想法肯定还很幼稚和肤浅。不过没关系,记录下来,能引发思考也是好的~