マイク・ハーン:ビットコインのハードフォークとソフトフォークをめぐる論争

マイク・ハーン:ビットコインのハードフォークとソフトフォークをめぐる論争

2015 年の長く暑い夏は、ビットコイン コミュニティに関する驚くべき事実を明らかにしました。それは、ブロックチェーン アルゴリズムが実際にどのように機能するかという技術的な原理を知らない人が多いということです。

最終的に、bitcoin.org とそのフォーラムの管理者である Michael Marquardt 氏は、Bitcoin XT に関するすべての議論を禁止し、Bitcoin XT を使用するサービスを公式 Bitcoin ウェブサイトから削除すると脅しました。彼の推論は、Bitcoin XT はハードフォークを引き起こしたため、アルトコインであるというものでした。一方、彼は「ソフトフォーク」は完全に受け入れられると考えています。

この立場は技術的な観点からは根本的に支持できないものであり、この記事ではその理由を説明します。

ソフトフォークとハードフォーク

ビットコインのフォーラムでは、この 2 つの単語を目にすることはないかもしれませんが、ビットコイン愛好家とのランダムなチャットでは、多くの人がこの用語を口にしているのがわかりました。これらの言葉の意味を理解していない人々に何度も出会いますが、彼らは理解すべきだと感じています。

これは驚くことではありません。「ソフトフォーク」という概念は比較的新しいものであり、BIP や他の種類の標準文書ではなく、IRC での議論から生まれたものと思われます。奇妙なことに、開発者でさえこの用語を間違えています。

ハードフォークとは、ビットコイン プロトコルのルールが変更され、古いノードが新しいノードによって作成されたブロックの受け入れを拒否することです。ルールに違反するブロックは無視され、マイナーはルールセットに従って、最後に確認したブロックの後にブロックを作成します。

ソフトフォークとは、ビットコイン プロトコルのルールが変更され、古いノードがルールが異なることに気付かなくなることです。変更されたルールセットに従い、新しいノードによって作成されたブロックを引き続き受け入れます。マイナーは、理解していない、またはまったく検証していないブロックで作業している可能性があります。

これは、一部の Bitcoin Core 開発者によって「向后兼容」と説明されることがよくありますが、これは正しくなく、他の人を混乱させる可能性があります。下位互換性の定義は、新しいソフトウェアが古いソフトウェアによって生成されたデータまたはコードを受け入れることです。たとえば、Windows 10 では Windows XP アプリケーションを実行できますが、これは下位互換性です。両方のフォーク タイプは下位互換性を持つ必要があります。そうでないと、新しいノードはブロックチェーンを最初から検証できなくなります。

正しい用語は実際には向前兼容です。つまり、古いソフトウェアが新しいソフトウェアによって生成されたデータとコードを引き続き受け入れることを意味します。 Word 2013 文書を保存しても、Word 2011 で開くことができます。これは上位互換性です。

注目すべきは、サトシ・ナカモト自身が「ハードフォーク」という言葉を使用していなかったことです。おそらく、彼はこれまでフォークに遭遇したことがなく、ソフトフォークの概念もまだ存在していなかったのでしょう。そうです。その概念自体に大きな欠陥があるからです。通常のビットコイン ネットワークでは、ソフト フォークは決して発生しないはずです。

これは大胆な主張のように思えるかもしれませんが、もう少し詳しく分析してみましょう。

ソフトフォークはなぜ悪いのでしょうか?

古いソフトウェアがアップグレードを必要とせずにデータを処理し続けている状況もあるかもしれません。なぜそれを望まないのでしょうか?現実には、ソフトウェア エンジニアは前方互換性と後方互換性の両方を重視しており、新しいアプリケーションが古いバージョンと相互運用できる場合は、通常は双方にとってメリットがあります。

前方互換性は後方互換性よりも稀です。これは、ファイルやプロトコルに新しい機能を追加しても、古いバージョンのソフトウェアではそれが理解されないためです。場合によっては、新しい機能をオプションにすることができます。つまり、古いソフトウェアは新しい機能を無視しても問題ありません。これは機能回帰と呼ばれ、一部のユーザーが古いブラウザを使用して新しい機能を備えたサイトにアクセスしたい場合によく使われる手法です。

前方互換性と後方互換性はソフトウェア エンジニアリングではすでに非常に一般的に使用されていますが、ビットコインもそれと何か違うのでしょうか?理由は簡単です。

向前兼容,会使运行一个节点的全部目标失效。

理由は簡単に説明できます。 XT/Core バージョンの両方のダウンロードと各ブロックの処理は、ジェネシス ブロックから開始する必要があります。このプロセスの目的は、ビットコイン ブロックチェーンを監査することです。数字が追加されるたびに、署名がチェックされます。監査が完了すると、使用する総勘定元帳がソフトウェアに書き込まれたルールを適用していることを確認できます。

これはビットコインの分散化の重要な部分です。独自の元帳のコピーを使用し、コンピューターで計算を実行し、その元帳に基づいて有効なビットコイン支払いのみを受け入れることで、ビットコインの主要な経済政策を実施します。

状況は単純です。ハッシュパワーの過半数を持つマイナーであっても、これらのルールに違反するお金を受け取るようにあなたを騙すことはできません。

それとも...できるのでしょうか?

ソフトフォークの問題はここにあります。

ソフトフォークでは、プロトコルの変更が慎重に作成され、古いノードを騙して、実際には有効でない可能性があるものが有効であると信じ込ませます。

ここに例え話があります。監査チームとトレーダーチームを持つ大企業を想像してください。トレーダーたちは新しいタイプの取引をしたいと考えていたが、会社は現在それを許可していなかった。監査人が会社の方針を施行し、トレーダーたちの行動をチェックすることになる。そして、戦略の変更はゆっくりとしたプロセスになる可能性があります。ある日突然、あるトレーダーがアイデアを思いつきました。 「やあ、みんな」と彼は言った。「いい考えがあるんだ。デリバティブ取引をいくつか提出するつもりなんだ。それを紙に書いて、みんなが見たら普通の取引のように見えるだろうけど、そうじゃない。監査人はそれを見つけることができないだろう!」

ここでの監査人はビットコインのフルノードを運営する人々とサービスであり、トレーダーはルールを変更したい人々です。このようなルール変更が良いアイデアであるかどうかはここでは関係ありません。重要なのは、どのようにそれを実行するかです。監査人はすべての取引を相互チェックしていますが、検証している取引の真の性質を理解していないため、計算結果が間違っている可能性があります。

これは技術的にどのように行われるのでしょうか? P2SHと呼ばれるビットコインのパターンを見てみましょう。これはマルチ署名を使いやすくする非常に便利なパターンですが、ブロックチェーン上では奇妙に見えます。

https://blockchain.info/tx/f837ca5c1a15fa6c2e5c7380386bacba10e936fe8625e12d9fa6c177a8f605c1

 OP_HASH160 6af7caf9b09224af8a171318f69d254c1756e54e OP_EQUAL

これはビットコインのスクリプトで、英語で「パスワードを知っている人なら誰でもこのお金を使うことができます」という意味です。

問題は、それが安全ではないことです。署名がないため、トランザクションをブロードキャストして「パスワード」を誰かに提供すると、パスワードが公開されているため、他の人も出力トランザクションを作成でき、最終的には誰のトランザクションが最初にマイナーに渡されるかを競うだけになります。

P2SH が可能なのは、Bitcoin プロトコルが新しいルールを含むように変更されたためです。上記の形式の出力スクリプトが表示された場合、それをスクリプトとしてではなく、特別な処理として考えてください。パスワードは、実際に実行される「実際の」スクリプトです。したがって、P2SH は実際には安全です。心配しないでください。しかし、なぜこの回りくどくて奇妙な方法を使うのでしょうか?

ご想像のとおり、問題はソフトフォークです。この構造は、P2SH ルールを理解していない古いノードがトランザクションを有効と見なすように設計されています。古いビットコインのルールに従って処理されたが、新しい P2SH ルールを満たさないコインを使用するトランザクションが発生した場合、監査人はこれを正しく検証できず、誤った元帳を計算します。

しかし、このような事態を防ぐことが、そもそもフルノードを実行する理由なのです。痛い!

ハードフォーク中に具体的に何が起こるのでしょうか?

P2SH が別の方法、つまりハードフォークで導入されたと想像してみましょう。その場合、スクリプトは次のようになります。

 OP_HASH160 6af7caf9b09224af8a171318f69d2... OP_EQUAL OP_RUN

最後にOP_RUNことに注意してください。これは、現在の Bitcoin 命令セットには存在しないオペコードです。正しく定義すると、スクリプトは次のようになります。

 OP_HASH160 6af7caf9b09224af8a171318f69d2... OP_EQUAL OP_???

OP _ ???その時点で、彼らはこのトランザクションが何を意味するのか全く分からないことに気づき、停止してトランザクションとブロックを拒否するでしょう。

実際に P2SH に対応するOP_EVALという機能があり、それについて非常に興味深い議論があることを指摘しておく必要があります。その議論の詳細は覚えていないし、ここでそれを繰り返したくもありません。これは単なる例です。

さて、ノードはブロックを理解できなかったため、ブロックを拒否しました。どうすればいいですか?私たちの架空の会社では、監査人が CEO (つまりあなた) に決定を下すよう依頼し、あなたが意思決定者となります。ビットコインの場合、テキストメッセージや電子メールなどの何らかの方法で警告を受け、その後、どうするかを決定します。あなたはできる…

  1. ルールの変更を読んで、問題がなければアップグレードして先に進んでください。

  2. ルールの変更について読んで、これは良い考えではなく、さらに検討する必要があると判断します。

  3. 理解できないスクリプト出力を明示的に信頼します。これは、ノードの稼働時間が正しい監査結果よりも重要だと感じる場合に実行できます。

最後のオプションはリスクがありますが、ソフトフォークが発生したことがわかります。違いは、あなたが明示的にそれを要求し、あなたの選択が他の人に影響を与えないということです。間違った元帳を作成するリスクがあるのはあなただけです。 Bitcoin Core と Bitcoin XT は現在この 3 番目のオプションをサポートしていませんが、必要に応じてスイッチを追加して簡単に有効にすることができます。

私の主張は?理解は力です。ルールが変更されたことがわかれば、その情報を活用してより良い決定を下すことができます。ソフトフォークでは、ルールが変更されたことに気付かず、まるで目隠し状態で飛行しているようなものです。

選ぶ

最近、bitcoin.org は次のような新しいポリシーを採用しました。

論争を呼ぶハードフォークはビットコインにとって悪いことだ。せいぜい、物議を醸すハードフォークは、負けるチェーンを選んだ人々に権利を奪われたと感じさせるだろう。最悪の場合、ビットコインの価値は永久に失われることになります。

これは非常に奇妙な発言です。なぜなら、いわゆる「オプション剥奪」を引き起こすことなくビットコインを変更することが可能であることを意味するからです。

ビットコインへのあらゆる変更は、ルールの変更を受け入れる大多数の人々によって行われ、変更を望まない人々の「力を奪う」のはこれらの人々です。ハードフォークであろうとソフトフォークであろうと、どの技術が使われようと、取引が新しいルールを採用していれば、それは広く普及し、遅かれ早かれ支払い通貨を受け取ったときに、新しいルールの取引に遡ることになります。次に、新しいルールを検証するか、検証しないかの 2 つのオプションがあります。検証しないことで生じる問題は、セキュリティが低下することです。それはまるで自分の顔から鼻を切り落とすようなものです。したがって、実際には、誰もが常にアップグレードを選択することになります。ソフトフォークに大多数が反対することは、ハードフォークに大多数が反対することと変わりません。新しいルールが気に入らない場合は…自分の選択を固く決めてください。

これは P2SH 自体からも明らかで、競合する提案はマイナーや開発者からある程度の支持を得ていましたが、最終的には現在のバージョンが全員に受け入れられました。彼らには選択の余地はなく、むしろ、彼らは変化を受け入れてビットコインを使い続けることを選んだのであり、ソフトフォークしても何も変わらなかっただろう。

したがって、ハードフォークとソフトフォークの問題に関しては、それを個人の権利のための大きな闘争として表現することは技術的に不健全です。それらは全く無関係です。

フォークはマイナーと商人にとって何を意味するのでしょうか?

この投稿は少し長いので、以下では簡潔にまとめたいと思います。マイナーまたはマーチャントの場合は、次の理由からハードフォークのアプローチを好む場合があります。

販売者: 支払われるお金に対して、取引が可能な限り検証され、より速く検証されることを望みます。つまり、ノードはメインのルールセットを実行する必要があり、取り残されると騙される可能性があります。現在参加しているチェーンがメインのチェーンでない場合は、検証できないトランザクションを無視できるように、できるだけ早くそれを知る必要があります。

私が Bitcoin Core 開発者にいくつかの問題を提起した後、彼らはコードを調整し、一部のソフトフォークが実際にハードフォークに近づくようにしたことに注意してください。Core は、不明なオペコードを使用していると思われるトランザクション (これが私たちの望みです!) を、ブロックに表示されるまで無視します。したがって、この調整が役立つかどうかは、タイミングに大きく依存します。

マイナー: マイナーであり、多数派が選択したルールに遅れをとると、使用しているフォーク チェーンに対する経済的報酬を失うことになります。しかし、ハードフォークの方がまだ良いです。まず、これは検出可能なので、適切に構成されたノードは、ノードが古くなっていることを電子メール/SMS/電話呼び出しで通知します。また、無効なブロックのマイニングにリソースを無駄にしないように、マイニング操作を自動的にシャットダウンすることもできます。次に、他のチェーンが間違っていると考え、相手もあなたに同意すると思われる場合は、弱いチェーンのマイニングを続けて運を試すことができます。そして、ある時点で全員があなたのチェーンに戻ってきて、他のマイナーが持っていない素敵なコインベースを手に入れることになります。もちろん、この戦略は非常に危険なのでお勧めしません。しかし技術的に言えばそれは可能です。

ソフトフォークでは、有効なブロックだと思っていたブロックをマイニングしますが、実際には他のマイナーが無視したブロックです。そして、ブロックが孤立すると、単に運が悪かっただけだと思い、別の無効なブロックを構築しようとすると、再び孤立したブロックが生成されます。ブロックを頻繁に生成しない小規模なマイナーの場合、これを理解するにはかなりの時間がかかる可能性があります。しかし、あなたのポケットはまだただの穴です。

ハードフォークはビットコインを破壊するのか?

いいえ、もしそうなら、誰でも異なるルールで 1 つか 2 つのブロックをマイニングすることで、文字通りビットコインを殺すことができます。ブロックチェーン アルゴリズムの基本的な目的は、ブロックチェーンに破壊的なことが起こらないようにすることです。

「物議を醸す」ハードフォークによりビットコインの価値が永久に失われるという考えは、bitcoin.org のポリシーから来ています。 Bitcoin への変更には 100% (または 99%) の同意、または少なくとも 1 人の Bitcoin Core 開発者の同意が必要であるということは、誰もが自分の望むものが得られない限り同意を拒否することでコミュニティ全体に責任を負わせることができることを意味し、そのように機能するインフラストラクチャはありません。ビットコインがこのようなものであれば、決して発展することはなく、最終的には価値がなくなるでしょう。

----


<<:  ビットコイン送金スタートアップ37coinsが破産を発表

>>:  日本の裁判所はマウントゴックス利用者の賠償請求を却下

推薦する

2019 年にビットコインのマイニングはマイナーにとって利益を生むようになるでしょうか?

最近のビットコイン価格の上昇により、ビットコインマイニングの利益が増加しました。 2019年4月初旬...

Alibaba Cloud 無料のウェブサイト運用・保守テストツール ネットワークダイヤルアップテストプラットフォーム

今日のデジタル時代では、Web サイトとネットワーク サービスの安定性と可用性がビジネス運営の重要な...

IBM、ドバイの企業向けにブロックチェーンを試す

クレイジーコメント:IBMは、ドバイ税関、ドバイ貿易局、およびそのITサービスプロバイダーであるDU...

ビットコインマイニングビジネスが最も成功している国はどこですか?

マイニングはビットコインやその他の暗号通貨の基盤の中核です。ビットコインのマイニングは、ネットワーク...

Chiaコインマイニング半減計画とは何ですか?

概要: Chia Network ブロックチェーンでは、ファーミング報酬を通じて生成できる Chia...

ビットコイン技術はモノのインターネットに役立つか?

多くの人々が依然として分散型デジタル通貨をダークウェブ上の犯罪行為としか関連付けていないにもかかわら...

河南省公安部詐欺防止センター:6大デジタル通貨投資制限地域:Huobi、Binance、OKEXは「より信頼できる」

ウー・ブロックチェーンは、河南省公安部刑事捜査隊傘下の河南省虚偽情報詐欺対策センターが最近、レンガ移...

TechCrunch Disruptがビットコインとブロックチェーンについて語る

ブロックサイズの議論は現在ビットコインコミュニティで最も論争を呼んでいる問題ですが、フィンテックの...

「ビットコインはエキサイティングだ」刑務所から出てきたばかりのハッカーの告白

2013年、シルクロードの創設者ロス・ウルブリヒトは逮捕され、投獄された。裁判の結果、彼は麻薬密売、...

ラボバンクがイーサリアム技術を試験中、IBタイムズが報道

IBタイムズの報道によると、オランダの銀行ラボバンク(別名ラボ銀行)は、スマートキャッシュウォレット...

新しい状況下でマイニングマシンをどのように選択し、いつマイニングに参入すればよいのでしょうか?

 ビットコインの半減期が近づくにつれ、半減期がもたらす悪影響について多くの人が心配し始めています。ビ...

ビットコインの価格が2023年の高値に達したのに、なぜ個人トレーダーはまだ待っているのか?

12月5日、ビットコインの週次14.5%上昇により、暗号通貨の時価総額は1兆5,500億ドル以上に...

韓国の暗号通貨取引所が自主規制措置の実施を評価

激怒の解説:韓国の地元メディア聯合ニュースは2月21日、韓国ブロックチェーン産業協会が主要取引プラッ...

DECENT創設者:データエネルギー分野におけるブロックチェーンの応用

DECENT は、ブロックチェーンと情報技術分野でさまざまな管理職を歴任した Matej Micha...

ゴールドマン・サックスのアナリスト、ジェフ・カリー氏:ビットコインは成熟しつつある

カリー氏はCNBCに対し、ビットコインの力強い上昇は機関投資家の関心を高めていると語ったが、スマート...