アットウィキロゴ

手数料

取引手数料(transaction fee)について解説したサイトの一つに
http://bitcoinfees.com/
がある。暫定的に、このサイトをほぼ日本語訳した形でこのページを構成する。

Bitcoinシステムは適宜変更が可能であるため、最新の情報は各自確認すること。

概要

Bitcoinの特徴の一つに、手数料が極めて低いことが挙げられる。
手数料は一定の手順で計算され、少ないときは無料、多くとも数十円で済む。

手数料は採掘者が採掘を続ける動機になり、それはBitcoinネットワークの安全を支えている。
採掘者はブロックを掘り当てたときに得られるコイン(現在は25BTC)に加え、この手数料を得られる。

計算手順

他のすべての設定と同様に、手数料体系もBitcoinシステムのルールに組み込まれている。計算の手順は使われているクライアントに依存する。
Bitcoin-Qtでは、以下の手順で手数料が決まる。


1.使用するコインを選ぶ

最初にクライアントが取引に使用するコインを決める。ウォレットには、コインが受け取ったときの状態で残っている。
例えば2BTCを受け取り、さらに3BTCを受け取ったとき、ウォレットには2つのコインが存在することになる。
支払いのとき、クライアントがウォレットにあるコインの中から最適な組合せを決める。

(用語)
取引において、使われるコインをインプット(inputs)、ここから新たに作られるコインをアウトプット(outputs)と呼ぶ。

例:1BTCの支払いに2BTCのコインを使用するとき、
 インプット  : 2BTCのコイン
 アウトプット : 1BTCのコイン(支払い用), 1BTCのコイン (余り)

2. 少額取引へのペナルティ

いずれかのアウトプットが0.01BTCに満たない場合、0.0001BTCの手数料が発生する。
コイン選択アルゴリズムは可能な限りこの手数料が発生しないように働く。

3. 古いコイン、高額コインの優遇

インプットするコインが小さすぎたり新しすぎたりすると、無料で行うには値しない取引とみなされる。各取引は優先度が割り当てられ、それはインプットされたコインの古さ、大きさ、数から計算される。

4. データ量により手数料が発生


最後に、クライアントは取引サイズをチェックする。このサイズはインプットとアウトプットに依存し、おおまかには以下のように計算される。

 148 × (インプットの数) + 34× (アウトプットの数) + 10  (単位:バイト)

もしサイズが10,000バイト未満で、かつstep3における優先度が十分高ければ、手数料は無料となる。そうでなければ、1,000バイトごとに手数料が発生する。
1,000バイトごとの手数料は初期設定では0.0001BTCであるが、クライアントで設定することが出来る。このとき、Step2以降の処理がその値で行われる。

これらのルールは全てクライアントのソースコードで確認できる。
 CTransaction::GetMinFee() in src/main.cpp
 AllowFree() in src/main.h
 CWallet::CreateTransaction() in src/wallet.cpp.

タグ:

+ タグ編集
  • タグ:
最終更新:2013年12月07日 09:09