btc: btc: btcdebを使う (4)
2025/03/16
ようやく btcdeb のドキュメントのうち tapscript(tap
版)を一通りやった。
全機能を使ったわけでは無いが、私が使うにはこのくらいで十分だろうと思うところまではやったつもりだ。
ドキュメントに書いていなかった Alice 側のスクリプトで解くところも書いた。
OP_CSV
を使っているので sequence を書き換えることになるが、そこでいろいろつまずいた。
tap
コマンドで sequence を書き換えることができるんじゃなかろうかtf
で sighash が求められるんじゃなかろうかtap
コマンドで署名だけ置き換えられるんじゃなかろうか- 置き換えたけど
btcdeb
でもtestmempoolaccept
でも失敗する
こんな感じだった。
tap
コマンドで sequence を書き換えることができるんじゃなかろうか
できなさそうだった。
あきらめて raw transaction を手で書き換えた。
tf
で sighash が求められるんじゃなかろうか
できなさそうだった。
ただ OP_CHECKSIG
のときに sighash を出力していたので、その値を流用できる。
sighash と秘密鍵があれば tf
でシュノア署名を演算できる。
tap
コマンドで署名だけ置き換えられるんじゃなかろうか
これ自体は可能である。
ただ、sequence の書き換えを tap
コマンドでできなさそうなので
署名だけ置き換えても意味が無いというか何というか。
tap
で署名だけ置き換えて sequence は手動で書き換え- どうせ sequence を手動で書き換えた raw transaction で
OP_CHECKSIG
するのだから署名の書き換えも手動でいいや
個人の感想
全くの個人の感想なのだが、OP_CSV
のスクリプトで sequence を書き換え忘れるというのはよくあることだと思っている。
私はだいたい忘れてるね。
幸い、locking script ではないのでそういうトランザクションを作っても Bitcoin ノードに拒否されて終わる。
OP_CSV
は何度もやらかしたので思いついたのでよかったが、それまではエラーの理由が分からずに悩んだのである。