ビットコインの出金手数料について
出金手数料の仕様変更について、アナウンスが遅れてしまいましたことをお詫び申し上げます。
Zaifでは、実際に採掘者へ支払われる手数料について、お客様が出金時に設定した値そのものではなく、トランザクションのサイズに応じた値(1kBあたりの手数料)を設定して送金するようにしています。
結論から申し上げますと、BTCの出金手数料に関してましては、デフォルトの出金手数料0.0002BTCで出金して頂くと、数ブロック以内に承認されるであろうことが期待できる手数料にて出金処理が行われます。 0.0003BTC以上で設定して頂くと、おそらく次のブロックに最優先で取り込まれるであろうという手数料となり、0.0001BTCを指定して頂くと、数十ブロック先になる可能性がある手数料レベルでの処理となります。
以下、少し長文かつややこしい話なのですが、頻繁に出金されるかたは是非ご一読くださいますと幸いです。
2016年3月4日現在、お客様から頂いた手数料の2.5倍(※)の金額をkBあたりの手数料として送金するようになっています。
デフォルトの出金手数料0.0002BTCを頂いた場合、一番小さいレベルのトランザクションサイズ226byteで送金処理が完了しますと、ネットワーク上への手数料は226*0.0002*2.5/1000=0.000113BTCとなります。 これは、頂いた手数料よりネットワーク上へ流れる手数料が少なくなるケースとなります。
同様に、金額の組み合わせの問題により、トランザクションサイズが996byteと大きくなってしまった場合、ネットワーク上への手数料は996*0.0002*2.5/100=0.000498BTCとなります。 これは、頂いた手数料よりネットワーク上へ流れる手数料が大きくなるケースとなります。
※この倍率およびデフォルトの手数料については、ビットコインネットワークの状況に応じてこちらで調整させて頂きます。現状0.0005BTC/kBをターゲットにしており、このターゲットについては 21.coのデータを参考にした上で設定するようにしています。
この変更は2016年2月下旬に、以下のような理由で行ったものです。
1. トランザクションと手数料
トランザクションの承認を行うマイニング作業を行うマイナー達は、1つのブロックになるべく多くの手数料が含まれるような形式でマイニングを行います。
これは、マイニング作業に成功した時、含まれる全てのトランザクションの手数料が報酬として(ブロック高進捗報酬の25BTCとは別に)マイナーのものとなるためです。
また、現時点でビットコインのブロックサイズは1MBに制限されており、1ブロックにはいるトランザクションの数は、トランザクションの絶対数で決まるものではなく、トランザクションのサイズを含めた総量となります。
そのため、手数料の高さというものは、トランザクション1つに対する額ではなく、トランザクションサイズに応じた額が評価され、マイナーはサイズに応じた手数料が高いものを優先的に処理します。
2. 固定手数料による弊害
以前のデフォルトの手数料0.0001BTCという金額は、トランザクションサイズが小さい場合は充分高額な手数料でした。
しかしながら、トランザクションサイズというものはInputsおよびOutputsの数に大きく左右されますので、下記のようなトランザクションが発生してしまった場合、なかなか承認処理されない問題が発生していました。
* 6 inputs => 2 outputs(送金先+お釣りアドレス) / ネットワーク上へ支払った手数料0.0001BTC / ブロックサイズ668バイト
この手数料をkBあたりに直すと、0.000149...BTC/kB となります。このトランザクションの承認には24時間以上を要してしまいました。
同じ日に発生した別のトランザクションでは
* 1 inputs => 2 outputs (送金先+お釣りアドレス) / ネットワーク上へ支払った手数料0.0001BTC / ブロックサイズ226バイト
というもので、kBあたりの手数料は 0.000442...BTC/kB となり、このトランザクションは発生から2ブロックで承認されました。
この様に、出金手数料を固定したままでトランザクションを送信すると、サイズが小さいものはすぐ処理されますが、サイズが大きくなってしまったものはなかなか処理されないという問題が発生していました。
3. トランザクションサイズの決定
トランザクションサイズに応じて手数料を変更すべき、常に一番小さいトランザクションサイズで出金処理をすればよいというように考えられます。 しかしながら、ビットコインのトランザクションとは、受け取ったトランザクションのうち未使用のものを組み合わせて新しい送金トランザクションを作成する、という形式になっています。
すなわち、出金する金額に応じて、受け取り済みのトランザクションから組み合わせて出金を行う必要があるため、常に最小のトランザクションサイズで出金処理を行うということは現実的ではありません。
もちろんなるべくトランザクションサイズは小さくなるような組み合わせで出金処理を行いますが、常に最小レベルのサイズにできるというわけではありません。
このように、固定の手数料ではトランザクションサイズが大きくなってしまった時、極端に優先度が下がり、かなり後回しにされてしまうという問題があきらかになっていました。
Bitcoin coreの推奨トランザクション手数料の計算では、2016年3月4日時点で0.00051448BTC/kBの手数料であれば、最優先で処理され、1ブロック以内に承認されるであろうと予想されています。
* 3月2日の日中の一部のトランザクション遅延について
また、この変更に伴い、3月2日の日中の一部のトランザクションについて、大幅な承認遅延が発生してしまいました。
この遅延はこちらでターゲットとするkBあたりの手数料について、過小となってしまったため発生したものです。
すべてのトランザクションが遅延したものではありませんが、数名の方の出金処理について大変おまたせする結果となってしまったことをお詫び申し上げます。
* 参考リンク ビットコインの送金時間が遅い!と感じたら送金手数料を確認しましょう - @yzono blog
Bitcoin Fees for Transactions | bitcoinfees.21.co (英語)
ビットコインのトランザクション数のグラフ - CoinDesk
Bitcoin’s ‘New Normal’ Is Slow and Frustrating (英語)
Blockchain Monday Blues Due to Spam Transactions on Bitcoin Network (英語)
Bitcoin's Capacity Issues No 'Nightmare', But Higher Fees May Be New Reality - CoinDesk (英語)