长久以来,我们谈到链游,都是基于ETH这样的智能合约平台。原因也显而易见,要么走资产上链的GameFi路线,要么走状态上链的全链上游戏路线。不管哪种路线,使用智能合约都是最简单的实现方式。然而铭文的出现,让非智能合约平台BTC生态结合索引器产生了另外一种不同的技术实现方式。本文将对BTC生态的游戏,元宇宙和自主世界方面的探索做一个技术总结,来看看铭文和链游是如何做结合的。

全链游戏的另一种实现

对于一个典型的资产上链的GameFi游戏来说,不管是发行NFT还是FT代币,智能合约平台仍然是最好的选择,不折腾。那么去年大火的全链上游戏可以放到BTC链吗?这句话开始听起来比较奇怪:全链上游戏的定义就是把游戏逻辑和资产都写入到链上(逻辑写入智能合约虚拟机而资产使用智能合约发币),你既然智能合约功能都没有,那怎么做呢?

比特币生态的游戏和元宇宙

刚开始看到 Ordz Game (@OrdzGames) 说自己是基于BTC的 fully on-chain game的时候,我也是感觉好奇的。之前的文章我们提到过,铭文是可以把任何文件都上传到BTC的隔离见证空间,大小上限是4M。结果domo把“一段发币的JSON格式代码”上传上去,早就了BRC20几十亿美金的市场。那如果把一段游戏代码上传到链上呢?Ordz 正是这么做的。

对于网页版小游戏来说,玩家访问游戏网页的时候会把代码下载到浏览器本地文件,然后在浏览器直接运行整个游戏,因此“铭文版全链上游戏”只需要提供一个能下载游戏代码的网上存储空间即可,BTC的隔离见证空间正是提供了这样一个DA层。其原理如下:

1. 开发:小游戏通常使用HTML、CSS和JavaScript(JS)进行开发。HTML负责页面的结构,CSS处理样式和布局,而JavaScript则是负责游戏逻辑、动画和用户交互的核心。

2. 托管:开发完成的游戏代码和资源文件(如图片、音频等)会被上传到BTC隔离见证空间。这样,用户通过浏览器访问特定的URL就可以加载游戏。虽然游戏的逻辑和运行完全在客户端(即用户的浏览器)完成,但游戏的文件还是需要从链上下载到客户端的。

3. 加载:当用户访问游戏的网页时,浏览器会下载HTML、CSS和JavaScript文件。这些文件包含了游戏的全部或大部分代码。

4. 运行:下载完成后,浏览器会解析HTML和CSS,构建页面的结构和样式。同时,JavaScript代码会在浏览器的JavaScript引擎中执行。

5. 交互:用户与游戏的交互(如点击、拖动等操作)会通过JavaScript处理,游戏根据这些交互更新游戏状态和画面。因为这些过程都在用户的设备上完成,所以响应速度快,能提供流畅的游戏体验。

比特币生态的游戏和元宇宙

综上所述,Ordz 虽然确实是把游戏代码都上传到了链上,但是严格来说,是不符合“fully on-chain game”的定义的,毕竟游戏的所有逻辑都放到链下执行了。但是做为GameFi类型的铭文小游戏有它独特的一面,也发行了自己的铭文BRC20代币做为utility token(ORDG)。

做为元宇宙地图的 Bitmap

Bitmap(@bitmapdev) 号称比特币生态第一个元宇宙项目,由推特用户@blockamoto 于 2023 年 6 月 13 日在推特提出,并在随后被部分媒体关注和宣传。Bitmap 建立在序数理论(Ordinals theory)和位图理论(Bitmap theory)基础之上。序数理论就是把每一个sat分配一个序号,而位图理论也很简单,把比特币每十分钟生成的一个区块根据数据结构这些参数看成一副地图数据定义了一些数据格式。两者结合的意思是,每一个区块当成一个地图NFT,然后把这个NFT利用ordinal绑定到某一个sat上面。

Bitmap理论本身只规定了两个基本规则:

1,每一个区块定义为“地区”(District),用区块高度表示。

2,区块里面的每一个交易定义为“地块”(Parcel),按照顺序从0开始计数。

那么所谓的“铭刻”就是把地区和地块的序号按照格式上传到隔离见证空间,绑定sat。举例来说,区块高度31209的区块,需要把(31209.bitmap)这段文字绑定到sat上即可宣示所有权。31209区块里面的第5个交易,需要把(5.31209.bitmap)这段文字绑定到sat即可。但目前仅允许“district”的所有者才能铭刻“parcel”的所有权。

其他的子规则,包括input/output代表的含义,区块交易数量代表的含义等等,可以由不同的项目单独定义,这才有了2D版地图,3D版地图,VR版地图。。。

比特币生态的游戏和元宇宙

比特币生态的游戏和元宇宙

知名协议BRC420最开始是制作了头像与bitmap NFT交互协议(使用了递归铭文技术并且有图币转换方面的探索),形成了 bitmap.game 这个产品,是bitmap生态最为出名的开发团队。随后该团队制作了递归铭文头像生成平台(rcsv.io)和BTC二层网络 Merlin Chain,并且把公司名字也改成了 Bitmap Tech。所以这里要注意,Bitmap Tech 和 Bitmap 协议是完全两回事。

在创世发行阶段,Bitmap可Mint的总量就是比特币区块高度。 Bitmap标准发布时候,已经有70多万的历史区块,对于历史区块,用户只要支付矿工费既可以自由选择进行铭刻。在创始人发布2个月内有70多万的历史区块被注册完毕。

Bitmap总量和比特币当前区块挂钩, 比特币大概十分钟产出一个块。所以在总量理论上是无限的。比特币每次产生一个新区块的时候,就会多出一个可注册的bitmap(根据规则,只有区块挖出后的再发起的铭刻登记才是有效),遵循先到先得原则,允许任何人铭刻区块号.bitmap 的纯文本ordinals铭文的方式来抢注这个区块的所有权。所以每天会有 144 个新区块被开采并可供登记。 目前主流NFT交易所也会实时更新BITMAP总量。

从总量来说,bitmap NFT 不具有稀缺性,所以目前的炒作都是围绕着一些特殊地图。比如,

1, 特殊号码,类似于888.bitmap

2, 根据官方可视化数据生成了特殊图案的地图,类似于cryptopunk 这种

比特币生态的游戏和元宇宙

3,包含重要历史实际的区块,比如创世区块,披萨交易区块等等。

在基础设施方面,更多的探索来源于根据区块数据的前端渲染。如下图的几个:

比特币生态的游戏和元宇宙

比特币生态的游戏和元宇宙

比特币生态的游戏和元宇宙

总结来说,bitmap其实是一个资产标记协议,通过Ordinal协议和bitmap协议把无主资产“比特币区块”映射成NFT,以此激活区块的资产属性并产生流通和收藏价值。

比特币生态的 LOOT

如果说bitmap是从地块方面切入元宇宙,那rootverse(@ordinals_root)和BRC1024(brc1024_pro)就是试着从人物和装备方面切入元宇宙,玩法类似于LOOT。

比特币生态的游戏和元宇宙

以太坊的LOOT我们都较为熟悉了,就是一组随机组合的文字版的NFT,这一组文字描述定义了一种装备的属性,由此奠定了一个元宇宙的基础规则,其他人可以在这些文字NFT的基础上进行可组合性的衍生,比如2D图片呈现,3D图片呈现,故事呈现等等。

BRC1024整体类似,就是规定了一些参数来定义元宇宙的组件(Component),如下图所示,表示ROOT这个元宇宙有一个组件叫“charactor”,它的子组件叫“warrior”,这个子组件最大数量是20000个,elements是这个子组件的几个属性,有的属性甚至是有多个选项,比如“skin color”属性有白色和铜色两种。

比特币生态的游戏和元宇宙

ROOT (官方名字 Rootverse)是项目方使用BRC1024建立的第一个元宇宙,其中规定了21种部落(就是种族和相应的子种族),每个子种族有不同的数量,玩家可以免费铸造,合计21万枚人物NFT。如下图:

比特币生态的游戏和元宇宙

总结来说,BRC20是把“发行FT代币的代码”铭刻到隔离见证空间实现FT代码发行的话,那BRC1024就是把“发行元宇宙组件的代码”铭刻到隔离见证空间实现元宇宙组件的发行,而ROOT就是把“人物种族”这个组件进行了铭刻。这就是铭文可组合性的体现。

链上游戏的通用状态机

我们有了元宇宙的地图,人物和装备,那就能做出一个完整的基于BTC链的链游吗?如果是只做资产(包括NFT资产和FT资产)上链的GameFi路线,目前的基础设施足够了,但是对于更加crypto native 的链上游戏(自主世界)来说,还不够。

以太坊生态的Dojo首先提出了“可验证化链上游戏”(Provable Onchain Game)的概念。Dojo是一个链上游戏开发框架。它是一个由社区构建的、可验证化的游戏引擎及工具链,用于构建链上游戏和自治世界。Dojo允许在没有大型共识方案的情况下验证游戏状态和计算。用Cairo、Noir等语言编写或运行RISC-Zero的游戏,可以在类似浏览器的独立zkVM上独立运行,可验证的输出确保了真实的执行。换句话说,就是链下使用高效的VM进行计算,链上部分仅做数据验证来保证结果的真实有效,从而实现“去信任化”和“去中心化”。

Redux Protocol (@AutonomousRedux)参考了Dojo可验证化链上游戏的概念,借用Ordinal理论,实现了在BTC生态的链上游戏开发框架。虽然说BTC链出块时间长达10分钟,且无智能合约功能,那么要实现BTC生态的链上游戏,就只能通过链下计算链上验证的模式。

比特币生态的游戏和元宇宙

有意思的地方在于,Redux扩展了“铭文”的使用场景。众所周知,之前的铭文基本用于发币,要么是Ordinal NFT代币,要么BRC20这样的FT代币。Redux把默克尔树和铭文结合起来,提出了状态铭文(stateful inscription)的概念。其实就是把游戏里面的人物和装备属性,以默克尔树的方式进行数据建模并储存,并保证数据的不可篡改性。只要有一个地方发生了改变,根哈希就会变化。

比特币生态的游戏和元宇宙

具体做法是把状态铭文分为两部分,一部分是“不可变状态”,比如武器的健康值,护甲值,攻击值,等等。这部分以铭文的方式记录在BTC区块链上。另一部分是“可变状态”,比如之前提到的健康值,护甲值和攻击值的具体数据,这些数据会随着游戏的进行而改变。这么这些数据由链下的索引器进行计算和处理。而“铭刻”本身,其实存储的是一个指针,这个指针指向该铭文的可变状态集。

开发者负责构建世界的基础框架及其状态铭文。这包括定义哪些状态是不可变的(静态的)以及哪些状态是可变的(动态的),同时建立用户与状态铭文互动的逻辑。Redux协议提供了一个运行环境,允许开发者自定义玩家与状态铭文的互动方式。玩家则通过与状态铭文的互动来体验游戏。

从技术路线上来说,它有点像 Dojo或者Paima。Dojo是采用ZKP的形式来制作可验证化的链上游戏,Paima是采用NFT状态压缩的方式来制作可验证化的链上游戏,而Redux是采用状态铭文(利用默克尔树)的方式来制作可验证化的链上游戏,另一个区别是Dojo把Starknet当做DA层,Paima把自己的主权rollup当做DA层,而Redux使用BTC生态的DA层。

综上所述,我们发现以上几个项目分别是在游戏的不同层面利用Ordinal协议做探索:Ordz是把网页游戏的代码铭刻上链,Bitmap是把BTC区块当做随机数据源映射成地图NFT,ROOT是把人物角色和装备以代码的方式铭刻上链,而Redux是把状态机的可验证化数据铭刻上链。如果非要和以太坊生态的项目做类比的话,Ordz类比TreasureDAO,Bitmap类比SandBox和DecentraLand, ROOT类比LOOT,Redux类比Dojo和Argus。

参考资料

https://www.panewslab.com/zh/articledetails/leqfrx2o.html

https://gitbook.bitmap.land/

https://rcsv.gitbook.io/brc-420/

https://www.panewslab.com/zh/articledetails/22531q6583yt.html

https://www.brc1024.io/

https://mirror.xyz/0x62172Aaeb774F67F33769902CaD20356AC5859C2/ouEZuxR38yqRZcYjvUeVvV7iAFzBy_81fsJjy1QLcJc