送金が​未承認の​あいだ、​何が​起きているのか

保留中の取引カードで混み合う待合室パネルと、その傍らで数枚を乗せて出発していく列車のようなブロック

手紙をポストに投函しても、瞬時に相手の手元へ届くわけではない。ポストの中、集配局、配達トラックと段階を踏み、それぞれに時間がかかって、ようやく相手の手に渡る。ビットコインの送金もこれによく似ている。送った瞬間と、それが正式なものになる瞬間は同じではない。

待合室

送金した瞬間、それは前のページで説明したピアツーピアネットワークに向けて発信され、それを聞きつけた各ノードが、自分だけの一時置き場、メモリープール (memory pool の略) にそれを加える。この待合室はノードごとに別々に持たれているため、ある瞬間にどのノードも必ず同じ保留中の送金の集合を見ているとは限らない。それでも起きていることはどこでも同じで、ブロックに取り込まれるまでは、他のすべての送金と並んで待つだけだ。

マイナーが次の候補ブロックを組み立てるとき、自分が把握している保留中の送金をすべて収める余地はない。そこで取捨選択が行われ、たいていはサイズの割に多く支払っているものから優先的に選ばれる (小さくても手数料が手厚い送金が、合計額は大きくてもサイズも大きい送金より先に席を得ることがある)。このトランザクション手数料はそのままマイナー自身の懐に入るからだ。手数料が十分な送金はたいてい次のブロックにすぐ座れる一方、手数料が少ないか付いていない送金は、限られた席を他の多くの送金と奪い合うことになり、待合室に長く留まることもある。

確認: 時間とともに積み上がる安全性

送金がついにブロックに座ると、そこで初めて確認が 1 個付く。この時点でまだ絶対に安全というわけではなく、最初の 1 枚の保護膜がついただけだ。その上にブロックが積み重なるたびに確認がもう 1 つ増え、その送金を取り消すのは指数関数的に困難になっていく。理由は前の章で古いページの書き換えが難しかったのと同じだ。取り消すには、それ以降に積み上げられたブロックをすべて巻き戻す必要があるからだ。

送金がある瞬間に魔法のように「確定」になる、という単一の切り替え点は存在しない。段階的に安全になっていくグラデーションだ。実務上は、6 確認 (1 回 10 分として、およそ 1 時間) が、送金を覆すコストが十分に高く、ほとんどの用途で心配する必要がなくなる目安として長く使われてきた。日常的な少額の買い物では、それよりずっと少ない確認数で受け付けられることも多い。(この目安の背後にある実際の巻き戻し確率は、コンセンサス設計書が数値まで示している。)

こうして送金は、発信 → メモリープールでの待機 → ブロックへの着席 → その後ブロックが積まれるたびに安全性が増す、という一直線の流れをたどる。ただしこれが成り立つのは、どのマイナーもどのノードも、どのブロックが先だったかについて意見が一致している限りにおいてだ。まれに意見が一致しない場合に何が起きるのか、そしてそれでもなぜ悪用できないのかは、このガイドの最後のページで扱う。

参照元の外部ソース

https://bitcoin.org/bitcoin.pdf