見出し画像

【これだけは押さえよう!】ブロックチェーンの基礎

0.0 まえがき

※この記事を読めば、ブロックチェーン・仮想通貨の技術の基本的な部分を文系の人間(筆者)の理解レベルで説明できるようになります。

・突然ですがある日、カフェで友人から「ブロックチェーン技術って最近よく名前聞くけど、何がすごいの?ポイントはどこ?」と聞かれてすぐ答えられるでしょうか?
・私も先日、上の質問にうまく答えられず悔しい思いをしたので、頭の整理も兼ねて概要をまとめてみました。大人の教養としてのブロックチェーンについて、これを機に理解を深めましょう。
皆様の知識の整理・理解の深化に活用いただけましたらこの上ない幸せです。

0.1 定義の確認〜ブロックチェーンとは何か?

画像11

まずは定義の確認です。一般社団法人日本ブロックチェーン協会による「ブロックチェーン」の定義は以下の通り。

ブロックチェーンとは
電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術
一般社団法人日本ブロックチェーン協会HPより)

これじゃちょっとわからないです(笑)
一言で言うとブロックチェーンはデータの記録の仕方に関するデジタル技術の名称、というイメージで良いかと思います
またブロックチェーンはビットコインを実現する技術として誕生したものなので、下記の語句解説ではビットコインを例とした説明をしています。

1.  前提知識〜ちゃんと理解していますか?

ここではブロックチェーンの理解に必要となる前提知識・用語を説明します。

1.1 ブロックチェーンのデータ構造

・ブロックチェーンは下図のように、一定単位の記録がブロックとして格納され、各ブロックはチェーン上に繋がっています。
・各ブロックはナンス(後述)・前ブロックのハッシュ値(後述)・取引データをinputとしてハッシュ値を得て、前のチェーンと繋がります。

スクリーンショット 2021-07-27 20.29.00

1.2  ハッシュ関数

次にハッシュ関数について。
ハッシュ関数はブロックチェーンの心臓部と呼ばれる重要な要素の一つで、以下の特徴を持ちます。
① 同じinputからは同じoutput、異なるinputからは異なるoutputを出力
② 長さの異なる値を入れても一定の桁数となる
③ 出力されるハッシュ値は予測困難であり、暗号に近い。また出力値から入力値を求めることは困難。
ハッシュ関数はWebサービスを使用する際のパスワード管理などで実際に使用されています。

スクリーンショット 2021-07-27 22.50.33

以上を踏まえて、あるブロックに改ざんが起きた場合を考えてみます。

ブロック1を改ざん
→inputが変わるためブロック1のハッシュ値が変化
→ブロック1のハッシュをinputに持つブロック2のハッシュ値が変化
→ブロック2のハッシュをinputに持つブロック3のハッシュ値が変化
・・・(続く)

以上のように、ハッシュ関数の性質により、ある1つの取引データを改ざんすると全てのハッシュ値が変化して改ざんが容易に検知されることが分かります。(改ざん耐性

スクリーンショット 2021-07-27 20.11.47

1.3  マイニング

続いてマイニング。これはビットコインを題材に解説します。
マイニングとは、新しい取引データのブロックを生成して既存のブロックチェーンに繋ぐ作業を指し、ビットコインの場合は、「取引の承認」と報酬としての「ビットコインの新規発行」の2つに該当します。
マイナーはコンピュータを使った膨大な計算を繰り返し、条件(詳細下図)を満たすナンス(後述)を見つけ出し、一番早く発見したマイナーだけが新しいブロックを生成し、報酬を獲得できる仕組みになっています。
この一連の作業が鉱物採掘に似ていることからマイニングと呼ばれる訳です。

スクリーンショット 2021-08-05 15.40.50

1.4  ナンス

ナンスってなんすか?
ナンスは「Number used once」(≒使い捨ての数値)の略語。ビットコインのブロックチェーン上でマイナーが新しいブロックを追加する際に生成する32ビットの数値のこと。そのブロックに対応するナンスを見つけることが「取引の承認」にあたり、新ブロックの生成と同義です。
マイニングに当たってマイナーは、「前のブロックのハッシュ値」、「取引データ」は既に確定しているものなので、そのブロックのナンスを総当たり方式で何度も変えながら、ターゲット(Difficulty Target)より小さくなるハッシュ値を探してハッシュ関数への代入計算を繰り返すことになります。(下図はイメージ)

スクリーンショット 2021-08-05 15.35.17

1.5 採掘難易度

マイニングにおいて、ナンスを算出する(新ブロックを生成する)難易度のこと。
マイナーはターゲット(Difficulty Target)よりも小さなハッシュ値となるナンスを見つける競争を行っているため、「ターゲットが低いほど難易度が高い」ことになります。
ビットコインの場合は約10分に1回のペースで新ブロックが生成されるように難易度が調整されており、このために難易度が2週間に1度変化しています。
下図はビットコインに難易度推移のグラフです。(出所:Blockchain.com
基本的にマイニング競争が激化すれば難易度は上がりますが、2021年5月の相場クラッシュの影響で2021年8月現在はピーク時よりも落ち込んでいます。

スクリーンショット 2021-08-05 15.50.44

1.6 コンセンサス・アルゴリズム

ブロックチェーンは各ノードが同じデータを同じ量だけお互いに持ち合い、そのデータの正当性を担保しています。このデータの正当性の合意を取る方法のことを「コンセンサス・アルゴリズム」と言い、本章で解説しているビットコインの方式は"Proof of Work(PoW)"(プルーフ・オブ・ワーク)と呼ばれます。
コンセンサス・アルゴリズムにはPoW以外にも様々な方式があり、メリット・デメリットなどの特徴が存在するので、別の記事でまとめます!

スクリーンショット 2021-08-07 21.40.18

2. ブロックチェーンの技術的特徴

では改めて、ブロックチェーンの技術的特徴をまとめてみます。
(各項目の説明は後述)

スクリーンショット 2021-08-07 20.14.27

2.1 改ざん耐性・追跡可能性

・前述の通り、ハッシュ関数の性質により、あるブロックの取引データを改ざんすると、ハッシュ値の変化により容易に検知されるため、改ざん耐性があると言えます。
・また、参加者全員が共通の基盤上で同一のデータを確認・追跡できる点も大きな特徴です。

2.2  P2Pネットワーク

・ブロックチェーンのデータは、クライアント・サーバー方式のような中央集権型ではなく、各ノード(コンピュータ)同士が繋がって作られる分散型ネットワーク分散管理されます。

スクリーンショット 2021-08-07 20.17.30

スクリーンショット 2021-08-07 20.49.58

・クライアント・サーバー方式には上図のような課題があり、P2P方式であることによって以下のようなメリットを享受できます。

<P2Pネットワークゆえに実現する特徴>
非中央集型の運用が可能になる。
②特定管理者はおらず、特定のサーバーにも依存しないため、1つのノードがダウンしても全体的なシステムダウンにはつながりません。(高可用性・耐障害性
③1つのノードが削除・改ざんされたとしても、システム全体としては正常に動作します。(ビザンチン障害耐性
④中央に位置する大型コンピュータは不要なため、小型端末の集まりのみでもシステム構築可能なため、システム構築費用は比較的安いと言います。

3. ブロックチェーンの活用価値

上述のような特性から、ブロックチェーンは信頼性の高いデータを、リアルタイムに、組織横断的に共有したりするのに大いに役立つといえます。
今回大変参考にさせて頂いた書籍「あなたの会社もブロックチェーンを始めませんか?」(日本アイ・ビー・エム株式会社)には、ブロックチェーン技術を活用を検討する価値があるケースとして以下の4つが挙げられていました。

<ブロックチェーン技術の活用を検討する価値があるケース>
複数の企業・組織が参加するビジネスネットワークが存在する
・参加者間の情報共有が非効率であり、デジタル化することに意味がある
・共有する情報の耐改ざん性に優れることが必要である
特定の第三者が情報を一元的に管理することに不安がある

まずは、この技術でできることとできないこと、強みと弱みをよく理解して、身近なビジネスに応用できるかを考えるための土台を作るために、一緒に勉強していきましょう!
最後まで読んで頂き、ありがとうございました!
(関連記事はこちら⇩)


この記事が気に入ったらサポートをしてみませんか?