ビット単位でブロックチェーンを分解する

Facebook にシェア
Pocket

ビットコインの裏にある技術が実際にどのように機能しているのか

これまで暗号通貨についての話題は尽きませんでしたし、この神秘的なデジタル ゴールドで一夜にして億万長者になった人たちについての見出しも毎日のように出ていました。

しかし、基礎となる技術の「ブロックチェーン」が実際にどのように機能するのかを理解している人は多くはいませんでした。

「分散化」などのバズワードはもう十分に聞いたので、ブロックチェーンを少しずつ分解してみていきたいと思います。
まずは暗号とブロックチェーンの違いを理解しましょう。

Bitcoinは取引の記録である

ビットコインは、誰が誰にお金を送るかについての取引の台帳です。
ネットワーク上の誰もが この台帳のコピーを持っています。

例えば、ミッキーがドナルドにビットコインを送ると、誰もがこの取引を示すために、台帳のコピーを更新します。

From ミッキー ⇒ To ドナルド :$3

ミッキーが自身の口座において 唯一、 ビットコインを動かすことができることを確認するために、デジタルで彼のトランザクション(取引)に署名します。
それは、ちょうど本物の署名のように、彼がトランザクションを作っているものであることを認証します。

デジタル署名は、あなたの公開鍵(誰もが見ることができる)とあなたの秘密鍵(あなただけが見ることができる)を組み合わせて使用されます。
デジタル署名は、あなたの秘密鍵と取引メッセージを使って作成されます。
公開鍵は、あなたが秘密鍵を所有していることを確認するために他の人が使用します。

自分のアカウントを所有していることを証明するには?

1. トランザクションメッセージを受け取り、秘密鍵はデジタル署名を生成する関数を適用します。

 署名 = f(秘密鍵、トランザクションメッセージ)

2. 他のノードは、その署名、トランザクションメッセージ、あなたの公開鍵を別の関数に入れて、あなたが秘密鍵を所有していることを検証します。

 検証= f(トランザクションメッセージ, 署名, 公開鍵)

署名は、取引ごとに異なるトランザクションメッセージを使用して作成されるため、結果として得られるデジタル署名は一意です。
他の取引で承認するために複製することはできません。

自分がどれだけのビットコインを所有しているかを把握するには、以前にビットコインを受け取った回数を合計します。
すべての取引はネットワーク上で見ることができます。

しかし、明示的に「ミッキー」と「ドナルド」と表記するのではなく、台帳は彼らのアカウントに関連付けられた彼らの公開鍵を示しています。
彼らの身元は匿名ですが、アカウントの活動は匿名ではありません。誰でもネットワークを監査することができます。

  公開鍵= 57vhdw4
  デジタル署名= 1h678h34
  取引量= $3

ビットコインは取引の連鎖ですが、これがブロックチェーンと何の関係があるのでしょうか?
取引が時系列で安全であることを確認するために、ブロックチェーンに載せています。

さて、”tHe bLOckChAiN “とは?

ブロックとは?

ブロックにはある種のデータが含まれています。ブロックには『ハッシュ』と呼ばれる一意の識別子を付けます。

ブロックには、その前のブロックのハッシュ、タイムスタンプ、nonce(ナンス)と呼ばれる変数も含まれています。
ブロックのハッシュはお互いを指し示します。
この意味で、ブロックはチェーンのようにリンクされています。

誰かがこれらのブロックの一つの中のデータを変更しようとすると、ブロックのハッシュが変化します。これが起こると、次のブロックはハッシュがそのブロックを指していないため、チェーンから切断されます。

ブロックは不変であり、一度追加されたブロックは連鎖を断ち切り、何かが起きていることをネットワークの残りの構成者に素早く警告するため、誰もそれらを改ざんすることはできません。

誰がネットワークを担当しているのか?

ブロックチェーンは分散して遍在しており、ネットワーク上のすべての人がチェーンのコピーを取得します。
ネットワーク上の1つのノードがダウンしても、ネットワークは生きています。

ビットコインのようなネットワークに対して混乱を与えるには、少なくとも51%のノードをダウンさせる必要があります。

既存のほとんどのネットワークは中央集権型アーキテクチャで設定されており、すべてのノードは1つのメインノードから分岐しています。

一方、ブロックチェーンネットワークは分散化されており、すべてのノードがリンクされています。

なぜこれが重要なのか。

・中央集権はデータをコントロールしたり検閲したりすることができますが、分散化は検閲がないことを意味します。

・中央集権型システムにおいて、混乱を与えるためには、1つの障害点だけが必要ですが、分散型システムは複数の障害点を必要とします。

・ ピア・ツー・ピアだから仲介者は必要ない

ハッシュとは一体何なのか

ハッシュとは、ブロックを「マーク」するために使用される数字と文字のユニークなセットのことです。
ブロックのハッシュを取得するには、SHA-256(Securing hashing algorithm)と呼ばれる暗号学的ハッシュ関数を使用します。
ブロック内のすべての内容を1つの文字列にまとめ、SHA-256関数を適用します。

関数の出力は常に64文字の文字列を出力しますが、驚くべきことに、膨大な数の組み合わせ可能な出力(2^256)があるということです。出力は、それぞれの入力に対して常に同じです。
つまり、私が「ぼうし(帽子)」という単語を入力した場合、常にこのような恐ろしい見た目の出力をします。

18E1DD392168F601D0E568612A2BF40E6555C033E033B580AE6627D8AEEE1150

しかし、一文字変えたりスペースを入れたりすると出力が完全に変わってしまうんですよね。( 「ぼうし」→「ぼう 」 )

8693873CD8F8A2D9C7C596477180F851E525F4EAF55A4F637B445CB442A5E340

誰かが乱数や文字を吐き出したように見えますが、入力から出力の意味を導き出すことは不可能で、完全にランダムです。

ブロック内のデータに触れると、SHA-256関数は上記と同じように動作し、ハッシュが完全に変化します。
その結果、ハッシュがお互いを指し示すことができなくなるため、チェーンは切断されてしまいます。

これらのハッシュが ブロックチェーンが不変である理由です。
つまり、ハッシュ内部のデータを変更したり改ざんしたりすることはできません。

SHA-256関数は計算効率が高く、衝突抵抗性があるため、関数を適用するのが速く、同じ出力を持つ2つの入力を見つけることは非常に困難です。

なぜネットワーク上の他人を信用しなければならないのか?

人を信頼しているのではなく、暗号を信頼しているのです。

ネットワークへの信頼は、そのコンセンサス メカニズムから生まれます。
プルーフ・オブ・ワーク( Proof of work:PoW )は、ブロックチェーンのコンセンサスメカニズムの先駆けとなりました。

PoWは、ブロックをチェーンに追加するための計算作業がおこなわれたことを証明します。
時間とコストがかかる多くの計算作業を行わなければならないため、ノードがランダムに不正なブロックを追加することは、非常に困難となっています。

PoWの概念は1993年にさかのぼります。

その最初のアプリケーションは、1997年にアダム・ベックによって電子メールのスパムやサービス拒否攻撃を防ぐ方法としてのHashcashでした。
それでも、サトシ・ナカモトがビットコインのホワイトペーパーを発表するまでは、それはあまり普及しませんでした。

ブロックをチェーンに追加するために、「マイナー(採掘者)」と呼ばれるノードが、計算量の多い複雑な数学的パズルを解くために競い合います。

これは「マイニング」として知られており、正解を見つけたマイナーは、その解が有効であることを確認するために、ネットワークの残りの部分にそれを広く公開します。

検証されると、新しいブロックが追加されます。
これが行われると、ブロックは自動的に新しいビットコインをマイニングし、勝利したマイナーにそれを授与します。

このようにして、新しいビットコインをネットワークに導入し、マイニングを奨励するのです。

パズルが非対称であることが非常に重要です。
数字のファクタリングに似ていますが、大きな数字の因子を見つけるのは本当に難しい( N=?×? )ですが、因子を与えられた数字を逆に見つけるのは簡単です。

マイナーは、nonce変数(ブロックに加える数)を変えることで答えを推測します。
nonceはパズルの文字列と連結されます。
そして、得られた文字列にハッシュ関数を適用します。
そのハッシュ関数の出力がある閾値以下のゼロであればパズルは解かれます。

  ># = f[ ‘n’ + ‘p’ ]  …n: nonce 値、p:パズル(謎値)

このパズルは非常に複雑なので、解くには純粋な推測と試行錯誤しかありません。
推測が速ければ速いほど、解ける確率は高くなります。
『簡単そうだな。ただ何回も当てればいいの?』と思われるかもしれません。

ただ、解くためには平均2^⁴⁰の文字列を推測する必要があります。
1兆回以上になります!
キリストが生まれた時代から毎日100万回当てたとしても、まだ解けないでしょう。

しかし、ビットコインのネットワーク上では多くのノードが競合しているので、10分に1回は解けていることになります。

証明作業のメカニズムの問題点は、より多くのマイナーが競争すると、パズルが難しくなることです(閾値にゼロが追加されます)。
ノードの計算能力が高ければ高いほど、パズルを解くことのできる確率が高くなります。
これを利用してマイニングプールを作成し、計算能力をクラウドソーシングして勝利の可能性を高め、報酬を分配するマイナーもいます。

しかし、これらのマイニングプールはブロックチェーンの分散型の性質を奪ってしまうおそれもあります。

ビットコインネットワークのトップ5のマイニングプールが合体した場合、ネットワークの半分以上を所有することになります。
ネットワークの51%を所有するということは、どんな取引でも承認できるということです。

マイニング産業は巨大で、約60億ドルの価値があります。
コンピュータを持っていれば、ほとんど誰でもビットコインをマイニング(採掘する)ことができます。

しかし、通常のCPUは実用的なマイニングには遅すぎます。
多くのマイナーは現在ASICコンピュータを使用していて、彼らはビットコインの採掘に特化しています。
最高のCPUの10万倍の速さでハッシュを計算します。マイニングファームと呼ばれる建物があります。

この競争力のある方法では、多くの無駄な計算能力があり、PoWのマイニングは非常にエネルギー効率が悪いです。

2018年には世界の電力の0.5%を使用しており、ビットコインネットワークはアイスランドの全電力よりも多くのエネルギーを使用しています。

そこで、代替的なコンセンサスメカニズムとして、プルーフ・オブ・ステークがあります。

プルーフ・オブ・ステーク

重要な違いは、パズルを解くためにノードを競わせるのではなく、ネットワークが特定のノードを選択することです。

彼らを「マイナー」ではなく、「バリデーター」と呼んでいます。

選出されるためには、その暗号通貨を「ステーク」(保有)する必要があります。あなたは自分の暗号通貨のすべてをネットワークに渡し、ネットワークはブロックを検証する権利と引き換えに、この通貨を預かります。

あなたが不正なブロックを検証・承認した場合は、ネットワークはあなたが預けた暗号通貨を奪うことによって罰することになります。
これによって不正な行為をおこさせないようにしています。

バリデータは、すべてのトランザクション(取引)の手数料を請求することによって利益を得ます。
パリデータ選出のプロセスはかなりランダムですが、あなたがどれだけステークしているか、どのくらいの期間ネットワーク上にあったかなどの要因を考慮します。

ネットワークのPoWを買収しようとすると、そのチェーン上の暗号通貨の51%を所有する必要がありますが、これは主要なチェーンでは非常に難しく、コストが高く報われません(割に合わない)。

これは、マイニングプールによるプルーフオブワーク(PoW)のように、コンピューティングパワーの51%を所有するよりもはるかに起こりにくいでしょう。

プルーフオブワークは、推測するコンピュータが少ない、つまり、使用されるエネルギーが少ないので、より環境に優しいと言えます。

フォークって何?

例えば、何千人もの人とゲームをしているとしましょう。

新しいルールで遊びたいと思っているグループは、他の人たちが彼らのゲームを続けている間に、自分たちのゲームをすることにします。

どちらのゲームに参加するかは誰でも自由です。

同様に、ブロックチェーンコミュニティがプロトコルについて意見が合わない場合、ユーザーはソースコードを変更して別のチェーンに分岐します。

以前の取引はすべて両方のチェーンに記録されたままですが、新しい分岐したブロックは独自のルールに従うことになります。

これらの新しいチェーンを「フォーク」と呼んでいます。

ハードフォークは、ビットコインネットワークのサイズ制限が1MB(メガバイト)になったときに発生しました。

VISA(ビザ)が1700以上のトランザクション/秒で取引がなされるのに対して、ビットコインでは、たったの4.4トランザクション/秒です。

コミュニティはこれがスケーラビリティのために良いかどうかを議論していましたが、彼らは合意に達することができず、結果として、新たに「ビットコインキャッシュ」が8MBのブロックサイズで作成されました。

このとき、ネットワーク上のビットコインに 何が 起こるか?

ユーザーは同じ過去のブロック履歴を共有しているため、両方のチェーンで同じ量の暗号通貨を持っています。
つまり、ビットコインで2つのビットコインを持っていた場合、ビットコインキャッシュでも2つのビットコインを持っていることになります。

ビットコインだけでも、フォークの数は数え切れないほどあります。

これほどのチェーンがあるにもかかわらず、ネットワーク効果により、通常は1つのチェーンが他のチェーンよりも優位に立っています。

そのチェーンは、それに追加されるブロックが最も多く、より多くのユーザーがそれを使用しているために支配しており、単体の暗号通貨は、他の人がどれだけそれを評価するかに基づいて価値が決まります。

ゲームの例えに戻りますが、最も多くの人がプレイしているゲームが、時間の経過とともに最高のゲームになります。

フォークにはハードとソフトの2種類があります。

ソフトフォークは高速道路で車線を変更するようなもので、コードに柔軟性のある変更であり、メインチェーンでも使用できます。

ハードフォークは高速道路を抜けるようなもので、まったく異なるルールに従っており、前のチェーンとは互換性がなく、新しいチェーンが必要になります。

まとめ

・ビットコインは取引の記録であり、ブロックチェーン上に保存されている。

・ブロックチェーンは不変であり(変更できない)、分散化されている(全員がチェーンのコピーを所有しており、「中間者」がいない)。

・SHA-256アルゴリズムを使用してハッシュを作成している。ハッシュ関数こそが変えることができない理由です。

・プルーフ・オブ・ワークは、競争力があり、エネルギーを要するコンセンサス方式である。
 これを回避するために、マイナーはマイニングプールを作成している。それを引き継ぐには、51%の計算能力が必要になる。

・プルーフ・オブ・コンセンサスのコンセンサス方式は、バリデータを選出し、よりエネルギー効率が高い。これをハックするには、51%の暗号通貨の供給が必要になる。

・フォークとは、異なるプロトコルに従うソフトウェアの分岐点のこと。新しいブロックチェーンを必要とするハードフォークと、オリジナルと互換性のあるソフトフォークがある。

これらの小さなレイヤーが組み合わされることで、ビットコインを動かす超強力な技術が生まれます。

ブロックチェーンは暗号通貨だけに限らず、多くの産業に大きなインパクトを与えることができます。

まだ10年しか経っていませんが、将来に向けて多くのことが期待されています。

以上

原文: Breaking Down Blockchain Bit by Bit

Facebook にシェア
Pocket

コメントは受け付けていません。

【参考】まもなく海外銀行口座開設の受付