【レッスン4】「プルーフオブワーク」~合意形成の仕組みを理解しよう~

¿Por qué necesito esta lección?

本レッスンでは、ブロックチェーンの根幹を支えるプルーフオブワーク(Proof of Work)ついて学習していきます。

プルーフオブワークを学習することで、ブロックチェーンがなぜ改ざん困難なのかを理解することができます。少々難しい内容となりますが、じっくり学習していきましょう。

Lo que aprenderá en esta lección

  • プルーフオブワークについて
  • プルーフオブワークによる合意形成の仕組み(コンセンサスアルゴリズム)
  • 合意形成の難易度調整の仕組み(ディフィカルティ)
  • プルーフオブワーク


    タイムスタンプサーバに続き、ビットコインを実現するための仕組みの二つ目は、プルーフオブワーク(以下「PoW」)です。

    PoWについては、ブロックチェーンと共に誕生した全く新しい仕組みであるとの勘違いが多いですが、元々はスパムメールを防止するために開発された技術で、1993年に誕生しています。


    PoWは、ハッシュ関数の逆算をする処理のことです。

    スパムメールを防止するために、メールを送信する際にはハッシュ関数の逆算処理をしたことの証明が必要となる仕組みを開発しました。

    ハッシュ関数の逆算をするには膨大な時間がかかるため、大量にメールを送ることはできない、という考え方です。

    この仕組みは、HashCashとも呼ばれています。


    ビットコインの場合、ブロックチェーンの各ブロックをハッシュ化した際に、生成されるハッシュ値の先頭に0(ゼロ)が指定の数並ぶような値を探す作業を必要とします。

    ブロックチェーンの各ブロックには、固定値と変動値に分類できる様々な情報が格納されています。

    この変動値のことをノンス(乱数)といい、このノンスを変化させることで、先頭に0が並ぶ入力値を探し当てる作業が、ビットコインにおけるPoWです。


    このPoWの作業が完了すると、ブロックチェーンにおける1つのブロックの形成が完了することになります。

    また、各ブロックは1つ前のブロックのハッシュ値を含んで形成されています。

    そのため、どこかのブロックを改ざんしようとすると、そのブロック以降に連結されているブロック全てのデータを改ざんする必要があるのです。

    これが、ブロックチェーンが改ざん困難であると言われている理由です。


    Compruebe el progreso de su lección

    Una vez que hayas averiguado de qué trata la lección,
    haz clic en el botón "Comprobar".

    プルーフオブワークによる合意形成の仕組み


    PoWは、不特定多数の集団での意思決定において、誰の意見が代表であるかを決定する際にも活用できます。

    PoWにおける参加権は、各CPUに対して1つずつ割り振られます。

    そのため、参加権を大量に確保することが難しく、本当に公平な意思決定が期待できるというわけです。


    このとき、最もPoWの計算量が費やされたチェーンは自然と最も長いチェーンとなり、この最長のチェーンが、不特定多数の集団での意思決定における代表者となります。

    これは、CPUの大多数が善良なノードによって制御されていれば、そのチェーンは最も速く伸びることになる、という考え方が元になっています。


    Compruebe el progreso de su lección

    Una vez que hayas averiguado de qué trata la lección,
    haz clic en el botón "Comprobar".

    合意形成の難易度調整


    ブロックチェーンの改ざん可能性は、特定のブロックの後に連なっているブロックの数に対して指数関数的に小さくなります。(後ろに連なるブロックが多いほど、改ざんに必要な作業量が増えるということです)

    過去のある時点のブロックを改ざんするには、そのブロックの後に連なるブロック全てのPoWを再度行いブロックを作り直す必要があります。

    このとき、本来の正しいブロックよりも速くブロックを形成しなければなりません。

    なぜなら、最も長いチェーンが代表者となるからです。


    この、不正なチェーンが正しいチェーンを追い越す確率について、ここで簡単に学習しておきます。

    PoWでは、ムーアの法則によるハードウェアの性能向上や、PoWへの参加者の増減によって、PoW自体の難易度が変動しないように設計されています。

    難易度が変動してしまうと、簡単に不正なチェーンが正しいチェーンを追い越してしまうからです。

    この難易度のことをディフィカルティ(採掘難易度)といい、1時間ごとに生成されるブロック数が一定になるように、自動的に調整されています。

    もし1時間あたりのブロック生成数が増加した場合は、PoWの難易度を高くし、反対にブロック生成数が減少した場合は、PoWの難易度を低くしているのです。


    Compruebe el progreso de su lección

    Una vez que hayas averiguado de qué trata la lección,
    haz clic en el botón "Comprobar".

    【レッスン4】 「プルーフオブワーク」~合意形成の仕組みを理解しよう~

    0%

    0%

    No has completado todas las lecciones. ¡Vamos a completarlos todos antes de hacer la prueba!

    Haga clic en el botón siguiente para iniciar la prueba.