おはようございます。
web3リサーチャーのmitsuiです。
毎週土日の昼には基礎単語解説記事をお届けします。各記事をサクッと読めるような文量にして、改めて振り返れる、また勉強できるような記事を目指していきます。
本日は「ブロックタイム」です。
ぜひ最後までご覧ください!
初めに
「Bitcoin のブロックタイムは 10 分、Ethereum は 12 秒」という言葉を聞いたことがあるかもしれませんが、これらの数字を見て「なぜ単純に速くしないのか」「なぜこの数字なのか」と疑問を持つかもしれません。
しかし、ブロックタイムはただの数字ではありません。それは、分散型ネットワークが直面する根本的なトレードオフを体現した、極めて戦略的な設計決定です。
ブロックタイムは、ユーザー体験の速さと、ネットワークの堅牢性の間で引かれた線であり、分散性とセキュリティの間で選ばれた値です。
この記事では、ブロックタイムの深い意味を掘り下げ、なぜプロトコル設計者たちはこのような「遅い」値を選択したのかを理解していきます。
ブロックタイムの正確な定義と誤解
ブロックタイムとは「新しいブロックが生成される平均間隔」です。Bitcoin では約 10 分、Ethereum では約 12 秒です。これは非常にシンプルな定義ですが、多くの人がこの定義を正確に理解していません。
ここで注意が必要です。ブロックタイムは「取引が処理される時間」ではありません。多くの初心者が、「Ethereum は 12 秒でトランザクションが完了する」という誤った理解をしていますが、これは大きな誤りです。
取引が実際に完了したと見なされるには、その取引を含むブロックが確定する必要があり、これには複数ブロックの積み上がりが必要です。
ブロックタイムは単純に言えば、新しいブロックが生成される頻度を表す指標に過ぎません。「平均してどの程度の間隔でブロックが生成されるか」という物理的なタイミングです。
例えば、あなたが今から 1 分前に Ethereum にトランザクションを送信したとしましょう。そのトランザクションは約 12 秒後(次のブロック)に「mempool に含まれた」と見なされるかもしれません。しかしそれは「トランザクションが見える状態」に過ぎません。本当に「完了した」と言える段階まで到達するには、さらに複数のブロックが積み上がる必要があります。
日常システムの「時間」との比較
この違いを理解するために、日常的な金融システムの例を考えてみます。
クレジットカードで百貨店で買い物をすると、レジでカード読み取り機に通し、「承認されました」と言われます。この瞬間、顧客は「支払いが完了した」と感じます。
しかし実は、この段階ではカード会社が支払いを完全に確認しているわけではなく、後日バッチ処理で確認が行われることもあります。一週間後に「昨日のこの取引は不正です」と否定される可能性も、まだ存在しています。
同様に、銀行振込では「振込が完了しました」とすぐに画面に表示されても、実際に相手の口座に資金が反映されるまでには時間がかかります。国内振込であっても翌営業日かかることはザラです。国際送金ともなれば、数日かかるのが通常です。
重要なのは、「すぐに見える」ことと「本当に確定する」ことは、時間的にも処理的にも異なるということです。
ブロックチェーンにおいても、トランザクションが「見える」ことと「確定する」ことの間には、同様の時間的距離があります。
トランザクションが mempool に入り、次のブロックに含まれた瞬間は「見える」段階です。しかし「確定した」と言える段階になるまでには、さらに多くのブロックが積み上がる必要があります。この時間差こそが、ブロックタイムの意味を理解する上で極めて重要です。
なぜブロックは一定間隔で作られるのか―物理的制約と合意
それでは、なぜブロックは一定の間隔で作られる必要があるのでしょうか。その理由は、分散型ネットワークの根本的な物理的制約にあります。
もし複数のノードが同時にブロックを作成しようとすれば、どのブロックが正当なものであるかについて競合が生じます。Network A というノードが「このブロックが正当だ」と言い、Network B というノードが「いや、違うブロックが正当だ」と主張する状況になるわけです。この矛盾を解決することは、極めて困難です。
さらに、ブロックをネットワーク全体に伝播させるには、物理的な時間が必要です。
東京にあるノード A がブロックを生成したとします。このブロック情報は、ネットワークを通じて全世界のノードに伝播されなければなりません。ニューヨークのノード B は、この情報を受け取るまでに数百ミリ秒かかるかもしれません。シンガポールのノード C はもう少し早く受け取り、オーストラリアのノード D はさらに時間がかかるかもしれません。
もしブロックが非常に速い間隔(例えば 1 秒)で作られれば、ネットワーク内のノード間で情報伝播が追いつきません。次々と新しいブロックが生成されるのに、全ノードがそれを知らないという状況が生じます。
複数の「正当なブロック」が並立してしまい、ブロックチェーンが分岐する確率が極度に高まるのです。この状況は「フォーク(分岐)」と呼ばれ、ブロックチェーンの統一性を破壊します。
一定の間隔を設けることで、このような問題を緩和しているわけです。例えば Ethereum の 12 秒なら、各ノードにはブロック生成から次のブロック生成まで 12 秒の猶予があります。この間に、世界中に情報が伝播する時間が確保されるのです。
ブロックタイムとセキュリティのトレードオフ
ここで、ブロックチェーン設計における最も基本的で重要なトレードオフが明らかになります。



