用語集 / プロトコルとアップグレード
フォーク
- フォークとは?
- フォークとは、ビットコインの履歴またはルールブックが2つに分かれるあらゆる地点を指す言葉であり、そのためこの言葉は、まったく異なる時間軸で決着する3種類の出来事をまとめて表しています。
ほとんどのフォークは1ブロックだけ続く事故です。2人のマイナーが同じ高さでブロックを公開し、ネットワークが数秒以内に勝者を選びます。少数は意図的なルール変更であり、そうした議論の1つは2017年8月1日のブロック478,558で2本目のチェーンが分岐する形で終わりました。見出しがビットコインがフォークしたと言うとき、最初に問うべき有用な質問は、そのうちのどれが実際に起きたのかということです。
仕組み
フォークとは枝分かれであり、ビットコインは名前以外に何も共有しない3つの無関係な形で枝分かれします。
1つ目はチェーンのフォークで、これはありふれた不運です。ブロックを見つけるにはおよそ10分かかり、それがネットワークの反対側に届くには1~2秒かかるため、時折2人のマイナーが同じ高さを解き、ネットワークのそれぞれ半分が異なるブロックを先に見ます。どちらも有効です。どちらも同じ親の上に構築されます。次のブロックがいずれかの枝に乗ると決着がつき、敗者は報酬が消える古いブロック(ステイルブロック)になります。誰も投票せず、誰も交渉せず、通常はエクスプローラーを更新する前にこの出来事は終わっています。
2つ目はルールのフォークで、人々がフォークについて議論するときに意味しているのはこれです。ここでの分裂はチェーンの中ではなく、ソフトウェアが有効なブロックをどう定義するかにあります。ルールを厳しくしても、古いノードは新しいソフトウェアが生成するすべてを依然として受け入れます。これがソフトフォークであり、ビットコインは2012年4月1日のpay to script hashから2021年11月14日のブロック709,632のTaprootまで、これを繰り返し行ってきました。ルールを緩めると、古いノードは新しいソフトウェアが合法とみなすブロックを拒否し始めます。これがハードフォークであり、ほぼ全員がアップグレードした場合にのみ恒久的な分裂を避けられます。
3つ目はコードのフォークで、コンセンサスにはまったく触れません。誰でもBitcoin Coreのリポジトリをコピーし、変更し、その結果を公開できます。Bitcoin Knotsはまさにそれで、別の開発者が維持する別のプロジェクトであり、意図的に同じコンセンサスルールを保っているため、そのブロックとCoreのブロックは互換性があります。GitHub上の数千のリポジトリがこの意味でビットコインのフォークであり、そのほとんどはブロックを1つも生成しません。
新しい資産を生み出せるのは真ん中の種類だけで、しかもマイナーが無期限に両方の枝を構築し続けるほど意見の対立が深い場合に限られます。
ビットコインを購入するときにこれが重要な理由
フォークは、一般の購入者にはプロトコルの出来事ではなく、取引所での運用上の出来事として届きます。
争いのあるルール変更の前後には、プラットフォームは安定したチェーンを前提とする業務の一部を凍結します。入金と出金が停止し、時には数日間続きます。その間、技術者は状況が落ち着くのを待ち、2つ目の資産が今存在するかどうかを判断します。あなたに費用がかかるのはこの凍結の部分です。なぜなら、それは価格が動いているまさにそのときに起こりがちだからです。当サイトがレビューするいずれかの取引所にコインを保管していて、争いのある変更に既知の有効化日がある場合は、その日にではなく、その日より十分前に自分で管理するウォレットへ出金してください。
2つ目に知っておく価値があるのは、ルールのフォークはあなたに何も要求しないということです。ビットコインが有効化してきたすべてのソフトフォークは、古いウォレットを機能するまま残しました。2016年に書き留めた12語のシードフレーズは、今も復元でき、同じアドレスを導出し、今も使用できます。コインを保持するためにコインを移動しなければならなかった人は誰もいません。
3つ目は、「フォークによる無料のコイン」が2017年以降ずっと詐欺の定番文句であり、それが終わったことは一度もないということです。本物のチェーン分裂は、何かを解除するためにあなたのシードフレーズ、秘密鍵、少額の入金を要求することはありません。当サイトのよくある詐欺のガイドでは、これらのメッセージが使う正確な文言を扱っています。
見出しの「フォーク」が意味しうる3つのこと
すべてフォークとして報じられた3つの出来事を取り上げ、それらに共通点がどれほど少ないかに注目してください。
2013年3月11日、データベースの制限によりバージョン0.7のノードがバージョン0.8のノードが受け入れたブロックを拒否し、開発者がプールにダウングレードを求めるまで約6時間、チェーンは2つの枝として動きました。これはバグによる偶発的なハードフォークで、全員が1つのチェーンと1つの資産に戻る形で終わりました。
2017年8月1日、より大きなブロックを求めるグループがブロック478,558で互換性のないルールセットを適用し始め、それをマイニングし続けました。これは意図的なハードフォークです。それはBitcoin Cashを生み出しました。独自の価格、独自のマイナー、そのブロック以降の独自の履歴を持ち、それ以前に記録されたすべての残高を共有する別の資産です。
一方、Bitcoin KnotsがBitcoin Coreのコードベースをフォークしたことは、何も分裂させませんでした。それは異なるパッケージングにおける同じコンセンサスルールであり、だからこそKnotsのノードとCoreのノードは同じチェーン上にあり、すべてのブロックで一致します。
フォークvsステイルブロック
フォークは枝であり、ステイルブロックは負けた枝の残骸です。偶発的なチェーンのフォークはすべて、負けた枝ごとにちょうど1つのステイルブロックを残し、そのブロックは無効ではなく、ただ不運なだけです。それはすべてのコンセンサスルールを満たし、単に競争の間違った側に到着しただけです。それを表示するエクスプローラーは、ステイル、あるいはより不正確に孤立(オーファン)とラベル付けし、その中の報酬は決して使用できませんでした。
フォークvsチェーンの再編成
フォークは2つの枝が存在する瞬間であり、再編成はそれに対して1つのノードが行うことです。もし運よく勝ったブロックだけを受け取ったなら、あなたのノードはフォークをまったく観察しないかもしれません。もし負けたブロックを先に受け取ったなら、それは再編成します。そのブロックを切り離し、より多くの作業を持つ枝をつなぎ、続行します。一方はネットワークの性質であり、もう一方はあなた自身のデバッグログの中の出来事です。