{"content":{"title":"[科普] 什么是Ordinals？理解比特币 NFT","body":"> * 译文出自：[登链翻译计划](https://github.com/lbc-team/Pioneer)\r\n> * 译者：[Tiny 熊](https://learnblockchain.cn/people/15)\r\n> * 本文永久链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/5717)\r\n\r\n\r\n原文来自 [Chainlink](https://blog.chain.link/author/chainlink/)， 链接： https://blog.chain.link/ordinals-bitcoin-nfts/\r\n译者：Tiny熊 [@tinyxiong.eth](https://twitter.com/tinyxiong_eth)  \r\n\r\n\r\n\r\nOrdinals 由开发者[Casey Rodarmor](https://twitter.com/rodarmor)于[2023年1月20日](https://twitter.com/rodarmor/status/1616567899719860230?s=20)在比特币主网上推出，Ordinals NFT 是在比特币上创建NFT的最新方式。虽然比特币上的非同质化代币（NFT）并不是一个新概念，比特币上的第二层网络，如 [Counterparty](https://counterparty.io/) 和 [Stacks](https://www.stacks.co/)已经实现了基于比特币的NFT，但 Ordinals NFT与其他比特币NFT的架构有根本的不同。\r\n\r\n自从他们推出以来，超过20万个 Ordinals NFT已经被越来越多的用户、开发者和爱好者所铸造，他们对比特币原生NFT的潜力感到兴奋。但是，到底什么是 Ordinals NFT，它们是如何工作的，以及为什么它们是不同的？\r\n\r\n![按类型显示每日申购量的图表。](https://img.learnblockchain.cn/2023/04/29/57467.png)\r\n> Ordinals NFT自推出以来，已经看到了稳定的增长，现在有各种媒体类型嵌入到单个satoshis。\r\n\r\n\r\n\r\n## 什么是Ordinals 铭文（Inscriptions）？\r\n\r\nOrdinals 是创建比特币 NFT 的手段，通过附加数据，如图像，视频，和一些聪到比特币区块链。\r\n\r\n与比特币 NFT 的前辈方案不同， Ordinals NFT 不存在于比特币的二层网络中。相反，它们使用一个随意但符合逻辑的排序系统，称为[Ordinals理论](https://docs.ordinals.com/overview.html)，给每个单独的比特币聪一个独特的数字。因此， Ordinals NFT 完全是比特币原生的。他们在不改变比特币协议的情况下工作，不需要任何额外的二层，并与网络向后兼容。\r\n\r\n> 聪 即 satoshi 或 sat， 一个 \"satoshi \"或 \"sat \"相当于一个比特币的1/100,000,000，是比特币最小的面额。\r\n\r\n## Ordinals NFT 的历史\r\n\r\n虽然 Ordinals NFT 是通过Ordinals理论的概念化而真正解锁的，但今天存在的 Ordinals NFT是由比特币协议的隔离见证（SegWit）和Taproot 更新得以实现的，这两个更新分别发生在2017年和2021年。\r\n\r\n值得注意的是，这些更新并不是为了实现这些新型NFT的具体目的而进行的。但是，由于每次更新都扩大了区块内链上能够存储的任意数据量 -- 这意味着现在有空间来存储图像、视频，甚至游戏 -- 使得 Ordinal NFT 在命中注定而成为可能。\r\n\r\n###  隔离见证 (SegWit)\r\n\r\nSegwit是2017年的一个更新，导致了比特币区块链的软分叉。该更新通过增加一个可以支持任意数据的 \"见证数据（witness data）\" 部分，有效地将比特币交易隔离成两个部分。\r\n\r\n![非SegWit区块和SegWit区块的结构比较图](https://img.learnblockchain.cn/pics/20230429174842.png)\r\n> SegWit将交易和见证（签名）数据分为不同的部分，并使任意的数据可以存储在见证部分。\r\n\r\n\r\n\r\n\"见证数据（witness data）\" 最初创建是为了：\r\n\r\n1. 绕过区块大小限制的严格限制\r\n2. 允许可选的、任意的数据转账\r\n3. 防止非故意的交易可塑性（malleability）\r\n\r\n在技术上，SegWit的实施意味着交易不再需要包括见证数据（不会占用比特币原本为区块安排的 1MB 空间）。取而代之的是，在一个区块的末尾，为见证数据创建了一个额外独立的空间。它支持任意的数据转账，并有一个折扣的 \"区块重量（block weight）\"，巧妙地将大量的数据保持在比特币的区块大小限制内，以避免硬分叉的需要。\r\n\r\n> 注：放在见证数据字段中的数据，会比放在原本的区块空间内的数据 “更轻”，所以在隔离见证交易的见证数据字段内存放数据，会比在区块内存放数据（比如 OP_RETURN 输出）更便宜。即 “折扣”\r\n\r\n\r\n\r\n这是 Ordinals NFT的第一个先兆，因为它扩大了一个人可以在交易中包含多少任意数据的限制。\r\n\r\n### Taproot\r\n\r\nTaproot 于2021年11月实施，是一个多方面的升级，旨在改善比特币的隐私、可扩展性和安全性。Taproot 创建了一个更容易存储任意见证数据的系统，并放宽了对一个比特币交易中可以放置多少任意数据的限制。这次升级的最初目标是进一步加强基于比特币的智能合约，如时间锁定合约，其通常是在见证数据中表述。\r\n\r\n这些更新是 Ordinals NFT的关键推动因素，它将NFT数据存储在 Taproot 脚本路径的花费脚本（spent script）中。这次升级使得结构化和存储任意的见证数据变得更加容易，为 \"ord\" 标准奠定了基础。随着数据要求的放宽，假设一个交易可以用其交易和见证数据填满整个区块 -- 达到4MB的区块大小（见证数据空间）限制 -- 极大地扩展了可以放在链上的媒体类型。\r\n\r\n## 比特币 NFT 如何工作？\r\n\r\n\r\n\r\n要了解 Ordinals NFT是如何工作的，重要的是要区分 \"Ordinals（排序系统）\" 和 \"铭文（Inscriptions）\"这两个术语，它们一起都是用来指这种新型的比特币NFT。\r\n\r\n- Ordinals 是一个系统，用于以创建NFT所需的\"[非同质](https://learnblockchain.cn/tags/NFT) \"属性的方式排序聪。\r\n\r\n  > 译者注： 每一个聪（聪包含在UTXO中）以他们被mint出来的顺序进行编号Orinal number， 转移时，按照先进先出规则，从交易的输入转移到输出。 \r\n\r\n- 铭文（Inscriptions）是 Ordinals NFT 本身的内容 -- 图像、文本、视频或任何其他用户认为与NFT同义的任意数据。\r\n\r\n这些 NFT 可以通过与如以太坊 NFT 对比来更好理解，后者是通常有两个组成部分：tokenID 和 metadata。\r\n\r\n### TokenID\r\n\r\n同质代币是可以互换的。例如，没有办法区分两个不同的以太坊币，就像不可能区分一个美元和另一个美元一样。TokenID在NFT中加入了 \"不可替代\"--它们为每个NFT提供了一个独特的条形码，使用户能够将代币彼此区分开来，TokenID是使 NFT 具有独一无二特新的原因。\r\n\r\n> NFT可以有相同的tokenID，如果它们是由不同的智能合约创建的。在这种情况下，智能合约地址可以让你区分一个 NFT 和另一个NFT 。\r\n\r\n#### Ordinal  排序作为 TokenID\r\n\r\n比特币是可替换的，这意味着没有办法将一个比特币与另一个区分开来。这就是Ordinals理论的作用。\r\n\r\nOrdinal NFT 的关键创新是，他们提供了一个系统来为每个聪编号。其结果是：比特币区块链上的每个 satoshi 都有一个唯一的ID。每个Ordinal，以最基本的形式，只是一个被分配了唯一编号的聪。下面是它的工作原理。\r\n\r\n在 Ordinal 理论中，单个聪是按照它们被开采的顺序来编号的。第一个序号是创世纪铸造的第一个聪，可以一直追溯到2008年。当一个比特币被转移时，通过基于交易顺序的先进先出系统，顺序被保留下来。\r\n\r\n> 详细可参考[Ordinal number理论](https://docs.ordinals.com/overview.html) 或 Johnathan 的[Ordinal NFT实现原理](https://learnblockchain.cn/article/5376#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86)\r\n\r\n![聪在被挖出和转移时的顺序示意图](https://img.learnblockchain.cn/2023/04/29/59825.png)\r\n> Ordinals是按照它们被开采的顺序来编号的。在先进先出的过程中，交易的顺序被保留下来。\r\n>\r\n> 译者注：例如，创世第一个区块的挖矿奖励为50个btc(1 btc = 10^8 sat), 则第一个区块会mint出[0;1;2;...;4,999,999,999] 范围的聪；第二个区块奖励也为 50 btc 时，则第二个区块会mint出，[5,000,000,000;5,000,000,001;...;9,999,999,999]范围的聪。\r\n>\r\n> 由于UTXO实际上包含很多个聪， 这些聪本身的相对顺序在转账交易后才能确定。\r\n\r\n\r\n\r\nOrdinal 理论并不违反比特币可替换性的本质。比特币协议并没有正式承认聪这种新排序。相反，一个由Ordinals爱好者组成的社区集体赋予这个编号系统的意义，并建立起这个共识下的的工具。\r\n\r\n### 元数据（Metadata）\r\n\r\n在非比特币区块链中，元数据是可选的一部分，它是可附加到一个非同质化代币上任意数据。它被用来代表和展示大量的艺术、游戏中的资产、个人资料图片、金融资产等等，这些都已经成为 \"NFT\" 这个词的同义词。\r\n\r\n#### 铭文（Inscription）作为元数据\r\n\r\nOrdinal NFT 不像 非比特币NFT那样 有一个指定的元数据点（tokenURI）。相反， Ordinals NFT的元数据被保存在交易的见证数据中。\r\n\r\n![一个比特币Ordinals铭文的图片例子](https://img.learnblockchain.cn/pics/20230429185055.png)\r\n> 一个比特币铭文的例子 -- 由其所有者重用的 CryptoPunk 图片。\r\n\r\n\r\n\r\n这也是 \"铭文(inscription)\" 一词的由来 -- 附在特定聪上的数据被 \"铭刻\" 在比特币交易的特定部分。为了给一个特定的比特币刻上数据，并创建一个有顺序的NFT，用户必须将一些聪作为单独的比特币交易发送到一个与 Taproot 兼容的钱包，并将所需的元数据作为交易的一部分。他们还必须注意交易的顺序，以确保所需的聪币不会被用作网络费用。实现这一过程自动化的工具有助于消除这些风险，并使这一过程对非技术用户来说更加容易。\r\n\r\n## Bitcoin Ordinals 与 NFT有何不同？\r\n\r\n比特币 Ordinals 和更标准的NFT类型之间的关键区别是它们的流动性。因为比特币协议没有正式承认Ordinals理论，一个Ordinals可以是可替代的，也可以是非同质化的。这完全取决于谁拥有这个Ordinals，以及他们是否希望保留这单个聪。\r\n\r\n例如，如果一个比特币用户不承认或不关心一个Ordinals或附加在它身上的数据，它可以简单地像其他比特币一样被使用。这样的话，Ordinals是可替换的 --它们可以被用来支付网络费用或作为付款发送，任意数据仍将被附加。以太坊NFT就不是这样了。以太坊NFT与以太坊同质币完全不同，不可能将可替换代币与NFT混为一谈，因为以太坊网络对每种代币类型的处理方式不同。\r\n\r\n## 围绕 Ordinals NFT的争论\r\n\r\nOrdinals NFT的兴起引发了比特币社区对比特币基本作用和精神的讨论。\r\n\r\n\r\n\r\n一些人认为，比特币应该被用来进行安全的金融交易，由meme（模因）推动的Ordinals铭文的兴起不必要地填满了比特币的区块空间并推高了交易费用。其他人则对 Ordinals NFT能给比特币区块链带来的meme/文化价值以及比特币将其不可改变的、去中心化的数据库扩展到金融交易的想法感到兴奋。\r\n\r\n因为Ordinals在今天的比特币软件中是完全有效的，取消创建 Ordinals 铭文的能力将需要更新比特币协议。因此，最终还是要由比特币社区来共同决定Ordinals是否会继续存在。\r\n\r\n\r\n\r\n感谢 [Chaintool](https://chaintool.tech/) 对本翻译的支持， Chaintool 是一个为区块链开发者准备的开源工具箱"},"author":{"user":"https://learnblockchain.cn/people/15","address":"0x49c8C7b892f82eedc98551CCb69745005A2FD079"},"history":"QmWxDRH3Xmg4c231HdkHdjRkuopmEycMWSWEYVBf1x3WXn","timestamp":1682946136,"version":1}