用語集 / トランザクションと手数料
ビットコインのトランザクション
別名はトランザクションです。
- ビットコインのトランザクションとは?
- ビットコインのトランザクションとは、既存のコインの一部を消滅させ、その代わりに新しいコインを生成する署名済みの指示のことであり、ネットワーク上で価値が移動する唯一の方法です。
ビットコインでは、残高を保持するものは何もありません。台帳は未使用のアウトプットの集合であり、支払いはアウトプット全体を消費して新たなアウトプットを生成し、余った分は手数料としてマイナーに渡ります。史上初のトランザクションは2009年1月12日のブロック170でSatoshi NakamotoからHal Finneyへ10ビットコインを移動させたもので、それ以降のすべてと同じく、取り消すことはできませんでした。
仕組み
ビットコインのトランザクションは6つの部分からなる短いバイナリ構造で、ウォレットは何かをブロードキャストする前にそのすべてを組み立てます。
バージョンは4バイトです。バージョン1が当初のものでした。バージョン2が存在するのは、BIP68が相対タイムロックのためにシーケンス番号に新しい意味を与えたためで、現代のウォレットはこれをデフォルトで設定します。次にインプットが来ます。各インプットは以前に作成された1つのアウトプットを指定し、それを消費する権利の証明を伴います。続いてアウトプットが来ます。各アウトプットはサトシ単位の金額と、次に誰がそれを消費できるかを示すロックスクリプトを保持します。SegWitトランザクションは署名を保持するウィットネスセクションを追加し、これはトランザクションIDを決定する部分の外側に位置します。最後はロックタイムで、4バイトであり、通常は現在のブロック高に設定され、トランザクションがより早いブロックに取り込まれないようにします。
この構造のどこにも手数料のフィールドはありません。手数料は算術です。インプットの合計額からアウトプットの合計額を引いたものであり、アウトプットに割り当てられなかった分はそのブロックをマイニングする者に渡ります。だからこそ、お釣りを誤計算するウォレットのバグが実際の資金を失わせることがあり、またすべてのウォレットが残余を残すのではなく自分自身へのお釣りアウトプットを作るのです。
署名が全体を結び付けます。デフォルトのSIGHASH_ALLルールでは、各署名がすべてのインプットとすべてのアウトプットに対してコミットするため、1つのアウトプットの1サトシを変更するだけでそのトランザクションのすべての署名が無効になります。これにより、ブロードキャストされたトランザクションは、確認はまだでも内容において確定するのです。
サイズは生のバイト数ではなく仮想バイト数で測られます。SegWitはウィットネスデータをその重みの4分の1に割り引くためで、ブロックには400万重量単位の予算という上限があります。ネイティブSegWitで1インプット、2アウトプットの消費はおよそ141仮想バイトになります。
ビットコインを購入するときにこれが重要な理由
取引所では、まったく異なる2つのことが「ビットコインを送る」と呼ばれており、そのうちトランザクションであるのは1つだけです。
同じプラットフォーム内の口座間でコインを移動させるのは、データベースの更新です。即時で、通常は無料で、ブロックチェーンに痕跡を残しません。トランザクションが作成されていないからです。自分が管理するアドレスへの出金は実際のトランザクションを構築し、実際の手数料を支払い、実際のブロックを待ち、企業に対する請求権を持つのでなくビットコインを保有する形で終わる唯一の方法です。
一度出金すると、3つの実際的な帰結が伴います。
取り消すことはできません。 Replace-by-feeにより、トランザクションが未確認の間に送信者が手数料を引き上げることができますが、それができるのはそれを構築したウォレットだけであり、取引所があなたに代わって行うことはありません。承認した後ではなく、承認する前にアドレスを確認してください。
受け取る入金はそれぞれ、後で消費するために手数料を払うコインになります。 10回の小さな購入は10個のアウトプットを残し、その10個すべてを消費しなければならない将来の支払いは、1つの大きなアウトプットの場合の数倍のコストがかかります。より少ない回数でより大きな金額を出金することがビットコインで最も安上がりな習慣であり、取り入れるのに費用はかかりません。
取引所が請求する手数料はポリシーの数値であり、ネットワーク手数料ではありません。 あらかじめ設定されており、メンプールに追従することはほとんどないため、ネットワークが空いている日には実際のコストの数倍を支払い、混雑した日にはかなり少なく支払うことがあります。当サイトの取引所レビューでは、各取引所が出金をどう扱うかを記録しており、自分で手数料率を選べる取引所を優先する価値があります。
実際の出金を項目ごとに読む
0.05BTCを購入して出金するとします。ブロックエクスプローラーに表示される内容はおそらく混乱させるでしょう。トランザクションはあなただけのものではないからです。
大手取引所はバッチ処理を行います。1つの出金トランザクションがホットウォレットから3個のインプットを消費し、合計2.41BTCの価値があり、42個のアウトプットを作成することがあり、そのうち1つがあなたの0.05BTCで、もう1つが取引所に戻るお釣りです。インプットあたり約68仮想バイト、アウトプットあたり31バイト、そして約11バイトのオーバーヘッドで、そのトランザクションは1,517仮想バイト近くになります。手数料率6sat/vBでは、マイナーは約9,102サトシを受け取り、バッチ内の顧客1人あたり約217サトシになります。単独で送っていれば、あなたの出金は約141仮想バイトで、約846サトシのコストでした。
つまりエクスプローラーは、あなたが出金したよりはるかに多くのビットコインを移動させ、聞いたこともない数十人の受取人を含むトランザクションを表示します。何も問題はありません。金額とアドレスで自分のアウトプットを見つけ、トランザクションIDを控え、残りは無視してください。
ビットコインのトランザクションvs txid
トランザクションは対象であり、txidはその指紋です。IDは、ウィットネスデータを除いたシリアライズ済みトランザクションの二重SHA-256ハッシュであり、64桁の16進数文字として書かれ、トランザクションを繰り返さずに参照できるようにするために存在します。サポート窓口はtxidを求め、エクスプローラーはそれで索引を作り、後続のトランザクションはそれを指します。それが領収書ではないという点です。txidは、まさにその内容のトランザクションが存在することを証明するもので、誰がなぜ送ったかについては何も語りません。
ビットコインのトランザクションvs PSBT
PSBTはまだ完成していないトランザクションです。BIP174で定義されたこの形式は、インプットとアウトプットに加え、署名者が必要とする追加情報(消費される各インプットの金額やスクリプトなど)を保持し、ネットワークを経由するのではなくデバイス間を移動します。エアギャップ構成やマルチシグ構成はこれに依存します。オフラインの署名者がPSBTを読み、署名を加えて返します。すべてのインプットに署名が済んで初めて、ファイルはネットワークが受け入れるトランザクションとして確定され、それまでは何も送信されていません。