OP_RETURN

OP_RETURN 是比特幣的一個操作碼,允許你在區塊鏈上永久儲存少量資料。它讓比特幣不只是支付系統,還能成為資料存證的平台。


什麼是 OP_RETURN?

比特幣交易使用一種簡單的腳本語言,其中包含各種「操作碼」(Opcode)。OP_RETURN 是其中一個特殊的操作碼,它的功能是:

  1. 標記這筆輸出為「不可花費」

  2. 允許在這筆輸出中嵌入最多 80 字節的任意資料

circle-info

簡單理解

OP_RETURN 就像是在比特幣區塊鏈上「刻字」。一旦刻上去,這些資料就永遠存在,無法刪除,全世界都可以看到。


為什麼需要 OP_RETURN?

在 OP_RETURN 被引入之前,人們用各種「駭客」方式在比特幣上存資料:

  • 把資料編碼成假的比特幣地址

  • 這些「地址」的比特幣永遠無法被花費

  • 造成 UTXO 集膨脹

OP_RETURN 提供了一個官方認可的方式來存資料:

  • 明確標記為不可花費

  • 不會造成 UTXO 膨脹(因為不會被加入 UTXO 集)

  • 節點可以選擇是否儲存這些資料


OP_RETURN 的限制

項目
限制

資料大小

最多 80 字節(約 80 個英文字母)

每筆交易

只允許一個 OP_RETURN 輸出

金額

必須為 0(不可花費)

80 字節聽起來很少,但足以存放:

  • 一個文件的哈希值(32 字節)

  • 一小段文字

  • 一個指向外部資料的指標


OP_RETURN 的應用

1. 文件存證

把文件的哈希值存上鏈,證明該文件在某個時間點存在。

流程:

  1. 計算文件的 SHA-256 哈希值

  2. 把哈希值嵌入 OP_RETURN

  3. 發送交易

之後任何人都可以:

  • 下載原始文件

  • 計算哈希值

  • 與區塊鏈上的記錄比對

  • 確認文件自該時間點後未被修改

2. 數位資產協議

許多協議使用 OP_RETURN 來定義數位資產:

  • Omni Layer(前身 Mastercoin)— USDT 最初就是透過 Omni 發行在比特幣上

  • Open Assets Protocol — 彩色幣協議

  • Counterparty — 比特幣上的智能合約平台

3. 身份驗證

把身份資訊的哈希存上鏈,用於去中心化身份(DID)系統。

4. 時間戳服務

證明某個資料在特定時間之前就存在。用於:

  • 智慧財產權證明

  • 合約存證

  • 學術研究時間戳


與 Ordinals 和 Inscriptions 的關係

2023 年興起的 Bitcoin Ordinals 使用了不同的方法:

比較
OP_RETURN
Ordinals Inscriptions

資料大小

最多 80 字節

可達數 MB

儲存位置

輸出腳本

見證資料(Witness)

對區塊鏈影響

較小

較大

主要用途

存證、協議標記

NFT、完整媒體檔案

OP_RETURN 適合存放小量、關鍵的資料;Ordinals 則允許存放完整的圖片、影片等媒體。


如何使用 OP_RETURN?

透過專業工具

  • OpenTimestamps — 免費的時間戳服務

  • Proof of Existence — 文件存證服務

  • BTCRelay — 跨鏈驗證

透過程式碼

使用 Bitcoin 函式庫(如 bitcoinjs-lib)可以創建包含 OP_RETURN 的交易。

基本結構:


OP_RETURN 的爭議

早期,部分比特幣社群成員認為 OP_RETURN 是對區塊鏈的「濫用」:

反對意見:

  • 比特幣應該只用於支付

  • 儲存任意資料會讓區塊鏈變大

  • 可能被用於儲存非法內容

支持意見:

  • 提供官方管道比私下濫用更好

  • 80 字節的限制足夠控制影響

  • 資料存證是有價值的應用

最終社群接受了 OP_RETURN,但將資料限制在 80 字節。


實際案例

比特幣創世區塊的訊息

中本聰在比特幣創世區塊中留下了著名的訊息:

"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"

這證明了比特幣在 2009 年 1 月 3 日之後才被創建。

婚禮誓言

有人把婚禮誓言的哈希值存上比特幣區塊鏈,作為永恆的紀念。

學術論文

研究者使用 OP_RETURN 來為研究資料提供時間戳,證明研究的優先權。


總結

circle-check

延伸閱讀

Last updated