👻

EDBW1 Blockchain Structure動画和訳

2023/01/15に公開

これはAlchemy UniversityのEDB week1 Blockchain Structureの冒頭にあるLOOMの動画の和訳です。
尚、Otterでの自動書き起こし⇒DeepLでの翻訳にかけているだけですので、翻訳精度は保証しません。

アルケミー・ユニバーシティ モジュール1.4へようこそ。今日はブロックチェーンのネットワークアーキテクチャの分析を通じて、ブロックチェーンの構造について学びます。
この図を見ていただければわかると思うのですが、ここからが本題です。このモジュールでは、伝統的なサーバー・アーキテクチャは通常中央集権的で、それはウェブから伝統的なアーキテクチャ、Facebook、Twitter、Redditに近いと見てきました。
通常、たくさんのノード・コンピュータ、別名コンピュータが、ある集中型サーバにリクエストを出しますよね。
今、さらに進んで、ブロックチェーン・アート・アーキテクチャがあります。多くの人が、これは分散型だと考えていますよね?
しかし、この非中央集権はブロックチェーンの本質ではありません。ブロックチェーンは実際には分散型サーバ上に構築され すべてを分散させます
なぜならブロックチェーンは実際にはピアツーピアネットワークになるからです つまりすべてのノードは実際には相互に接続されています 他のノードの接続です
ブロックチェーンのアーキテクチャまたはネットワークアーキテクチャは この3番目のものに最もよく似ています
分散ネットワークアーキテクチャです それ以外はピアツーピアネットワークと呼ばれています。これは別の図ですが、従来のサーバーベースでは、中央のサーバーがデータのコピーや元帳を管理しています。
しかし、ピアツーピアのネットワークでは 各コンピュータや各ノードはデータのコピーやローカル・コピーを持っていて、それをネットワーク上の参加者全員で共有します。
もし参加者の誰かが反対したら、そこで非中央集権的なコンセンサスを得ることになります。今日のリーディング、つまりモジュール1.4では、いくつかの質疑応答がありました。
Q&Aの構成要素の中で、私が確認したいものがいくつかあります。
まず最初の質問ですが、分散型P2Pネットワークのピアツーピアネットワークは、中央の管理者なしで、どのデータが有効であるかをどのように合意したのでしょうか?
つまり、中央のサーバーのようなものがなくて、すべてのコピーが有効であることを確認するわけですね?分散型P2Pネットワークは、どのようにして成り立っているのでしょうか?
中央管理者がいなければ、「はい、このデータは有効です」と言えるのでしょうか?はい、このデータ入力は有効です。いいえ、このデータ入力は有効ではありません。
中央の管理者がいない場合、そして、ノートのどれかが追加されたデータが有効であることをどうやって合意するのでしょうか。そうでなければ、カオスになるからです。
誰もがデータを追加することになりますが、どのようなデータを追加してよいのか?どのような形式のデータが許されるのか?これは通常、中央管理者によって測定されるものです。
答えに入る前に、これはサトシが遭遇した問題であり、他の多くのコンピュータ科学者も以前に遭遇した問題です。これは「ビザンチン将軍問題」と呼ばれるコンピュータ・サイエンスの問題です。
この問題は、コンピュータサイエンスの文脈で、歴史を参照しながら、分散化された環境で人々はどのように協調するのか、ノートや人々はどのように協調するのか、ということを概説しているのです。
分散型環境のアクターが直面するのは、まさにこの問題なのです。モジュール1.4で概要を説明しましたが、その解決策はプルーフ・オブ・ワークです。
プルーフ・オブ・ワークは、世界中のノードが、どのデータが有効であるとみなされるかについて合意できるようにするコンセンサス・メカニズムです。

すべてのネットワークによると、ですね。
このビザンチン将軍の問題については、別のビデオ・セグメントでもっと簡単に扱いますが、サトシがProof of Workコンセンサスで本質的に解決した問題であることをお伝えしたいと思います。
しかし、とにかく、分散型P2Pネットワークが中央管理者なしでどのデータが有効であるかを合意する方法についての答えは、これです。それは、やはりコンセンサスメカニズムです。
ビットコイン・ネットワークを例に挙げると、ビットコイン・ネットワークは、誰が有効なプルーフ・オブ・ワークを作成できるかに基づいて、新しいデータの有効性を設計しています。
これはまた昨日の復習になるかもしれません。ハッシュ関数はデータを入力として受け取り、一意のハッシュを返します。ここではSHA256ハッシュ・ジェネレーターを使用しています。
誰かがブロックを提案したとき、それはたいてい、誰かがブロックを見つけたいときに起こることです。実際には、そのブロックの生のデータ・コンテンツをハッシュ化することになります。
これが私たちのブロックだとすると、これを事前ハッシュと呼ぶことにします。そしてブロックの事前ハッシュを言います。
ビットコインのブロックチェーンで電撃的に構築するとして 候補のブロックを前のブロックのハッシュにリンクさせます。
それでリンク・ブームを実行します。そして、おそらく何らかのデータも欲しいわけです。このブロックには、何らかのデータが必要です。
ブロックチェーンでは通常、トランザクションという形をとります。
これは見た目が悪いですが、典型的な取引です。ボブはアリスに10ビットコインを送り、おっと、チャーリーはボブにビットコインを送る、などなど、そうですよね?
この小さな入力ボックスで、私が入力内容を変えるたびに、全く新しいハッシュが生成されることに注目してください。これがブロックハッシュの計算で起こることです。
誰かがハッシュ関数にデータを入力すると、ブロック・ハッシュが生成されますよね?ブロックデータを入力するから、ブロック出力、つまりブロックハッシュができるわけです。
ここでは、候補のブロックと前のハッシュを結びつける準備ハッシュがあります。
いくつかのデータ、つまりいくつかのトランザクションがあるわけですが、通常何が起こるかというと、これも昨日のレビューになりますが、nonceフィールドがあります。
これは昨日のレビューですが、nonceフィールドがあります。通常、タイムスタンプのような重要なものは省略されます。Unixでは通常、1970年1月1日からの秒数という大きな数字が使われます。
でもここではnonceを持っていて、通常は0に初期化されます。これは1.3から削除された部分です。
でも、これはハッシュ化処理ですよね?採掘者はこれを実行してnonceを1つ増やし、ブロックのハッシュ出力を変更するたびに、そうします。
つまり、ブロック・ハッシュはどのように計算されているのか、という疑問に対する答えです。採掘者は、将来的に追加したいブロックの候補と呼ばれるものを構築するだけです。

そして何度もハッシュ化するのです。
次の質問につながるまでですが、有効なハッシュが見つかりましたので、レビューその3、有効なハッシュとは何でしょう?
通常、ブロックチェーンによって異なりますが、ブロックチェーンの有効なハッシュとは、ある要件を満たしたハッシュのことを言いますよね。
だから、出力されたハッシュの中から、ソフトウェアが自動的にそのハッシュが有効かどうかをチェックするんですね。
ブロックチェーンに共通する簡単な要件は ブロック・インデックスが最新のブロック・インデックスより 1つ大きいことですね?
つまり、今回のハッシュ化では インデックスを少し間違えたんです 前のブロックが752927だったとして 次のブロックは 8752928 ですね
これで最初の要件を満たしたことになります それから前のブロックのハッシュと 最新のブロックのハッシュは等しくなります
素晴らしいですね ブロック・ハッシュは難易度要件を満たしています。ここが難しくなるところで、実際に採掘が行われるのはここです。
なぜなら、採掘者はこのnonceフィールドを何百万回、何千万回、何億回と切り替えて、ある難易度の要件を満たすハッシュ出力を探すからです。
ビットコインのブロック・ストリームがここに表示されています これはビットコインのブロック・エクスプローラです
ブロックのどれかをトグルすると、つい最近、ハッシュ出力の一部として、ゼロの束が前に出ているのに気づきます。
これがビットコイン・ネットワークの難しさです。
ブロックの候補を作る人は、この入力データがハッシュ出力に十分な先行ゼロを生成するように、ブロックを構築しなければなりません。
しかしそれは、整数に変換したときに、この目標難易度よりも低くなるハッシュを見つけなければならないというだけのことなのです。
そしてこれが、実際にビットコインのブロックチェーンで2週間ごとに変更されるものなのです。難易度は、マイナーの感情に基づいて再調整されます。

というわけで、おっと。
最後の1つは ブロック・ハッシュが正しく計算されていること そう、だからカンニングは出来ない 正しい計算というのは 全てのフィールドが正しく、どれかが欠けていないことだと思う
だって有効なレポートが見つかったら嫌でしょう?膨大な電力とリソースを費やしてブロック全体をマイニングして、19個の先頭のゼロを見つけたとします。
これは、彼が言及していることです。そして今、私はそこに入るつもりはありません。すでに10分経過していますが、ブロックチェーンのデモをご覧になりましたか?
ただ、これは素晴らしいものだと紹介したいのです。ブロックチェーンの重要な事柄の多くを、実際に自分の手で構築していくことで体験できるようになっています。
最初はGenesisブロックのようなものから始めます。そして、ブロックチェーンの用語の一般的な定義から始まります。
ブロックチェーンはブロックのリストであり、Genesisブロックと呼ばれる1つのブロックから始まります。

このデモは、もしあなたが次の次の次のすべての横断的なデモをするならば、これは私が強くお勧めするデモです。
読書会でもたくさん紹介しましたが、読み飛ばして、自分のブロックチェーンで遊んでみてください。
この創世記のブロックは、特に、通常、何らかのデータを持っています。赤くなっていることに注目してください。
自分のデータのハッシュ出力に合っていないからです。このブロックチェーンの難易度要件を満たしていないんです。
デモでは、このブロックチェーンは出力に3つの先頭のゼロを要求していると書かれています。
そこでコマンドZを最初のイニシャルに戻してみると、ハッシュの先頭のゼロが3つでないことに気がつくでしょう。
では次に、その上に新しいブロックを追加してみましょう。
ここで説明した、有効なハッシュを作るためのすべてのプロパティが、ブロックチェーン・デモに表示されていることにお気づきでしょう。
新しいブロックを追加して、データはここからコピーして見ます。
ボブはアリスに10ビットコイン、チャーリーはボブにビットコイン、おっと、新しいブロックを追加してみます。
するとどうなるかというと、事前準備のハッシュがありますよね?そのハッシュをブロック計算の中にリンクさせることで Genesis ブロックにリンクしています。
このリンクは暗号的に封印されています。そして、このブロックのハッシュは、このブロック自身のハッシュです。
これもまた、難易度の要件を満たしています。このデモのすごいところは、難易度要件を満たすために何回ハッシュを試行したかが表示されるところです。
940回です。かなり少ないですが、先頭のゼロが3つであることを考えれば、悪くないと思います。このように、どんどん追加していくことができます。
このブロックチェーン・デモで、ぜひ遊んでみてください。そして次のモジュールです。次のモジュールでは、ユートークソモデルとアカウントモデルを取り上げます。

Discussion