2015 年の長く暑い夏は、ビットコイン コミュニティに関する驚くべき事実を明らかにしました。それは、ブロックチェーン アルゴリズムが実際にどのように機能するかという技術的な原理を知らない人が多いということです。 最終的に、bitcoin.org とそのフォーラムの管理者である Michael Marquardt 氏は、Bitcoin XT に関するすべての議論を禁止し、Bitcoin XT を使用するサービスを公式 Bitcoin ウェブサイトから削除すると脅しました。彼の推論は、Bitcoin XT はハードフォークを引き起こしたため、アルトコインであるというものでした。一方、彼は「ソフトフォーク」は完全に受け入れられると考えています。 この立場は技術的な観点からは根本的に支持できないものであり、この記事ではその理由を説明します。 ソフトフォークとハードフォークビットコインのフォーラムでは、この 2 つの単語を目にすることはないかもしれませんが、ビットコイン愛好家とのランダムなチャットでは、多くの人がこの用語を口にしているのがわかりました。これらの言葉の意味を理解していない人々に何度も出会いますが、彼らは理解すべきだと感じています。 これは驚くことではありません。「ソフトフォーク」という概念は比較的新しいものであり、BIP や他の種類の標準文書ではなく、IRC での議論から生まれたものと思われます。奇妙なことに、開発者でさえこの用語を間違えています。 ハードフォークとは、ビットコイン プロトコルのルールが変更され、古いノードが新しいノードによって作成されたブロックの受け入れを拒否することです。ルールに違反するブロックは無視され、マイナーはルールセットに従って、最後に確認したブロックの後にブロックを作成します。 ソフトフォークとは、ビットコイン プロトコルのルールが変更され、古いノードがルールが異なることに気付かなくなることです。変更されたルールセットに従い、新しいノードによって作成されたブロックを引き続き受け入れます。マイナーは、理解していない、またはまったく検証していないブロックで作業している可能性があります。 これは、一部の Bitcoin Core 開発者によって「 正しい用語は実際には 注目すべきは、サトシ・ナカモト自身が「ハードフォーク」という言葉を使用していなかったことです。おそらく、彼はこれまでフォークに遭遇したことがなく、ソフトフォークの概念もまだ存在していなかったのでしょう。そうです。その概念自体に大きな欠陥があるからです。通常のビットコイン ネットワークでは、ソフト フォークは決して発生しないはずです。 これは大胆な主張のように思えるかもしれませんが、もう少し詳しく分析してみましょう。 ソフトフォークはなぜ悪いのでしょうか?古いソフトウェアがアップグレードを必要とせずにデータを処理し続けている状況もあるかもしれません。なぜそれを望まないのでしょうか?現実には、ソフトウェア エンジニアは前方互換性と後方互換性の両方を重視しており、新しいアプリケーションが古いバージョンと相互運用できる場合は、通常は双方にとってメリットがあります。 前方互換性は後方互換性よりも稀です。これは、ファイルやプロトコルに新しい機能を追加しても、古いバージョンのソフトウェアではそれが理解されないためです。場合によっては、新しい機能をオプションにすることができます。つまり、古いソフトウェアは新しい機能を無視しても問題ありません。これは機能回帰と呼ばれ、一部のユーザーが古いブラウザを使用して新しい機能を備えたサイトにアクセスしたい場合によく使われる手法です。 前方互換性と後方互換性はソフトウェア エンジニアリングではすでに非常に一般的に使用されていますが、ビットコインもそれと何か違うのでしょうか?理由は簡単です。
理由は簡単に説明できます。 XT/Core バージョンの両方のダウンロードと各ブロックの処理は、ジェネシス ブロックから開始する必要があります。このプロセスの目的は、ビットコイン ブロックチェーンを監査することです。数字が追加されるたびに、署名がチェックされます。監査が完了すると、使用する総勘定元帳がソフトウェアに書き込まれたルールを適用していることを確認できます。 これはビットコインの分散化の重要な部分です。独自の元帳のコピーを使用し、コンピューターで計算を実行し、その元帳に基づいて有効なビットコイン支払いのみを受け入れることで、ビットコインの主要な経済政策を実施します。 状況は単純です。ハッシュパワーの過半数を持つマイナーであっても、これらのルールに違反するお金を受け取るようにあなたを騙すことはできません。 それとも...できるのでしょうか? ソフトフォークの問題はここにあります。 ソフトフォークでは、プロトコルの変更が慎重に作成され、古いノードを騙して、実際には有効でない可能性があるものが有効であると信じ込ませます。 ここに例え話があります。監査チームとトレーダーチームを持つ大企業を想像してください。トレーダーたちは新しいタイプの取引をしたいと考えていたが、会社は現在それを許可していなかった。監査人が会社の方針を施行し、トレーダーたちの行動をチェックすることになる。そして、戦略の変更はゆっくりとしたプロセスになる可能性があります。ある日突然、あるトレーダーがアイデアを思いつきました。 「やあ、みんな」と彼は言った。「いい考えがあるんだ。デリバティブ取引をいくつか提出するつもりなんだ。それを紙に書いて、みんなが見たら普通の取引のように見えるだろうけど、そうじゃない。監査人はそれを見つけることができないだろう!」 ここでの監査人はビットコインのフルノードを運営する人々とサービスであり、トレーダーはルールを変更したい人々です。このようなルール変更が良いアイデアであるかどうかはここでは関係ありません。重要なのは、どのようにそれを実行するかです。監査人はすべての取引を相互チェックしていますが、検証している取引の真の性質を理解していないため、計算結果が間違っている可能性があります。 これは技術的にどのように行われるのでしょうか? https://blockchain.info/tx/f837ca5c1a15fa6c2e5c7380386bacba10e936fe8625e12d9fa6c177a8f605c1 OP_HASH160 6af7caf9b09224af8a171318f69d254c1756e54e OP_EQUAL これはビットコインのスクリプトで、英語で「パスワードを知っている人なら誰でもこのお金を使うことができます」という意味です。 問題は、それが安全ではないことです。署名がないため、トランザクションをブロードキャストして「パスワード」を誰かに提供すると、パスワードが公開されているため、他の人も出力トランザクションを作成でき、最終的には誰のトランザクションが最初にマイナーに渡されるかを競うだけになります。 P2SH が可能なのは、Bitcoin プロトコルが新しいルールを含むように変更されたためです。上記の形式の出力スクリプトが表示された場合、それをスクリプトとしてではなく、特別な処理として考えてください。パスワードは、実際に実行される「実際の」スクリプトです。したがって、P2SH は実際には安全です。心配しないでください。しかし、なぜこの回りくどくて奇妙な方法を使うのでしょうか? ご想像のとおり、問題はソフトフォークです。この構造は、P2SH ルールを理解していない古いノードがトランザクションを有効と見なすように設計されています。古いビットコインのルールに従って処理されたが、新しい P2SH ルールを満たさないコインを使用するトランザクションが発生した場合、監査人はこれを正しく検証できず、誤った元帳を計算します。 しかし、このような事態を防ぐことが、そもそもフルノードを実行する理由なのです。痛い! ハードフォーク中に具体的に何が起こるのでしょうか?P2SH が別の方法、つまりハードフォークで導入されたと想像してみましょう。その場合、スクリプトは次のようになります。 OP_HASH160 6af7caf9b09224af8a171318f69d2... OP_EQUAL OP_RUN 最後に OP_HASH160 6af7caf9b09224af8a171318f69d2... OP_EQUAL OP_??? 実際に P2SH に対応する さて、ノードはブロックを理解できなかったため、ブロックを拒否しました。どうすればいいですか?私たちの架空の会社では、監査人が CEO (つまりあなた) に決定を下すよう依頼し、あなたが意思決定者となります。ビットコインの場合、テキストメッセージや電子メールなどの何らかの方法で警告を受け、その後、どうするかを決定します。あなたはできる…
最後のオプションはリスクがありますが、ソフトフォークが発生したことがわかります。違いは、あなたが明示的にそれを要求し、あなたの選択が他の人に影響を与えないということです。間違った元帳を作成するリスクがあるのはあなただけです。 Bitcoin Core と Bitcoin XT は現在この 3 番目のオプションをサポートしていませんが、必要に応じてスイッチを追加して簡単に有効にすることができます。 私の主張は?理解は力です。ルールが変更されたことがわかれば、その情報を活用してより良い決定を下すことができます。ソフトフォークでは、ルールが変更されたことに気付かず、まるで目隠し状態で飛行しているようなものです。 選ぶ最近、bitcoin.org は次のような新しいポリシーを採用しました。
これは非常に奇妙な発言です。なぜなら、いわゆる「オプション剥奪」を引き起こすことなくビットコインを変更することが可能であることを意味するからです。 ビットコインへのあらゆる変更は、ルールの変更を受け入れる大多数の人々によって行われ、変更を望まない人々の「力を奪う」のはこれらの人々です。ハードフォークであろうとソフトフォークであろうと、どの技術が使われようと、取引が新しいルールを採用していれば、それは広く普及し、遅かれ早かれ支払い通貨を受け取ったときに、新しいルールの取引に遡ることになります。次に、新しいルールを検証するか、検証しないかの 2 つのオプションがあります。検証しないことで生じる問題は、セキュリティが低下することです。それはまるで自分の顔から鼻を切り落とすようなものです。したがって、実際には、誰もが常にアップグレードを選択することになります。ソフトフォークに大多数が反対することは、ハードフォークに大多数が反対することと変わりません。新しいルールが気に入らない場合は…自分の選択を固く決めてください。 これは P2SH 自体からも明らかで、競合する提案はマイナーや開発者からある程度の支持を得ていましたが、最終的には現在のバージョンが全員に受け入れられました。彼らには選択の余地はなく、むしろ、彼らは変化を受け入れてビットコインを使い続けることを選んだのであり、ソフトフォークしても何も変わらなかっただろう。 したがって、ハードフォークとソフトフォークの問題に関しては、それを個人の権利のための大きな闘争として表現することは技術的に不健全です。それらは全く無関係です。 フォークはマイナーと商人にとって何を意味するのでしょうか?この投稿は少し長いので、以下では簡潔にまとめたいと思います。マイナーまたはマーチャントの場合は、次の理由からハードフォークのアプローチを好む場合があります。 販売者: 支払われるお金に対して、取引が可能な限り検証され、より速く検証されることを望みます。つまり、ノードはメインのルールセットを実行する必要があり、取り残されると騙される可能性があります。現在参加しているチェーンがメインのチェーンでない場合は、検証できないトランザクションを無視できるように、できるだけ早くそれを知る必要があります。 私が Bitcoin Core 開発者にいくつかの問題を提起した後、彼らはコードを調整し、一部のソフトフォークが実際にハードフォークに近づくようにしたことに注意してください。Core は、不明なオペコードを使用していると思われるトランザクション (これが私たちの望みです!) を、ブロックに表示されるまで無視します。したがって、この調整が役立つかどうかは、タイミングに大きく依存します。 マイナー: マイナーであり、多数派が選択したルールに遅れをとると、使用しているフォーク チェーンに対する経済的報酬を失うことになります。しかし、ハードフォークの方がまだ良いです。まず、これは検出可能なので、適切に構成されたノードは、ノードが古くなっていることを電子メール/SMS/電話呼び出しで通知します。また、無効なブロックのマイニングにリソースを無駄にしないように、マイニング操作を自動的にシャットダウンすることもできます。次に、他のチェーンが間違っていると考え、相手もあなたに同意すると思われる場合は、弱いチェーンのマイニングを続けて運を試すことができます。そして、ある時点で全員があなたのチェーンに戻ってきて、他のマイナーが持っていない素敵なコインベースを手に入れることになります。もちろん、この戦略は非常に危険なのでお勧めしません。しかし技術的に言えばそれは可能です。 ソフトフォークでは、有効なブロックだと思っていたブロックをマイニングしますが、実際には他のマイナーが無視したブロックです。そして、ブロックが孤立すると、単に運が悪かっただけだと思い、別の無効なブロックを構築しようとすると、再び孤立したブロックが生成されます。ブロックを頻繁に生成しない小規模なマイナーの場合、これを理解するにはかなりの時間がかかる可能性があります。しかし、あなたのポケットはまだただの穴です。 ハードフォークはビットコインを破壊するのか?いいえ、もしそうなら、誰でも異なるルールで 1 つか 2 つのブロックをマイニングすることで、文字通りビットコインを殺すことができます。ブロックチェーン アルゴリズムの基本的な目的は、ブロックチェーンに破壊的なことが起こらないようにすることです。 「物議を醸す」ハードフォークによりビットコインの価値が永久に失われるという考えは、bitcoin.org のポリシーから来ています。 Bitcoin への変更には 100% (または 99%) の同意、または少なくとも 1 人の Bitcoin Core 開発者の同意が必要であるということは、誰もが自分の望むものが得られない限り同意を拒否することでコミュニティ全体に責任を負わせることができることを意味し、そのように機能するインフラストラクチャはありません。ビットコインがこのようなものであれば、決して発展することはなく、最終的には価値がなくなるでしょう。 ---- |
<<: ビットコイン送金スタートアップ37coinsが破産を発表
>>: 日本の裁判所はマウントゴックス利用者の賠償請求を却下
テクノロジーメディアのBusiness Insider(BI)が最近、Circle、BitPay、U...
昨日、個人ブランドに裏付けられた中国初のデジタル資産である小姐コインが初めて発売されました。 5時間...
ビットコインの価格は1週間前に記録した高値から徐々に下落しており、強気の勢いは衰えている。ほとんどの...
Crazy Review : 2015 年 5 月、スウェーデンのブロックチェーン スタートアップ企...
トワイライト理論最近ビットコインの「デジタルゴールド」説に飛びついた機関投資家など、暗号通貨に不慣れ...
5月24日、暗号通貨愛好家が投稿の中で、ビットコインが彼の両親と姉妹を飢餓から救ったと明かした。この...
「イーサリアム仮想マシンの改良版、ビットコインのサイドチェーン」:ビットコインにペッグされた燃料 ...
ビットコインのスタートアップ企業Changetip は2013 年にサンフランシスコで設立されました...
Crazy Review : ビットコインマイクロペイメントスタートアップのChangeTipのエン...
2020年1月以降、ドイツ市場で事業を展開するすべての暗号通貨企業は、BaFinからの承認を得る必要...
クレイジーな解説:英国、ドイツ、米国の大学は、ビットコイン取引の主な参加者を4つのカテゴリーに分類し...
Apple Payは2月18日に開始され、ソーシャルメディアへの投稿の波を引き起こしただけでなく、...
この記事では、最新の暗号通貨投資動向を紹介し、開発の見通しが注目されているシードラウンド段階のプロジ...
CNBCは北京時間16日朝、米国のモバイル決済アプリ「Square」が一部ユーザーに対し、送金アプリ...
序文2020年の新年の鐘が鳴ると、ビットコインやその他のマイニングコインも生産削減へのカウントダウン...