Bitcoinの送金遅延問題

記事公開から24時間で、Bitcoinの送金詰まりはさらに悪化しています。ページ内で提示している具体的な手数料では、送金遅延が発生するかもしれません。
このページでは、計算方法や適性な手数料の確認方法も紹介しているので、その項目を参考にしてください。

久々 (約1年半ぶり) に Bitcoin Core を立ち上げ送金してみたら、見事に送金詰まりに引っかかってしまいました。3日経っても送金されません orz

ということで、Bitcoin の送金には一体どれくらいの手数料が必要なのかキチンと確認してから送金しないとヤバイなあ。。。。と実感したので調査&覚え書きです。

はじめに

以下、長々と書いていますが、自分の場合「1年半ぶりに起動した Bitcoin Core で、同期完了した直後に送金した」ってのが送金詰まり (手数料不足) の一番の原因でした。

このページの重要ポイント

送金詰まりの原因を探り、このページをまとめ、改めて Bitcoin Core をチェックすると 送金手数料の初期設定が 15~16倍跳ね上がってました。

この手数料設定の反映を待ってから送金しなければダメだったのですね/(^o^)\

以下、これに気が付くまでにアレコレと調べた内容や、現時点での適切な手数料はどれくらいか、その計算はどのように行うか、などのお話が書いてあります。

スポンサー リンク

現在どのくらい送金が詰まっているか

以下のページで確認可能。
blockchain.info - unconfirmed transactions
送金が詰まっている数。blockchain.infoのスクリーンショット
▲クリックで拡大
このページ執筆時点で約14万件。
私が送金詰まりを起こしてしまった時は16万5千件の「未確認なトランザクション」が発生していた。(この記事公開直後に再確認したら30件/秒のトランザクションが発生中。22万件の送金が詰まってます...)

送金詰まりの状態を確認する

BlockCypher
送金が詰まっている数。blockchain.infoのスクリーンショット
このサイトの検索窓に「送金詰まりが発生しているトランザクションID」を入力すると、以下のような結果を得ることができる。

送金詰まりを起こしているトランザクション
送金詰まりを起こしているトランザクション
▲クリックで拡大
FEES (マイナーへの手数料) が 0.0000384 BT
ブロックサイズが 192 bytes
Confidence (信頼性) が35.8%
Miner Preference (マイナーの優先度) が LOW

サクっと送金してくれるトランザクション
送金詰まりを起こしているトランザクション
▲クリックで拡大
FEES (マイナーへの手数料) が 0.0008577 BT
ブロックサイズが 225 bytes
Confidence (信頼性) が93.7%
Miner Preference (マイナーの優先度) が HIGH

手数料が低すぎるとマイナーの優先度が下がり、処理が後回しにされてしまう。
上記サイトはその辺をグラフィカルに、うまい具合に表現してくれている。

手数料の計算方法 (どれくらいの手数料が必要か)

以下のサイトさんが詳しく解説してくれていた。

  • トランザクションのサイズ (バイト数)の計算は、
    148∗input数+34∗output数+10 で計算できる。
    • 計算例
      input が一つで output が二つ(送金相手のアドレスだけではなく自分のお釣り用アドレスにも送金する場合がほとんど)のトランザクションのサイズは、
      148∗1+34∗2+10= 226 バイト
  • 2017年2月時点では、1バイトあたり 0.0000009BTC (90satoshi) くらいあればよい、との事。

現時点の「送金処理が行われている」手数料を確認する

これは実際に現時点のブロックチェーンを確認するしかない。
blockchain.info で最近処理されたトランザクションを確認してみる
送金詰まりを起こしているトランザクション
▲クリックで拡大
(上図では4つの送金を確認している)

  • 2017年12月18日時点、1バイトあたり 600~770satoshi に設定して送金しているユーザーが半数を占めていた。
  • また、1バイトあたり 200~400satoshi で送金しているユーザーも結構いる。このくらいの手数料があれば (多少の遅延が発生しても) 問題なく送金できるのだろう。
  • 注意: 100satoshi 以下は極めて少数だった。
    この手数料で送金するユーザーは、すでにごく少数であるか、もしくはかなりの遅延が発生した後、たまたま処理された、程度のものと思われる。

Bitcoinのトランザクション処理能力はどれくらいなのか

Bitcoinは、1ブロックでだいたい 2000~2500件くらい、1日で30~40万件のトランザクションを処理している。
だいたいこの辺が限界っぽい。

1日の処理量がどれくらいか?は以下で確認可能。

  • ビットコインチャート - Blockchain.info
    Bitcoinのトランザクション処理能力はどれくらいなのか
    ▲クリックで拡大
    リンク先のちょっと下の方、「平均ブロックサイズ」と「ブロックあたりの取引数」を見れば、おおよその取引量の限界が分かる。

現在の Bitcoin のブロックサイズの最大は1MB。この範囲内に収まる量の取引しか処理できない。

これについての分かりやすい記事

 

ここまでの段階で、「手数料はどれくらい必要なのか」はおおよそ理解することができた。しかし、以下の問題が残る。

オンライン Wallet では、ブロックサイズの確認ができない。

多くのオンライン Wallet は、手数料はほぼ固定 (0.0005BTC以上)。Bitcoin の送金で発生するブロックサイズの大きさを確認する事ができない。

これはもう、大手のちゃんとしたオンライン Wallet は、送金しやすいブロックチェーンから優先して送金を行うはず・・・・と信じて計算するしかない。

  • すると、手数料は以下くらいが目安になる。
    • 安全に、なるべく早く送金するなら
      700satoshi*226バイト = 0.001582 BTC
    • 特に急いでない場合であっても
      200satoshi*226バイト = 0.000452 BTC
    • 注意:
      上記はinput数「1」の場合。
      金額が大きいなど input数が大きくなると考えられる場合は、前述の計算式でこれより多めの金額を設定する。
      • ※input数・・・・送金元のアドレスの数。1個のアドレスでも、複数回の入金を行っていた場合、入金の回数分アドレスが作成されているので注意。
      • オンライン Wallet などアドレスが1個しか付与されていないものの場合、ここは推測で計算するしかない。

Bitcoin coreなら ブロックサイズの確認ができる

Bitcoin coreの場合、送金直前の確認ダイアログに手数料やトランザクションのサイズが表示される。

送金画面で確認できる項目
ブロックサイズの確認
▲クリックで拡大
この場合、85883÷266 = 322satoshi/byte

  • ここに表示されるバイト数と手数料を計算し、1バイト当たりの手数料が 200 satoshi/byte ~ 700 satoshi/byte (0.000002 BTC/byte ~ 0.000007 BTC/byte) になっている事を確認する。
  • Bitcoin core にお任せしていても、ある程度適切な手数料を設定してくれる。が、手数料は必ず確認する事。
  • 手数料が足りないと感じた場合は以下で調整する。
    手数料の調整
    ▲クリックで拡大
     ※補足注意
    • 「20分 (2blocks)」に設定しても 350 satoshi/byte 位にしかならなかった。
    • 700 satoshi/byte くらいに設定したい時は「カスタム」で調整する。
  • 送金の最終確認画面でも、手数料の確認は可能。
    手数料の確認
    最終的には、ここでキチンと手数料をチェックする。

  

Bitcoin core で送金する際の注意事項

このページ先頭の「はじめに」で書いた内容。
今回の私の場合、以下の失敗をしてしまった。

  • 1年半くらい放置していた Bitcoin core で、同期完了直後に送金した。
  • どうやらこの段階では 手数料の設定は更新されていない感じ。
    • 同期完了直後の手数料設定 ・・・・・・・・ 20 satoshi/byte
    • 同期完了2時間後の手数料設定 ・・・・ 320 satoshi/byte
  • という事で、私は 20 satoshi/byte の手数料で送金してしまい、見事に送金詰まりを発生させてしまった。

さらに注意点 (というか悲劇)

過去に複数回の入金があったアドレスは注意
大量の入金があるアドレスは注意
▲クリックで拡大
上図は私が「FreeBitcoin で遊んだコインを受け取るアドレス」から送金しようとしたもの。このアドレスは、4年間で実に192回の送金を受け取っており、トランザクションのサイズは28494バイト、送金手数料はなんと 0.1BTC。

1週間で数十円ほどしか稼げないゲームでも、私は4年間で相当貯め込んだつもりになっていました。でもこれ・・・・ほぼ全部が送金手数料で消えちゃいますね /(^q^)\

まとめ

  • Bitcoinを送金する時は、まず最新のブロックチェーンを確認し、賞金処理されたトランザクションの手数料 (satoshi/byteの項目) を確認しよう
  • 急いでいる場合は、半数以上のトランザクションが設定している手数料と同等の金額を設定しよう。
  • 長期間放置していた Bitcoin Core を利用する場合、動機が終わってもスグ送金しないようにしよう (1~2時間待つか、1回再起動させてみる)
    • そして、出金前の最終確認ダイアログで satoshi/byte が適切な値になっているかを確認しよう

その他

久々にBitcoin coreを起動したら、1年半分のブロックチェーンの同期に約30時間、1週間分の同期に約2時間かかりました。これ、ダウンロードじゃなくHDD内のスキャンで時間を食ってますね。。。

という事で、「ごくたまにWalletを使う」レベルのユーザーは、もうBitcoin coreは使えないっすねえ。頃合いを見計らって軽量Walletに移行しないとダメだなあと思いました。

あと、ライトニングネットワークでも、ビッグブロック でも Segwit2x でも、何でも良いので、早いこと何かしらの送金対策を行わないと bitcoin 使いものにならないっすね。。。

このページは以上です。

おまけ: 自分用メモ 外部参考リンク