OP_CSV
CHECKSEQUENCEVERIFY
output がブロックに含まれてからの相対時間で UTXO をロックする
BIP68
コンセンサスレベルで、input nSequence の意味を変えた
nSequence は相対時間を表す。unlock する output が、マイニングされてから nSequence 以上の時間が立っていないと、ブロックに含まれることはない
bips/bip-0112.mediawiki at master · bitcoin/bips · GitHub
BIP68 で導入された定義を利用して、相対タイムロックを使ったスクリプトをかけるようにする op code
bip68 だけでは、output にタイムロックがかかっているわけではない。単にそれを使う input が、特定のブロック高にならないとマイニングされないという制限
これを利用して、output 側でタイムロックをかけることができる
例えば
<time> CHECKSEQUENCEVERIFY という locking script がある
これはこの locking script(output) を消費する input の nSequnce が <time> 以上でないと fail する
BIP68 により、nSequnce が <time> 以上であることは、次のことを意味するようになった
child tx は parnet tx がマイニングされてから <time> 以上である
この output を消費できる input は、nSequnce が <time> 以上であるinput であり、そのような tx は、BIP68 の定義により、output がマイニングされてから time 以上立っていないとマイニングされないことになっている。
つまり、locking script が confirm されてから<time> 以上たたないと使えない spending path が定義できる
RBFも nSequence フィールドを使う。なんらかのコンフリクトは生じないのか?
CSV でのタイムロックを使う場合、必ず opt in rbf になる
locktime - Sequence number semantics - Bitcoin Stack Exchange
Re: bitcoin-dev nSequence multiple uses - David A. Harding
Bitcoin Script op code
Bitcoin Script BIP112 by BtcDrak