比特币Ordinals Theory由開發人(People)員Casey Rodarmor 2022年開發,直到2023年2月提交BIP後開始在(Exist)比特币社區流行。
Ordinals主要(Want)利用(Use)了(Got it)2個(Indivual)想法,1、給每個(Indivual)satoshi排序,分配一(One)個(Indivual)介于(At)0和(And) 2,100,000,000,000,000之間的(Of)序數“ordinals”。2、segwit和(And)Taproot。2017年實施的(Of)SegWit和(And)2021年在(Exist)SegWit基礎上(Superior)的(Of)Taproot升級script-path spend scripts(腳本路徑花費腳本),讓比特币交易本身可以(By)包含元數據(被稱爲(For)銘文Inscriptions)。
序數ordinals讓satoshis擁有數字序列,從而擁有了(Got it)非同質化屬性。Inscriptions讓諸如圖片、文字、視頻甚至遊戲數據包含在(Exist)比特币交易中,可以(By)和(And)擁有序數的(Of)satoshis鏈接起來。
Ordinals Theory:Ordinals + Inscriptions = Digital Artefacts。
實際上(Superior)如何工作(Do)?
在(Exist)“鑄造”Digital Artefacts時(Hour),需要(Want)創建一(One)個(Indivual)比特币交易,在(Exist)其中一(One)個(Indivual)輸出(Out)地址中存儲一(One)些額外的(Of)數據也就是(Yes)所謂銘文。這(This)些額外數據可以(By)是(Yes)文本、圖像、SCG或HTML,數據大(Big)小僅受區塊大(Big)小的(Of)限制。
在(Exist)序數理論之前,添加到比特币交易中的(Of)任何額外數據通常都是(Yes)使用(Use)OP_RETURN完成,這(This)是(Yes)一(One)種不(No)可花費的(Of)輸出(Out),可以(By)在(Exist)其中包含最多80字節的(Of)元數據。而且OP_RETURN可修剪,這(This)意味着可以(By)從全節點删除數據。
Ordinals不(No)使用(Use)OP_RETURN,而是(Yes)使用(Use)Taproot的(Of)script-path spend scripts。基于(At)2017年實施的(Of)SegWit和(And)在(Exist)SegWit基礎上(Superior)的(Of)2021年Taproot升級,比特币交易本身可以(By)包含元數據(銘文)。SegWit将數字簽名與交易數據分離,使區塊空間從1M擴容至4M(1M基礎區塊和(And)3M見證區塊)。
一(One)句話理解:銘文數據存儲在(Exist)比特币taproot script-path花費腳本中。
digital artefacts使用(Use)兩階段過程從Taproot 的(Of)輸出(Out)(“bc1p ...”地址)鑄造。最初,taproot輸出(Out)必須提交給包含銘文内容的(Of)腳本。此内容在(Exist)所謂的(Of)“envelope”中序列化,envelope包夾在(Exist)“OP_FALSE OP_IF ... OP_ENDIF”操作(Do)碼之間。
示例:創建文本“Hello, world!”的(Of)銘文
此外,Taproot和(And)MAST升級的(Of)一(One)個(Indivual)關鍵部分是(Yes)這(This)個(Indivual)腳本在(Exist)它被花費之前不(No)會在(Exist)鏈上(Superior)顯示,因此你需要(Want)創建另一(One)個(Indivual)交易來顯示信息。在(Exist)這(This)個(Indivual)顯示交易中,提交交易創建的(Of)輸出(Out)被花費,從而顯示鏈上(Superior)的(Of)銘文内容。
如何發送digital artefacts?
要(Want)了(Got it)解如何發送digital artefacts,來看一(One)個(Indivual)具有三個(Indivual)輸入和(And)兩個(Indivual)輸出(Out)以(By)及不(No)同數額的(Of)示例:
上(Superior)面我們可以(By)看到總共有 6 satoshis 來自 3 個(Indivual)不(No)同地址,5 satoshis 被發送到 2 個(Indivual)不(No)同地址,其中 1 satoshis 作(Do)爲(For)費用(Use)支付給礦工。
然後我們可以(By)爲(For)輸入的(Of)每個(Indivual) satoshi 分配序數,然後按照先進先出(Out)算法将它們分配給輸出(Out),任何剩餘的(Of)序數然後轉到礦工。
值得注意的(Of)是(Yes),并不(No)是(Yes)所有的(Of)序數都有分配給他(He)們的(Of)銘文,所以(By)這(This)并不(No)意味着在(Exist)這(This)次交易中有 6 個(Indivual)銘文被轉移,可能有 1 個(Indivual),沒有或最多 6 個(Indivual)。
無聊猿銘文案例
我們直接以(By)一(One)個(Indivual)銘文爲(For)例,可以(By)更多地了(Got it)解銘文數據以(By)及序數如何發揮作(Do)用(Use):
https://ordinals.com/inscription/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511i0
這(This)個(Indivual)重新創建的(Of)無聊猿是(Yes)在(Exist)這(This)個(Indivual)交易哈希中創建:2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511
并且與地址相關:bc1pc837xc4vfq66g2wm3hy6rd4nxjlkwcl46m4wn2n6u0afd45h472sx8924n(從“bc1p”前綴可以(By)清楚地看出(Out)啓用(Use) Taproot 的(Of)地址類型),但特别是(Yes)具有序号的(Of)satoshi:1598601235315166
可以(By)在(Exist)此處查看對圖像進行編碼的(Of)見證數據:https://blockstream.info/tx/2911040743b16b71c4c00dc2561b91dac87650e0957d8acd016da0ffd8d3d511 ?expand
你可能會注意到在(Exist)銘文信息中還有一(One)個(Indivual)值爲(For)“cnhzpcdknwl”的(Of)名稱字段。
這(This)是(Yes)因爲(For)每個(Indivual)序數都映射到一(One)個(Indivual)由字母 A 到 Z 組成的(Of)名稱,satoshi被開采的(Of)時(Hour)間越長,名稱越短。
銘文與以(By)太坊上(Superior)的(Of)NFT有何差别?
在(Exist)以(By)太坊中,nft代币标準(通常是(Yes)ERC721、ERC1155)爲(For)每個(Indivual) NFT 都被賦予一(One)個(Indivual) tokenID 以(By)唯一(One)表征它,其元數據可能是(Yes)中心化存儲的(Of),可能會被删除,即便是(Yes)在(Exist)ipfs或者arweave中去中心化存儲,其元數據也僅僅隻是(Yes)一(One)個(Indivual)鏈接。
比特币銘文完全存儲在(Exist)比特币鏈上(Superior),不(No)可篡改且完全去中心化。
BRC20代币
BRC -20 代币标準是(Yes)由 Twitter 用(Use)戶@domodata于(At)2023年3月8日創建的(Of)借助銘文功能試驗比特币上(Superior)同質化代币的(Of)标準。“BRC-20”名字借鑒于(At)以(By)太坊ERC-20代币标準。
BRC20代币在(Exist)比特币銘文裏存儲的(Of)是(Yes)JSON代碼數據,目前僅有部署、鑄造和(And)轉帳三種功能。也就是(Yes)說,BRC20代币在(Exist)比特币網絡上(Superior)隻能部署、鑄造和(And)轉賬,不(No)具備以(By)太坊上(Superior)圖靈完備的(Of)智能合約功能。
還有一(One)個(Indivual)理解重點是(Yes):BRC20代币每一(One)次部署、鑄造和(And)轉移都産生一(One)個(Indivual)新的(Of)銘文。
以(By)第一(One)個(Indivual)BRC20代币Ordi發行者爲(For)例:ordiscan.com/address/bc1pxaneaf3w4d27hl2y93fuft2xk6m4u3wc4rafevc6slgd7f5tq2dqyfgy06/brc20
BRC20代币JSON代碼
部署代币:
鑄造代币:
轉移代币: