下記の4つの更新がある。
トランザクションのバージョンを1か2のみに制限する。
トランザクションサイズの下限を100バイトから65バイトに緩和する。
P2SHの新しい形式を追加する。
OP_HASH160 OP_DATA_20 hash160(redeem_script) OP_EQUAL
OP_HASH256 OP_DATA_32 hash256(redeem_script) OP_EQUAL
Bitcoin Cash上で任意のfungible tokenとnon-fungible tokenを扱えるようにする。
コントラクトの状態をNFTで表現することで、UTXOモデルでありながら高度なコントラクトを記述できるようになる。
token
SIGHASH_UTXOS
今までのsatoshi_valueとlocking_bytecodeに加え下記の要素が加わる。
satoshi_value
locking_bytecode
none
mutable
minting
commitment
Outputのフォーマットは下記のように拡張される。
<satoshi_value> <token_prefix_and_locking_bytecode_length> [PREFIX_TOKEN <token_data>] <locking_bytecode>
PREFIX_TOKEN
0xef
<token_data>は下記のフォーマットに従う。
<token_data>
<category_id> <token_bitfield> [nft_commitment_length nft_commitment] [ft_amount]
HAS_NFT
HAS_AMOUNT
トークンの情報を取得する6つのopcodeが追加される。
署名対象に消費するUTXOを含めるためのSIGHASH_UTXOS (0x20)が追加される。
0x20
hashUtxos
hashPrevouts
トークンを受け取れることを示すためのアドレスタイプが追加される。
BIP-0069のトランザクションのoutputをソートするアルゴリズムをトークンに対応させる。