雑記

【エンジニアが解説】ブロックチェーン

ブロックチェーンはスマホの次に社会を変える発明と言われている程,影響力のある技術です.しかし,仮想通貨に使われていることは知っているけど,どのような仕組みなのかわからない人が多いかと思います.

そこで仮想通貨やNFT,Web3.0など様々なサービスの根底となる技術であるブロックチェーンについて徹底解説します.

ブロックチェーンとは

ブロックチェーンとは,一言で説明すると「ネットワーク内で発生した取引の記録をブロックという単位ごとに格納して鎖のように繋げていくデータ構造」のことです.

ブロックチェーンの概要

ブロックチェーンというデータ構造の優れている点は,ブロック内に前ブロックの情報を暗号化(ハッシュ化)して次のブロックに格納しているためデータの改ざんが非常に難しいという点です.この改ざんの難易度によりブロックチェーンを用いた情報の信頼性が保証されています.

現在ではブロックチェーンを用いたデータの信頼性の高さから,仮想通貨やNFTといったサービスに利用されています.

ここからは,ブロックチェーンの歴史や仕組みについて解説していきます.

ブロックチェーンの歴史

ブロックチェーンの始まりは,サトシ・ナカモトという名前を使った人物または集団が2008年10月に「Bitcoin: A Peer-to-Peer Electronic Cash System」という論文を暗号学者のメーリングリストに投稿したのがきっかけです.

2009年1月にはサトシ・ナカモトによって最初のBitcoinのブロックが生成されてBitcoinが誕生しました.これが初めてブロックチェーンを用いたサービスであると言えます.

2013年には,VitalikによってEtherereumが開発されました.Etherereumは仮想通貨の種類と思っている方も多いかもしれませんが,Etherereumは分散型コンピューティングプラットフォームのことです.分散型コンピューティングプラットフォームを凄く簡単に例えるとWindowsやMacOSのようなOS(オペレーションシステム)のようなものです.

Etherereumブロックチェーン上では様々なアプリが作成・公開することができます.例えば,NFTで最も有名なプラットフォームであるOpenSeaは,Etherereumブロックチェーンを用いて発行されたNFTを作成・出品・売買することができます.

Etherereumの発明以降,ブロックチェーンはNFTのように仮想通貨以外でも様々なサービスに利用され始めています.

ブロックチェーンの要素技術

ブロックチェーンは様々技術を組み合わせて構成されるデータ構造になります.構成する要素技術は2008年に発表された段階でどれもすでに存在する技術でした.ブロックチェーンの最大の発明は既存の技術を組み合わせた構成と思想になります.

ブロックチェーンを構成する主な技術は以下の4つになります.

① P2Pネットワーク
② コンセンサスアルゴリズム
③ 暗号化
④ スマートコントラクト

恐らく暗号化以外は全く聞いたことのない言葉だと思います.ここから簡単にそれぞれの要素技術について解説します.

P2Pネットワークとは

P2Pネットワークとは,Peer to Peerで通信を意味しておりネットワークにつながったコンピュータ間が同等の立場で通信を行うことです.

p2pネットワークとサーバクライアント方式

現在のネットワーク方式の主流であるサーバ-クライアント方式ではサーバとクライアントに役割を分担して,端末間でのデータ交換は必ずサーバを介して行っています.それに対してP2Pネットワークではサーバといった役割は存在せず,端末間で直接データ交換を行います.

2000年初期から実用化はされている技術で,現在用いられている例としてLINEやSkypeなどのIP電話があります.オンライン対戦ゲーム(スマブラとか)でも使われていたりします.

ブロックチェーンでは,分散型台帳と呼ばれ特定のサーバにデータを記録するのでは無くネットワークに参加する全てのコンピュータで同じデータを共有するために,P2Pネットワークが用いられています.

これにより,情報が中央管理者(サーバ)に独占・改ざんされることを防ぎ信頼性を高めています.

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

コンセンサスアルゴリズムとは,ブロックチェーン(分散型台帳)をネットワーク上のコンピュータに共有する際の合意形成の方法です.

中央管理者がいないP2Pネットワークでは,新しい情報を記録する際にネットワークに参加するコンピュータが不在であったり不正を行った場合にネットワーク自体が機能しなくなるといった課題がありました.

この問題を初めて解決した方法が,PoW(Proof of Work)と呼ばれるコンセンサスアルゴリズムになります.PoWはBitcoinやEtherといった多くの仮想通貨ブロックチェーンで用いられている代表的なコンセンサスアルゴリズムになります.

仮想通貨ブロックチェーンにおけるPoWでは,取引を承認するために膨大な計算を必要とします.計算に成功して承認が行われると取引データが一つのブロックとしてこれまでのブロックチェーンに追加されます.また,最初に計算を成功した人に新規に発行された仮想通貨が与えられます.

ブロックチェーンにおいて現在取引を記録しているブロックのデータを改ざんすると以前のブロックとの整合性が取れなくなります.そのためデータの改ざんを行うためには,現在取引が記録されているブロックだけでなく以前のブロックも全て書き換える必要があります.

ブロックチェーンのイメージ

ブロックを全て書き換えたらネットワークに参加している過半数のデータをさらに書き換える必要があります.Bitcoinのブロックチェーンは非常に多くの端末がネットワークに参加しており,ブロックが生成される約10分間に過半数以上のデータを書き換えなければならないため改ざんが非常に困難となっています.

PoWの例

また,PoWにおいて1つのブロックを生成するためには膨大な計算つまり膨大な電力が必要なため莫大な電気代をかけてデータを改ざんするよりブロック生成時の報酬を貰う方が金銭的に効率が良くなります.

以上がPoWにおける不正の難しさとそれによる信頼性を担保してる仕組みになります.

コンセンサスアルゴリズムにはPoW以外にもPoS(Proof of Stake)やPoI(Proof of Importance)といった方法も存在します.

暗号化とは

暗号化とはデータを加工して解読方法を知らいない人が見てもデータの内容をわからないようにする技術です.

ブロックチェーンにおいては様々な場面で暗号化技術が用いられています.例えば,ブロックチェーンをネットワークに共有する際には公開鍵暗号が使われていて,デジタルコンテンツの作成者・所有者が本人であると証明するためには電子署名が使われています.

前ブロックの内容を要約する技術としては,ハッシュ化という技術が使われています(正確には暗号化技術ではありませんが).ハッシュ化とはハッシュ関数という特殊な計算式にデータを代入することで特定の桁数の文字列(ハッシュ値)に変換する技術になります.

ハッシュ化の例

また,ハッシュ化はハッシュ値からもとのデータを復元することができないという特性があるので,ブロックの生成に必要な値を求めるためにはランダムにハッシュ関数に値を代入して求める必要があります.この特性がコンセンサスアルゴリズムで紹介した膨大な計算が必要な理由になります.

ここで紹介した暗号化技術やハッシュ化という手法自体はITの世界では一般的な技術ですが,特にハッシュ化の使い所がブロックチェーンの特徴となっています.

スマートコントラクトとは

スマートコントラクトとは,プログラムによる契約の自動化を意味する言葉です.概念自体は,1994年にNick Szaboという法学者・暗号学者によって提唱されました.

ブロックチェーンとして初めて実装されたのは,Etherereumになります.ブロックチェーンの歴史で述べたようにスマートコントラクトを実装したことにより分散型コンピューティングプラットフォームとして様々なサービスが開発・公開が可能となりました.

スマートコントラクトの簡単な例は自動販売機になります.自動販売機は,予め決められた金額を支払うことで契約が自動で成立して物を買うことができます.このように,予め決められた条件を満たした場合に自動で契約が成立する仕組みがスマートコントラクトです.

スマートコントラクトを用いることで,様々な業務処理を自動化することが可能となりました.

ブロックチェーンの思想

ここからは,ブロックチェーンの思想について解説します.ブロックチェーンはここまでに説明した技術を組み合わせたデータ構造のことですが,発明されるきっかけとなり普及し始めている理由の1つである”思想”を知ることが非常に重要です.

ブロックチェーンは非中央集権的な社会を目指して開発された技術です.非中央集権的とは管理者が不要でコミュニティに参加する人が全員平等な立場にあることです.

現在の社会は,様々な仕組みが中央集権的になっています.例えば,金融分野では銀行が管理者となり通貨を管理しています.銀行はメインフレームという巨大なコンピュータで利用者の取引情報を管理しています.

中央集権的な仕組みでは,管理者を絶対的に信頼することを前提としてサービスが成立しています.しかし,管理者が不正を行うリスク・管理者が攻撃を受けるリスク・利用者が自分の情報を管理できないといった課題があります.

これらの課題を解決する思想が非中央集権的であり,実現する技術がブロックチェーンになります.また,ブロックチェーンを基盤とした非中央集権的なインターネットを「Web3.0」と言います.

このようにブロックチェーンは,現在の社会の課題を解決して大きく変える可能性のある技術になります.

ブロックチェーンの活用事例

ブロックチェーンの活用例として代表的なのは仮想通貨です.仮想通貨はブロックチェーン技術を用いることで取引記録の信頼性が担保され世界中で交換することが可能となっています.

仮想通貨と類似した活用例としてステーブルコインがあります.ステーブルコインの仮想通貨と異なる点は,価格が円やドルなどの法定通貨と連動しているため値動きが極めて安定していることです.

金融分野の活用例として,DeFi(Decentralized Finance)があります.日本語では分散型金融と呼ばれていて,金融資産の管理を自律的に行うことができます.簡単に例えると,ブロックチェーン上の管理者の存在しない銀行です.DeFiでは,世界中から手数料を安く仮想通貨の貸し借りを行うことができます.

2021年大きな流行となったのがNFTになります.デジタルの世界で唯一無二の価値を証明し交換することができる特性から,現在はデジタルアート作品の証明に用いられています.今後はコンサートやスポーツのチケットをNFTとして販売することも考えられています.

エストニアでは,2012年からKSI(Keyless Signatures Infrastructure)というブロックチェーンと非常に似た技術を用いた生産システムを導入しています.KSIシステムによりほとんどの行政サービスがオンラインで手続き可能となっています.

ブロックチェーンの課題

ブロックチェーンの課題について紹介します.

① 消費電力
 コンセンサスアルゴリズムで解説したブロックチェーンで一般的に使われているPoWという技術は,消費電力の大きさで信頼性を構築しています.しかし,Bitcoinの電力消費量は小さい国家全体の電力消費量より多いと言われるほど莫大なため,大きな課題となっています.

② 51%攻撃
 PoWでは,1つのブロックチェーンのネットワークに参加する端末の過半数が協力してデータの改ざんを行うことは技術的には可能です.Bitcoinのような巨大なネットワークでは実現することは困難ですが技術的に不可能ではないといったリスクがあります.

③ 処理速度
 ブロックチェーンは,大量の計算により信頼性を担保していることにより単位時間当たりの取引の処理件数が限られているといった問題があります.VISAやMastercardは1秒当たり5万件の取引を処理できる一方で,Bitcoinは7~10件しか処理できません.これは今後,利用者が増えるとした際に大きな障害になる可能性があります.

④ 既得権益
 ”既得権益”については少し思想的な問題です.ここまで紹介したブロックチェーンが普及した非中央集権的な社会の仕組みは,この記事を読んでいるあなたにとっては魅力的な社会でしょうか?
 少なくとも現在の中央集権的な社会で利益を得ている集団(ビッグテック・銀行・国家など)にとっては全く魅力的ではありません.そのため,ブロックチェーンという技術が真に社会を良い方向に進める技術であったとしても既得権益からの妨害は免れません.