近年、IT業界ではブロックチェーンという技術が話題に上がることがよくあると思います。
しかし、よく聞くけれど実際どのような技術なのかわからないであったり、少し怪しいなと思ったりするという人多いのではないですか?
確かに、仕組みがわからないと何がどのようにすごい技術なのか理解することは難しいと思います。
そのため、今回はブロックチェーンについて解説していきたいと思います。
- ブロックチェーンとは何かわかる。
- Pythonを使ってブロックチェーンを作る方法がわかる。
ブロックチェーンとはなんなのか。
ブロックチェーンは簡単にいうと、オンライン上で行われた取引記録を暗号化して記録しておけるデータベースのことです。
過去から現在までの取引全てが1本の鎖のように全て繋がっていることからブロックチェーンと呼ばれています。
ブロックチェーンと従来のネットワークシステムの大きな違いは、システムの管理の仕方にあります。
従来のネットワーク
→一つの大きな管理システムが全てのシステムを管理している。
ブロックチェーン
→不特定多数の管理者がみんなで一つのシステムを管理。
では、どうして従来のネットワークよりもブロックチェーンが優れているのかをメリットとデメリットを見ながら考えてみましょう。
ブロックチェーンを使うメリット
セキュリティが強い。
セキュリティが強い理由はデータが改ざんされたとしてもシステ全体として修正する機能があるからです。
例えば、ブロックチェーンの中にあるデータが一つ改ざんされたとしましょう。
ブロックチェーンのデータは全て連携されています。
そのため、一つが改ざんされると他のデータも変わってしまいすぐに改ざんしたことがわかります。
これによってデータの透明性が担保されておりセキュリティが強いと言われています。
システムがダウンしにくい。
これまでのネットワーク形態では、親サーバーが攻撃されてダウンしてしまったら全てのデータが使えなくなってしまいますが、ブロックチェーンはデータをそれぞれ分散して管理しています。
分散型のシステムを採用しているため、それか一つのコンピューターが攻撃されてしまっても他のコンピューターからデータを復元することができます。
そのためシステムがダウンしにくいのです。
大幅にコストが削減できる。
従来のネットワークシステムでは、管理する側のコンピューターは高スペックなものが必要であり、そのコンピューターがダウンしてしまったら困るため日常的に点検を行ったりと運営側はとても大変でした。
しかし、管理するコンピューターも分散しているため運営側がそこまで手をかける必要もなくなり負担がへりコストも従来より安く運営できるようになりました。
ブロックチェーンを使うデメリット
一度記録したらもう削除できない
メリットで述べたように、データを変更することができません。
それが裏目に出てしまうこともあります。
個人情報などを誤入力してしまったらそのデータを変えることもできないのでデータを入力するときには細心の注意をする必要があります。
処理速度が遅い
入力されたデータは全て追加されていくためどんどんデータが膨れ上がっていきます。
当然データ量が膨大になると処理速度が遅くなってしまいます。
今後どんどんデータが増えていったときにより遅くなってしまう可能性があり、現在これに対する解決方法を開発中です
誰でも参加できてしまう
ブロックチェーンは基本的にオープンな技術であるため悪意のある人が入り込むリスクもあります。
多くのデータを改ざんすることは無理ですが、少量のデータであったら集団で入り込まれたらデータを丸ごと書き換えられてしまい改ざんを許してしまいます。
メリットである部分がデメリットとなってしまいます。
ブロックチェーンの種類
ブロックチェーンと一言でいっても大きく分けて2種類のブロックチェーンがあります。
うまく使い分けてブロックチェーンの達人になりたいですね。
パブリックチェーン
誰でも参加できるブロックチェーンです。
主に仮想通貨の取引のような不特定多数が使うような場所で使用されています。
誰でも使用できるため、取引の承認に時間がかかってしまうであったり、悪意のある人が入り込んでくる可能性があるといった課題が考えられます。
プライベートチェーン
関係者のみが使用できるブロックチェーンです。
取引が早く済むであったり、承認がないと参加できなかったりといったメリットの反面ブロックチェーンを使う大きなメリットのオープンな環境でないため良さを生かしきれていないとも言えます。
ブロックチェーンのために必要な技術
これまではブロックチェーンをメインに解説しましたが、Pythonを使える場合どのようにブロックチェーン技術に応用できるのかをみていきましょう。
コンセンサスアルゴリズム
コンセンサスアルゴリズムは、ブロックチェーンに参加している不特定多数のユーザーが合意をして取引をできるようにする仕組みです。
これができなければ、新しくデータを入力してブロックを繋げていくことができません。
そのため、ブロックチェーンを使うにあたっては必須の技術と言えるでしょう。
P2Pネットワーク
P2Pネットワークは異なるコンピューターが対等に双方向に通信しあうネットワークのことです。
このネットワーク方式を採用していることで、分散型のシステムを実現しており、サーバーがダウンしないことに繋がっています。
ハッシュ
ハッシュとはそれぞれのデータに与えられた固有のIDのことです。
このデータがあることで、もしデータが改ざんされた場合にすぐに気づくことができます。
このハッシュがブロックチェーンにおけるセキュリティの強さの理由です。
ブロックチェーンの効果的な学習方法
Pythonを使えるエンジニアで、ブロックチェーンについて勉強したい人は酒井潤さんが講師を務めるUdemy講座
「現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門」
を受講することで基礎から実装までを学ぶことができます。
他にも酒井潤さんは多くの講座を担当しているので気になった方は、こちらの記事にまとめてあるのでぜひ参考にしてみてください。
最後に
今回は、最近よく聞くブロックチェーンについて解説しました。
ブロックチェーンは今後様々なものに応用されていくと思います。
この記事で仕組みやメリット、デメリットを理解してブロックチェーンを使っていきましょう!
株式会社CodeCoaching 取締役CTO。
富士通において文教、医療・ヘルスケア、自動車、警察・消防などの分野において、自らがプロマネをしながら、PythonでAIのプログラミングも行ってきた現役の技術者(エンジニア歴:20年)。
過去に、マーケット調査、ビジネス企画立案、顧客提案、AIプロトタイプ開発(ハイブリッドアジャイル方式)、ビジネス性検証、事業化までの一連プロセスを経験。
テクノロジーとビジネス両方の知見を活かしAI人材不足解消のため、CodeCoachingのサービスに情熱を注ぐ。
東京工業大学大学院理工学研究科博士前期課程修了。北京大学経済学院EMBA修了。
ブロックチェーンを理解して使えるようになろう!