ビットコインの情報サイトの運営者ブログ

サイトには掲載していない仮想通貨に関する時事的な情報や個人的な感想など。中級者以上向け。

ビットコインの最適な取引手数料を決める方法

早いもので今年もそろそろ終わりです。新しいことはここ数か月全然調べられていないので、今更な話ですが取引手数料について。

もしかしたら有名な内容で、このブログを見ているような人はみんな知っているかもしれませんが、一応書いておきます。

背景とか

正確な原因は諸説あるものの、最近はビットコインの値上がりとともにビットコインのトランザクションが大混雑状態になり取引手数料も高騰しています。

ほとんどのウォレットソフトが自動で手数料を計算しているので、少し前はそれに任せて全然気にする必要なかったのですが、最近は数千円手数料がかかることが当たり前になってきたので、少しでも安くならないものかと思うことが増えてきました。

実はウォレットソフトのほとんど(すべて?)の手数料計算はあまり精度がよくなく、実際に必要な手数料よりも多めの手数料を提示しており、手動で手数料を設定したほうが良い場合が多くあります(あまりぎりぎりの手数料を提示しても今度は送金が完了しないというトラブルが頻発するので、納得はできる仕様)。

いずれにせよ安めに送るにしても高めでもいいから確実に送るにしても、最適な取引手数料を設定するには手動で設定するしかないのが現状なので、今回はそれについての記事です。

手数料計算サイト

このブログの過去の記事でも触れたことがあり、手数料予測のサイトのなかでおそらくもっとも有名なのが以下のサイトですが、実際にはあまり精度は高くないような気がします。

Bitcoin Fees for Transactions | bitcoinfees.earn.com

少し前はどんなに高くてもせいぜい数百円程度だったので、上のサイトでも十分だったのですが、最近は手数料をできるだけ低く抑えたくなるぐらいの高さなので、より正確に最適な手数料を求める必要がでてきました。

ちなみに他の手数料予測のサイトも軽く調べてみましたが、よさそうなところはありませんでした。

そこで最近使っているのが以下のメモリプール内にあるトランザクションを手数料別にソートしてサイズを表示してくれるサイトです。

メモリプールの状態を見る

jochen-hoenicke.de

f:id:jpbitcoin:20171230153021p:plain

 

 手数料を決める時はこのサイトの一番下の「Mempool Size in MB」のグラフを見て決めます。ブロックが採掘される毎に1MB+α分だけメモリプールのトランザクションが引かれるのが通常ですので、手数料を決める際は、上のトランザクション数とか手数料の合計額のグラフよりも、サイズを直接見るのが最も良いです。

グラフ内にカーソルを合わせると各手数料別のサイズが表示されます。large mempoolだと累積のサイズも表示されるのでそちらを選択するのが良いかも知れせん。more stripeを選択すると手数料の区分が細かくなります。

f:id:jpbitcoin:20171230153427p:plain

例外もありますが、通常は手数料の高いトランザクションから順番に処理されていきますので、このデータだけを見ると、次のブロックに入るのはどの手数料か予測することができます。

画像の場合ですと500+satoshi/byteで1.6MBのトランザクションが累積されているので、500satoshi/byte以上の手数料を設定しないと1ブロック以内に送金完了させるのは難しいことが予測されます。また、連続でブロックが生成されるようなこともありますので、400+の手数料でも可能性は高そうです。

このデータだけを見ているとちょっとわかりにくく、かといって今のようなメモリプールが大混雑状態になるときはグラフは上の部分が小さすぎてわかりにくいので、そういうときは左の凡例部分をクリックさせて上のほうを拡大するのがおすすめです。

f:id:jpbitcoin:20171230154030p:plain

上は100以上の凡例の部分をクリックしたときのグラフです。こういうグラフだとメモリプールの状態がわかりやすいです。今日の6時過ぎに100-120のトランザクションがブロックに入ったのを最後にメモリプール内のトランザクションは増加傾向にあります。

300帯以下のトランザクションが10時間近くブロックに入っていないようなので、300satoshi以下で送ってしまうと、このままトランザクションが増加しつづけていった場合、下手すると何日も送金が完了しない可能性が予測されます。

逆に300-400帯は何度か上のほうがブロックに入っていますので、この手数料帯なら数時間以内に送金完了する可能性が高まってくるということになります。

400-500ならさらに可能性は高くなりますし、500+なら確実に数ブロック以内に完了しそうな感じがします。

増加傾向にあるのも考慮して、すぐに送金完了させたい場合は、自分なら500satoshi/byteくらいに設定すると思います。

なにかの法則とか形式にしたがって手数料を算出する・・・というよりは、グラフとデータを見て直感的に決める感じなので、解説もしにくいですが、皆さんも実際に見ながら設定してみるとわかってくると思います。

注意点とか

軽く注意点とか。

  • メモリプールというのはノードごとに別々に構築されるものです。ネットワーク上のラグの影響やメモリプールの設定等によってメモリプール内のトランザクションの内訳は異なってくるので、このサイトのトランザクションの手数料の高い順から正確に1MB(+α)引かれていくわけではありません(マイナーが手数料の低い自分や友達のトランザクションを優先してブロックに含めるとかいったこともあり)。そのため、2番目の画像内のデータというよりは、3番目の画像のグラフの形から感覚的に手数料を決めることの方が重要ですし分かりやすいです。
  • サイトが接続しているビットコインノードが、一時的にシャットダウンするなどしてネットワーク上の他のノードとは大きく違うメモリプールになる可能性もあります。このサイトはオープンソースですので、もしフルノード運用している人がいたら、自分のノードのメモリプールも見れるようにして、二つのメモリプールを同時にみるとより確実でしょう。
  • 安く手数料を済ませかつ確実に送金完了させたい場合は、低めに手数料を設定しても後から手数料を追加できるRBF(Replace-By-Fee)機能が使えるウォレットを使うのが良いです。

 さいごに

ということでこれが今年最後の記事でした。最近はブログ記事にあまり力を入れられていないので、来年はもっと頑張りたいところではありますが、サイトのほうの情報もだいぶ古くなっていて使えないサイトになりつつあることもあり、しばらくはサイトの更新に注力するつもりです。

今までのように月1更新を目標にするのはやめてしまいますが、ブログは広告も入れてない完全趣味な感じでやっていますのでお許しください。また書きたい欲が出てきたら頻繁に更新するようになるかもしれません。

それでは皆さん良いお年をお迎えください。