Cregis Research:解读BRC-20的
Cregis Research:解读BRC-20的前世今生
一、BRC-20 背景与发展历程
随着区块链技术的快速发展,各种加密货币和代币协议不断涌现。在以太坊的 ERC-20 代币协议成为行业标准之际,比特币社区也迎来了实验性质的 BRC-20 代币标准。BRC-20 标准采用简洁、安全的设计理念,实现了代币的部署、铸造和转移。BRC-20 基于比特币网络,通过在聪(Satoshis)上记录数据的方式实现代币的发行和管理。本文将介绍 BRC-20 的原理和应用以及优势和缺陷等方面的内容,以期为读者提供全面深入的了解。
长期以来,人们觉得比特币生态相对于以太坊来说不具有扩展性,因为除了转账交易以外,区块上几乎无法保存任何数据。BRC-20 近期爆火的原因在于它是基于比特币的代币标准,将 NFT 和其他代币引入了比特币生态。
重要的里程碑:
2020 年 1 月,比特币核心开发者 Pieter Wuille 发布了 BIP 341 和 BIP 342 比特币改进提案为比特币生态带来了可能性。
2022 年 6 月,Casey Rodarmor 对 BIP 342 中的Tapscript 做了技术延伸与扩展,并且提出新的比特币改进方案ordinal (序数)和 inscription(铭文),主要实现了比特币链上存储数据的功能。
2023 年 3 月,Domodata 进行 ERC-20 实验,通过Ordinal 协议和 inscriptions 功能,向比特币链上存储 json 数据,证明链下代币余额状态,变相的实现了向比特币生态发布代币的功能。
Domodata(BRC-20 作者)认为BRC-20 标准只是个有趣的实验,通过实验向我们展示了可以通过以创建链上铭文的方式证明链下代币余额的状态。他觉得这只是一次尝试,BRC-20 标准不应该被认为是唯一标准,同时鼓励比特币社区的人们共同努力修补和优化标准,并且BRC-20 的作者还认为在比特币上发行资产目前是存在着更好的方案的。
二、BRC-20 前置知识
BRC-20 是基于 Ordinal 协议的代币标准。Ordinal 协议是一种针对比特币网络的扩展协议,它允许在比特币聪上铭刻数据。基于 Ordinal 协议,BRC-20 可以实现代币的发行、转移和交易。
BRC-20 的原理相对复杂,需要了解比特币网络上的一些概念,比如聪(Satoshis)、Ordinal、Inscription 和 Taproot 升级等。其中,聪是比特币网络的最小单位,Ordinal 理论对每个聪进行编号,Inscription 则是将数据刻在每个聪上,而 Taproot 升级相关的技术则是控制这些 Inscription 的机制。这些概念共同构成了 BRC-20 标准的运作逻辑。
(一)Satoshis(聪)
Satoshis(聪)不是比特币,而是比特币的最小单位, 1 个比特币可以分割成 1 亿个聪。
(二)Ordinal(序数)
序数理论是一种协议,用于将序列号分配给 satoshis(比特币的最小细分),并在交易花费时跟踪这些 satoshis。这些序列号都是很大的数字,比如这个 804766073970493 。每个聪,也就是一个比特币的 ¹⁄₁₀₀₀₀₀₀₀₀,都有一个序号。
ord 是一个开源项目(https://github.com/casey/ord)。该项目包括几个部分一个是ordinal方案对比特币的改进建议,另外一个是用 rust 开发的 ord 工具,集成了索引、区块浏览器和命令行钱包的功能。后面我们会讲解到如何通过 ord 工具包刻录自己的铭文。
(三)inscription(铭文)
Ordinal 协议通过为每个聪分配唯一编号并添加注释来实现扩展功能。这个过程被称为铭文(inscription),即为聪赋予衍生含义。注释即铭文内容写在了交易见证(witnesses)当中,使得聪可以刻写任何类型的内容。铭文内容大小限制在 3.9 M 以下会比较安全,因为铭文内容是包含在交易中的,所以内容越大,铭文交易需要支付的手续费就越高。
我们可以通过下载Bitcoin Core 和 ord,创建自己的 Inscriptions。
#安装 ord
curl --proto '=https' --tls v1.2 -fsLS https://ordinals.com/install.sh | bash -s
#打印 ord 版本号
ord --version
#创建比特币核心钱包
ord wallet create
#获取钱包地址
ord wallet receive
#查看待处理交易
ord wallet transactions
#创建 Inscriptions(铭文)
ord wallet inscribe --fee-rate FEE_RATE FILE
#发送铭文
ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>(四)BIP 341 和 BIP 342