2024-10-19
Fractal、OP_NET、AVM、BRC100、可编程符文,BTC 还有哪些扩展方案?
Fractal、OP_NET、AVM、BRC100、可编程符文,BTC 还有哪些扩展方案?
自 2024 年第一季度以来,BTC 生态的投机热情并不及 2023 年,但随着越来越多的开发者加入并熟悉 BTC 模型,BTC 生态在技术层面的进展可谓神速,特别是在可编程性扩展方案上。之前 Trustless labs 介绍过 BTC 的 L2 与 UTXO 绑定、BTC 再质押,本文将继续查缺补漏,对关注度极高的 Fractal Bitcoin 以及 BRC 20、CBRC、ARC 20 等 BTC 元数据协议的可编程方案进行介绍。
Fractal 主网币和 sats 的关系
Fractal 主网币的挖矿产出是为了保证链运行,fb 链和 btc 基本一致,没有直接运行智能合约的能力,因此复杂的 defi 如 swap 功能是需要额外的基础设施。Unisat 承诺会将 brc 20 sats 将用于 swap 使用,这个 swap 在 Fractal 上运行,也需要自己的节点,这些节点为了自负盈亏收取的服务费用即为 sats。
OP_NET
官网:https://opnet.org/#
OP_NET 于 2024 年第三季度提出,是致力于在比特币网络上引入类似以太坊的智能合约功能,但更符合比特币的特性和架构。在 OP_NET 上进行交易,只需使用原生比特币,无需使用其他代币来支付节点激励或交易费用。
OP_NET 提供了一套完整、紧凑且易于使用的开发库,主要使用 AssemblyScript 编写(类似 TypeScript,可以编译为 WebAssembly),其设计目标是简化比特币相关技术的创建、读取和操作,尤其是在智能合约和比特币智能铭文(BSI, Bitcoin Smart Inscription)方面。
OP_NET 的核心功能与特性
OP_NET 保留了比特币的区块共识和数据可用性,确保所有交易都存储在比特币网络上并受到其不可篡改的保护。通过一个执行虚拟机(OP_VM),OP_NET 可以在比特币区块上执行复杂计算,所有提交的 OP_NET 交易都标记为 “BSI” 字符串,并在 OP_VM 中执行以更新合约状态。
OP_NET 节点运行着一个 WASM 虚拟机,因此支持 AssemblyScript、Rust 和 Python 等多种编程语言变成,通过利用 Tapscript 启用高级智能合约功能,使开发者无需许可即可直接在比特币区块链上部署和交互智能合约。
这些智能合约的代码被压缩后,写入了 BTC 交易中。这回生产一个 UTXO 地址,被视为合约地址,用户与合约交互需要向这个地址转账。
在于 OP_NET 网络交互时,除去 BTC 交易的手续费外,用户还需要额外为支付至少 330 聪的手续费,这是为了确保交易不会被 BTC 主网矿工认定为「粉尘攻击」。用户可以添加更多的 gas 费用,OP_NET 网络中交易的打包顺序会根据手续费排序,不完全依靠 BTC 区块打包顺序。如果用户支付的 OP_NET 交易费大于 250000 sat,超过部分将奖励 OP_NET 节点网络。
为了在 DeFi 应用中扩展 BTC 的使用,OP_NET 提供了 Proof of Authority 系统,允许 BTC 封装为 WBTC,主网 BTC 是通过多重签名的方式被桥接入 OP_NET 协议。
值得一提的是,OP_NET 与 SegWit 和 Taproot 兼容,并且其代币设计不绑定到 UTXO,避免了将代币错误发送给矿工的风险,进一步提高了系统的安全性和可靠性。通过这些特性,OP_NET 为比特币生态系统注入了更强的智能合约功能和去中心化应用支持。
BRC 100
文档:https://docs.brc100.org
BRC-100 是一种基于 Ordinals 理论构建的去中心化计算协议,通过给 brc 20 加入“销毁”、“铸造” 等新操作,通过对这些新操作的结合,在索引器中记录不同地址持有的代币余额与状态,从而实现复杂的 defi 操作。开发者他也可以在 BRC-100 协议的基础上扩展更多的操作符,来扩展业务。
扩展和兼容性
计算能力和状态转换可以通过 BRC-100 扩展协议进行扩展。所有 BRC-100 扩展协议相互兼容,即实现 BRC-100 及其扩展协议的代币可以在所有应用中使用。同时,BRC-100 协议及其扩展协议可以通过改进协议进行更新和升级。
BRC-100 协议及其所有扩展和改进协议统称为 BRC-100 协议栈,所有 BRC-100 扩展协议相互兼容,即实现 BRC-100 及其扩展协议的代币可以在所有应用中使用,并且支持跨链操作。有 BRC-101 ,BRC-102 和 BRC-104 :
BRC-101 是一个去中心化的链上治理协议,定义了如何治理基于 BRC-100 协议或其扩展协议的应用程序。
BRC-102 是针对 BRC-100 资产的自动化流动性协议,它为基于 BRC-100 协议栈的一对代币定义了基于“恒定乘积公式”(x*y=k)的自动化做市方法。
BRC-104 是一个流动性质押/重质押池协议,定义了如何通过质押将 BRC-20 资产、符文资产和 BTC 包装为 BRC-100 资产,以及如何将 BRC-100 资产奖励分配给 BRC-100 资产、BRC -20 种资产、符文资产或 BTC 质押者。 BRC-104 是 BRC-100 协议栈的 Asset Wrapping 协议和 Yield Farming 协议。
可编程 RUNES(Protorunes)
符文本质上是一种数据结构,存储在比特币的 OP_RETURN 字段中。与其他基于 JSON 的协议(如 BRC-20)相比,符文更为轻量化,不依赖复杂的索引系统,保持了比特币的简单性和安全性。
可编程符文是符文的扩展层,允许创建带有符文的可编程资产。引入这些资产可以存在于 UTXO 中,并支持类似 AMM(自动做市商)协议的操作。可编程符文的核心理念是在比特币区块链上利用数据,通过虚拟机或类似技术,实现智能合约的功能。
Protoburn 和 Protorunes
Proto-Runes 的关键机制之一是 Protoburn,它允许用户将符文销毁并转换为仅供子协议使用的表示形式,这些符文资产通过 Runestone 的指针或符文协议上的 edict(法令)目标化,从而在子协议中生成新的资产形式,也就是可编程符文 Protorunes。
原型销毁通过将符文锁定在 OP_RETURN 输出上来确保其不可花费性。这种机制确保了符文资产能够安全地从主协议转移到子协议,从而允许在子协议中进行进一步的操作和交易。
这一过程通常是单向的,即资产从符文协议转移到子协议中,但无法直接转回。Protoburn 消息嵌入在 Runestone 的 Protocol 字段中的 Protostone 内,其协议标签为 13 (符文协议标签)。消息包含目标子协议 ID 以及资产的指针等信息。这一机制为子协议之间的资产管理和转移提供了基础,并且允许原子交换(Atomic Swaps)等功能。
Proto-Runes 协议的运行机制
Proto-Runes 协议的运行机制是:索引器首先处理符文协议中的 Runestone 特性,然后按顺序处理子协议的协议消息。所有的 Protostone 按照它们在 Runestone 的 Protocol 字段中出现的顺序依次处理。为了避免复杂性和潜在的安全漏洞,Proto-Runes 协议禁止递归执行原型消息,即每个原型消息只能执行一次,任何递归指令将导致交易失败,未使用的资产会被退还。
在 Proto-Runes 协议中,LEB 128 (Little Endian Base 128)是一种用于表示大整数的可变长度编码方式。LEB 128 编码被广泛用于表示协议字段和消息,以节省空间并提高处理效率。每个子协议都有一个唯一的协议标签,用于区分不同的子协议。这些标签以 u 128 值表示,并且在 Protostone 中作为 LEB 128 编码的值出现。指针用于指定 Protostone 的目标位置,可以是交易输出中的 UTXO,也可以是另一个 Protostone,甚至引用原型消息,以便在子协议中实现复杂的操作逻辑。