{"content":{"title":"[科普] 什么是BRC-20 -- 比特币上的Token","body":"## 背景\r\n\r\n BRC-20 是Twitter用户[@domodata](https://twitter.com/domodata)在2023年3月 创建的比特币上同质化代币标准的尝试。\r\n\r\n![image-20230501100306158](https://img.learnblockchain.cn/pics/20230501100307.png!/scale/50)\r\n\r\n> 来源：Twitter: https://twitter.com/domodata/status/1633658974686855168\r\n\r\nBRC-20利用JSON格式的Ordinals铭文来部署代币合约、铸造代币和转账代币。Ordinals 协议利用比特币隔离见证数据保附加数据，在[这篇科普文章](https://learnblockchain.cn/article/5717)有更详细介绍。\r\n\r\n\r\n\r\nBRC-20 第一个代币 `ordi`  （\"Ordinals \"的简称）发行后，很快引起了社区的FOMO情绪， `ordi` 所有2100万代币在18小时内，被铸造完毕，并很快有人部署了  \"meme\"(模因),  \"pepe\" (青蛙佩佩) ，并被快速铸造一空，到目前为止，根据 [brc-20.io](https://brc-20.io/) 上数据，已经铸造了7543个不同的BRC-20代币，很多代币涨幅惊人，是目前最火的话题。\r\n\r\n<img src=\"https://img.learnblockchain.cn/pics/20230502083915.png\" alt=\"image-20230502083914246\" style=\"zoom:40%;\" />\r\n\r\n\r\n\r\n尽管作者强调 BRC-20 当前仅仅是一个有趣的实验性，不应该被认为是比特币上同质化token标准，无法阻挡大家参与的热情。\r\n\r\n\r\n\r\n## BRC-20 是什么？\r\n\r\nBRC-20 这个名字参考自以太坊ERC-20代币标准，不过由于比特币区块链没有像以太坊那样的链上执行能力，BRC-20 使用了比特币见证数据区域记录JOSN格式铭文，链下更新状态（余额）的方式来实施BRC-20 。\r\n\r\nBRC-20 定义了一组简单的JSON 格式铭文来描述代币的部署、铸造及转移， 以下引用自： https://domo-2.gitbook.io/brc-20-experiment/\r\n\r\n### 部署 brc-20\r\n\r\n部署brc-20的铭文如下：\r\n\r\n```json\r\n{ \r\n  \"p\": \"brc-20\",\r\n  \"op\": \"deploy\",\r\n  \"tick\": \"ordi\",\r\n  \"max\": \"21000000\",\r\n  \"lim\": \"1000\"\r\n}\r\n```\r\n\r\n`p`： 表示协议名。\r\n\r\n`op`：表示操作类型， 操作可以是`deploy`, `mint`, `transfer`\r\n\r\n`tick`：brc-20的4个字母标识符\r\n\r\n`max`： 设置brc-20的最大发行量\r\n\r\n`lim`： 每次mint 时限额。\r\n\r\n\r\n\r\n### 铸造 brc-20\r\n\r\n铸造brc-20 代币的铭文如下：\r\n\r\n```json\r\n{ \r\n  \"p\": \"brc-20\",\r\n  \"op\": \"mint\",\r\n  \"tick\": \"ordi\",\r\n  \"amt\": \"1000\"\r\n}\r\n```\r\n\r\namt： 铸造brc-20的数量，必须小于上面的 \"lim\"。\r\n\r\n\r\n\r\n###  转账 brc-20\r\n\r\n铸造brc-20 代币的铭文如下：\r\n\r\n```json\r\n{ \r\n  \"p\": \"brc-20\",\r\n  \"op\": \"transfer\",\r\n  \"tick\": \"ordi\",\r\n  \"amt\": \"100\"\r\n}\r\n```\r\n\r\n\r\n\r\n每个地址下brc-20 代币的余额是多少，是unisat.io这样客户端软件（索引器），根据`mint`、`transfer` 事件进行统计获得。如：UTXO中包含 `mint` 铭文，就为第一个所有者添加，`transfer`  则在发起者的地址上扣除余额，接收者地址加上余额。\r\n\r\n\r\n\r\n![image-20230501101138728](https://img.learnblockchain.cn/pics/20230501101139.png)\r\n\r\n\r\n\r\n铭文是 ‘附加’ 交易（聪）上的，**比特币的矿工并不会处理这些铭文**，从链上来看跟其它聪依然是没有分别的，他们都是当做普通的聪来转移的。\r\n\r\n基于 Ordinals 协议附加的数据，需要额外的钱包（[Ord Wallet](https://github.com/casey/ord) / [ordinalswallet](https://ordinalswallet.com/) 或[unisat](https://unisat.io/)）和[区块链浏览器](https://ordinals.com/)来索引和跟踪他们。\r\n\r\n\r\n\r\n例如这是一个铸造brc-20 FREE 代币的交易：\r\n\r\nhttps://blockstream.info/tx/331d02db3d6ee0cffae9052be5799bd7754c6ebb2020e422058b73334c59bf85\r\n\r\n在 ordinals 浏览器中才能展示详细的JSON铭文：\r\n\r\n![image-20230502001633592](https://img.learnblockchain.cn/pics/20230502001634.png)\r\n\r\n> 来源链接：https://ordinals.com/inscription/331d02db3d6ee0cffae9052be5799bd7754c6ebb2020e422058b73334c59bf85i0\r\n\r\n\r\n\r\n[brc-20.io](https://brc-20.io/) 和 [unisat.io](https://unisat.io/)  这样的铭文服务商会跟踪每个交易，获取到铭文，统计每个地址持有的brc-20 代币余额。 \r\n完整的余额状态索引展示 目前[unisat.io](https://unisat.io/) 做的不错。\r\n\r\n\r\n\r\n## 如何发行或铸造\r\n\r\n\r\n\r\n为了方便我们构造铭文，最好是选择 [Unisat](https://unisat.io/) 等Ordinal钱包，它们提供了部署了BRC-20标准的工具。\r\n\r\n![image-20230502090855909](https://img.learnblockchain.cn/pics/20230502090857.png)\r\n\r\n> 来源：https://unisat.io/\r\n\r\nUnisat 是一个类似MetaMask的浏览器插件钱包，在创建钱包时，选择Taproot 格式的地址格式，然后从交易所提现或其他钱包转入到该地址。\r\n\r\n进入[brc-20 铭刻界面](https://unisat.io/inscribe)：\r\n\r\n<img src=\"https://img.learnblockchain.cn/pics/20230502091530.png\" alt=\"image-20230502091524635\" style=\"zoom:50%;\" />\r\n\r\n\r\n\r\n 你可以选择铸造brc-20 或发行（Deploy）一个自己的brc-20 。\r\n\r\n在发行（Deploy）brc-20 时，每个 brc-20 使用“Tick”名称来识别唯一性，部署时需设置“Tick”名称、“max”最大发行量、\"lim\"单个交易铸造量。因此部署时，brc-20代币的`tick`不能与已经部署过的brc-20相同。\r\n\r\n在铸造brc-20，则需要确保该brc-20 还没有达到最大发行量。在[Unisat](https://unisat.io/brc20)可以查阅铸币百分比：\r\n\r\n![image-20230502093238127](https://img.learnblockchain.cn/pics/20230502093239.png)\r\n\r\n\r\n\r\n当我们发行、铸造或转账时，交易中的铭文数据，并不会被比特币节点检查及执行，因此需要我们来确保铭文JSON数据是**有效的**，以转帐为例，有效的转帐功能，应该：\r\n\r\n- 在铭文中所述的金额不能超过**可用余额（Available）**。\r\n\r\n- **可用余额**定义为：[总余额] - [转移的余额（Transferable balance）]。如果一个地址没有转移过，**可用余额**和**总余额**是相等的。\r\n\r\n  \r\n\r\n例如：一个钱包持有的总余额为1000 \"ordi\"，而 。持有人然后签署了700 \"ordi \"的转移铭文。一旦铭文被确认，以下情况是真实的：总余额=1000，转移的余额=700， 因此可用余额=300。如果在下一个区块中，用户进行 500 \"ordi \"的转移铭文，这将是无效的。不过比特币节点不检查铭文，交易可以成功，但是在 brc-20 钱包服务中，则会当做一个失败的交易，不会更新状态。 \r\n\r\n\r\n\r\n## 小结\r\n\r\n\r\n\r\nBRC-20 及 Ordinals NFT， 给比特币带来了很多争论，分成两种阵营：支持的一方认为，只要你支付手续费，你就有全权以任意的方式使用区块空间，不论交易是什么内容，他们 认为BRC-20 与 NFT 给比特币带来了新的文化与叙事，有利于提高比特币的采用率。反对方则认为这些BRC-20与NFT毫无价值，是垃圾交易，这些垃圾交易会抢占交易带宽，导致交易入块时间变长以及手续费变高。\r\n\r\n\r\n\r\n目前 BRC-20 仍较中心化，体验不佳。但我们也看到大量的工具真在出现，由于比特币本身有最大的共识，因此未来如何发展，值得关注。\r\n\r\n\r\n\r\n本文作者Tiny熊，如果你觉得本文对你有帮助，欢迎关注我 [@tinyxiong_eth](https://twitter.com/tinyxiong_eth) \r\n\r\n以下是我写作本文的参考链接：\r\n\r\n## 参考链接\r\n\r\nbrc-20 文档：https://domo-2.gitbook.io/brc-20-experiment/ \r\n\r\nBRC-20 浏览器： https://brc-20.io/  \r\n\r\nBRC-20钱包：https://unisat.io/\r\n\r\nOrdinals 原生钱包：https://ordinalswallet.com/\r\n\r\nBRC-20交易市场: https://ordswap.io/\r\n\r\nMint 工具：https://looksordinal.com/\r\n\r\nOriscan: https://ordiscan.com/"},"author":{"user":"https://learnblockchain.cn/people/15","address":"0x49c8C7b892f82eedc98551CCb69745005A2FD079"},"history":null,"timestamp":1682993639,"version":1}