ビットコインとコンセンサス。カリフォルニア大学バークレー校 ビットコインと仮想通貨の無料講義超訳|Week1-5

前回までの記事はこちら。

ーーーーーーーーーー

こんにちは!クレメア(@cremea_tw)です。

前回に引き続き、カリフォルニア大学バークレー校の無料講義、
「ビットコインと仮想通貨のオンライン講座」で学んだ内容をシェアしていきます。

講義そのものにおいて、

読者対象:ビットコインや仮想通貨について詳しく知りたい全ての人
前提知識:不要

という感じなので、
講義内容を読むだけでもかなり理解が深まるのではないかと思います。

 

文章のスタイルとしては、
翻訳ではなく、個人的解釈バリバリの超訳をしてきます。

荒削りですがスピード重視で、
クレメア的な解釈も交えてお伝えするので、
間違いや意見などあればコメントいただければと思います。

 

また、太字や文字色などの文章の装飾は極力していません。

学びの本質はそこではない、時間がもったいない、あとでできる、
ということで、今回は泣く泣くカットしました。

見辛いかもしれませんが、予めご了承ください。

 

ということで、
講義の内容に沿って進めます。

今回の記事は、
ビットコインとコンセンサスについてお伝えします。

それでは、本題に入っていきましょう。

イントロ: コンセンサス (ステージ 4)

前回までの講義で、
UTXOモデルの一意のアイデンティティを使用して
トランザクションを相互に送信する方法と、
グローバルレコードを維持するためにブロックチェーンを使用して
これらのトランザクションを保存する方法を理解しました。

この時点で、
これらの様々な構成要素をまとめて1つにするための、
最後のピースが欠けていることがわかると思います。

 

ブロックチェーンを更新するにはどうすれば良いでしょうか?

どの取引、または取引のブロックが有効であるかを、
どのように決定するのでしょうか?

次の更新を決定する中心的エンティティが存在しないので、
私たちは分散型の方法でこの決定を行う方法を見つけなければなりません。

 

ビットコインでは、
ネットワークのユーザーが次の有効な更新に関して、
コンセンサスあるいは同意する必要があるのです。

 

コンセンサス (ステージ 4)

同じページに留まること

誰もがブロックチェーンに関する情報を保存しているので、
誰もがトランザクションの履歴に同意するように合意が必要です。

全てのユーザーが更新に同意する必要があるだけでなく、有効な更新に同意して、
ネットワークによって破損した情報が受け入れられないことを確認する必要があります。

 

もし、異なる当事者がこれに同意する方法がなければ、
両者の間は永遠に分裂したままでしょう。

合意がなければ、
私たちは機能している分散型データベースを持つことができません。

ビットコインの同じ現実を信じるためには、
私たちは全員同じページに留まらなければなりません。

したがって、誰もが合意に達することができる仕組みが不可欠です。

 

ビットコインのコンセンサスモデルを最もよく理解するために、
私たちはコンセンサス戦略にどのような問題が存在するのかを理解し、
ビットコインのコンセンサスモデルを最終的に実現するまで、
このプロセスを反復継続し、理解を深めていく必要があります。

 

コンセンサスに対する理解を強化するため、
以前と同じ5人の登場人物を考えてみましょう。

ラスティ、グロリア、デリック、ナディア、ニックの5人です。

 

最も基本的なコンセンサスメカニズムでは、
更新は次のような形式をとります。

1つのノードがネットワークへのトランザクションを提案し、
そのトランザクションに関するメッセージを他の全てのノードに直接送信します。

他の全てのノードは、
トランザクションが有効な場合はその履歴にトランザクションを保存し、
そうでない場合は無視します。

グロリアはナディアとの取引を望んでいるので、
他の4つのエンティティ全てにそのメッセージを送信します。

これは、グロリアから他の全てのエンティティに向かう矢印で表され、
青い円であるナディアとの取引を表しています。

 

このシステムが含む意味合いとしては、
ノードが互いに会話に関与せず、
唯一、送信者と受信者のノードだけが、
100%の確実性を持つトランザクションを見ることになります。

これらからもわかるように、
このコンセンサスメカニズムには
二重支払い攻撃があるために機能することはありません。

 

二重支払い攻撃

集中化されたシステムでは、
銀行は全ての取引の正当性をチェックすると信頼されています。

有効な取引の条件の1つは、
取引の提案をされた資金は、以前の取引のどこかで約束されていないことです。

悪意のある行為があるかどうかを確認する銀行がないため、
これらの状況に対処する仕組みを構築する必要があります。

 

グロリアが多数のノートパソコンを購入しようとしていて、
ナディアとラスティに10ビットコインをそれぞれ支払おうとしています。

グロリアはラスティに10BTCを1回の取引で送ることを約束し、
ナディアに同時に10BTCを送ることを約束したとします。

上記の図は、
グロリアから緑の円のラスティに緑色の矢印、
グロリアから青い円のナディアに青色の矢印で表されています。

 

しかし、彼女は合計で10BTCしか持っていません。

彼女は無効な取引に気づかれないよう、
各取引においてそれぞれ受け取り手の1人にしか、
取引について伝えていません。

ラスティは自分の取引についてしか知らず、
ナディアは自分の取引についてしか知らないのです。

ネットワークの他のエンティティであるデリックとニックは、
どちらのトランザクションについても知りません。

 

これは二重支払い攻撃として知られているものです。

グロリアは20ビットコインの価値のある支払いを生み出すのに、
10ビットコインしか支払っていません。

 

このバージョンのコンセンサスにおいて、
これは正当なものとなります。

ラスティとの取引で、
グロリアはラスティに元帳の更新をコピーするよう指示します。

ナディアとの取引で、
グロリアはナディアに元帳のコピーを更新するように指示します。

ラスティとナディアは取引が有効で、
それぞれがビットコインを受け取ったと信じています。

もちろん、ナディアとラスティは、
両方が同じビットコインを所有することはできません。

これらのトークンをネットワークで交換しようとする瞬間、
この問題は明らかになります。

 

デリックとニックは、
このような取引は決して起こらなかったと考えています。

もしラスティが、自分がビットコインを所有していることを、
他の誰かを説得して理解させようとすると、
彼らはラスティがこれまでにビットコインを受け取った証拠を見ていないので、
ラスティのことを狂っていると判断するでしょう。

同じことがナディアにも当てはまります。

 

このスキームでは、
エンティティが送信者または受信者として、
直接関係するトランザクションのみ参照するため、
不正のアクターのためにトランザクションの履歴について、
コンセンサスを取ることは不可能です。

このように、ここまでのコンセンサスモデルでは、
二重支払い攻撃を防ぐことは不可能です。

 

ピアの検証

個人が取引の検証を行う代わりに、
投票システムを設定することができます。

以前のコンセンサスの問題は、
コンセンサスが存在しなかったことでした。

私たちがこれまでと同じように孤立した状態で決定をするのではなく、
提案者と有権者のシステミを実装してみよう。

 

1度に1人のユーザーが更新に関する提案を行い、
他の全てのユーザーは提案を受け入れるかどうかに投票します。

トランザクションを作成したい人は、ビットコインの受信者だけでなく、
ネットワーク全体の誰にでもトランザクションを送信します。

ネットワーク上の全員が、
見たトランザクションが有効かどうかに基づいて投票を行います。

一定数の投票を受けた後、過半数であれば、
トランザクションを保存します。

 

以前と同じように、
グロリアからネットワークの残り部分に青い線があり、
彼女がナディアとの取引を行なっていることを示しています。

以前と異なり、
各ノードからグロリアを除く他の者には、
受け取った取引とその妥当性に対する投票という2つの事柄に関する
コミュニケーションの兆候として青い破線があります。

 

二重支払い攻撃の拒絶

グロリアがこのような状況下で、
二重支払いをしようとしたときに何が起こるかを見てみましょう。

 

今、グロリアが二重支払いをしようとすると、
彼女はピアの観察により拒絶されるでしょう。

彼女は再び、2つのメッセージしか送信しません。

緑色の実線の矢印で示されているラスティとのトランザクションのメッセージと、
青色の実線の矢印で示されているナディアとのトランザクションのメッセージです。

 

しかし、私たちは新しいコンポーネント、
すなわちコミュニケーションを導入します。

ナディアとラスティの点線の青色と緑色の線はそれぞれ、
残りのネットワークの参加者へのメッセージの中継を表しています。

残りのネットワークの参加者は、
悪意のある行為に対するグロリアの試みからは独立した第三者です。

 

同じ資金を使いこなそうとしている複数の取引に気づいたため、
同じネットワークの参加者はグロリアの提案に「いいえ」と投票します。

トランザクションは通過せず、
ブロックチェーンへの更新には含まれません。

 

私たちは全ての問題を解決したようにみえます。

誰も同じ資金を二重に使うことができないようにする投票システムがあり、
各取引先は取引の全ての履歴を保管し、
資金が存在するかどうかを確認できます。

しかし、私たちはビットコインについて、
致命的な真実を忘れていました。

匿名性です。

 

見知らぬ人同士

ビットコインは中心的登録者のいない、
アクセス可能な匿名のネットワークであることを思い出してください。

銀行は全員に身元と口座と把握していますが、
誰でも複数の身元証明書を作成することを防ぐため、
ビットコインではそのようなインフラは利用できません。

 

ビットコインでは誰しも参加することができます。

ビットコインのアドレスを簡単に生成できるために、
グロリアがより多くのアイデンティティを生成し、
デリックとニックになりすますのを止めることはできません。

 

アイデンティティの講義に見られるように、
複数のアイデンティティを作成するのは安価で、
乱数の生成のみが必要です。

この低コストのため、
グロリアは複数のビットコインアイデンティティを簡単に保持して、
自分の取引の許可を与える票を投じることができます。

現実世界の少数派であるグロリアは、
十分なアイデンティティを作り、ネットワークの大半を占めることで、
自分の悪質な取引を簡単に提案し、投票することができます。

言い換えれば、現在のコンセンサスのバージョンは、
ユーザーが悪意のある目的のために複数のアイデンティティを作成する、
シビル攻撃の影響を受けやすいということです。

 

投票にかかる費用がかさむと、投票は無意味になります。

暇な時間を持つ人は、
誰でも自分の望む数のアイデンティティを作ることができるので、
投票に価値はありません。

 

グロリアが二重支払い攻撃を試みるとき、
これは彼女の支配下にある複数のアイデンティティによって成功するため、
これが問題であることがわかります。

彼女はナディアとラスティに取引を送って、
これらの取引をネットワークの他の部分にも送り、
両方の取引が有効であることを全て票決します。

両方の取引について過半数の票が有効であるため、
真実の合意が失われてしまいます。

 

グロリアはビットコインの全てを壊してしまいました。

なぜなら彼女が複数の人物として姿を現し、
複数の票を投じてナディアとラスティを圧倒したからです。

 

この問題を解決する視点で考えてみると、
複数のアイデンティティを持つ人がいるために、
各オンラインアイデンティティが同じ投票権を持つと考えることはできません。

実際の人が1票しか持っていないようにするには、
投票を高価にする必要があります。

誰が投票権を持っているかは、
ビットコインのアイデンティティの数に関わらず、
投票しようとする人の誰もが投票権を持つようにする必要があります。

 

しかしどのようにすればいいのでしょうか?

この問題を解決することも可能なのでしょうか?

 

遊びへの支払い

ナカモトサトシのイノベーションが起こる時です。

私たちは先ほど、
全てのエンティティが同等の議決権を有することを確実にするためには、
アイデンティティでは全く投票が機能しないことを認識しました。

代わりにサトシは、
無限のアイデンティティの問題を解決しながら自由と匿名を保つためには、
各投票は限りあるものから投じられなければならないと認識しました。

 

希少価値のある有形資産。

サトシが特定したリソースは、
ビットコインの全てのユーザーが利用できるリソース、
コンピューティングパワーでした。

 

オンラインのエンティティは簡単に作成できますが、
コンピューターをコピー&ペーストすることはできません。

サトシは、投票力に限りあるコンピューティングパワーに結びつけることで、
全てのユーザーが不十分な投票力を持つようにしました。

ホワイトペーパーでは、
従来の「1アイデンティティ1投票」システムではなく、
「1CPU1投票」ネットワークを構想しました。

アイデンティティの代わりに限りあるリソースを使って投票する新しいコンセプトは、
「ナカモトコンセンサス」というタイトルを獲得しました。

ナカモトサトシが思いついた特定のコンセンサスアルゴリズムは、
「Proof-of-Work」として知られています。

 

Proof-of-Work

「Proof-of-Work」という言葉を分解してみましょう。

私たちが、
「証拠」を意味する「Proof」と、
「消費されたリソース」を意味する「Work」を知っています。

言い換えると「Proof-of-Work」は、
ユーザーが消費されたリソースと関連ある証拠を提供する方法です。

計算力が投票力に変換される方法です。
ユーザーがビットコインにおいて投票する方法です。

これはビットコインを成功した最初の暗号通貨にし、
他の全ての暗号通貨の投票メカニズムに影響を与えた投票方法です。

 

Proof-of-Workの仕組み

Proof-of-Workの仕組みは次の通りです。
ビットコインネットワークの残りの部分に提案を作成したい場合は、
まず計算上困難な問題を解決する必要があります。

言い換えれば彼らのコンピューターは、
かなりの量の作業を行うことだけで解決できる問題を抱えています。

この問題は、提案されたブロック内の情報に基づいて一意的に生成され、
事前に予測することはできません。

また、問題の解決方法を予測する方法はありません。
代わりにできることは、試行錯誤を繰り返すことだけです。

 

あなたのコンピューターは、
問題の解決策を見つけるまで入力をし続けます。

問題の解決策を見つけた時点で、
提案されたブロックと共に、成功した入力を残りのネットワークに提出します。

正しい入力形式の予測不可能性によって、
システムを攻略する方法がないことが保証され、
ユーザーの不正行為を防ぐことができます。

全てのユーザーにブルートフォース問題を解決するためには、
多くの仕事をする必要があると、合理的に期待しています。

 

あまたはこう思うかもしれません。

1人のユーザーが幸運にも、
最初の1回でブルートフォース問題の答えを見つけたらどうでしょうか?

これは可能ですが、可能性はありません。

例えば、携帯電話のPINを1回の試行で推測することは可能ですが、
私たちはその状況が起こりうることを信じていません。

これらの問題を解決するには、
ちょうどある程度の計算量を保証することはできませんが、
これらの問題を解決するには平均してどれくらい時間がかかるかについては、
合理的な期待があります。

Proof-of-Workが実際に動作するのを見てみましょう。

 

再び、グロリアはナディアとラスティに二重支払いを行ない、
2つのトランザクションは残りのネットワークに送られます。

ネットワーク参加者は全ての取引に投票します。
グロリアはもう2つの余分なビットコインのアイデンティティを管理していますが、
それらを持ってるからといって余分な投票権が得れるわけではありません。

彼女の投票権は他の人と同じように、
彼女のコンピューターに縛られています。

デジタルアイデンティティは5つありますが、
実際のアイデンティティは3つしかありません。

Proof-of-Workの下で、
デジタルアイデンティティがいくつ形成されても、
3つの投票エンティティしか存在しません。

 

ナディアとラスティは同じ資金を使う2つの取引があることを認識しているので、
両方の取引がブロックチェーンに含まれていることに反対の投票をすることができます。

1つのコンピューターしか持たないグロリアは、
ナディアとラスティに投票で勝つことはできません。

まさしく、ナディアとラスティの勝利です。

希少なコンピューティングパワーを活用して、
投票権を実世界のアイデンティティに結びつけることで、
ビットコインからシビル攻撃を排除し、二重支払い問題を解決しました。

これがビットコインを画期的な技術にした理由です。

 

Quick Check 1

シビル攻撃は、あるユーザーが他ユーザーのリソースを盗むことです。

  • True
  • False

 

あとがき

ということで、
いかがでしたでしょうか?

誰でもアクセス可能な匿名ネットワークで、
悪意ある攻撃を防ぐために編み出されたProof-of-Workという仕組み。

限りある資源であるコンピューターに着目し、
計算問題を解かせて投票させる仕組みは、
まさに画期的だなと思うばかりです。

 

個人的には、ビットコインについて調べると、
いきなりコンセンサス、Proof-of-Workについて説明され、
内容はなんとなくわかったけど、そもそもなんでそれらが必要なの?
なんでいつもこの話が出てくるの?と思っていたため、
今回の講義でより内容理解を深めることができました。

どんなに画期的アイデアでも、
必要になるに至った経緯を知らないと、
何が凄いかわからないですからね。

体系的に説明してくれているので、
非常にわかりやすく、ためになります。

 

引き続き頑張っていきましょう。

 

ということで、

今回はこの辺で失礼します。

このブログを書く僕の目的は、
「ファンを作ること・仲間を増やすこと」です。

趣味が合う、気が合う、考え方が合う。
なんかええなーと思ったら、気軽にメッセージください。喜びます。

終わり。

 

次の記事
51%攻撃とフォーク。カリフォルニア大学バークレー校 ビットコインと仮想通貨の無料講義超訳|Week1-6

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ABOUTこの記事をかいた人

物語の引き金を引く男 / 「てめえの人生に火をつける」 / プロ火付け役 / 腐れニートからの再始動 / 見知らぬ人にMacBook Proを買った人 / 32日で100記事達成 / ただの足跡を伝説に変えていく男 / Youtubeで #クレメアラジオ 不定期配信 / サロン「裏世界」オーナー 参加希望者はDMまで