ブロックチェーンの基礎: マイニングとコンセンサスに関する誤解を解く

ブロックチェーンの基礎: マイニングとコンセンサスに関する誤解を解く

「従来のソフトウェア」開発者として、ブロックチェーン開発を学ぶ場合、学習曲線はまだ比較的急であると感じています。たとえば、一見単純な概念を誤解してしまうことがよくあります。初心者の方は、このような記事をあまり読まないことをお勧めします。私の現在の理解が完全に正確であることを保証することはできません。この記事の目的は、メモを取り、それを全員で共有して議論することです。

初心者はまず、ホワイトペーパーや公式文書、関連プロトコル文書、BIP 文書、あるいは「Mastering Bitcoin」などの古典など、関連する古典的な資料をいくつか読んでみることをお勧めします。能力のある方は、ソースコードやリリースノートを読んだり、bitcoincore dev log などの開発者のメール記録やチャットログを読んだりすることをお勧めします。

これらの基礎知識があれば、他の人の解釈や関連論文を疑問を念頭に置いて検討することができ、誤った見解に惑わされる可能性を減らすことができます。ブロックチェーンの世界では、すべてが実際のお金であるため、基本的な概念を誤解すると致命的になる可能性があります。数行のコードに致命的な脆弱性が持ち込まれたり、十分に理解されていないコードベースやフレームワークに基づいて製品が開発されたりすることで、多くの事故が発生しています。

ブロックチェーン技術では、POW POS、分散コンセンサスなど、多くの新しい用語が導入されています。この記事では、まず、より頻繁に使用される POW/POS とコンセンサス アルゴリズムについて説明し、まず 2 つの文章を引用します。

1> コンセンサスとは何ですか?

コンセンサスは、x 期間ごとに元帳エントリを入力して公開する自動化されたガバナンスの形式です。 「ブロックチェーン」は、この自動化されたガバナンス構造が実際に設計どおりに機能し、元帳データの整合性についてほぼ絶対的な保証を提供していることを証明しています。 -- https://blog.goodaudience.com/1-assurances-in-crypto-14c55a1fd616

2> エミン・ギュン・シラー

POS/POW 自体はコンセンサスではありません。

1. 推測ゲーム - 採掘メカニズムのパズルを解く

POW と POS は異なるマイニング メカニズムです。本質的には、これらは同様のルールを持つ異なる推測ゲームです。どちらも、ハッシュが目標値、いわゆる動的に調整された難易度値よりも小さいブロックを構築することを目的としています。

POW は、上記の条件を満たすブロックを構築するときに、ノンスのランダム値を推測することです。すべての nonce が無効な場合は、ブロックに含まれるトランザクションを調整し、タイムスタンプを微調整できます。計算能力が高ければ高いほど、チャンスは大きくなります。これは仕事の証明です。

;

POS は、UTXO に対応する加重難易度値よりも小さいカーネル ハッシュを満たす、Coinstake トランザクションを構築するための UTXO を見つけることです。

UTXO の数が多いほど、より正確にはステークが大きいほど、見つけられる可能性が高くなります。これはステークの証明です。

いわゆる POW POS は、ブロックを生成するための単なる異なる要件であることがわかります。推測ゲームはラウンドでプレイされ、各ラウンドでブロックが生成されます。ブロック生成の各ラウンドの後に、ブロックはブロックチェーン ネットワーク上でブロードキャストされ、公開されます。すべてのノードは、コンセンサス アルゴリズムに基づいてこのラウンドの勝利ブロックを選択し、その先端、つまり現在のブロックチェーンに接続します。したがって、私は POW POS を合意へのチケット、または候補者になるためのチケットと呼んでいます。

#POW アプレットの例: https://github.com/bitcoinbook/bitcoinbook/blob/df1828b7205a5950a16a3182cf9b15421ee70658/ch10.asciidoc#pow_example_outputs

#POSv3 詳細な説明:

http://earlz.net/view/2017/07/27/1904/the-missing-explanation-of-proof-of-stake-version

2. 投票手順 - トラストレスコンセンサス

POW POS は候補者になるための単なるチケットです。このラウンドの最終勝者は、投票者の過半数によって決定されます。投票のルールはコンセンサスアルゴリズムそのものです。投票者はネットワーク内のノードです。もちろん、ここではフルノードについて話しています。投票作業には次の内容が含まれます (詳細なプロセスはここでは説明しません。概要のみです)。

1) トランザクションの検証と中継: 受信したトランザクションを検証して中継するプロセスは、投票の検証手順の 1 つと見なすことができます。候補ブロックに不正なトランザクションが含まれている場合、候補ブロックは正当性を失います。

2) ブロックを完全に検証し、最適なチェーンをアクティブ化します。受信したブロックに対してより詳細な検証 (ブロック レベルとトランザクション レベルの検証) を実行し、最長のチェーンを見つけます。もちろん、実際のプロセスは動的であり、現時点での最長チェーンが最終的な最長チェーンではない可能性があります。

ソフトフォーク、孤立ブロック、さらには再編成が継続的に発生します。ビットコインでは通常、6 回の確認が必要です (一般的に言えば、世界のネットワークが大規模かつ長期にわたる麻痺を経験しない限り、悪意のある長距離攻撃でない限り、いわゆるディープ リオーグが発生する可能性は低いです)。

ブロックチェーン ネットワークでは、主にビットコインに代表されるパブリック チェーンを指し、通常のモバイル ウォレットであろうとマイニング ノードであろうと、各クライアントはこのネットワーク内で独自の役割を果たします。通常のモバイルウォレット(ホットウォレット)の場合、主なタスクはトランザクション情報をブロードキャストして中継することですが、マイニングノードの目的はコインベースの報酬と手数料を獲得することであるため、マイナーノードは候補ブロックを生成するように努めます。これらのマイナーノードは、異なる公式バージョンを実行している可能性があり、一部は改変された非公式バージョンであり、一部は悪意のあるハッカーノードですらあるため、コンセンサスアルゴリズムは、これらの善良なノードと悪質なノードが互いに信頼せずに協力し、いわゆる信頼のないコンセンサスに到達するための基礎となります。

コンセンサスの本質はビザンチン将軍問題を解決することです。コンセンサス アルゴリズムは、ビザンチン フォールト トレランス アルゴリズムです (これは一般的な用語であり、BFT や PBFT を指すものではありません)。 POW POS の目的は、悪事を働く悪質なノードや裏切り者のノードのコストを増やすことです。実際、POW にとって悪事を働くコストは、特に Bitcoin ネットワークの場合、非常に高くなります。しかし、POS に対して悪事を働く低コストの方法は数多くあり、次の 3 つでそれらについて説明します。

一般的なコンセンサス アルゴリズムには、最長チェーン原則に基づく一連のコンセンサス ルールで構成された Nakamoto コンセンサス アルゴリズムである Nakamoto コンセンサスが含まれます。詳細については、https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch10.asciidoc#decentralized-consensus を参照してください。

その他のコンセンサスアルゴリズムにはPBFT(Ripple、Stellar、Hyperledgerで使用)があります。詳細な説明を参照してください。

簡単に言えば、クライアントがトランザクション要求を送信すると、プライマリ ノード (投票者の代表に相当) が他のノードに事前準備メッセージを送信し、メッセージを受信したノードが準備メッセージに応答します。各ノードが他のノードから ack を受信すると、すべてのノードがコミット メッセージを送信します。十分なコミット メッセージが受信されると、クライアントに応答します。

ここで、いわゆるDPOSアルゴリズムについて言及する必要があります。

DPOS アルゴリズムは、ブロック プロデューサーのグループの選択と、生成のスケジュール設定という 2 つの部分に分かれています。ネットワークがスムーズに動作しない場合、利害関係者が最も大きな損失を被るため、選挙プロセスによって利害関係者が最終的に制御権を握ることが確実になります。

--

https://steemit.com/dpos/@dantheman/dpos-consensus-algorithm-this-missing-white-paper

前述のように、DPOS アルゴリズムには 2 つの部分、「D」: ブロック プロデューサーの選択、「POS」: ブロックの生成があり、ブロックの生成後にこれらのブロック プロデューサー間でコンセンサスが発生するため、DPOS 自体はコンセンサスではありません。

私の意見では、DPOS と POS の主な違いは、POS は多数派がコンセンサスに参加するためのチケットであるのに対し、DPOS は少数の選ばれた人々がコンセンサスに参加するためのチケットである点です。したがって、EOS の場合、最長チェーンの原則に基づいてコンセンサスに達する必要があります。ここでの潜在的な問題は、大量のコインを持つ一部のリッチノードがやりたい放題する可能性があることです。そのため、EOS は BFT コンセンサス モデルの導入を提案しています。ご興味があれば、この記事「DPOS BFT - パイプライン化されたビザンチンフォールトトレランス」をお読みください。

一部のノードがコンセンサスに従わなかったり、コンセンサスを変更したりした場合に何が起こるかと尋ねたい場合、答えはフォークが発生するということです。ただし、新しいコンセンサスをサポートして参加するノードが十分にない場合、フォークされたチェーンは無意味になります。したがって、コンセンサスは多数派の合意です。少数派のコンセンサスは、DPOS または一部のコンソーシアム チェーンに基づくパブリック チェーンでのみ意味を持ちます。

3. 攻撃ベクトル 攻撃ベクトル

これらを理解することで、次のような問題や安全上の事故をより明確に理解できるようになります。

1) いくつかの攻撃方法は多くのPOSチェーンでは経済的に実行可能ですが、ビットコインなどのPOWチェーンでは経済的に実行可能ではありません。

例えば、遠距離攻撃や賭け攻撃は行いません。主な理由は、POW でブロックを生成するコストが非常に高く、意図的に間違ったブランチを選択した場合はコストがさらに高くなることです。 POS にはこの問題はありません。ブロックを生成するのにコストはかかりません。ある程度の賭け金があれば、それは可能です。場合によっては、ステークを購入し、攻撃トランザクションを構築してからステークを売却することもできます。かかる費用は手数料のみです。何も賭けない攻撃を誤解しないでください。賭け金は必要ありません。これは、マイナーまたはフォージャーが同時に複数のブランチでマイニングすることを意味します。ブロックを生成するコストが低いため、複数のブランチにより報酬を得られる可能性が高まります。結局、何も危険にさらされることなく、二重支出攻撃に繋がることはありません。

解決策としては、チェックポイントの設定(ビットコインでも採用されている)、イクイボケーションノードへのペナルティなど、コンセンサスアルゴリズムを改善することが挙げられます。

具体的には、Slasher アルゴリズムがあります。興味があれば、Ethereum の Casper を詳しく調べてみてください。

2) 同じコードベースとヘッダーファーストノード同期では、POS はリソース枯渇攻撃 (つまり、メモリとディスク領域を使い果たす攻撃) の影響を受けますが、POW はこの問題を回避できます。

この攻撃方法は、ノードが分岐したブランチ ブロックを同期しているときに、再編成が行われない場合、つまりブランチ ノードが最長ノードではない場合、完全な検証 (二重支払いや署名などの完全な検証) が実行されず、メモリ (ヘッダーの送信) またはディスク (ブロックの送信) が消費されるという事実を単純に利用します。

-- PoS に対するリソース枯渇攻撃

この調査に対する Qtum の反応は以下をご覧ください。

チェーンベースのプルーフ・オブ・ステーク暗号通貨に対する「フェイク・ステーク」攻撃について

上記の 2 つの例から、コンセンサス アルゴリズムの小さな変更や脆弱性によって、複数の攻撃ベクトルが導入される可能性があることがわかります。私たちは彼らから多くの考え方を学ぶことができます。以下は、ビットコインの歴史の中で発生した脆弱性へのリンクです。

https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposures

https://en.bitcoin.it/wiki/弱点

1行のコードによって引き起こされる2つの脆弱性、DOSと二重支払いに関する次の分析レポートをご覧ください。

BitcoinCore CVE-2018-17144 脆弱性の調査と分析

4. その他の考察

私は単なるブロックチェーン技術の愛好家であり、パブリックチェーンの開発に参加する機会はありませんが、私の深い理解は開発能力に役立っています。分散型のグローバル思考を養うことは非常に困難です。分散開発やマルチスレッド開発に精通している同僚にとっては、私よりも簡単に始められるかもしれません。もちろん、技術的な考え方に加えて、多くの場所では経済的インセンティブのメカニズムを組み合わせる必要もあります。たとえば、この論文ではマイナーノードの検証のジレンマを提起しています。

完全な検証(スクリプト実行検証を含む)を実行すると、一定の時間がかかります。違法な取引を排除できるのが利点です。検証を省略すると、他のマイナーよりも多くの時間を稼ぐことができますが、違法なトランザクションが含まれる可能性があり、その結果、計算能力が浪費され、代償を払うことになるという危険性があります。この論文は非常に興味深い。これは、上で述べたマイニングの仕組みとコンセンサス アルゴリズムの間の矛盾を示しているような気がします。マイニングの利益を重視する場合、コンセンサス ルールは完全に従うべきか、それとも選択的に従うべきか?ご興味があれば、著者が提案する解決策「THE VERIFIER'S DILEMMA」について学んでみてください。

<<:  データの観点:BCHSVが「上場廃止」された後の取引所の動向

>>:  BSVマイナーは220万ドルの損失を被ったが、なぜまだ存続しているのか?

推薦する

クラウドマイニングは、現在ビットコイン市場に参入する最も安定した方法かもしれない

制作 | Odaily プラネットデイリー (ID: o-daily) 今年の通貨価格の回復は新たな...

さようならBTC、こんにちはAI: 暗号通貨マイニング企業がAIに目を向ける

抽象的な:ヒューストンを拠点とするテクノロジー企業Lanciumとデンバーを拠点とするCrusoe ...

これらの興味深いブロックチェーンアプリケーションをご存知ですか?

「ブロックチェーン」という言葉を聞いたことがある人の多くは、それがビットコイン、ライトコイン、ドー...

ブロックチェーンの真実

契約、取引、およびそれらの記録は、私たちの経済、法律、政治システムを定義する構造の 1 つです。資産...

Coindesk: Monero のサイファーパンクが ASIC への最終攻撃を開始

この記事では、Monero コミュニティのサイファーパンクたちが ASIC マイニングに抵抗するため...

多用途のブロックチェーン技術が主流メディアの注目を集める

主流メディアがブロックチェーン技術とビットコインについて肯定的なレポートを発表し始めると、何かが起こ...

エルサルバドルでのビットコインの合法化は革命なのか、それとも単なる誇大宣伝なのか?歓声はもっと複雑になるかもしれません。

6月9日、エルサルバドル議会はビットコインを同国の法定通貨として正式に承認する決議を可決した。中米...

マイニングファームは閉鎖され、資本は陸に上がり、暗号通貨市場は後退し、弱気相場の無人地帯を越えた。

劉聡は42歳の誕生日に、鉱山事業が失敗に終わったと発表した。 40歳になると人は疑念から解放されると...

ビットコインの価格は上昇を続ける

7月13日現在、ビットコインは1か月間で1,432元から1,967元に上昇し、この急騰により多くの若...

グレイスケール:BTCはナスダック100投資の一部を置き換えることができる

Nasdaq 100 株とビットコインは別個のものですが、補完的なポートフォリオ投資です。ナスダック...

デジタル人民元試験都市の第3弾がまもなく発表される |産業用ブロックチェーン開発ウィークリー

まとめ業界ニュース:王老吉が新たな10年戦略を発表、メタバース「Ji Space」をローンチHTC、...

UBS元CIO:銀行におけるブロックチェーンの商業的導入は今後始まるが、予想より数年遅れるだろう

UBSの元デジタル台帳技術責任者は、銀行がブロックチェーン・ソフトウェア・システムを商業生産に移すに...

2020年が暗号通貨が史上最高値を更新する年となる理由

今年はほとんどの暗号通貨にとって忘れ去られる年となるでしょうが、2020 年は暗号通貨市場にとって根...

野村ホールディングス、高級イタリアンレストランのトークンサブスクリプションを顧客に提供

日本最大の金融証券会社である野村ホールディングスは、高級イタリアンテイクアウトサービスのグルメ食品を...

ソラナチェーンは5月に約50万トークンを発行しました:なぜそれが先頭に立つことができるのか

Solana 上の新規トークンの数は、これまで他のチェーンでは見られなかった月間最高数に達しました。...