派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

【イベントレポート】目で見て体感する、ブロックチェーンのインパクト

この記事では2020年3月6日に開催した、オンライン動画配信イベント「目で見て体感する、ブロックチェーンのインパクト」をレポートします。

仮想通貨でおなじみのブロックチェーン技術とは一体どのようなものなのか、その仕組みに迫ります。講師には、FLOCブロックチェーン大学校講師で、ブロックチェーンエンジニアである赤澤直樹さんをお招きし、概要やデータ構造、そして最新動向まで解説いただきました。

■今回のイベントのポイント
・ブロックチェーンは、「誰の管理にもよらず、正しいデータをみんなでつかえるようにしたこと」を成し遂げた
・ブロックチェーンの本質は、タイムスタンプの再発明

【講師プロフィール】
赤澤 直樹さん
FLOCブロックチェーン大学校講師(ベーシック、エンジニア)。専門分野はToken Engineering、データサイエンスなど。大学院在籍中から独学でAIやデータ解析、ブロックチェーンを学び、専門家として多数仕事を請け負う。執筆協力に書籍『Pythonで動かして学ぶ!あたらしいブロックチェーンの教科書』(翔泳社)がある。

ブロックチェーンの概要

ブロックチェーンと聞いて何を思い浮かべるかは、それぞれのバックグラウンドによって異なるそうです。「仮想通貨」や「分散処理」、「データを改ざんされないための技術」など、さまざまな答えが返ってくるかもしれませんが、実はこれらは表面的な特長に過ぎないのだそうです。

では、ブロックチェーンの本質とは、どのようなものでしょうか。それは、タイムスタンプの再発明なのだそうです。

そもそもブロックチェーン登場以前にも、ある程度のことはできていました。たとえば取引(トランザクション)は電子署名で改ざんされていないことが保証されていましたし、親になるトランザクションから継承して参照していくという信頼性の担保も、ブロックチェーン以前から提案されていたそうです。

f:id:itstaffing:20200514131655j:plain
▲今までは「TX#3'」と「TX#3"」はどちらが先に作られたのかということが証明できなかった。その難しいテーマの解決を突き詰めていき、たどりついたのがブロックチェーンという技術

しかも、ブロックチェーンに使われている一つひとつの技術は昔からある「枯れた技術」で、それらを組み合わせて難題を解決しているそうです。

f:id:itstaffing:20200514131658j:plain
▲サトシナカモトはブロックチェーンを論文発表した謎の人物。コピペできず「このデータは確実に私のものです」と言えるため、仮想通貨だけでなく、医療データから電力使用量の請求まで、あらゆる分野での応用が期待されている

ブロックチェーンを構成する技術は大きく次の3つだそうです。

f:id:itstaffing:20200514131702j:plain
▲コンセンサスアルゴリズムというのはあまり耳慣れないものの、暗号化やP2Pはいろいろなシーンでよく耳にする

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

ブロックチェーンに使われている技術の1つにハッシュ関数があります。ハッシュ関数は入力したデータを一定の長さのデータに変換する関数で、出力値(ハッシュ値)から入力値(元のデータ)を逆算できない一方向関数で、同じデータを入力すると同じハッシュ値が得られます。

f:id:itstaffing:20200514131705j:plain
▲入力元のデータの量によらず結果の長さが同じになる。Webアプリでもユーザー認証で利用するパスワードの安全な保管に使われている

仮想通貨ビットコインでは数千、数万といったトランザクションを処理しますが、これをブロックヘッダに入れなければなりません。そこで、ハッシュ関数を利用したマークルツリーというデータ構造を使っています。

f:id:itstaffing:20200514131708j:plain
▲マークルツリーは、二分木やハッシュツリーの一種。隣り合うデータを合体させハッシュ値を求め、それが1つになるまで繰り返していく。最終的に1つになったハッシュ値をマークルルートと呼ぶ

もし、マークルツリーのどこかの値を変えてしまうと、マークルルートの値も変わってしまいます。またハッシュ関数は一方向関数であるため、マークルルートから元のデータを復元することもできません。そのためトランザクションの履歴が改ざんされていないかどうかが、すぐに分かります。

次に、ブロックチェーンで使われているもう1つの技術要素であるハッシュチェーンについてです。ハッシュチェーンとは、その名の通り、ハッシュ値を用いてデータの連鎖を作り上げていくものだそうです。

f:id:itstaffing:20200514131711j:plain
▲ハッシュチェーンでは、直前のデータのハッシュ値に、新しいトランザクションデータを加えて、そのハッシュ値を求めるということを繰り返していく

上図のようにハッシュチェーンを構築することで、途中のデータを改ざんすると以降のハッシュ値が異なってしまうため、すぐに改ざんを検知できるようになり、「しなやかなセキュリティの強さ」を実現しています。

ハッシュチェーンは、ブロックチェーンにおける「マイニング」というプロセスの中で利用されているそうです。

f:id:itstaffing:20200514131713j:plain
▲ハッシュチェーンを作成するには、Nonceの値を変えながら、ハッシュ値の先頭に0がいくつ並ぶかという条件に当てはまる値を計算で求めていく。この計算を何度も繰り返すため、マイニングはCPUリソースを大量に消費する

今回のイベントでは、赤澤さんが要所要所で実際のプログラムを実行して、どのような結果が出力されるのかをデモンストレーションしてくださいました。

f:id:itstaffing:20200514131716j:plain
▲マークルルートの計算やマイニングの様子などを、実際のプログラムで示してくれた

プログラムの目的はブロックチェーンの動作を知るためということで、計算時間を短くするためにハッシュ値の条件(先頭の0の数)を緩めるなどしているそうです。マイニングの結果も1~2秒ほどで表示されていました。条件をやや厳しくして実行すると、確かに、より時間がかかっていました。ビットコインのマイニングでは、より条件が厳しいため、さらに多くの時間がかかるとのことでした。

プロトコルとしてのブロックチェーンの強みと弱み

ところで、ブロックチェーンには強みだけでなく弱みもあるそうです。

強みは、基本的に一度決まったことは翻らないという耐改ざん性や、複数主体で同じデータを持ちあえるという分散性です。誰かに「このデータは本当に正しいか?」と尋ねなくても、正しいかどうかが分かるそうです。

一方、弱みは、今のところ処理能力がイマイチでスケーラビリティに問題があることです。

赤澤さんによれば、VISAカードのシステムでは1秒間に約4000トランザクションを処理しているそうですが、ビットコインではせいぜい5~7トランザクションほどだそうで、処理データが増えると処理しきれないといいます。

また、マイニングは計算競争のようにとらえられています。これはプルーフオブワーク(PoW)と呼ばれるコンセンサスアルゴリズムを利用しているためで、適切なNonceをいち早く見つけた人、つまり計算能力の高いコンピュータを所有する人に優先的に承認する権利(報酬を受け取る権利)が与えられるという仕組みだからとのこと。その権利を得るため世界中でマイニングにCPUパワーが注ぎ込まれていて、エネルギー問題を懸念する声もあるそうです。

ブロックチェーンの最新動向

最後にブロックチェーンの最新動向を紹介してくださいました。

先ほどのスケーラビリティの問題については、ブロックサイズを拡大したり、中身のデータを小さくし効率化するといった方法が研究されていたり、ブロックチェーンの外側で取引の一部を行い、スケーラビリティの問題を解決する取組み「Layer2技術」などの研究も進められているそうです。

f:id:itstaffing:20200514131719j:plain
▲Layer2技術にはいくつかあり、それぞれサービスに応じた技術の採用を検討、あるいは実施しているという

たとえばコンセンサスアルゴリズムとしてPoWではなく、プルーフオブステーク(PoS)を採用するというのも問題解決の一つだそうです。PoSは、現時点での通貨保有量が多いコンピュータの持ち主に優先的に承認する権利を与えるというものだそうで、ビットコインと並ぶ有名な仮想通貨イーサリアムでは、将来的にPoSを採用していくことが計画されているとのことでした。

イベントにご参加いただいた方からは、「理論に寄った講義かと思っていたら技術よりで大変面白かったし、ビットコインを身近に感じた」という声や、「実際のコードを見せていただけると、面白さも理解のしやすさも全く違うなと思いました。出席できて本当に良かった」などの声をいただきました。また、オンライン動画配信であったため、周囲を気にせずリラックスしながら受講できた方も多かったのではないでしょうか。

株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するこのようなイベントを、定期的に開催しています。皆さまのご参加をお待ちしております。