MetaID 信封格式

信封格式

MetaID 內容完全在鏈上的,MetaID 信封格式在當前 V2 版本中支持兩種方案:

1. Taproot-Script

通過利用 Taproot-Script 的“commit/reveal”方案,在輸入的 Taproot 腳本中,放置 MetaID 信封,其中包含可以在 MetaID 上合法執行的各種操作。約定是使用 OP_FALSE OP_IF ... OP_ENDIF 將任意不可執行的內容放置在 Taproot 支出腳本中。我們使用 “metaid” 字節(6D6574616964 十六進制)來標識該信封為 MetaID 協議。

Taproot-Script 的 Envelope 方式:

OP_FALSE
OP_IF
	<metaid_flag>
	<operation>
	<path>
	<encryption>
	<version>
	<content-type>
	<payload>
OP_ENDIF

2. Locking-Script

通過利用 OpReturn 操作碼,將數據放在其後,在交易輸出的 Locking-Script 中,放置 MetaID 信封,其中包含可以在 MetaID 上合法執行的各種操作。約定是使用 OP_RETURN 將任意不可執行的內容放置在鎖定輸出腳本中。我們使用 “metaid” 字節(6D6574616964 十六進制)來指示該信封屬於 MetaID 協議。

Locking-Script 的 Envelope 方式:

OP_0
OP_RETURN
	<metaid_flag> 
	<operation>
	<path>
	<encryption>
	<version>
	<content-type>
	<payload>

信封必須出現在輸出腳本中的 OP_RETURN 之後,且在 output 的 index 為 1 的位置,index 為 0 的 utxo 的第一個 satoshi 則是用來承載信封的內容。

注意:如果同一交易同時存在 Taproot-Script 和 Data-script 兩種信封格式,以 Taproot-Script 的方式為主。

Last updated