LOADING STUFF...

BRC-20标准与Ordi铭文的技术原理深度解读

BRC-20标准与Ordi铭文的技术原理深度解读

电报联系方式

BRC-20标准的本质

BRC-20标准是建立在Ordinals协议基础上的一项数据存储规范,被广泛用于BTC链上。由于其在Token经济中的应用,人们通常称之为BTC-Token标准。总的来说,我们只需了解它是一种定义了数据存储格式的标准即可。

BRC-20标准与Ordi铭文的技术原理深度解读

BTC链的数据存储方案

在比特币链上存储数据的技术选择主要分为两个基本层面:1、将数据存储在操作码OP_RETURN [data]携带的数据域中;2、将数据存储在隔离见证(SegWit)数据中。尽管OP_RETURN所携带的数据受到一定的限制,对于复杂的分布式应用(DApp)可能不太适用,但它的优势在于数据被完全嵌入到Blockchain中。相反,隔离见证(SegWit)则将数据存储在链下。

隔离见证(SegWit) 的由来

在2017年及之前,比特币交易的签名数据被包含在交易数据中,这种机制在长期运行中显现出一些缺陷。当网络交易量增大时,交易数据在区块中占据较大空间,导致区块膨胀,从而影响整个比特币网络的性能。为了解决这一问题,比特币的核心开发者们提出了隔离见证技术方案。

该方案的核心思想是将比特币的签名数据从交易数据中独立抽离出来,存储在节点本地,从而显著减少交易数据量。签名作为交易的核心数据,被存储到一个称为”见证区块”(Witness Block)的数据结构中。在需要验证签名的交易时,会对见证区块进行哈希计算,将哈希值添加到交易数据中,参与整体验证过程。

如果节点本地的签名数据被篡改,将导致整个哈希计算结果不一致,从而使该交易无法通过验证并上链,最终被排除出区块中的交易组。这种机制保证了签名数据的完整性,同时有效地解决了区块膨胀对比特币网络性能的负面影响。

BRC-20标准及数据存储位置

它定义了如下的基础 Json 结构:

{
“p”: “brc-20”,
“op”: “mint”,
“tick”: “ordi”,
“amt”: “1000”,
“max”: “210000”,
“lim”: “10”,
“des”: “1”,
}

字段解析如下:

  • p 协议名称。protocol 的首字母,告知解析器这是 BRC-20;
  • op 操作名称。operation 前两个字母,现在包含的取值有:
    • deploy 部署,代表部署 Token
    • mint 铸造,铸造/生产 Token
    • transfer 转移,转账 token
  • tick 名称,比如 Ordi,四个字母标识符,可以是 emoji;
  • amt 数量,当 op = tranfer 的时候用到;
  • max 最大供应,当 op = deploy 的时候用到;
  • lim 每次铸造时的数量限制,为最大值,当 op = mint 的时候用到;
  • des 精度
BRC-20 的数据存储位置在:隔离见证(SegWit)

BRC-20转账接收者

每次进行BRC转账操作都涉及一笔BTC交易,我们可以设定最小BTC数额为1 sat。因此,sat的接收地址即为相应BRC转账的接收地址。

BRC-20的有效规则

部署规则

通常情况下,遵循先到先得的部署性质,除非社区普遍一致认同其他说明,例如社区高度一致的观点。在这种情况下,可视为BRC层面上的硬分叉。例如,如果我在昨天部署了A,而你今天再次部署A,那么你的A将不再被认可。

以ordi为例,domo在3月8日部署了ordi,你后面再部署叫ordi就是无效的了。

挖掘Mint规则

任何人都可以按照标准组装交易进行发出,只要当前的Token尚未被完全铸造,就有资格发送Mint交易。尽管我们设定了Token的最大供应量为2100个,但如果作为用户,我故意在链上铸造了30000个,我们如何确保我的这次铸造不会超出各种限制而变得无效呢?

BRC-20的索引性质

考虑到BRC-20标准在整个链上的频繁交易,可能导致初始几个地址的Token持有分散到许多零散的地址。在这种情况下,我们如何确保发散后的地址总值仍然等于最初设定的最大总值呢?

这一目标的实现依赖于比特币的UTXO(未使用的交易输出)规则。具体而言,每一笔BRC交易都是常规的比特币交易,而比特币交易模型基于UTXO。因此,对于符合共识规则的有效BRC交易,我们可以通过索引整个交易链,从输出(Output)中找到输入(Input),逐个累加以获取总值。这种基于UTXO规则的方法能够确保在整个交易过程中,Token的总值始终保持在初始设定的最大总值。

BRC-20 索引器

所谓 BRC-20 索引器就是一个程序,根据 BRC-20 标准监控 BTC 链上的区块数据,来提取出各种 BRC-20 Token 交易的程序。

比如 Golang 语言实现的 BRC-20 索引器:github.com/unisat-wall…

索引器的做法在其他链,比如以太坊上面上面已经有很多例子,原理都是一样的,分为以下几个步骤:

  1. 监控链上区块;
  2. 从区块中获取数据;
  3. 将区块中的数据提取;
  4. 按照特定的规则对数据进行处理。

由于我们知道了 BRC-20 标准的 Json 结构,那么按照这个结构就能够取出这些基于 BRC-20 标准实现的 Token 数据,来实现:

  1. 转账;
  2. 余额;
  3. 等应用功能操作。

铭文 Ordi

Ordi 就是 BRC-20标准 下的一种 Token,且是历史的第一个,遵循上面所有属性。

打铭文

就是去发送 mint 交易,很多平台都提供了这个功能。

开发联系:DEXDAO

 

© 版权声明

Related posts

No comments

No comments...