{"author":{"address":null,"user":"https://learnblockchain.cn/people/4862"},"content":{"body":"\u003c!--StartFragment--\u003e\r\n\r\n\r\n[](https://github.com/EthanShang8989/rgb-learning-doc/blob/master/README.md#rgb%E5%92%8Cordinalsomni%E7%9A%84%E5%8C%BA%E5%88%AB)\r\n\r\n## Ordinals\r\n\r\n[](https://github.com/EthanShang8989/rgb-learning-doc/blob/master/README.md#ordinals)\r\n\r\n\u003chttps://www.chaincatcher.com/article/2092605\u003e\r\n\r\nOrdinal（序数）于2023年1月份提出，是为比特币最小单位聪satoshis（sats）编号的系统。\r\n\r\n1BTC=1亿sats，原本每单位聪之间都是相同的，即小明持有的1 BTC与小兰持有的1 BTC是相同的。\r\n\r\n通过Ordinals可按照一定顺序排列这些sats，并给它们分配一个特定的序数，即Ordinals协议给每个聪sats都分配了唯一的编号。这样就赋予了每个聪的独特性，这个编号标识符将支持用户跟踪区块链上的每个sats。当用户在这个聪sats上附加上特定的信息，比如图片，文字，代码等，就可让每个聪变得独一无二，这也就是所谓的比特币NFT。附加的信息被称为“铭文inscriptions”，在聪sats上附加信息的过程被称为“铭刻inscribe”，即把“铭文”铭刻在聪上。\r\n\r\n用户@domodata认为Ordinals协议不仅仅可用来发行NFT，还可以用来发行同质化代币。当附加的信息（铭文）按照一个统一的协议标准（JSON数据格式）来附加，就可变成同质化代币BRC20。简单来说，BRC20可理解为是一种变异的Ordinals NFT，NFT上铭文刻录的是图片，BRC20上标识的铭文都是统一的JSON格式的文本数据（Text）。在BRC20种，铭文亦当作BRC20代币的记账账本，可用来追踪每一次代币的转移。\r\n\r\n源协议网站，目前网站比最开始就3个简单的页面完善了许多。\r\n\r\n\u003chttps://docs.ordinals.com/\u003e\r\n\r\n**ordi字符串**\r\n\r\n```\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\u003chttps://mempool.space/tx/b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735\u003e 部署 ordi的tx。\r\n\r\n```\r\nOP_PUSHBYTES_32 9e2849b90a2353691fccedd467215c88eec89a5d0dcf468e6cf37abed344d746\r\nOP_CHECKSIG                  #验证签名\r\nOP_0\r\nOP_IF\r\nOP_PUSHBYTES_3 6f7264 # 原文为十六进制的 解码后为 ord\r\nOP_PUSHBYTES_1 01\r\nOP_PUSHBYTES_24 746578742f706c61696e3b636861727365743d7574662d38 #text/plain;charset=utf-8\r\nOP_0\r\nOP_PUSHDATA1 7b200a20202270223a20226272632d3230222c0a2020226f70223a20226465706c6f79222c0a2020227469636b223a20226f726469222c0a2020226d6178223a20223231303030303030222c0a2020226c696d223a202231303030220a7d #这个解码后就是上面的内容。\r\nOP_ENDIF\r\n```\r\n\r\n## **Onmi**\r\n\r\n[](https://github.com/EthanShang8989/rgb-learning-doc/blob/master/README.md#onmi)\r\n\r\nOmni协议通过将自定义数据嵌入到比特币交易中来实现功能。这些交易包括特定的元数据，用于解释代币转移、资产发行或其他操作。Omni网络的节点解析这些嵌入在比特币交易中的数据，执行相应的协议逻辑。这\r\n\r\n\u003chttps://mempool.space/tx/046ecb298907bb2441959f6021f395dd754adcb74367d95fb517caea2862013d\u003e 最近的一个usdt转账内容。\r\n\r\n观察其第二个output的opreturn的内容\r\n\r\n```\r\nOP_RETURN\r\nOP_PUSHBYTES_20 6f6d6e69000000000000001f0000000001c9c380\r\n```\r\n\r\n**协议标识**：`omni` (6f6d6e69)\r\n\r\n**功能ID**：`00000000`，表示这是一个\"简单发送\"（Simple Send）操作。\r\n\r\n**资产ID**：`0000001f`，表示USDT代币（资产ID 31）。\r\n\r\n**发送数量**：`0000000001c9c380`，表示 **0.3 USDT**。\r\n\r\n## RGB\r\n\r\n[](https://github.com/EthanShang8989/rgb-learning-doc/blob/master/README.md#rgb)\r\n\r\nRGB 是一种在比特币上发行资产的协议，也可以被视为一种链外智能合约系统。与比特币本身不同，RGB 并不依赖于比特币的全节点共识来验证所有交易状态，而是通过客户端验证的方式，用户自己验证每一步的状态转换。这使得 RGB 的验证成本更低、更高效，同时保护了用户隐私。\r\n\r\nRGB 的核心设计基于比特币的 UTXO 模型，每个资产状态都附着在某个 UTXO 上，所有权状态变更时需要消耗该 UTXO。通过使用哈希值嵌入比特币交易，RGB 将状态变化的复杂性转移到链外，极大减少了区块链上的数据存储需求。这种设计使 RGB 既具有良好的扩展性，又能保持经济性和隐私性。\r\n\r\nRGB 还通过创新的 \"一次性密封\" 模型，确保每个状态只能被一次性消耗，进一步增强了安全性和灵活性。\r\n\r\n\u003chttps://www.btcstudy.org/2023/09/12/the-potential-of-RGB-protocol/\u003e\r\n\r\n### vs Onmi\r\n\r\n[](https://github.com/EthanShang8989/rgb-learning-doc/blob/master/README.md#vs-onmi)\r\n\r\nRGB的opreturn commitment(op return承诺)是一个hash。是没办法反向解码成信息。用户可以通过btc上的hash来验证RGB链下的内容是不是我这个链下的信息。反过来不行。\r\n\r\nOnmi仅仅是一个明文的内容。\r\n\r\n对于用户来说只能信任indexer。因为需要从token部署以来所有的信息才能验证这个tx是不是没有被双花。\r\n\r\n### vs Ordi\r\n\r\n[](https://github.com/EthanShang8989/rgb-learning-doc/blob/master/README.md#vs-ordi)\r\n\r\nRGB绑定的是单个交易内的一个输出。他不会像Ordi一样伴随sats的一生。\r\n\r\n对于RGB来说，他只关心output的状态。对于单笔tx内来说，如果是一个opreturn的话看output1这个utxo如果是taproot的话就看这个output本身。\r\n\r\n这个utxo存在不存在？是不是被花费了？所蕴含的信息对不对？仅此而已。因为工作量不是很大所以客户端完全可以验证这些内容。因为每个RGBtx都会包含自从创世以来所有btc上面的txid。用户就可以单独请求这些tx信息。然后验证。\r\n\r\n而ordi同样需要自己运行全节点来验证这个信息是不是对的。有没有被双花？\r\n\r\n\\\r\n\r\n\r\n\u003c!--EndFragment--\u003e","title":"RGB和Ordinals/Omni的区别"},"history":null,"timestamp":1726797710,"version":1}