几个月前,Ordinals协议刚出现时,自己兴奋了很久,从直觉上认为这是一个很具有颠覆性的东西,因此当时整理了关于Ordinals协议的基本概念:
颠覆式创新:浅谈比特币区块链上的NFT协议Ordinals
在短短几个月时间里,Ordinals协议经历了几波沉寂和爆发,基于Ordinals协议逐渐生长出了很多新东西:
最早是比特币链的NFT,其中以太坊蓝筹NFT项目方BAYC在比特币链上发布了一个NFT项目(Twelve)为里程碑,使得更多的人和资本开始关注Ordinals;
然后出现了比特币链的域名项目,包括.sats、.ord、.btc等,对标以太坊的ENS(Etherum Name Service);
再到后来,对标以太坊的ERC-20,出现了BCR-20代币标准,使得在比特币链上发行代币成为可能,这将市场炒作推向了新的高潮。比特币网络开始出现拥堵,甚至短期内矿工的交易手续费超过了区块奖励。
现在,又出现了BRC-20的升级版ORC-20,以及与ERC-721类似的BRC-721。
一波波热炒过后,Ordinals协议并没有昙花一现,而是出现了越来越多的应用和产品,比特币链上逐渐开始出现早期生态。
未来还会出现什么,我们无法预知,但是可以明确的是,Ordinals协议的出现为比特币生态带来了很多可能性,值得我们花时间去了解和参与。
那么,如果我们想要理解这些层出不穷的新概念,需要剥茧抽丝,梳理这些概念背后的逻辑,然后才能真正游刃有余地参与其中。
这一切的起源开始于2023年1月,Ordinals协议的横空出世。
我们知道比特币的总量是2100万枚,最小单位是sat(聪),1BTC=1亿聪。
简单说,Ordinals协议是一个给sat编号的系统,给每个sat一个序列号,然后在交易中追踪它们,这样就赋予了每个sat的独特性。
序号按照它们被开采的顺序分配给sat:第一个区块中的第一个聪的序号为 0,第二个聪的序号为 1,第一个区块的最后一个聪的序号为4,999,999,999。
同时Ordinals协议还支持Inscriptions(铭文),这是一种将任意内容(图片、视频等文件)附加到单个sat的协议,可以将它们变成比特币原生的数字艺术品。
铭刻是通过将要铭刻的聪发送到交易中来完成的,该交易会在链上显示铭文内容。然后,此内容与那个聪建立联系,将其变成一个不可改变的数字艺术品,可以被追踪、转移、储存、购买、出售。
具体可以参见之前的一篇文章:
如果想要理解BRC-20的运作机制,要先明白比特币的交易机制。
比特币的交易都需要指定输入和输出,输入就是付款方要使用的UTXO,输出就是支付给收款方的UTXO。
简单说,比特币的UTXO(Unspent Transaction Output,未花费的交易输出)可以类比现实世界中的现金。
就像我们手中拥有若干张现金纸币,每张纸币都有一个面额,比特币的UTXO也是类似的。每个UTXO都有一个确定的金额(比特币数量),并且只能被用来支付一次,一旦被花费,就不能再次使用。
举个例子,假设小明手中有两个UTXO,一个面额是10比特币,另一个面额是8比特币。
如果他要支付15个比特币给小红,他必须将这两个UTXO作为交易的输入都花费掉。
这笔交易的输出是3个UTXO,一个是面额为15比特币的UTXO给到小红,一个是面额为2比特币的UTXO作为找零留在自己钱包里,还有一个面额为1比特币的UTXO作为交易手续费给到矿工,矿工会验证这笔交易并发送到区块链上。
这就像在现实世界中,如果我们手中只有一张10元和一张8元的纸币,需要支付15元的时候,我们也必须将这两张纸币都使用掉,而对方会给自己3元作为找零。
在比特币交易中,UTXO的使用是非常重要的。每个交易都需要指定输入和输出,输入就是要使用的UTXO,输出就是支付给收款方的UTXO。
比特币网络会验证这些交易是否有效,主要是检查每个输入是否合法(即是否已经被花费),以及输出的数量是否与输入数量相等。
总的来说,比特币的UTXO机制就像现实世界中的现金一样,每个UTXO都有确定的数量,只能被使用一次,而且交易必须平衡输入和输出的数量。这种机制保证了比特币交易的安全性和可靠性。
基于Ordinals协议,我们铭刻过程中可以附加信息,如果附加的是图片和视频,就变成了比特币NFT,而按照一个统一标准来附加一个账本,则这个聪就变成我们所谓的BRC-20代币了。
可以说BRC-20代币是经过特殊处理的 NFT(JSON 数据),主要记录代币在比特币区块链中执行的操作记录。
对于每个操作,如部署,铸造,转帐的过程中,区块链中记录了一种 JSON 文件。这些 JSON 是 BRC20 标准的基础,它们支持可追溯性和验证。
BRC-20主要为比特币网络发行代币提供了3个标准,包括 BRC-20代币的部署 deploy、铸造 Mint、转移 Transfer 等。开发者按照这个标准执行就可完成 BRC 20 代币的建立和发行。
从BRC-20的运作机制可以看到,BRC-20只是将代币的账本放到比特币区块链上,在实际使用过程中,需要钱包自己去查询所有区块信息,汇总统计所有聪的所有铭文,然后才能统计出当前地址代币的余额、有效性等。
因此,BRC-20的记账是去中心化的,但是读账是中心化的。
虽然BRC-20代币看起来非常原始,似乎没有什么价值,但是BRC-20代币为比特币带来了新的使用场景,很多人是因为炒作BRC-20代币,才开始使用比特币钱包和比特币网络。
只有加密原生场景才能促进比特币的采用,而Ordinals协议是比特币被采用的催化剂。
由于BRC-20标准存在诸多限制,因此市场上又出现了ORC-20标准。
ORC-20带来的改变:
1、可以改变初始供应量和最大铸币量。
2、命名空间没有固定限制,可以使用任意大小的名称。命名确实是痛点,尤其是绝大部分brc20四字母单词已经被提前铸造的情况下。
3、通过 UTXO 模型来确保在交易过程中没有重复消费。
4、允许取消交易,使用"op": "cancel",即可取消nonce的交易.
5、允许已经部署的BRC-20币向ORC-20转移。只有BRC-20的部署者才能操作转移命令。
ORC-20局限性:
1、复杂,基于比特币生态的ordinals,简单作为一个优点看待,但是在BRC-20将发币问题复杂化的基础上,ORC-20进一步复杂了
2、中心化。
3、强制版税,就是把交易市场收版税的形式放到了规则中。
4、路径依赖。
总结一下,就是ORC-20取消了一些BRC-20的限制,并且定义了更多的操作,但是没有解决BRC-20的根本性问题,即中心化问题。
ORC-20协议是否能够兴起,目前还是未知的,毕竟BRC-20已经形成了热度,具有先发优势。
但是毕竟现在还处于早期阶段,依旧存在诸多变数,比如全球第二大交易所欧易在大力支持BRC-20,而全球最大的交易所币安为了与之竞争,转向选择支持ORC-20。
简单地说,就是比特币手续费太贵了,刻录小图片成本很大,所以我们看到大家现在只能铭刻文本格式了(或者1-2kb的图片)。
而以太坊上的NFT,图片或视频数据一般都不直接放在区块链上,而放在链下的存储中,比如IPFS(一种去中心化存储系统)。
这个BRC-721协议,就是实现比特币上NFT的图片放到IPFS的协议。
BRC-721协议依然有三个函数:deploy,mint,transfer。
(1)deploy
deploy:
{
"p": "brc-721",
"op": "deploy",
"tick": "bitcat",
"max": "10000",
"ipfs": "ipfs://QmbFAC5n9s65Ky96GqCrbRDVEHXxvE8vJShdbNWSD2GPTA"
}
以上是例子,
tick是合集的名称
max总量
ipfs :这个就是一次性把所有图片全放到ipfs上面,具体怎么放,可以看协议的原文档
(2)mint
Mint:
{
"p": "brc-721",
"op": "mint",
"tick": "bitcat",
"id": "7954094",
"ipfs": "ipfs://QmbFAC5n9s65Ky96GqCrbRDVEHXxvE8vJShdbNWSD2GPTA"
}
这里需要注意的就是一个ID你可能不知道,ID其实就是部署的那个铭文的铭文ID,我们习惯也叫做 inscription ID。
(3)transfer
transfer函数与BRC-20中函数用法是一致的。
最后说一下这个的 BRC-721 优缺点:
先说缺点,把图片放到IPFS上面不是很极客,我们之前一直提到Ordinals的优势是图片永久存储,结果现在放到IPFS上面。(但也比以太坊强)
但是优点也很明显:
目前比特币NFT缺乏集合规范、元数据标准,同时,创建和验证都高度依赖中心化平台。BRC721正是为了解决这些问题的。
该协议一旦采用:
-解决了合集索引的问题
-图片铭刻费用大幅度降低,不用受限于只是几KB的图片了,想铭刻多大就铭刻多大
Ordinals基础建设的完善,标准化是必不可少的。BRC-721 协议为比特币区块链提供了一个去中心化、安全且可靠的方法来创建、验证和管理序数集合。
BRC-721 协议的实际应用场景包括数字艺术品收藏、游戏道具和资产、去中心化身份验证以及票务和优惠券。
BRC-721 协议可以在比特币生态系统中实现类似于 ERC-721 对以太坊生态系统的影响。
Unisat是首个支持BRC-20代币的插件钱包。
Unisat给 BRC-20代币部署者0.2%交易版税的设计真正引爆了市场。
通过上文对BRC-20代币机制介绍,我们会发现对索引的解析是整个生态很重要的一环,即需要查询所有区块信息,汇总统计所有聪的所有铭文。
Unisat已经开源了 BRC-20 的索引,接下来还会推出一个开源的公共解析索引,可以跟交易所的索引进行交叉验证。
接下来,我们具体分析下Unisat钱包。
6.1 创建Unisat钱包
Unisat钱包创建过程类似于市面上其他生态的去中心化钱包:
1、设置密码
2、备份助记词
3、选择地址类型:会创建4个类型的地址类型,默认是native segwit,需要更换为Taproot地址
6.2 钱包展示
(1)All
展示该地址下的所有铭文,每一个铭文一定在固定编号的聪中。
mint的铭文大小一般在546聪。
(2)BRC-20
展示该地址下的所有BRC-20代币。
主要包含三个信息:总余额、可用余额、待转账余额(后面会解释)
6.3 BRC-20代币转账
转账过程较复杂,需要先铸造【可转移的代币铭文】,然后再次发起转账。
这和BRC-20标准中规定的代币余额计算逻辑有关:
1、统计部署初始化的BRC-20
2、铸造函数仅向铸造每一张铭文的第一个所有者提供余额
3、只有在转移函数的第一次转移时,才会从发送者的余额中扣除,并将其添加到接收者的余额中
简单说,类型为transfer的铭文只能被统计一次,再次转移时就需要重新铸造。
我们在使用Ordinals协议时,会遇到很多与比特币区块链特性相关的问题,这里汇总一下。
(1)为什么铭文的UTXO一般设定为10000聪?
因为转账的数量过低会被判定为粉尘攻击,不会被广播,所以一般铭文的UTXO设定为10000聪或5000聪。
但是1万聪是行业共识标准,事实上的最低金额标准是546聪。
一笔交易的输入一旦低于546聪,就不会被矿工打包广播。
(2)普通BTC钱包是否可以用来转移铭文?
可以转移,需要注意input只能有一个UTXO,且这个UTXO的数值不能过低。
铭文都位于UTXO的第一个聪,因此转账input只有一个UTXO时,可以确保铭文不会发送给矿工。
先进先出原则:所谓「先进先出」,意思就是每个聪的编号排序,是按照它在交易输出中的索引决定的。比如下图中的交易输出中(Output),地址3被排在矿工地址前面,那么从地址1和地址2转过来的聪,先由地址3继承,然后才是矿工地址。
(3)如果铭文的UTXO多次转账后,价值不够怎么办?
大多数BTC钱包目前并没有sats管理,所以在极端情况下有可能会导致NFT丢失,请不要轻易使用钱包发送你的NFT,除非你知道自己在做什么。
每次转移到新的地址时,UTXO中的sats数量都会减少,减少到一定程度后再次转移就需要通过多个UTXO完成,这时候需要务必小心。
本文整体可以分为三个部分,
(1)两个前置知识:Ordinals协议的基础原理和比特币的交易机制
(2)三个新协议:BRC-20、ORC-20、BRC-721
(2)实践与应用:Unisat钱包和关于铭文的常见问题
只有了解了Ordinals协议的基础原理和比特币的交易机制,才能进一步理解如今各类新玩法的底层逻辑,比如BRC-20、ORC-20、BRC-721等等。
了解概念也只停留在第一层,之后还要去真正体验产品,因此这里主要对Unisat钱包进行分析。
本文为什么要梳理这些东西呢?
比特币这个系统本身已经相对成熟,如今这些基于Ordinals协议的各种新玩法则是一次次新的实验。没有人知道究竟能够走多远,但只要还有新东西出现,只需要看着它们野蛮生长,有意思的事情就会持续发生。
我们要做的则是保持关注、持续参与、留在场内。