Ordinals 協議深度解析
深入理解 Ordinals 協議的技術實現、序號算法與共識關係。
Ordinals 協議深度解析
什麼是 Ordinals 協議?
Ordinals 協議是由 Casey Rodarmor 於 2023 年 1 月提出的比特幣 NFT 協議。它利用比特幣的 隔離見證 (SegWit) 技術,將任意內容(文字、圖片、音頻、視頻)刻錄到比特幣區塊的 witness 欄位中。
核心概念
序號 (Ordinal)
比特幣的每一個 Satoshi(比特幣最小單位,1 BTC = 1億 Satoshi)都被賦予一個唯一的序號。這個序號遵循比特幣的發行順序:
- 創世區塊的第一個 Satoshi 序號為 #0
- 之後每個區塊的 Coinbase 交易中的第一個 Satoshi 遞增
刻錄 (Inscription)
刻錄過程將內容嵌入比特幣交易中:
- 將內容編碼為 Bitcoin Script
- 通過
OP_FALSE OP_IF ... OP_ENDIF結構封裝 - 使用隔離見證資料空間存儲
- 創建包含此 witness 資料的交易
內容類型 (Content Type)
支持的 MIME 類型包括:
text/plain- 文字image/png,image/jpeg,image/gif,image/webp,image/svg+xml- 圖片audio/mpeg,audio/wav- 音頻video/mp4,video/webm- 視頻application/json- JSON 數據model/gltf+json- 3D 模型
技術實現
刻錄交易結構
OP_FALSE
OP_IF
OP_PUSH "ord"
OP_PUSH 1
OP_PUSH content_type_length
OP_PUSH content_type
OP_PUSH 0
OP_PUSH data_length
OP_PUSH data
OP_ENDIF
Ordinal 編號算法
def get_ordinal_number(block_height, tx_index, output_index, satoshis):
"""
計算特定 Satoshi 的 Ordinal 編號
"""
# 每個區塊大約有 6.25 BTC (減半後)
base = block_height * 625000000
# 加上交易中的位置
ordinal = base + tx_index * 1000 + output_index
return ordinal
與比特幣共識的關係
共識友好性
Ordinals 遵守比特幣的共識規則:
- 不修改共識層
- 不使用 OP_RETURN(使用 witness)
- 不增加區塊大小(內容在 witness 中)
爭議與討論
- 區塊空間使用:批評者認為 Ordinals 佔用比特幣區塊空間
- 垃圾信息風險:任何人可以在區塊中刻錄任意內容
- 礦工激勵:支持者認為增加區塊空間需求可提高礦工收入
實際應用
創建 Ordinals
# 使用 ord 工具創建 Ordinals
ord wallet.inscribe --fee-rate 5 --file image.png
交易所支持
主流交易所如 Binance、Coinbase 已經或正在支持 Ordinals 交易。
風險提示
- 錢包兼容性:並非所有比特幣錢包支持 Ordinals
- 轉移風險:發送 Ordinals 時可能意外轉移普通 BTC
- 費用波動:刻錄費用隨比特幣網絡擁堵波動
延伸閱讀
相關文章
- 刻錄 (Inscription) 技術詳解 — 深入理解 Ordinals 的刻錄機制與隔離見證的關係。
- 什麼是 Ordinals? — 理解比特幣上的數位工件協議,如何在比特幣區塊中刻錄內容。
- BRC-20 代幣標準 — 理解比特幣上的實驗性代幣標準與部署方式。
- BRC-20 代幣標準深度詳解 — 全面解析 BRC-20 代幣標準的運作原理、熱門代幣與開發指南。
- Ordinals 開發者指南 — Ordinals 協議開發教學
延伸閱讀與來源
這篇文章對您有幫助嗎?
請告訴我們如何改進:
0 人覺得有帮助
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!