一文详解递归铭文(Recursive Inscriptions):特点、用例以及挑战

 2023-12-27 14:23:49发布 2023-12-27 14:23:57更新

递归铭文(Recursive Inscriptions)是一种铭文解析标准。其语法本质上类似于使用代码来寻找图像,创建 PFP 合集铭文可通过上传图片对应的图案、颜色、动作等元素特征,然后可以将链上已存在的相应元素进行组合拼接,无需上传或下载实际图片,具有增强互操作性、降低成本、让铭文大小突破 4MB 限制等特点。

递归铭文的诞生

自 BRC-20 引起轰动开始,加密社区就开始思考:以 ERC-20 为参考的 BRC-20 能够获得成功,为何不能以 ERC-721 为借鉴,打造一个 BRC-721?

然而,由于大部分 ERC-721 将图片存放在中心化的托管处,需要支付管理费用,而 BRC-721 则直接将图像刻录在比特币链上,这带来了巨大的成本挑战。

随着 Ordinals 的风靡,比特币链上铭刻的拥堵问题日益严重,进一步加剧了成本压力。

为了解决这一问题,GBRC-721 被创造了出来,GBRC-721 成功克服了链上高昂成本的难题。在开发 GBRC-721 项目中,项目方只需上传 NFT 的组件,并将它们巧妙组合在一起。

2023 年 6 月 12 日,Ordinals 的新首席维护者 Raph 在 Github 上宣布了一项重要的进展,他将铭文“递归铭文”编号 2167 的创新合并到了 Ordinals 的代码中。

在这个版本的代码中,通过 “/-/content/:inscription_id” 这个语法,铭文之间可以引用彼此的内容,实现了超越 GBRC-721 的功能,这个创新直接在链上实现,无需依赖链下解析,从根本上解决了 GBRC-721 的问题。

因此,递归铭文诞生了,这个简单而巧妙的改动为 Ordinals 带来了无限的创造力,激发了人们的想象力。

什么是递归铭文

递归铭文是比特币区块链的一项新功能,允许创建可以存储在区块链上的复杂数据结构。

通过创建一系列铭文来工作,每个铭文都引用之前创建的铭文数据。这允许创建任意大的数据结构,因为每个铭文可以指向另一个铭文。

简而言之,递归铭文会调用先前铭文中的数据,并将该数据合并到新铭文中,这使得用户可以超越每个铭文的 4MB 限制。递归铭文通过扩展比特币 NFT 网络,将序数铭文提升到一个新的水平。

递归铭文最终允许开发人员通过一系列调用链接数据来完全在链上运行软件。许多人认为,递归铭文代表了比特币网络互操作性的又一步,以及更复杂的序数用例,不仅限于铸造比特币 NFT。

例如,用户可以创建一个包含视频游戏的递归铭文。铭文可以调用其他铭文的数据来存储游戏的图形、音乐和代码。这将允许在比特币区块链上存储大型且复杂的游戏,而不必担心 4MB 块大小的限制。

以往我们铸造铭文时,如果要铸造1000张图片,需要将这些图片一张张的上传到比特币网络中而后生成,这个过程一是工作量非常大,二是受限于比特币网络的区块容量,每张图片的大小必须限制在很小的范围内,以控制铭刻时的成本,这就会牺牲图片的质量。

递归铭文采用的方式则是先铭刻这些图片中提取出所有特征,这里每一个铭文代表图片中的每一个特征,然后再建立1000个递归铭文,每一个递归铭文利用“/-/content/:inscription_id”代码去请求“特征铭文”上的图片,最终通过编程将完整的图片进行呈现。

这个思路就像是活字印刷,在活字印刷以前,印1000页的书就要刻1000个石板,但有了活字印刷后,只需要造出有限的字库,直接从字库中拿出固定的字块进行组合拼接,就可以在很短的时间内组成需要印刷的书籍。

递归铭文的特点

提高存储效率

递归铭文使用特殊的“/-/content/:inscription_id”语法来请求其他铭文的内容,这直接使得用户可以用更少的容量和更低的手续费在比特币链上创建铭文。

递归铭文不仅可以增加序数的用例,还可以通过减少刻在每个聪上的数据量来削减交易成本。这种通过递归方式回收存储数据的能力可以很好地消除存储重复文件副本的必要性,从而显着提高存储效率。

增强互操作性

递归铭文所拥有的灵活性、可组合型和低成本优势,给铭文带来了无限的新可能,用户可以将复杂的图片视频、3D游戏等形式的内容刻在链上。

同时相对于之前一个个独立的铭文,增强了其交互性,今后铭文NFT从只能用户单向查看发展成了双向互动。

丰富了铭文表现形式

除了最早的文本铭文类型,递归铭文还新增了 “JS”和“CSS”类型,这意味着递归铭文几乎可以显示任何网页中的内容。

同时递归铭文可以引用其他铭文,就像本地网页升级为互联网一样,极大地丰富了铭文的表现形式。

递归铭文的应用

递归铭文具有灵活性度高的调用性、拼接组合性和低成本优势,给铭文带来了无限的新可能,

通过递归,Inscriptions 可以轻松引用其他 Inscriptions 的代码。一个铭文的内容现在可以被许多其他铭文使用。

这种新的可组合性开辟了我们几乎没有探索过的可能性领域,例如可以将复杂的图片视频、3D 游戏等形式的内容刻在链上。

递归铭文使建立一个内部互联网成为可能,包括铭文二次创作、GitHub 去中心化、NFT 组合碎片化等等。

利用递归铭文,我们可以实现以下创意:

链上生成式艺术:1Mask

通过对前面所提到的各种初阶方案进行进一步的搭配组合,进一步的可以实现各种合集的组合、铭文的二创等:例如 a 合集内部的 a1 与 a2 进行组合,a 合集和 b 合集进行组合。

在此基础上,BTC 链上有望诞生真正由社区驱动的原生的交互式生成艺术。

1Mask 是 BTC 链上的一个以面具为主题的全链上生成艺术项目,项目巧妙地融合了 Ordinals 的递归技术,整体由模版、算法以及铭文生成三个要素交织而成。

1Mask

1Mask

模版部分共包含七种铭文,分别对应七个独特类型的模版,其格式遵循 image/svg+xml。

算法部分的基本原理在于将用户钱包地址作为种子,运用随机函数创造多种不同的颜色组合,以用来为面具模型上色。

铭文生成机制借助递归技术实现对算法铭文的引用。每个面具铭文均内嵌了构建最终多彩面具图像所需的 HTML 代码。

实现方式在于运用随机种子执行嵌存于算法铭文中的代码,同时以特定于用户的链上数据(如钱包地址)填充该随机种子,使其具备随机性但与用户相关。因此,同一钱包地址在使用相同模版时,生成结果始终保持一致。

每当创造一则全新的面具铭文时,其中融合了用户特定的链上细节,并引用了算法铭文。

借助递归铭文技术的威力,一经新创的面具铭文进入市场或被钱包索引,它便自主激活内含于算法铭文的参考代码。这些代码运行时采用用户特定的链上数据作为输入,最终展示出独一无二、彰显个性的面具图像。

在比特币网络环境下,铭文蕴含的数据具有不可变性,从而确保了其完整性。这种特性决定了以这一不可更改的铭文数据为基础所呈现的实时图像也同样具备不可变性。

只要面具铭文中所涉及的随机种子和算法正确,用户随时都能验证创作过程的真实和准确。

在这个项目的背后,1Mask 进一步推出了一个叫做 BRC721Auto 的标准,提出了完全链上生成艺术至少由两种铭文组成:一是代码的铭文,二是个性化参数的铭文。

在代码铭文中,我们需要编码一个算法,可以根据参数的内容自动生成 HTML DOM。该 DOM 可以是画布、SVG 或其他可以被浏览器识别并相应渲染为图形的内容。

当然,代码铭文也可以引用其他铭文的内容来完成其算法。

在参数铭文中,我们需要定义一个 HTML,并在其中定义一个全局参数 p 来引用一个 Code Inscription。当普通浏览器尝试显示这个 Parameter Inscription 时,它们会识别出全局参数 p ,并自动执行 Code Inscription 中的 start () 函数来添加或修改当前 HTML 的 DOM,最终渲染这个 HTML 的内容。

因此,参数铭文可以被视为最终的 NFT。

借助 Recursive Inscription 技术,将生成图形所需的代码、代码的执行过程、验证过程都置于比特币区块链共识的保护之下。

除非有人能够对比特币发起 51% 攻击,否则没有人能够控制 ERC721Auto NFT 的生成过程,该生成过程将由比特币生态系统自主执行。

1Mask 还进一步提出了全链上生成艺术项目的三大标准。

  1. 去中心化存储自动生成图形的代码
  2. 去中心化根据用户提供的参数执行代码进行个性化图形生成
  3. 去中心化验证生成结果的正确性

根据以上标准,不难发现,基于递归铭文的链上艺术具有以下特点:

  • 独特性、随机性:作品必须是通过算法和智能合约来生成的,具有不可替代性和唯一性,可证明随机的链上揭示,同时也需要具有一定的艺术价值和美学价值。
  • 交互性:用户可以与作品进行互动和控制。
  • 去中心化:艺术完全上链,完全去中心化的保存,并且没有任何中心化的机构或个人可以控制它们。
  • 复用代码,且是基于 Ordinals 的作品

相比以太坊等其他链上的生成艺术项目,基于 BTC 递归铭文的生成艺术是完全链上的生成艺术,是独立的、不依赖任何链下资源的去中心化生成艺术。

极客项目:Orbinals

由于递归铭文的灵活性,这为极客们提供了施展才华的舞台,富有极客精神的项目进一步探索着 Ordinals 技术的各种可能性边界。

“Orbinals”就是这样的典型代表,它是一个没有推特没有官网的极客项目,项目所有的内容都是基于 Uncommon sat 之上的。

Orbinals

Orbinals

如果直接打开 Orbinals 的收藏系列网址,会发现它的天体运动系列的每个图打开之后引用的一些内容是一样的,里边参数会有一些不同,在它的递归铭文里边深扒所引用的内容后,可以发现关于项目的真实秘密藏在这个引用链接里。

Orbinals 的全称是“Orbinals: Three Body Orbit Artifacts on Ordinals”,它的背后是使用 HTML 和 JavaScript 对三个物体的运动进行编程,建立在二体仿真代码的基础之上的。

Three Body Orbit Artifacts on Ordinals

Three Body Orbit Artifacts on Ordinals

在数学与物理方程的支撑下,天体运动之美以一种简洁的方式呈现在比特币链上。

并且由于不设立 Twitter、Discord、官网等任何社交媒体,项目将很有可能使用一种很极客的方式,未来的信息将呈现在团队自己掌握的 sats 上。

Orbinals

除了项目方披露的四个渠道以外,还隐藏了一个彩蛋:在项目引用的铭文内容中,代码中藏着一串说明:future Communication channels on /sats/ acknowledge,而 acknowledge 也正好是归属于团队的一个 sats。

Orbinals隐藏彩蛋

Orbinals隐藏彩蛋

BRC69 项目:Orditroops

BRC69 是 Luminex 发布的打造递归集合的新标准(https://github.com/luminexord/brc69),该标准利用递归铭文来优化使用序数协议在比特币上铭文的成本,有助于在比特币上推出递归集合。

此外,BRC69 提供高度灵活性,并为更多增强功能和功能打开了大门,为更有趣的链上功能铺平了道路,例如预展示功能等。

借助 BRC69,可以将 Ordinals 收藏的铭文成本降低 90% 以上,这种减少是通过 4 个步骤的过程实现的:

  • 记录特征
  • 部署集合
  • 编译集合
  • 创建资产

只要 collection 创建者按照当前要求发布其藏品的官方铭文列表,所有这些过程都可以在不需要外部索引器的情况下进行。

此外,图像将自动渲染在所有已经实现递归铭文的前端界面上,无需额外的步骤。

Orditroops

Orditroops

Orditroops 就是基于 BRC69 的一个递归 NFT,它落实了 BRC69 协议的内容,增加了特性的可组合性,缩小了图片的占用空间,图片相当高清,士兵、武器、装扮的灵活搭配都给这个 NFT 集合增添了很多特色和乐趣。

3D NFT 项目:OCM

OCM(On-Chain Monkeys)是应用递归铭文标准的第一个 3D NFT 项目,最早是 2021 年 9 月在以太坊上创建的 NFT 项目。

今年早些时候,OnChainMonkey 系列作为第一个被刻在比特币上的 10k 系列出现。

OCM(On-Chain Monkeys)

OCM

作为一种高分辨率的 3D 动画铭文,OCM 很快以细节和质量脱颖而出。要知道,在它之前大部分铭文仍然是小文本文件或低分辨率图像。

即使在 4K 或 8K 显示器上 OCM 也能提供较好的清晰度,这种质量是通过每个大小不超过 1 KB 的文件来实现的,这是 OCM 之前的项目很难达到的。

OCM 之所以能够实现这些,是因为它率先使用了强大的递归铭文。OCM 的前 300 个刻在比特币上的连续 300 个聪上,从 2009 年的第 78 区块开始,按其聪数升序在链上排序。

OCM 构建者使用了压缩的代码,并且引用了 P5.JS 和 Three.JS 库,以供未来的创建者使用。用户可以在浏览器查看并访问库,渲染 Dimensions Interactive Art 时自动在 Ordinals 协议中进行解压缩。

通过递归铭文,OCM 高效地利用了区块空间(每个小于 1 KB),并且实现了随机的链上揭示,将高清品质、3D、动画和互动艺术等特征集于一身。

单人链游

一个游戏需要图片、前端、业务逻辑等多种组件素材构成,如果素材总大小小于 4M,则可以通过铭刻一个 Sat 完成,不需要使用递归铭文。

有两种情况下,适合使用递归铭文技术:

  1. 素材本身大(大于 4M),比如一个背景图 5M 则无法直接铭刻到一个 Sat 上,但是可以拆分后,放入不同 Sat 进行引用显示出来;
  2. 如果要实现更好业务逻辑,如有 100 个 Sat 铭文是一个系列的游戏,使用的是同一个 JavaScript(JS)文件,在这种情况下,也适合会使用递归铭文,因为没有必要每个 Sat 都将 JS 文件重新铭刻一次。

游戏的 HTML(前端) 和 JS (业务逻辑)都刻在 BTC 的“聪”上,互相引用,便可以生成一个单人 H5 小游戏。

以下是这类单人 H5 小游戏的示例:

贪吃蛇游戏

贪吃蛇游戏

贪吃蛇游戏

Bitcoin Snake Game,这个游戏是典型的 H5 单人小游戏,也是大家熟知的游戏:贪吃蛇。

这个游戏的前端和执行逻辑全部写在这个 Sat 上,并没有使用递归铭文技术,这个系列 NFT 总量为 100 个。

其实,更加好的方法应该是在一个 Sat 上铭刻 JS 文件(业务逻辑),然后用 100 个不同的铭刻 HTML 的 Sat 去引用(或者叫做递归)这个 JS 文件所在的 Sat 生成铭文。这样会更加简洁。

连连看游戏

连连看游戏

连连看游戏

该游戏为 3*4 数位方格(此为简单模式,复杂模式为 6*6 数位方格),一次可以点开两个方格,当两个方格图片相同时,则固定下来显示;不同时候,则直接显示为问号,在一定的点击次数内完成才算胜利。

限制点击次数,来考验玩家的短期记忆力,类似连连看游戏。

这个游戏的 JS 和 HTML 全部铭刻在这个 Sat 里,但是其引用了“背景图片”(background image),所以是递归铭文的一个简单应用。

背景图片

背景图片

MUD 游戏

MUD 游戏

MUD 游戏

Descent into Darkness,是一款基于文字的角色扮演游戏,结合了经典的 MUD 游戏元素和 ordinals 技术,为玩家提供了一个独特的游戏体验。

在 Descent into Darkness 中,玩家将扮演一个冒险者在黑暗中寻求出路,游戏中有怪物和任务以及 BOSS 战,玩家需要与怪物战斗以完成任务,解锁新任务以及获取金币升级装备和购买物品。

以上 3 个单人 H5 小游戏,是非常简单的应用,作为游戏是不完备的,游戏开始、进行、结束等过程都没有上链,游戏的过程也无法进行存档,游戏结束后,Sat 的铭文也没有任何改变。

只定义了游戏的逻辑,而没有保存游戏的状态,这只是 BTC 链游的初步尝试。

多人全链游戏:BTC PixelWar

BTC PixelWar 是一款 BTC 全链上多人游戏,该项目声称是 BTC 链上的第一款全链多人游戏。

BTC PixelWar

BTC PixelWar

参与者在 256*256 像素格的画布上,进行创作。可以直接点击像素点,也可以将图片上传生成像素点放到画布上。每次 Submit 都会产生一个整张画布最新状态的铭文,每次产生的铭文都引用上次已经产生的铭文状态,铭文层层递归。

这或许是目前市面上递归次数最多的一个项目,也是递归铭文应用领域一个具有标志意义的应用。

该项目提出了一种全新的标准,“BRC721Cofound”,该标准利用递归铭文使所有比特币用户可以在同一张画布上进行协作,并记录其过程。

每个时刻都是一个铭文,描绘了共同创建的画布这一时刻的样子,该铭文称之为“时刻铭文”,包含了此时新添加或更新的像素,并且包含了对之前“时刻铭文”的引用以及处理两个时刻之间图像变化的“代码铭文”。

考虑到共同参与作画的人数可能很多,渲染最新画布状态需要深度递归才能加载每个人绘制的像素,然而此过程可能会导致加载时间的延长。

为了解决这个问题,“代码铭文”设计为在当前“时刻铭文”渲染完成后对最新画布状态进行快照。然后将此快照存储在当前“时刻铭文”的 DOM 树中。

因此,顺序浏览器可以通过缓存每个渲染时刻铭文的 DOM 树来简化渲染过程,从而减少递归层数。

总体来说,BTC PixelWar 是一款具有创新性和标志性的 BTC 多人全链上游戏,实现了多人协同创作的同时,优化了渲染过程,引入的“BRC721Cofound”标准为比特币链上的多人游戏应用领域开辟了新的可能性,也展示了递归铭文在游戏和社交领域的潜力。

链上音乐引擎:Descent into Darkness Music Engine

输入任何单词或短语即可生成独特的链上音乐,该音乐引擎是 MUD RPG 游戏“Descent Into Darkness”的配套产品,通过输入关键词来生成音乐。

Descent into Darkness Music Engine

Descent into Darkness Music Engine

创始人 Ratoshi 强调了 ChatGPT 在开发该项目使用音乐方面发挥了重要作用,而使用递归铭文有助于显著节省成本。区块链技术和人工智能的特殊结合,向复古电子游戏的经典音乐致敬。

递归铭文的挑战

递归铭文开启了链上铭文 2.0 的时代,使得 BTC NFT 的玩法越来越丰富,BTC NFT 走出与以太坊等其他链的 NFT 完全差异化的道路已经越来越可能了,未来的想象空间很大。

但是,递归铭文的实现依赖于 Ordinals 协议,其实现建立在 Ordinals 协议之上。如果 Ordinals 协议没有植入或之后删除了“引用”部分的代码,那么递归铭文将无法使用。

从短期来看,递归铭文虽可能为比特币生态带来一定繁荣。但是,图片、电影、代码存储库、软件代码以及各类新数据铭文都有可能堆积在比特币的内存池中。

随着注册商为确认交易而出价越来越高,只想用比特币支付购买费用的普通用户将不得不支付昂贵的溢价。

因此,从长期来看,比特币网络可能变得更加拥堵,手续费也会更加昂贵。

此外,递归铭文可能会让欺诈者更容易地在比特币链上添加恶意软件。欺诈者可以将恶意软件分为多个文件,并在人们下载游戏、文件或软件时向其设备添加恶意软件,可能导致下载者丢失资金。

总的来说,Ordinals 协议中的递归升级允许铭文相互交互,从而实现新的、令人兴奋的用例。有了这个功能,生成艺术、链上展示和高效存储现已成为现实。

同时,我们能够看到,BTC 生态内的开发者们正在继续沿着链游、生成艺术等方向做着各类创造与开发,基于递归铭文的作品不断出现,未来可以期待具有复杂产品逻辑的链上游戏、元宇宙、交互式生成艺术等项目的诞生。

推荐阅读