作者:Techub 独家解读
撰文:Tia,Techub News
「比特币需要真正的可编程性,而不是混乱。」
目前,比特币生态系统中的资产标准高度碎片化,BRC-20、Ordinals、Runes 等协议彼此独立,缺乏互操作性。这种情况导致用户和钱包开发者需要应对复杂的格式与执行模型。
此外,由于比特币解锁脚本和待解锁脚本的 UTXO 运作模型,缺乏像以太坊一样的全局状态和图灵完备的编程环境,这些协议往往依赖离线索引器来维持状态。如 Ordinals 协议利用 SegWit 和 Taproot 在不超出大小限制的情况下永久存储信息而催生的 BRC-20,还是需要完全依赖链外索引器来维护代币余额的全局状态。这增加了操作成本和信任风险。而由 Nubit 推出的 Goldinals 的设计初衷正是为了解决这些痛点。
Goldinals 是比特币上信任最小化的同质化代币标准,旨在解决当前比特币资产生态中标准化不足的问题,同时保持比特币的去中心化与安全性。通过创新技术和设计,Goldinals 为比特币用户和开发者提供了一种高效、灵活的代币管理方式。为了实现这一目标,它在技术和功能设计上做出了重要创新,其核心是需要为比特币构建一个 zkOracle 并通过 BitVM 进行验证。
2024 年 6 月 5 日,Goldinals 背后的开发协议 Nubit 完成 800 万美元种子轮融资, Polychain Capital 领投,Nomad Capital、Spartan Group、L2IV、Big Brain Holdings、GCR、Protagonist、Gate Ventures、Animoca、Mask Network 等参投,最新一轮融资使 Nubit 的总融资额达到 1200 万美元。
Ordinals、BRC-20、Runes 及其缺乏互操作性的问题
Ordinals
Ordinals 通过利用 SegWit 和 Taproot,许用户将任意数据(如文本、图像或其他元数据)刻印到比特币的一个最小单位(satoshis,简称 sats)上。
BRC-20
BRC-20 是一种无状态的比特币代币标准,用于实现代币的铸造、转账和销毁功能。BRC-20 并未像以太坊 ERC-20 那样内嵌在区块链逻辑中,而是通过 Ordinals 的数据存储功能实现的「外挂式」代币标准。BRC-20 的代币操作(如铸造和转账)是通过 Ordinals 协议,将状态信息以 JSON 文件形式刻印到比特币交易中。这些 JSON 数据定义了代币的名称、供应量和持有者的地址。
且 BRC-20 不像以太坊 ERC-20 那样依赖区块链全局状态,而是需要链外索引器扫描所有相关交易,重建代币的当前状态。例如,要查询某个地址的代币余额,索引器需要读取所有历史交易并计算余额。
Runes
Runes 是一个类似 BRC-20 的比特币代币协议,其核心思想是将代币的状态和操作嵌入到比特币交易中,通过分析比特币的 UTXO(未花费交易输出)模型来维护代币状态。Runes 利用比特币交易的 OP_RETURN 字段或其他标准字段,记录代币的转账和操作信息。每个 Rune 代币操作都通过普通的比特币交易来完成。
互操作性问题
以上几类协议的实现方式均不同。Ordinals 使用嵌入到比特币交易中的数据格式来存储信息,BRC-20 则使用 JSON 格式定义代币状态,而 Runes 更依赖于比特币的 UTXO 模型。这些格式彼此不兼容,导致在一个协议中存储的数据无法直接被另一个协议识别和解析。
并且,BRC-20 是一种无状态实现,所有代币状态依赖于外部索引器重建,而 Runes 的状态通过 UTXO 模型直接存储在区块链上,Ordinals 则聚焦于单个 satoshi 的标记。这些机制无法共享统一的状态管理方式。
不同协议定义了各自的代币格式和规则,无法直接交互或互相支持实现互操作性。
而 Goldinals 则通过引入一个可兼容 Ordinals/Runes/BRC-20 的且无需链外索引器来维护状态的新标准,解决了不同标准无法兼容的互操作性困境。
Goldinals 核心设计与技术实现
Goldinals 的核心功能包括:
-
Deploy:初始化协议参数并创建新代币实例。
-
Mint:铸造新代币并分配给指定地址。
-
Transfer:在地址之间转移代币。
-
Burn:销毁代币并减少供应量。
尽管与 ERC-20 和 BRC-20 类似,但由于比特币无状态的设计和 Turing-incomplete 的脚本语言,Goldinals 的实现更为复杂。与以太坊的无缝原子调用不同,Goldinals 需要在多个步骤中仔细管理状态更新和验证,确保所有操作均继承比特币的安全性。
Goldinals 状态机及具体状态更新过程
Goldinals 的状态机由三大阶段构成:Prepare(准备)、Kickoff(启动) 和 Challenge(挑战)。
Prepare 阶段:记录操作意图
在这一阶段,操作的发送方通过比特币交易提交操作意图(如转账或铸造),并将相关元数据嵌入到交易中。发送方使用比特币的 OP_RETURN 字段记录代币操作的参数,例如接收地址、金额和操作类型。这笔交易被记录在比特币中,确保操作意图的透明性和不可篡改性。ZKOracle(零知识证明的状态机)扫描比特币区块,提取并记录与 Goldinals 协议相关的 Prepare 交易,将其纳入全局状态。
Kickoff 阶段:验证和启动操作
在 Prepare 阶段完成后,发送方需要提交一笔包含零知识证明的交易,以验证操作的合法性。发送方在链下生成一份零知识证明(ZKP),证明其操作符合协议规则(如余额充足、操作参数合法)。这份证明通过一笔 Kickoff 交易提交到比特币网络,并由 ZKOracle 进行验证。Kickoff 阶段的成功执行表明操作的合法性已被证明,但此时操作尚未最终确认,还需等待 Challenge 阶段完成。
Challenge 阶段:审查和异议
Challenge 阶段是状态机设计的核心,旨在提供一个去中心化的审查机制,确保操作的合法性。在挑战期内,任何参与者(挑战者)都可以对提交的操作提出异议。例如,若提交的零知识证明不符合规则,挑战者可以提供反证。挑战者基于 BitVM 提供的交互式证明机制,与发送方进行验证交互。若发现问题,挑战者可提交链上交易阻止操作确认。如果在挑战期内没有任何异议,操作将被永久确认,并由 ZKOracle 更新到 Goldinals 的全局状态中。
转账 & 铸造等实现细节
转账
在转账操作中,发送方首先通过 Prepare 阶段提交一笔比特币交易,将代币转账意图记录在链上。ZKOracle 记录并验证这笔交易。在 Kickoff 阶段,发送方提交一份零知识证明,证明其余额充足且操作符合规则。在 Challenge 阶段,挑战者可验证提交的证明和交易是否符合协议规则。如果没有挑战,转账最终被确认,接收方地址的余额被更新。
铸造
铸造过程类似于转账。发送方在 Prepare 阶段提交包含铸造参数的交易。随后在 Kickoff 阶段,发送方需提供零知识证明,验证铸造操作符合协议设定的规则(如供应上限和分配限制)。在 Challenge 阶段,挑战者验证操作是否符合条件,若无异议,铸造操作最终被确认。
余额查询
用户可以通过比特币 Core 的 scanblocks
命令,扫描所有与其地址相关的 Prepare 交易,并检查这些交易的最终状态。通过这种方法,用户无需依赖外部索引器即可验证其余额。
结语
与其他协议(如 BRC-20)相比,Goldinals 拥有显著的优势。它摒弃了对外部索引器的依赖,所有验证均通过比特币网络直接完成,这不仅提升了去中心化程度,也让用户摆脱了对第三方服务的信任。此外,Goldinals 的交易流程更加高效,避免了 BRC-20 需要多个比特币交易才能完成单次操作的繁琐,从而显著降低了复杂性和交易费用。同时,通过零知识证明的引入,Goldinals 具备了极强的可编程性,可以支持多签钱包、条件转账以及基于外部事件触发的复杂逻辑,拓宽了协议的适用范围。
与此同时,非常重要的一点是,Goldinals 在设计中引入了一种统一的资产标准,整合了现有协议的功能和逻辑。Nubit 还正在构建一个特殊的编译器,将用户友好的代码转换为针对比特币的优化脚本,同时进行形式验证以数学检查每个程序的完整性。
Nubit 联合创始人 Hanzhi 表示:「比特币需要真正的可编程性,而不是混乱。」有了强大的基础和标准,比特币生态系统将从混乱转向可互操作的正和创新。
免责声明:本文提供的信息不是交易建议。BlockWeeks.com不对根据本文提供的信息所做的任何投资承担责任。我们强烈建议在做出任何投资决策之前进行独立研究或咨询合格的专业人士。