Change-outputless transaction


Screenshot of live.blockcypher.com

このトランザクションには、メッセージつきOP_RETURNの出力がひとつだけ指定されており、おつりアドレスの指定がありませんでした。

ビットコインのトランザクションがブロックに取り込まれて承認されると、入力アドレスのビットコインは全て消費されゼロになりますから、この場合、入力アドレスに入っていた全てのビットコインがトランザクション送金手数料となってしまいます。ビットコインの採掘者、通常はマイニングプールに全額送金されてしまいます。こういうのは何と言うのでしょう、仮に Change-outputless transaction と呼びましょうか。おつり無し書き込み方式とでも呼びましょうか。

上記トランザクションでは、0.0001BTC(10000satoshi)が全て送金手数料として消費されました。送信されたのが2014年9月で、当時1BTC約5万円でしたから送金手数料は日本円で約5円でした。これ位だったら、おつりアドレスを指定しなくても惜しくないかもしれませんが、2021年には1BTCが500万円になっていますから、0.0001BTCは約500円ということになります。牛丼1杯、ハンバーガー1個という感じですが、それでもまあ、永遠の文字列をOP_RETURNで書き込みできるのですから許容範囲かもしれません。

Change-outputless transaction のやり方を書いておきます。ビットコインアドレスが2つ必要になります。

自分が普段使っているビットコインアドレス(取引所のアドレス)にビットコインを入れておく。

coinb.in などで作成したOP_RETURN送信用アドレス(ペーパーウォレット)に送金手数料分のみ送金(例えば0.0001btc)おつり無しなので、送金額は事前に十分吟味する。https://bitcoinfees.earn.com/などで良く検討する。勿体ない送金量ではないか?送金手数料として低すぎないか?つまり、少なすぎても多すぎてもダメということ。

coinb.in などで出力先アドレスを1つのみ、OP_RETURNで文字列を記録するだけのトランザクションを作成し、署名してブロードキャストする。


一生に一度しかOP_RETURN書き込みしないのであればこの方法でも良いと思いますが、何度も書き込みしたい場合は推奨できません。取引所のウォレットから送金するときの手数料で数千円掛かることが多いからです。例えば1万円分をペーパーウォレットに送金し、そこから何回かに分けてOP_RETURNを送信するというのがお勧めのやり方となります。

おつりアドレスを指定するオーソドックスなトランザクションも御紹介しておきます。入力アドレスが10000satoshiで、送金手数料が2000satoshi、おつりアドレスに8000satoshiを送金するトランザクションです。1vbyteあたりの手数料は11satoshiでした。

Screenshot of live.blockcypher.com

コメントを残す

メールアドレスが公開されることはありません。