Blockchain(パブリックブロックチェーン)の基本|分散型台帳、スマートコントラクト、コンセンサス、なぜブロックチェーンが注目されているのか。

はじめての方向け

分散型台帳

ブロックチェーンネットワークの中核的な機能を担う分散型台帳(distributed ledger)は、ネットワーク上で発生するすべてのトランザクションを記録する複式簿記に似た入出金の台帳記録です。

ブロックチェーンの本質は、世界中で稼働しているブロックチェーンネットワークのノードを使って台帳記録の整合性を検証して保管することができるという点にあります。ブロックチェーンの台帳記録は参加者で互恵的に管理されるため、台帳記録の正しさを保証するための信頼のおける第三者(銀行など)を必要としません。※パブリックブロックチェーンの場合です。プライベートチェーン(パーミションドチェーン)については別記事でご説明します。

  • 基本用語:ノードとは、P2Pとは(ビットコインを例に説明)

ビットコイン・ネットワークに接続されているコンピューターはどれもすべて対等で、特別なものは1つもありません。どのコンピューターもクライアントとして情報を受け取る機能を持っているだけではなく、サーバーとして情報を提供する機能も備えています。このようなシステムのことをP2P(ピアツーピア)型システムといいます。またこのシステム内で稼働しているコンピューターはサーバーともクライアントとも呼べないので、ノードと呼ばれています。

ブロックチェーンの同期(ネットワーク参加者間でデータを共有する)

ブロックチェーン・ネットワークに接続すると、ネットワーク上で稼働している他のノードからブロックチェーンのデータを受け取り始めます。このデータ転送は、自分のノードが他のノードと同じになるまでつづき、これをブロックチェーンの同期といいます。このようにブロックチェーン上の情報をネットワークに参加しているノード全てが平等に管理しているので分散型というように表現されます。

非可逆的記録(書き換えが難しい)≒トラストレス

分散型台帳に対する理解を深めるために、ビットコイン・ネットワークを例にどのようにしてブロックチェーンが第三者を介さずに信用を担保しているのか、つまりその記録の正当性を証明しているのかを説明します。

ブロックチェーンにおける記録の正当性は、記録の書き換えが難しい(非可逆的記録)ということを根拠に成り立っています。

ブロックチェーンの非可逆性の実現のために以下の2つの技術が使われています。

  • ハッシュチェーン:暗号技術
  • マイニング(ビットコインなどPoWを採用している場合)

ハッシュチェーン

ハッシュチェーンは、暗号学的ハッシュ関数という暗号技術を利用しています。暗号学的ハッシュ関数とは、入力したデータを暗号化する関数のことであり、同じデータを入力すると必ず同じ値が出力され、1ビットでも異なるデータを入力すると全く無関係な値が出力されます。この出力のことを入力したデータのハッシュ値といいます。ハッシュチェーンとは、このハッシュ値を次のデータに埋め込むことで、一連のデータを鎖(チェーン)のようにつなげていったもののことです。

ブロックチェーンとは、ブロックと呼ばれるデータを時系列につなげたデータであり、このブロックの中に、平均10分の間にネットワーク上で発生したトランザクションが格納されています。ブロックチェーンの中でつながっているブロックは、ハッシュチェーンによって、追加、欠落、順序の入れ替えができないように接続関係を固定することで非可逆性を実現しています。

マイニング(ビットコインの場合)

非可逆性を実現させるためのもう一つの方法はマイニングと呼ばれる計算競争です。マイニングによって得られる計算結果をプルーフ・オブ・ワーク(PoW/Proof of Work)と呼び、このPoWを得るためには膨大な計算をこなさなければなりません。このPoWの数値を第三者に提示すると、自分が膨大な計算を本当に実施しましたよという証拠になります。

ブロックを作成できるのは、世界中に広がるビットコイン・ネットワークのノードの中でたった一つのノードだけです。そのノードを選ぶ方法がマイニングによる計算競争です。ブロックチェーンの中のブロックには、それを作成したマイナー(マイニングを行なっている人)が計算競争に勝ちましたという証拠としてのPoWが含まれています。

マイニング難易度は、2016ブロックごとに平均時間が算出され、新しいブロックが作成されるのに要する時間の平均が10分になるように自律的に難易度が調整されるようになっています。2016×10分=14日(2週間)が目安になっており、2016ブロックのマイニング時間が2週間以内なら、1ブロックあたり平均10分未満になるので難易度が上がり、その逆なら難易度が下がるという仕組みです。

このように作成されたブロックチェーンの内容を書き換えようとすると、ブロックに含まれるPoWを再度計算しなければならないのですが、そのためには計算競争に参加しているすべてのマイナーを上回る計算能力が必要になるので、実質書き換えは不可能だろうと言われているのです。

Smart Contracts(スマートコントラクト)

スマートコントラクトとは分散型システム内で第三者を介さずに安全かつ自動的に財産やお金を交換する仕組みのことです。

スマートコントラクトを説明する際によく例に挙げられるのが自動販売機です。お金を投入して、商品を選んでボタンを押すと希望した商品がきちんと出てくる。ざっくり言うとこの自動販売機の仕組みがスマートコントラクトです。

大事なポイントは以下の2点

  • 契約内容を定義することができる
  • 条件を満たせば必ず自動で履行される

例えば、スマートコントラクトを用いることで自動で履行されるので金融分野などではカウンターパーティリスク削減につながり、IoTとネットショッピングを組み合わせて商品が到着する速さに応じて送料が変わるように発送費用を規定(送付先に到着した時点で料金が確定する)したりなどが可能になります。

Consensus(コンセンサス/合意形成)アルゴリズム

コンセンサス・アルゴリズムとは、分散システム全体で正しい情報を唯一に定める方法のことです。

なぜコンセンサス・アルゴリズムが必要なのかというと、多くの参加者が存在する分散システム内で、故障や裏切り者が存在すると間違った情報が伝わってしまったり(ビザンティン合意問題やFPL不可能性と呼ぶ)やシビル攻撃などの問題を抱えているからです。シビル攻撃とは悪い評判がついてしまったネットワーク上の人格を次々と使い捨てにして不正行為を行う攻撃や、多数の架空の人格の集団を作って行う攻撃のことをいいます。

このように分散型システム上で正しい情報を唯一に定めるには上述した問題に対抗できる仕組みを備えていなければなりません。

ビットコインの場合は上述したPoW(プルーフ・オブ・ワーク)をコンセンサス・アルゴリズムとして採用しています。PoWはマイナーたちの経済的欲望に基づく計算競争を利用することで成り立っています。

ブロックチェーンの有用性|なぜブロックチェーンが注目されているのか

ブロックチェーンは本当に有用性があるのか?この点については限定的ではあるが有用性があると言えるのではないかと考えています。

上述したように分散型台帳はP2Pネットワークを形成するために、全てのノードが平等に同じデータをもつように同期されます。つまりストレージコストは当然上がりサーバーへの負担は増加してしまいます。またコンセンサスアルゴリズムを持ち込む必要があるためPoWを採用するビットコインの場合は、コンピューティングコスト(スケーラビリティ問題)もかかります。このサーバーへの負担と、スケーラビリティの問題などを踏まえるとあえてブロックチェーンを利用するメリットはありません。

それでもブロックチェーンに期待する人々がいるのは、それらのコストを犠牲にしてでもブロックチェーンだからこそ可能な「透明性が高い信用のおけるデータ」を効率的に作成することができるからです。

インターネットの登場により、間違いなくビジネスの効率は向上したと言えます。しかし、「信用」を代替する技術というものがこれまでなかったこともあり、信用が関係する部分は全く効率化が進んでおらず、信用のおける第三者を介さない限り正統な記録を証明することができない。信用を得るためだけにこれまで支払ってきたコストは一体どれくらいあるのでしょうか。もしブロックチェーンを利用することで発生するストレージコスト、コンピューティングコストを犠牲にしてでもこの信頼構築にかかるコストを削減した方が効率化できるならば、ブロックチェーンを導入するメリットがあると言えます。

ブロックチェーンの導入事例は様々ありますが、そのうちの一つに金融システムにブロックチェーンを導入したDeFiというものがあります。メリットは第三者(銀行)を介さないことによるコスト削減や透明性の確保(情報の非対称性の解消)、パーミションレスでオープンなので、これまで金融システムを利用できなかった層にアクセスすることができるなどが期待されています。

またBaaS(バース/Blockchain as a Service)と呼ばれるブロックチェーン導入を容易にするクラウドサービスも展開し始めたことで、ブロックチェーン導入にかかる初期投資が激減したことで多くの企業が採用しやすくなってきました。