銀現物を買おう!

銀の現物を買う方法の備忘録#silversqueeze

DMM Bitcoinの送料無料のカラクリ

BitPayに試しに送金してみようと思って出庫料が無料だったDMM Bitcoinから送金してみました。

前回時間がかかることは確認していました。
physical-silver.hatenablog.com

送金時間

出庫依頼:2020/09/08 16:07:32
出庫実行:2020/09/09 16:24:18
承認完了:2020/09/09 16:28
依頼かけてから実行するまで丸1日くらいかかってますね。
確かにこれでは買い物には使えないですね。
承認までは時間がかかっていないですね。送金詰まりは起きていないようです。

Transactionの中身

f:id:stingerSLV:20200909233732j:plain
このTransactionは1 Input 65 Outputになっていました。
DMM Bitcoin保有している15.95BTC64件の出庫依頼をまとめて送金処理しているようです。(1件は自分へのお釣り)
そしてTransactionはsizeが2,434byte、feeは57.19sats/byteになっています。
なので、DMM Bitcoinが負担した手数料は0.01392BTC(約1500円)です。
BTCの送金は通常設定したfeeが高いほど早く処理してもらえます。
BitPayでの一番コストを低くした設定の「超節約」を選んだ場合のfeeは65sats/byteだったのでDMM Bitcoinはそれよりも少ないfeeで送金しようとしているわけです。

ちなみに1satoshi = 0.00000001BTC(約0.01円)です。

まとめて送金した方が手数料が安くなる理由

BTCのTransactionのデータ構造は

148byte * Input数 + 34byte * Output数 + 10byte

のよう(これで計算しても上の2,434byteにはならないので実際はもう少しいろいろあるんでしょう。)
なのでこの式から求められたバイト数に手数料を掛け合わせると実際に支払う手数料になります。
この式を見るとInputが増えるとバイト数も増えるので
なるべくInputを減らしてOutputを増やした方がトータルバイト数が減って支払う手数料が安くなるというわけですね。

1件ごとに出庫する場合とまとめて出庫する場合の比較

上記の64件1件づつ出庫するのとまとめて出庫する場合の手数料を比べてみたいと思います。

総バイト数計算

1件ごと処理する場合は1 Input 2 Output(1件はお釣り)で64件分で計算します。
(148 * 1 + 34 * 2 + 10) *64 = 14,464byte
まとめて処理する場合1 Input 65 Outputで計算します。
148 * 1 + 34 * 65 + 10 = 2,334byte
バイト数で6.2倍違います。

手数料額計算

これを仮に100sat/byteの手数料で出庫したとすると手数料の総額は以下になります。
14464 * 100 / 100,000,000 = 0.014464BTC(約15,476円)
2334 * 100 / 100,000,000 = 0.002334BTC(約2,497円)
(1BTC = 1070000円で計算)

出庫1件当たりの手数料計算

1件当たりの手数料に換算すると
15476 / 64 = 242円/件
2497 / 64 = 39円/件

実際はもっと低いレートで送っているので25円/件ぐらいなのでしょう。

総括

DMM Bitcoinの出庫手数料が無料なのは複数の出庫をまとめて処理することで手数料を安く抑えることで実現しているようです。
出庫手数料を取っている他の業者はおそらく1件づつ処理しているんではないでしょうか。
出庫にかかるコストはこれだけではないと思いますが他社は随分マージン取ってるんじゃないですかね?
そういう意味では持ち出しが発生しているDMM Bitcoinはまだ良心的なのかもしれません。

あと手数料が無料(有料でも)だからといって少額を何度も出庫するのはやめた方がいいと思います。
手数料が固定の国内業者ならそう影響が出ないかもしれないですがBitPayのような実際に送信したバイト数で手数料が請求されるとInputの数が多くなると手数料がかさむと思われます。
前回のOutputは今回のInputです。
10 Input 2 Outputみたいなことになると無駄な手数料を払う羽目になると思います。
まだBitPayで支払いをしたことがないので手数料体系とかよくわかってないですが仕組み上はそうなると思います。