一场模拟 BTC 矿机产业链的游戏化社会实验。
撰文:Nickaqiao、Faust,极客 web3
自 2017 年 ERC-20 资产风靡区块链圈以来,Web3 就进入了资产发行的低门槛时代,各路项目方凭借 ID0、IC0 等方式肆意发行自定义代币或 NFT,且大多存在强控盘或信息不透明问题,RugPull 现象频发,各路镰刀俨然把 IC0、ID0 当做割韭菜的绝佳途径。
时至今日,常规的 ID0 和 IC0 已经充分暴露出了其在公平性上的缺陷,人们一直都希望有较为公平可靠的资产发行协议,解决新项目 TGE 时的诸多问题。虽然一些创意十足的项目单方面提出了自己的「公平的经济模型」,但往往没有进行通用化推广,最后这类经济模型大多沦为「具体案例」而不是「一套抽象出来的协议」。
那么,什么样的模式是更公平可靠的资产分发方式?什么样的方案能作为一套通用协议?本文将要展开介绍的 Cellula 为解决上述问题提供了全新视角,他们实现了一个模拟 POW 的资产分发层,利用虚拟工作量证明(vPOW)将资产分发过程「挖矿化」,以模拟 BTC 实现更公平的资产分配范式。
虽然该项目被许多人视为 Gamefi,但由于其分发的游戏内奖励可以设置为任意类型的 Token,Cellula 理论上可以作为一个有 POW 效应的资产分发平台,为 Web3 资产发行带来了更广阔的前景和想象空间,甚至于称为「一场致敬 BTC 挖矿的社会实验」也不为过。
其实无论是正宗的 POW 还是 POS,或是今天要讲的 vPOW,本质都是设置一套输出结果不可预测 / 难预测的算法,通过输出结果来进行「彩票抽奖」。BTC 矿工们要在本地构造出满足限制条件的区块,提交给网络中的全节点通过共识,才能拿到出块奖励。至于限制条件,是要让构造出的区块的 Hash 满足特殊要求,比如前缀是 6 个 0。
由于区块 Hash 的生成结果不可预测 / 难预测,要构造出符合条件的区块,只能不断的变更给定算法的输入参数,这一过程需要暴力穷举,对矿工的硬件设备有很高要求。
简而言之,BTC 挖矿通过 SHA-256 哈希算法的不可预测性 / 难预测性,实现了一套全网矿工在线参与的「彩票抽奖」系统,这种设计以电能为代价,确保了参与形式上的 Permissionless。
此外,POW 是一种更公平的资产分配方式,主流的 POW 公链中项目方控盘的难度比 POS 公链大很多,而在很多 POS 公链或 IC0、ID0 方案里,项目方强控盘的案例比比皆是。
(Solana 在 FTX 操纵下,仅在 2020~2021 年就暴涨了小 500 倍,这对后入场的 Validator 运行者而言极不友好)
比如,Solana 币价在 FTX 和 SBF 操纵下,曾在 2019~2021 年暴涨近 1000 倍,而很多 Solana 验证节点运行者是其早期投资人,它们获得筹码的成本近 0,这严重打破了资产分发上的公平性。虽然 POW 当中项目方也有控盘的空间,但程度往往要比在 POS 中轻得多。
问题在于,POW 的模式往往被应用于底层公链而非 DAPP 的资产发行层,我们能否以一套链上可实现的方案,模拟出 POW 的效果?如果能,就可以实现一套比 IC0、ID0 等强控盘方案更公平可靠的资产分发协议,搭配一些游戏场景,可以做出一些有意思的 Gamefi(当然实际用途不仅限于游戏,还可以为其他项目提供一套公平的资产分发方案)。
所以关键是,如果我们要在链上资产发行层模拟出 POW 的效果,该怎么做呢?在本文介绍的 Gamefi 项目 Cellula 中,通过引入著名的「康威生命游戏」算法,为链上虚拟的数字实体(称为「BitLife」)分配算力。说白了像是让一帮人在自己的培养皿中繁育细胞集群,随着时间推进,谁的培养皿中存活细胞越多,折算后得到的挖矿算力越高,越可能获得挖矿奖励。
简而言之,Cellula 把传统 POW 的哈希计算,换成了另一种结果不可预测 / 难预测的计算方式,替换了「Proof of Work」中的「Work」形式。在 Cellula 的思路下,关键在于如何获得存活细胞数更多的培养皿(BitLife),而推演 BitLife 的状态变化需要耗费计算资源,本质是把 BTC 挖矿执行的哈希算法变为推演康威生命游戏的特定算法,这被称为 vPOW(Virtual POW)。
下面让我们对 vPOW 的机制设计展开更深入的解析,不得不说,这里的很多细节非常有趣,可以说 Cellula 在做的事情之一,是通过链上 NFT 交易链条来模拟 BTC 的矿机产业链模型。
在对 Cellula 的机制设计展开解读前,让我们先来看看vPOW 最重要的核心——「康威生命游戏」,它最早可追溯到冯诺依曼于 1950 年提出的「细胞自动机」概念,而后数学家约翰·康威在 1970 年正式提出「康威生命游戏」,用算法模拟自然界生命的演化规律。
假设我们有一个培养皿,将其按照二维坐标划分出一堆小方格,然后我们对培养皿进行「初始设置」,让一些活细胞占据部分方格,此后这些细胞的生死状态将随时间演化,逐渐呈现出形态复杂的细胞集群(大家可以想像霉菌是怎么繁殖的)。这本质是一个二维格子游戏,规则非常简单:
所以很简单,在二维培养皿中给定细胞状态的初始模式,然后按照上述规则,细胞状态会随时间推移,不断地演化迭代,产生千变万化的结果。你甚至能用康威生命游戏模拟出计算机的效果。
比如说,培养皿中每个细胞的生 / 死,对应着二进制的 0/1,你可以把细胞初始状态视为「输入参数」,每个细胞的生死(0 或 1)代表输入数据,之后细胞状态会按照初始模式开始演变,每一轮状态变化就相当于计算过程中的一步操作,经过一段时间后得到的状态,可以看作「输出」。
只要布置适当的初始模式,康威生命游戏能在经过若干代演变后,输出特定结果。由于初始模式千变万化,可以利用其特性模拟出彩票抽奖的效果。我们可以设置限制条件,每个玩家随机选择一批初始模式,经过 100 代演化后,输出结果满足 xx 特征的培养皿主人有资格获取奖励,这样就和 BTC 挖矿的思路比较接近了:
「系统先限定哪类输出结果符合要求,参与者向给定算法输入随机的初始值,尝试得到符合要求的输出结果」。由于待尝试的初始输入参数非常多(几乎是天量),你必须要付出很大努力才能撞大运中奖,这正是工作量证明的逻辑:矿工必须要付出一定工作量才能获取奖励。
在理解了 Cellula 和康威生命游戏的基本思想后,我们再看他具体的细节设计。Cellula 把前面说的「培养皿」分为 9*9=81 个方格,每个方格上的细胞有生 / 死两种状态 ( 对应二进制的 0 和 1),这样一来,按照排列组合,培养皿中的细胞初始状态有 2^81 种,这个数字等于 1 万亿的平方(基本是个天文数字)。
然后,玩家要做的是对培养皿的初始模式(输入参数)进行选择。BitLife 充当了培养皿的实体(实际是个 NFT),包含 81 个方格,每个方格上放置一个细胞(可能有生 / 死两种状态,空置的方格等价于死细胞)。然后,BitLife 中每 3*3=9 个相邻方格构成一个 BitCell,每个 BitLife 由 2~9 个 BitCell 拼接而成(如果你构造的 Bitlife 不足 9 个 Bitcell,有些地方就被空置,默认都是死细胞)。
按照排列组合,BitCell(3*3 方格)有 2^9 种初始模式,玩家要做的就是随机挑选不同模式的多个 BitCell 组合起来,构造出一个 BitLife。简单来解释,就是为自己的培养皿随便找一个初始模式,然后前面讲过,不同的初始模式总计有 2^81 种,是个天文数字。所以留给参与者的选择空间非常大,这就和 BTC 挖矿里用 SHA-256 的场景有点像。
BitLife 的细胞状态会随着区块高度的增加而变化。Cellula 按照不同区块高度下 BitLife 的状态来分配算力。给定一个区块高度,包含的存活细胞越多的 BitLife 拥有的算力越高,这就相当于创造了一种虚拟矿机。
这里举个具体的例子,Cellula 参与者要在链下穷举 BitLife 的 2^81 种初始模式,预测每种模式演化后的状态,然后看能否符合奖励系统的要求。假设现在的区块高度为 800,而系统提出要求:区块高度为 1000 时,存活细胞数最多的 BitLife 能获得最多的奖励,那么参与者的目标会很明确:
在区块高度为 800 时,我要获取某个模式的 BitLife,该模式的 BitLife 在区块高度为 1000 时,能比其他 BitLife 有更多存活细胞。
这其实就是 Cellula 的核心玩法,你的目标就是自己构造 / 从别人手上买到最有可能获得挖矿奖励的 BitLife,这种模式就相当于允许普通散户 / 高级散户自己研发矿机,然后你可以把自己造的矿机卖给别人,可以购买别人的矿机来挖矿。如果你要自己造矿机,那就要在链下自行推演出不同模式的 BitLife 的状态演化,这会耗费计算资源;如果你要买别人的矿机,其实就是买不同初始模式的 Bitlife,你要自行判断这些 BitLife 未来的状态变化,所以你还是要在链下自行计算。这其实是整个 Cellula 游戏设计中非常有趣的一个点。
在理解了游戏的核心机制后,我们再来看其他细节:其实 BitLife 中的活细胞可以溢出到初始的 9*9 格子外,存活的细胞数可以远大于 9*9 个,没有边界限制。如图所示,如果某个 BitLife 包含的活跃细胞数不断增多,其分配到的挖矿算力也会越来越高,而如果 BitLife 的初始模式选择不当,活细胞数越来越少,算力也会越来越低。
然后,系统会每隔 5 分钟分发一定的挖矿奖励(游戏里称为能量点),根据每个 BitLife 在网络中的算力份额来分配。
在 Cellula 中,玩家合成 BitLife 的过程,就是一个「制造」新矿机的过程。我们前面曾提到,BitLife 的实体是一个 NFT,BitLife 在链上被 mint 出来后,要进行「充电」操作才能启动挖矿,单次充电有效期为 1 天、3 天和 7 天,需要支付一笔小额手续费,且到期后需要继续充电。
这里要说下,为了鼓励用户多去对 BitLife 进行充电,Cellula 设置了一个「充电抽奖」功能,你每次发起充电操作时都可能被选中,获得一些额外奖励(就是说这个奖励和挖矿奖励独立开)。这块的设计我们会在后面 Analysoor 算法的部分简单介绍下。
按照 Cellula 官方的规则,目前包含 3*3 个 Bitcell(也就是包含 81 个小方格)的 BitLife 铸造已经停止,玩家们一共铸造了 150 多万个此类 BitLife,未来新用户可以在二级市场购买 BitLife 并进行充电挖矿。按照官方的解释,限量铸造是为了维持游戏生态的稳定,防止有科学家无限的铸造 BitLife NFT 导致矿机价值缩水。
而且在未来,Cellula 将引入类似于矿机制造商的角色,这个角色基于许可制,要质押代币、公示销售渠道、具有一定社区规模和影响力等,这些制造商将负责铸造和销售包含 4x4 个 BitCell 的 BitLife,也就是包含 16*9=144 个小方格。制造商可以铸造的 BitLife 量,将受到其质押代币量的限制。
在此我们大致把 vPOW 涉及的核心概念通俗解释了一遍。vPOW 的本质是基于给定规则的计算模型,参与者可以通过优化策略来参与竞争,通过游戏化的方式进行资产发行与分配。Cellula 模拟了 BTC 矿机市场的运作形式,替换了工作量证明中的计算任务形式,由于挖矿算力的分配方式可以动态调整,任何模式的 BitLife 都未必是全局最优的,今天细胞存活数最多的 BitLife,明天就可能被其他 BitLife 超越,这会导致复杂的涌现现象和动态的策略。
在前面我们主要针对康威生命游戏及 Cellula 的核心机制进行了展开式的解读,下面我们再来考察下游戏中包含的其他设计。上面我们提到 Cellula 有个充电抽奖环节,这里用到了名为 Analysoor 的随机数输出算法,它把区块哈希作为随机数生成器的输入参数,抽出每个区块里参与充电者中的赢家,引入了一种彩票制度。
比如在 Analysoor 的设计中,当前 BNB Chain 的区块哈希为 6mjv....的一长串字符串,里面包含 4 个数字:6、2、1、6。按照这几个数字在字符串中的排序,第一个数字是 6,最后一个数字是 6,为偶数,将从前往后计数。提取出来的数字是从 0 开始计数的,于是数字 6 对应的交易排序是 7,就从当前区块里把第 7 个充电玩家视为中奖者。当然具体的设计可以更灵活,这里只是举个例子。上述随机性的抽奖算法可以有效激励玩家多充电,调动游戏内生态的活跃度。
此外,在 Cellula 的整个交易模型中,有一个问题:某种模式的 BitLife 一旦被某个大佬 Mint 出来,其采用的 BitCell 组合方案会被公开,其他人也可以「跟风」,按照相同的组合方案去 mint BitLife,最后很容易引发一堆人跟风的现象,严重影响游戏结果的随机性。为此,Cellula 引入了可变速率渐进荷兰拍卖(VRGDAs),这是由 Paradigm 开发的定价算法,会动态调整价格——当铸造量超预期时抬价,铸造量不及预期时降价。
假设初始预期是每天铸造 10 个 A 类 NFT,起始价格为 1 个 CKB。本来到了第 5 天,预期人们共计铸造 50 个 A 类 NFT,但因为很多人跟风,铸造量达到 70 个,这相当于原计划到第 7 天实现的目标。为了限速,要通过指数定价曲线快速提高铸造价格,单价涨到 4 个 CKB 来抑制铸造行为。
如果到第 15 天,只铸造了 120 个(原计划此时铸造共 150 个),没有达到预期销量,这时会下调价格,刺激铸造量。
在上述场景中,当某类 BitLife 在短时间内被大量铸造时,该类 NFT 的铸造价格会指数级增长,这种剧烈的价格上涨可以有效的防住科学家。
在讲完了 Cellula 的全部核心设计后,我们不妨从玩家的博弈视角来看待这一脑洞大开的游戏机制。首先,在 vPOW 中有很多参与方,每个参与方的策略都不同,以一级发行市场为例,一个「科学家」可以写代码,组合不同的 BitCell 去找到算力更高的 BitLife,获取更高的挖矿收益,同时会存在一些 MEV 玩家,他们监听链上的铸造事件,当发现某个 NB 的科学家铸造了某类型的 BitLife 时,他们也会跟风大量铸造。
但由于 VRGDAs 指数型定价算法的存在,单一类型的 BitLife 铸造价格可以指数级增长,这样可以有效的防住科学家(反女巫),当然也会对 BitLife/ 矿机进行定价,如果某类矿机的算力高,它的铸造 / 生产价格也会很高,后面流通在二级市场的价格会参考生产价,进而传导到整个供应链当中。
类比 BTC 矿机的发行过程,科学家发现某类型 BitLife 的算力高,就好像矿机公司研发出新的芯片,MEV 玩家跟风铸造,就好像一级经销商完成矿机的定价,而后的二级市场交易就类似于散户从经销商手中购买设备。
不同的是相比现实世界的矿机研发,科学家发现新的 BitLife 的速度会快很多,而且任何人都可以参与到 BitLife 的状态推演中,很大程度上相当于降低了矿机的研发权力,「人人都有机会成为科学家」,这对于大多数人而言是更为友好的,也是现实中矿机生产链条中不可能出现的。
而对于项目方本身而言,采用 POW 式的资产分发方案本身就削弱了他的权力,所以,无论是科学家还是项目方,亦或是普通玩家,都无法单方面控制市场。在矿机铸造环节以及发行环节,就产生了这三方的博弈,没有一方能够完全垄断市场,这可以形成一种动态的平衡。
总体而言,相比于 BTC 矿机产业链,Cellula 的方案是一种更有趣的社会实验。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。