ひょんな事から非エンジニアの私がブロックチェーン関連のお仕事を手伝う事になりました。
私は、ブロックチェーンを言葉では聞いた事がありますが実際に何なのかと言われると説明できないレベルです。
という事で無料セミナーを受講し、初歩の初歩を勉強してきたので非エンジニア向けに分かりやすく共有します。
- ブロックチェーンって何?
- ブロックチェーンて何がすごいの?
- ブロックチェーンを支えるキーテクノロジー
- ブロックチェーンの応用範囲
ブロックチェーンって何?
ブロックチェーンはコンピュータの OS(Operating System)のようなものと理解すると分かりやすいです。
コンピュータの OS は Windows、Linux などいくつかの種類があります。
同じようにブロックチェーンにも Ethereum、Hyperledger といったものが存在します。
これらをプラットフォームと呼んでいます。
ブロックチェーンを勉強すると必ず登場する単語がビットコインです。
ビットコインは OS の上で稼働するアプリケーションだと思って下さい。
ビットコインはその中の仮想通貨向けのアプリケーションで Ethereum 上で稼働する Ether が同じ分類のアプリケーションになります。
表計算でも Excel、Google Spreadsheet などが選択できるように、ブロックチェーンの上で何をするかはアプリケーションを選ぶ(開発する)ことになります。
ブロックチェーンって何がすごいの?
ブロックチェーンは OS のようなものと言いましたが提供している機能は OS ではなくデータベースです。
ブロックチェーンが一般のデータベースより優れている部分は以下の二点です。
- 専任の管理者を必要とせず、複数人で管理ができる
- データの改ざんが不可能
例えば、銀行が預金の入出金を管理するアプリケーションを作ると、中央に専用のデータベース・サーバーを配置して専任の管理者を配置して運用することになると思います。
しかしブロックチェーンを利用すると、そこに参加しているユーザーが利用しているコンピュータにデータは分散されて配置されます。
そのコンピュータの利用者が管理者となるため、専任の管理者なしで、利用をやめない限り入出金履歴が格納され、それは理論上絶対に改ざんされません。
ブロックチェーンというプラットフォーム上にアプリケーションを開発することにより、堅牢で管理が簡単な仕組みが構築できるという訳です。
ブロックチェーンを支えるキーテクノロジー
- P2Pネットワーク(Peer to Peer:ピアツーピア)
通常、ユーザーが相手にデータを送信する場合には何らかのサーバーを通じて送ることになります。
しかし P2P ではユーザーの端末から相手の端末に直接データを送信することができます。
それぞれが利用する端末がサーバーの役割をするので、ネットワーク全体を管理するサーバーが必要なく、つまり、サーバーを狙った攻撃を受けるリスクがないなどの利点があります。 - 公開鍵と秘密鍵
公開鍵と秘密鍵はデータを暗号化、解読するためのパスワードです。
名前の通り公開鍵は不特定多数に公開しても良いものに対し、秘密鍵は自分だけが管理する非公開のものです。
銀行に例えて言うと、公開鍵は口座番号、秘密鍵は暗証番号という関係と同じです。
口座番号がわかっていても暗証番号がわからなければ口座にアクセスできないので安心ですよね。 - ハッシュ関数
ブロックチェーンはデータベースなのでデータのやり取りが発生する訳ですが、安全なデータのやり取りのためにデータを暗号化する技術をハッシュと言います。
データを暗号化するための計算式がハッシュ関数、暗号化された英数字の羅列がハッシュ値です。
あるデータから算出されるハッシュ値は何度計算しても同じ値となり、データが違えば全く違うハッシュ値になってしまいます。
データの送信者はデータと共にハッシュ値を送信し、データの受信者は受け取ったデータからハッシュ値を算出して確認します。
このような仕組みでデータのハッシュ値を確認することにより、データが改ざんされることなく安全に取引をすることができるのです。 - ジョイント、ナンス値、マイニング
ブロックチェーンのひとつのブロックには、取引データ、ひとつ前のブロックのハッシュ値、ナンス値が格納されており、この3つを合成したハッシュ値がブロックとブロックをつなぐジョイントとなります。
このジョイントとなるハッシュ値には上位3桁が 000であるというような制限が設けてあり、この条件に合わないハッシュ値はジョイントとしては利用できないようになっています。
取引データとひとつ前のブロックのハッシュ値は決まっており変更はできませんので、ジョイントにできるハッシュ値を算出するためのナンス値を探すことになります。
このナンス値を探す作業をマイニングといい、基本的に総当りで計算していくしか方法はありません。
この計算は大変な作業なので、仮想通貨のブロックチェーンであればその仮想通貨が報酬として支払われます。
この報酬を目当てにこの計算に参加している業者をマイニング業者と呼んでいます。
ブロックチェーンの応用範囲
ブロックチェーンはビットコインの中核をなす技術であることで有名なため、仮想通貨が真っ先に思い浮かびます。
しかしながら堅牢で改ざんが極めて難しいデータベースという特徴を利用して、仮想通貨以外での利用を検討する企業も増えてきました。
- フィンテック
株式取引やクレジットカード決済などは取引履歴を安全に格納しておく必要があり、またデータの閲覧が簡単にできるという点からブロックチェーンに最も向いている分野です。 - 小売業
ウォルマートの取り組みで有名なのが生鮮食品の衛生管理、配送管理にブロックチェーンを利用したものだ。
生鮮食品の産地情報はもちろん、配送情報などをブロックチェーンを搭載したデバイスに順次記録していき、配送中に商品に与えられる衝撃などを管理するという取り組みだ。
これもデータを改ざんできないので、配送業者の商品に対する取り扱い方法が大きく変わることが期待されている。 - 医療
患者の情報の共有は昔からその重要性が言われているがなかなか実現できない。患者のカルテ情報などの改ざんなどは命に直結するためである。
このエリアでも改ざんが難しいブロックチェーンを利用し、複数の病院で患者データを共有できる仕組みが検討されている。 - 自動車
デンソーの発表によると自動運転車にもデータの改ざんが難しいブロックチェーンの利用が検討されている。
自動運転に関する様々なデータをブロックチェーン上に記録しておくことにより、万が一の事故の場合に、法的に車の持ち主やメーカーを守ることを期待している。 - オンラインゲーム
インターネット上で不特定多数の人間がお金、モノを流通させるオンラインゲームにも改ざんできないデータベースは必要です。
中央集中型データベースだとデータロストが致命的なので、堅牢なデータベースは必須となります。
こういうデータ、ログが非常に重要な役割を担うアプリケーション、サービスにはブロックチェーンの仕組みが最適です。
まとめ
ブロックチェーン、ビットコインは聞いたことはあるけどなんだかわからないという人が多いのではないでしょうか?
ビットコインは仮想通貨のひとつの商品なので特定の方々が理解していれば良いレベルです。
ただブロックチェーンは Windows、Linux といったような根幹に位置する技術です。
Red Hat が Linux のデファクトになったように、ブロックチェーンというカテゴリーの中で強力なベンダーが台頭してくる可能性は多いにあります。
現在国内では、進んでいる企業がオープンソースを利用してプロジェクトを試行していたところから本番プロジェクトに切り替えている過渡期です。
新しい技術ゆえに課題はありますが、得られるメリットが大きいため今後に期待が集まる技術と言えるのではないでしょうか。