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 は何度もやらかしたので思いついたのでよかったが、それまではエラーの理由が分からずに悩んだのである。
writer: hiro99ma