ブロックチェーンの仕組みとは?
ブロックチェーンの仕組みとは?
ホーム記事
ブロックチェーンの仕組みとは?

ブロックチェーンの仕組みとは?

中級者
Published Dec 9, 2018Updated May 25, 2022
5m

ブロックチェーンとは?

ブロックチェーンとは、簡単に言えば、分散型デジタル台帳として機能するデータ記録の一覧です。データは時系列に並んだブロックに整理され、暗号理論によって保護されます。 
ブロックチェーンの最も初期のモデルは、コンピュータ科学者のStuart Haberと物理学者のW. Scott Stornettaが、データの改ざんからデジタル文書を保護する方法として、ブロックの連鎖に暗号技術を採用し、1990年代初頭に誕生したものです。 
HaberとStornettaの研究は、確かに他の多くのコンピュータ科学者や暗号理論愛好家の研究を刺激し、最終的に最初の分散型電子現金システム (または単に最初の仮想通貨) としてのBitcoinの作成につながりました。

ブロックチェーン技術は仮想通貨よりも歴史が古いですが、その可能性が認識され始めたのは2008年のBitcoinの誕生以降です。その後、ブロックチェーン技術への関心は徐々に高まり、仮想通貨はより大きなスケールで認知されるようになりました。

ブロックチェーン技術は、主に仮想通貨の取引を記録するために使用されていますが、他の多くの種類のデジタルデータに適しており、幅広いユースケースに適用することが可能です。最も古く、最も安全で、最も大きなブロックチェーンネットワークは、暗号理論と ゲーム理論の慎重かつバランスの取れた組み合わせで設計されたBitcoinのものです。


ブロックチェーンの仕組み

ブロックチェーンはブロックのステーブルチェーンで構成され、各ブロックには過去に確認された仮想通貨の取引のリストが保存されています。 ブロックチェーンのネットワークは、世界中に散らばる無数のコンピュータで管理されているため、分散型のデータベース (または台帳) として機能します。つまり、各参加者 (ノード ) はブロックチェーンのデータのコピーを保持し、全員が同じページ (またはブロック)を見ていることを確認するために互いに通信を行います。
したがって、ブロックチェーンの取引は、ピア・ツー・ピアグローバルネットワーク内で行われ、これが、Bitcoinがボーダーレスで検閲に強い分散型デジタル通貨となる理由です。また、ほとんどのブロックチェーンシステムは、いかなる種類の信託を必要としないため、トラストレスと呼ばれています。Bitcoinを管理する単一の権威機関は存在しません。
ほぼすべてのブロックチェーンの中心的な部分は、ハッシュアルゴリズムに依存する マイニングのプロセスです。Bitcoinは、SHA-256アルゴリズム (セキュアハッシュアルゴリズム 256 bits) を使用しています。任意の長さの入力を受けて、常に同じ長さの出力を生成します。生成される出力は、「ハッシュ」と呼ばれ、この場合、常に64文字 (256ビット) で構成されます。

つまり、同じ入力は何度繰り返しても同じ出力になるのです。しかし、入力にちょっとした変化があれば、出力はまったく変わってしまいます。そのため、ハッシュ関数は決定論的であり、仮想通貨の世界では、ほとんどが一方向ハッシュ関数として設計されています。

一方向性関数であるということは、出力から何が入力されたかを計算することは、ほとんど不可能です。何が入力されたかは推測するしかありませんが、それを正しく推測できる確率は極めて低いため、Bitcoinのブロックチェーンが安全である理由の1つになっています。

アルゴリズムが何をするのかが分かったところで、ブロックチェーンの仕組みを簡単な取引の例で示してみましょう。

Bitcoinを持っているアリスとボブがいるとしましょう。そして、アリスがボブに対して2 Bitcoinを借りているとします。

アリスがボブに2 Bitcoinを送るために、アリスはネットワーク上のすべてのマイナーに、自分が行いたい取引をメッセージとしてブロードキャストします。
その取引では、アリスはマイナーにボブのアドレスと送りたいBitcoinの量、それにデジタル署名と自分の公開鍵を渡します。署名はアリスの秘密鍵で行われ、マイナーはアリスが実際にそれらのコインの所有者であることを検証することができます。

マイナーは、その取引が有効であることを確認すると、他の多くの取引と一緒にブロックに入れ、そのブロックをマイニングしようとすることができます。これは、ブロックをSHA-256アルゴリズムにかけることで行われます。出力が有効であるとみなされるためには、特定量の0からはじまる必要があります。0の必要量は、「難易度」と呼ばれるものに依存し、ネットワーク上の計算能力の高さによって変化します。

最初から望ましい量の0を含む出力ハッシュを生成するために、マイナーはアルゴリズムを実行する前に、ブロックに「ナンス」と呼ばれるものを追加します。入力にわずかな変更を加えると出力が完全に変わってしまうため、マイナーは有効な出力ハッシュを見つけるまでランダムなナンスを試してます。

ブロックがマイニングされると、マイナーはその新しくマイニングされたブロックを他のすべてのマイナーにブロードキャストします。そして、ブロックが有効であることを確認し、ブロックチェーンのコピーに追加することで、取引が完了します。しかし、ブロックの中に、マイナーは前のブロックの出力ハッシュも含める必要があり、すべてのブロックが結び付けられるため、ブロックチェーンと呼ばれるようになりました。これは、システムにおける信頼のしくみからくる重要な部分です。

すべてのマイナーは自分のコンピュータに自分のブロックチェーンのコピーを持ち、誰もが最も多くの計算作業を投入したブロックチェーン、つまり最も長いブロックチェーンを信用します。マイナーが以前のブロックの取引を変更すると、そのブロックの出力ハッシュが変更され、ブロックがハッシュとリンクされているため、それ以降のすべてのハッシュも変更されることになります。マイナーは、自分のブロックチェーンが正しいものだと誰かに認めてもらうために、すべての作業をやり直さなければならないのです。ですから、もしマイナーが不正をしようと思ったら、ネットワークの計算能力の50%以上が必要になりますが、これはほぼ無理な話です。そのため、このようなネットワーク攻撃は、51%攻撃と呼ばれます。
ブロックを生成するためにコンピュータを働かせるモデルは、プルーフ・オブ・ワーク (PoW) と呼ばれています。また、プルーフ・オブ・ステーク (PoS) のように、それほど計算能力を必要とせず、より多くのユーザーに拡張できる一方で電力消費を少なくすることを意図しているモデルもあります。