Search

検索したいワードを入力してください

2019年02月20日

ブロックチェーンの仕組みを解説!分散型台帳と呼ばれる理由は?

仮想通貨ブームがさった今、ブロックチェーンへの注目度も下がりましたが、多くの企業や研究者が本格的に実用化に向け突き進んでいます。この記事ではブロックチェーンの仕組みについてその特徴からマイニングやコンセンサスアルゴリズムの説明まで幅広く説明しています。

ブロックチェーンとは

ブロックチェーンとは、2017年に世界中で注目されたビットコインを筆頭とする仮想通貨で使われている、新しいテクノロジーのことです。分散型台帳技術や分散ネットワークといった言い方もされます。

ブロックチェーンは、政府や銀行などの単一の管理者を前提とした中央集権型と言われる組織モデルとは異なり、ネットワークに参加する各参加者全体から成り立つ分散型モデルを前提としています。この分散型ネットワークを「ピアツーピア(peer-to-peer)」と言います。

ブロックチェーンは、ビットコインの発明者、サトシナカモトが考え出したテクノロジーです。しかし、当初からブロックチェーンを発明しようとして生み出されたわけではなく、ビットコインを開発するときに副次的に生み出されたものと言われています。

今では次の世界を形作るテクノロジーとまで言われ、世界中で研究や実用化が進められています。

今回はこのブロックチェーンについて紹介していきます。

ブロックチェーンが分散型台帳と呼ばれる理由

ブロックチェーンは、取引が書き込まれたブロックが連なったものですが、取引が書かれたブロックを台帳とみなし、その台帳をネットワーク全体で保有することから分散型台帳とも呼ばれます。

ネットワークのそれぞれの参加者をノードと言いますが、ブロックチェーンは仕組み上、各ノードがそれぞれつながりのあるノードのブロックチェーン(台帳)を検証し、唯一の正しいブロックチェーン(台帳)を認定するようになっています。

つまり、ブロックチェーンはネットワーク全体でただ一つの台帳を保有する仕組みと言えます。

ブロックチェーンはどこがすごい?

ブロックチェーンの最大の特徴は改ざんがほぼできないということです。ブロックチェーンは仕組み上、政府や銀行などの単一の管理者を前提とする中央集権ではなく、ネットワークによる分散型を前提としています。

またデジタル署名をトランザクションに取り入れることによる不正なトランザクションの防止、ハッシュ関数の利用による多大なコンピューティングパワーの要求、各ノード間の相互検証のしくみを取り入れています。こういった点もブロックチェーンの特徴と言えます。

ブロックチェーンは仕組み上改ざんが難しい

ブロックチェーンは、十分に大きなネットワークを前提とした上で、分散型ネットワークと大きなコンピューティングパワーを必要とするハッシュ値の計算により、改ざんがほとんど不可能な仕組みを実現しました。

ブロックチェーンでは、ブロックを生成するときに、ナンスと言われる値を調整することで、一定の条件に合うハッシュ値(「最初の4文字が0」など)を求めなければなりません。この計算は概ね10分程度かかるように設定され、適宜調整されるようになっています。

また、一方でネットワークが大きくなると局所的にブロックチェーンが分岐することがあります。分岐した際にただ一つの正しいブロックチェーンを認定するために、各ノードは自分のブロックチェーンと自分とつながりのあるノードのブロックチェーンを比較する仕組みを持ちます。

そして、過去のハッシュ値が正しく、かつブロックチェーンの長さが長い方を正しいブロックチェーンと認定するようになっています。

悪意のあるノードが過去の取引を改ざんした場合、このノードは再度10分程度時間がかかるハッシュ値の計算を行い、そして他のノードのブロックチェーンよりも長いブロックチェーンを生成する必要があります。

しかし、このブロックチェーンをただ一つの正しいブロックチェーンとネットワーク全体に認定させるためには、ネットワークの過半を味方のノードで占める必要があり、十分大きなネットワークではこれが実質的に不可能となるため、ブロックチェーンでは改ざんができなくなります。

ブロックチェーンを基盤とするビットコインが未だにその仕組みに根ざしたセキュリティ事故を起こしていないことから、ブロックチェーンの対改ざん耐性は高いと考えられています。

ブロックチェーンはどうやって使い始める?

ブロックチェーンはジェネシスブロックを生成するところから始まります。ジェネシスブロックとは、ブロックチェーンの一番最初のブロックであり、唯一、1つ前のブロックとそのハッシュ値を持たないブロックになります。

ビットコインでは、このサトシナカモトが生成したこのジェネシスブロックにその日のイギリスの新聞の一面の見出しが記載されていたのは有名な話です。

ブロックが作られるまでの流れ

ブロックは、複数の取引記録(トランザクション)や1つ前のブロックのハッシュ値、ブロックが生成された時刻を表すタイムスタンプ、そしてナンスと呼ばれる任意の値から求められたハッシュ値が決められた条件に沿うことでブロックが生成されます。

ただし、ブロックは一番早く計算できたノードのものだけが有効となり、他のノードのものは無効となります。マイニング報酬はこの最初のノードの作成者にのみ払われるため、さまざまなマイナーが競争しています。

トランザクションの発生とブロックへの記録

トランザクションとは取引や取引記録のことで、ビットコインで言えばビットコインのやり取りのことを言います。ブロック上にはいつ、誰が誰に、いくら送ったかといったトランザクション情報が記載されています。

トランザクションを行う際に、電子署名という仕組みが利用されています。電子署名は本人確認の機能を果たすものとして、インターネット上の多くの場面で利用されている仕組みです。

電子署名は公開鍵暗号方式というもっともメジャーな暗号手法をベースにした仕組みでもあり、トランザクションの際にビットコインの所有者は、電子署名を行い一斉にネットワークに通知します。

ネットワークではこのトランザクションを検証し、正しい電子署名かなどを確認した上でブロックのトランザクション一覧に取り込んでいきます。

マイニングとは

トランザクションが複数たまると、各ノードはブロックを生成しようとしますが、このブロックを生成する作業のことをマイニングと言います。マイニングはブロックチェーンの重要な機能の1つです。

ブロックは前述のように、複数の取引記録と1つ前のブロックのハッシュ値、そしてナンスからハッシュ値を計算します。

このとき、ハッシュ値が一定の条件(「最初の4桁が0」といったような条件)を満たし、かつ一番早くこの計算を達成することでブロックを生成することができます。この計算は概ね10分程度かかるように適宜調整されており、この難易度のことを採掘難易度(ディフィカルティー)といいます。

また、どのノードよりもいち早く計算を完了し、ブロックを生成したノードには、マイニング報酬が支払われます。

ビットコインなどでは、総発行数が決まっていますが、急激なインフレが起きないようにするため、マイニング報酬が定期的に半減されていく仕組みが導入されています。これを半減期と言います。

また、マイニングを行うノードのことをマイナーといったりします。

コンセンサスアルゴリズムとは

コンセンサスアルゴリズムは、ネットワーク上で唯一の有効なブロックチェーンを認定するための仕組みです。コンセンサスアルゴリズムもまた、ブロックチェーンの重要な仕組みの1つであり、その信用を担保しています。

十分に大きなネットワークでは、局所的にブロックが生成され、ブロックチェーンの分岐が発生します。ブロックチェーンの信用を担保するにはただ一つの正しいブロックチェーンを認定する必要がありますが、コンセンサスアルゴリズムによってこの認定を行います。

コンセンサスアルゴリズムとは、各ノードが定期的に繋がりのあるノードのブロックチェーンと自身のブロックチェーンを比較し、過去のハッシュ計算が正しく、かつ自分よりも長いブロックチェーンを正しいブロックチェーンと認定する仕組みです。

相手のノードのブロックチェーンのハッシュ計算が正しくなかったり、自身のブロックチェーンよりも短いブロックチェーンである場合、ブロックチェーンは不正なブロックチェーンと認定され、検証元のノードは自身のブロックチェーンをそのまま保有します。

一方で、過去のハッシュ計算が正しく、自身のブロックチェーンよりもブロックが長いブロックチェーンに遭遇した場合、検証元のノードは自身のブロックチェーンを捨て、検証先のブロックチェーンを保有します。

各所でこのコンセンサスアルゴリズムが実行されることで、常に全体として1つの正しいブロックチェーンに修練するようになります。

他方、悪意のあるノードが取引を改ざんした場合は、ハッシュ値を再度10分程度かけて計算し、かつ他のノードが取引を改ざんした自身のブロックチェーンに乗り換えるように、ブロックチェーンを長くしなければなりません。

もし悪意あるノードを多数用意したとしても、ネットワークが大きくなればなるほど、正規のルールを守る善意のノードが多数を締めるため、改ざんはできにくくなります。コンセンサスアルゴリズムは、ネットワークの大きさと相乗的に効果を発揮する仕組みであるとも言えます。

ブロックチェーンで重要なハッシュ関数とは

ハッシュ関数とは、インプットされたデータからハッシュ値と呼ばれる不可逆の値を算出する関数のことです。不可逆とは、元に戻れない、元の状態に戻せないという意味を持つ言葉で、ここではアウトプットの値であるハッシュ値から、インプットされた値・データを求めることはできないということを意味します。

ハッシュ関数の仕組みは、暗号化とは異なります。暗号化では、暗号化されたデータは渡された側が暗号を解読して(復号化ともいう)暗号化前の元のデータに戻すことが前提となります。

一方で、ハッシュ関数では、不可逆であるため、元のデータに戻すことができません。ハッシュ関数はインプットされるデータが1ミリでも異なればハッシュ値が変わることから、改ざんの有無を調べる時やパスワードの検証をするときなどに使用されます。

ブロックチェーンの実用化はこれからが本番

今回はブロックチェーンについて説明してきました。2017年後半のビットコインをはじめとする仮想通貨ブームはすごい勢いがありましたが、あれから1年以上が過ぎ、価格は大きく下落し、注目度はかなり下がっているのが実情です。

しかし、多くの企業や研究者は仮想通貨ブームに踊らされず、未だ地道に実用化や研究が進められています

この記事で紹介したブロックチェーンの仕組みは、ビットコインで活用されているブロックチェーンを基準としていますが、他にも様々なブロックチェーンが存在します。この記事を足がかりに様々なブロックチェーンを調べてみましょう。

【PR】多くの人がプログラミングを諦めてしまう理由をご存知ですか?



近年プログラミングを勉強する人が増えています。

プログラミング学習者の多くは独学から取り組もうとしますが、だいたい80%ほどは3ヶ月も続かずに諦めてしまいます。早い人は1日目で。

多くの人がプログラミングを独学しようとして諦める理由は、次の3つ。
●モチベーションが維持できない
●エラーの原因・解決方法が分からない
●どう学習すればよいか分からない

TechBoostというプログラミングスクールでは、みんなと一緒にプログラミングをするのでモチベーションの維持ができ、分からないことがあればマンツーマンで教えてくれ、徹底的に研究された初心者向けの教材が揃っています。

TechBoostを卒業後、実際にエンジニアとして転職した方もいるほど。

本気でプログラミングを学びたい方は、一度無料のカウンセリングでご相談ください。プログラミングを嫌いになる前に。

tech boostについて

オーダーメイド型の学習コンテンツを提供する「tech boost」 は、エンジニアのキャリア支援に特化したサービスを複数展開している株式会社Branding Engineerが運営しているプログラミングスクールです。最短3ヶ月間で、未経験から『プログラミングの基礎』、『実際に業務で必要となるスキル』、『今のトレンドとなっている知識』まで学べ、ご希望の方にはプロのキャリアアドバイザーによる就業支援を行うことができます。

tech boost卒業生インタビュー

tech boostの卒業生の声を聞きました。あなたがプログラミングを学びたい理由を、一度考えてみてください。
営業→Javaエンジニア→Rubyエンジニアと転向し、第一志望のFinTech企業で働く山下さん
元営業、ビジネスのわかるエンジニアを目指す菅原さん
サンフランシスコに交換留学し、シリコンバレーのVCでインターン中の梅本さん
予備校の営業から半年でエンジニア転職を果たした小田島さん

tech boostの口コミ



Related