なぜビットコインはスケーリングが必要であり、どのようなスケーリングの方法があるのか、そしてなぜフォークが発生するのかについて説明します。
ビットコインの各ブロックのサイズは 1 メガバイトで、約 1000 件の取引情報を含むことができます。
ビットコインの各ブロックのサイズは 1 メガバイトで、約 1000 件の取引情報を含むことができます。ビットコインのブロックチェーンブラウザで確認すると、現在の各ブロックのサイズは約 1M であり、ブロック容量の上限に近づいています。ビットコインネットワークの送金が増えるにつれて、多くの取引は最初のブロックではパッケージングや確認されず、数個のブロック、またはそれ以上の時間を待たなければならない場合があります。ビットコインの歴史の中で、いくつかの「ダスト攻撃」が発生しました。ダスト攻撃とは、大量の小額の送金を作成し、未確認の取引が大量にネットワークに存在するため、通常のビットコインの送金が確認されず、確認時間が遅延し、ネットワークの正常な動作に影響を与えることです。したがって、「ダスト攻撃」の事件では、取引者の取引が 2 日間、またはそれ以上待たなければならないことがありました。 「ダスト攻撃」は極端な例ですが、現在のビットコインネットワークの通常の送金量は、それらが耐えられる最大容量をはるかに超えています。各ブロックのサイズは 1M であり、ビットコインのブロック容量を拡大し、現在の 1 メガバイトのサイズ制限を突破するプロセスをスケーリングと呼びます。スケーリングは、ビットコインコミュニティが 2014 年から議題に上げているものです。
私たちは、ビットコインネットワークが分散型であることを知っています。この世界では、運営する中央機関はなく、すべてはコミュニティの協議によって合意に達する必要があります。スケーリングに関しては、異なるチームには異なる考え方があり、そのため推進の効率も低くなる可能性があります。2015 年末には、ビットコイン Core 開発チームとマイナーが香港で円卓会議を開催し、「香港コンセンサス」に合意しましたが、この合意はすぐに破綻しました。2017 年にはニューヨークでビットコインコミュニティが再協議を行い、セグウィット + 2 メガバイトのスケーリングの方法を採用し、再び合意に達しました。この合意は、世界 21 か国の 56 の有名なブロックチェーンスタートアップ企業からの支持を受け、全体の約 83% のハッシュパワーを得ました。したがって、2017 年上半期からビットコインシステムはアップグレードと展開を開始しました。
ビットコインのスケーリングにはさまざまな方法があり、歴史的にも多くのイテレーションを経験してきました。
全体的には、2 つの方法に分けられます。
1 つはビットコインのブロック自体に触れず、ライトニングネットワークを使用してビットコインの決済を行い、大量の取引をビットコインのネットワーク外に配置する方法です。もう 1 つは、ブロックのサイズを直接拡大する方法です。ここで、ライトニングネットワークとは何かを説明しますか?例えば、私たち数人の友人が一緒にカードゲームをする場合、毎ラウンドで決済を行うのではなく、終了後に清算を行います。A が B に 10 ドル、B が C に 20 ドルの借りがある場合、最終的には A が C に 10 ドル、B が C に 10 ドル支払えばよいです。ライトニングネットワークも小額の取引をまず記録し、最後に清算を行います。これにより、ビットコインネットワークは大量の小額取引に占有されることはありません。ただし、この技術はまだ十分に成熟しておらず、ライトニングネットワークはセグウィット技術の上に構築する必要があります。現在、大規模には使用されていません。したがって、注目は再びビットコインのブロックサイズの拡大に向けられています。
ビットコイン自体のサイズ拡張に関しては、現在技術的には比較的成熟した方法です。以下に、3 つの主要な提案を紹介します。それぞれ BIP141、UASF、SegWit2x と呼ばれます。これらの用語がわかりにくいかもしれませんが、ゆっくり説明します。
BIP141 は、ビットコインコアチームが提案したセグウィット(Segregated Witness)の提案です。では、セグウィットとは何でしょうか?セグウィットは、ブロックがより多くの取引情報を含めるために設計されたものです。ブロックには取引情報とウィットネス情報の 2 つの情報が含まれています。取引情報はブロックチェーンに記録される送金情報であり、ウィットネス情報は各ノードが取引情報の信頼性を検証するための情報です。サトシ・ナカモトはビットコインを設計する際に、これらの 2 つの情報を直接ブロックに配置しましたので、ブロックが含めることができる取引情報はそれほど多くありませんでした。では、ウィットネス情報をブロックから分離する方法はどうでしょうか?ブロックは取引情報のみを保存すればよくなり、この観点からもブロックが含めることができる取引情報が拡大されます。
BIP141 は、現在認識されているセグウィットのアクティベーション方法です。具体的なアクティベーション条件は、2017 年 11 月 15 日までの任意の難易度周期(約 2 週間)内に、95% のハッシュパワーが準備完了のシグナルを送信した場合、セグウィットがアクティベートされます。しかし、この条件は非常に難しいため、他のアクティベーション方法が提案されています。例えば、UASF と SegWit2x などです。これらの方法は BIP141 の実現を支援するために使用されます。
UASF は、ユーザーによってアクティベートされるソフトフォークです。UASF は、セグウィットをアクティベートするために BIP148 というソフトウェアを使用します。8 月 1 日に、ビットコイン BIP148 ソフトウェアは、bit1 シグナルを含まないブロックを拒否します。つまり、多くのマイナーがこのソフトウェアを実行する場合、このソフトウェアを実行していない少数のマイナーが採掘したブロックは拒否されます。したがって、これらのマイナーは最も長いチェーンを持ち、その最長のチェーンで BIP141 のセグウィット条件がアクティベートされます。最終的に、BIP141 を実行しているノードは、チェーン上で 95% 以上のブロックが bit1 を含むことを確認し、セグウィットがトリガーされます。この方法は実装され、私たちが現在見ている新しいブロックチェーンアセットであるビットコインキャッシュが生まれました。ビットコインキャッシュのブロックサイズは 8M まで増加し、取引数は元のビットコインチェーンの約 8 倍になります。
SegWit2x は、一部のビットコイン企業と 80% 以上のハッシュパワーを持つマイナーによって、Consensusn 会議で署名されたニューヨークコンセンサスプロトコルによって、セグウィットをアクティベートするために BIP91 を使用します。BIP91 の手法は次のとおりです。連続した 2 日間で 80% のハッシュパワーが BIP91 をサポートするシグナルを送信した場合、すべての BIP91 ノードは BIP141 の準備信号を含まないすべてのブロックを拒否します。したがって、これらのマイナーは最も長いチェーンを持ち、その最長のチェーンで BIP141 のセグウィット条件がアクティベートされます。セグウィットがアクティベートされた後、2017 年末または 2018 年初めに、SegWit2x はハードフォークを介してブロックサイズの上限を現在の 1MB から 2MB に増やす予定です。その結果、新たなフォークが発生する可能性もあります。
先ほど、ハードフォークとソフトフォークについて触れましたが、ハードフォークとは何か、ソフトフォークとは何かを説明しましょう。
ハードフォークは、ビットコインのプロトコルルールが変更され、古いノードが新しいノードによって作成されたブロックを受け入れない場合に発生します。その結果、ブロックチェーンは 2 つの独立したチェーンに分かれます。マイナーは 2 つのブロックチェーンのうち 1 つを選んでマイニングする必要があります。
ソフトフォークは、ビットコインのプロトコルルールが変更された場合に発生しますが、古いノードはルールが異なることに気付かず、変更後のルールに従い、新しいノードによって作成されたブロックを受け入れます。したがって、ソフトフォークでは 2 つのブロックチェーンが生成されるのではなく、元のブロックチェーン上に新旧のブロックが共存します。これはソフトウェアのアップグレード後に、Word 2013 のドキュメントを保存したまま、Word 2011 でその Word 2013 のドキュメントを開くことができるのと似ています。
一般の人々にとって、もしビットコインが本当にフォークする場合、最大のリスクは「リプレイアタック」です。
「リプレイアタック」とは何でしょうか?これは、2016 年にイーサリアムがハードフォークする過程で起こったことで、その時点では取引所やユーザーはほとんどが初めてこのような状況に遭遇し、経験や準備が不十分であったため、多くの損失を被りました。例えば、ビットコインが 1 つまたは複数のビットコインに分裂する場合、仮にそれをビットコイン 1 / ビットコイン 2 / ビットコイン 3 などと呼ぶことにしましょう。ユーザーのアカウントには、これら 3 つの分裂したビットコインの対応する数量が同時に存在し、各チェーン上のアドレスとプライベートキーの生成アルゴリズムは同じであり、取引形式も完全に同じです。したがって、1 つのチェーン上で行われた取引は、もう 1 つのチェーン上では完全に合法的な取引になる可能性が非常に高いです。したがって、ユーザーが 1 つのチェーンで送金を行うと、ビットコイン 2 / ビットコイン 3 も同時に送金される可能性があります。送金先が自分のものでない場合、ビットコイン 2 / ビットコイン 3 は取り戻すことができなくなる可能性があります。
ユーザーがリプレイアタックを防ぐためには、実際には非常に簡単です。どのようにすればよいでしょうか?
方法 1:フォークが落ち着くまで、ビットコインを送金しないでください。フォークが落ち着いた後、ビットコインを自分自身の 2 つの異なるアドレスに分けて送金することができます。2 つの資産が完全に分離されるまで、ビットコインの送金を行わないでください。この方法には多くの時間と手数料がかかる場合があります。
方法 2:自分が信頼できるウォレットや取引所に自分のビットコインを保管してください。これらの技術力のあるプラットフォームは、フォーク中に発生するさまざまな問題を自動的に処理するために運営されます。自分のビットコインをフォーク後の一部のビットコインのみをサポートするウォレットに保管すると、フォーク後に生成された他の部分のビットコインを使用できなくなる可能性があります。
以上、まとめると、このレッスンではビットコインのスケーリングとフォークについて説明しました。なぜビットコインはスケーリングが必要なのか?ビットコインの各ブロックは設計上 1 メガバイトの制限があり、この欠陥を修正するために、ライトニングネットワークと 3 つのビットコインのスケーリング提案が生まれました。
また、ビットコインの「フォーク」についても説明しました。フォークはハードフォークとソフトフォークに分けられます。
ハードフォークは、ビットコインのプロトコルルールが変更され、古いノードが新しいノードによって作成されたブロックを受け入れない場合に発生します。その結果、ブロックチェーンは 2 つの独立したチェーンに分かれます。
ソフトフォークは、ビットコインのプロトコルルールが変更された場合に発生しますが、古いノードはルールが異なることに気付かず、変更後のルールに従い、新しいノードによって作成されたブロックを受け入れます。したがって、ソフトフォークでは 2 つのブロックチェーンが生成されるのではなく、元のブロックチェーン上に新旧のブロックが共存します。
さらに、ビットコインのフォークによって引き起こされる「リプレイアタック」のリスクを防ぐために、2 つの方法を行うことができます:1 つはフォークが落ち着くまでビットコインを送金しないこと、2 つは自分が信頼できるウォレットや取引所にビットコインを保管することです。これらの 2 つのポイントを覚えておいてください。