ブロックチェーンとは!? 一番優しい参考書を読み基礎技術の理解

お金2.0を読んで以降、投機以上にブロックチェーンの持つ可能性に魅力を感じ、是非やってみたい(特にEthereumのSolidityとか)ので、一番優しいとの触れ込みの入門書を読んでみました。

コレです↓↓↓

一番優しいとの触れ込み通り、私のような入門者向けにも丁寧に説明されていた印象です。

ただ理解力に乏しい私には、数回読み返して全体像が多少理解出来たレベルかなと。

範囲が広すぎるので純粋なブロックチェーン技術部分だけを抜粋。

ブロックチェーンとは!?

ざっくりブロックチェーンを説明するなら何と言えば良いのか!?

ちなみにWikipediaでは以下のよう説明されてます。

ブロックチェーンとは、分散型台帳技術、または分散型ネットワーク。

ビットコインの中核技術を原型とするデータベースで、ブロックと呼ばれる順序付けられたレコードの連続的に増加するリストを持つ。各ブロックには、タイムスタンプと前のブロックへのリンクが含まれ、理論上、一度記録するとブロック内のデータを遡及的に変更不可。

分散管理台帳技術!? 本書でも同様の旨が記載されてます。

POINTブロックチェーンとは、ネットワーク共有型の機能強化データベース!!

ただのデータベースではなく、以下特徴を兼ね備えてた技術。

・皆に合意された情報のみが書き込まれる.

・一度書き込むと変更できない.

・一度書き込むと消せない.

・壊れても自動修復される.

・ネットワーク共有型なので落ちない.

通常のデータベースに比べれば、随分と制約だらけに見えます。

TaNA
一般的なシステムであれば、何でも出来るマスター権限(神権限)が用意されていますが、ブロックチェーンにはそれがありません。一体何の役に立つのか・・・と思いきや、金融分野や契約業務では大きな力を発揮!!

特に仮想通貨が有名ですが、他にも権利証明書やシェアリングサービス、高効率+高信頼なサプライチェーンの提供、プロセス・取引の全自動化などへの活用が考えられています。

パブリックとプライベート

ブロックチェーンを大まかに分類すると、パブリックとプライベートの2種類。

両者の大きな違いは参加ノード数が把握出来るか否かとか、合意アルゴリズムとか。

◼︎ パブリックチェーンの特徴.

・ネットワークに参加するノード数が把握できる.

・一般的な合意アルゴリムはノード運用者へのインセンティブ付与.

・ノード数が無限に増えるのでシステムが停止しにくい.

・ノード数が無限に増えるので不正・改ざんに強い.

・ノード数が増える程、処理が重くなる.

パブリックチェーンの代表格はビットコイン。

◼︎ プライベートチェーンの特徴.

・ネットワーク参加のノード数が限られている.

・合意アルゴリズムは多数決型合意が採られる.

・パブリックより全体的に動作が高速.

・受益者が自ら必要なノードを立てる必要がある(コスト増)

bitFlyerが提供しているmiyabiはプライベートチェーン。

暗号技術

現代暗号は数学理論がベースにあり、大きく分けて共通鍵方式と公開鍵方式の2種類。

HTTPSの裏側で動くTLS通信の仕組みと2つの暗号化方式

特にブロックチェーンにおいては「あるコインを特定の人に送付して、その人だけが使える」という仮想通貨の根本的な仕組みを提供するのが公開鍵暗号方式。

ちなみに数学理論がベースとは!?

TaNA
公開鍵暗号にはいくつか種類があり、いずれもA→B方向への変換は簡単で計算出来るますが、B→Aに戻す事が難しい(一方向性)という性質を持つ数学的な難問を応用して作成されています。
例えば…

素因数分解:200,109,979 = ? x ?

ちなみにブロックチェーン技術では楕円曲線暗号(ECDSA)という公開鍵暗号技術が多用。

ブロックチェーンでは署名を多用したり、鍵の交換する場面も多く、小さなコード領域でこれらのハンドリングが必要なので、コンパクトな公開鍵(鍵長)の方が何かと便利。

また処理速度もRSAに比べてECDSAの方が1桁速い!!

分散技術

分散技術の一つであるブロックチェーンのP2P方式とは何か!?

POINT少なくとも2台以上のノードが互いに1対1で接続する方式で分散ネットワークを形成.

TaNA
P2Pと聞くと一時期流行ったWinnyを思い出しますが、開発者の天才プログラマー金子さんは2013年に亡くなりました。金子氏とWinnyの価値を知る一部の方々は、日本がいかに大きな財産を失ったかと嘆かれてます。

そんなP2Pにはどんなメリット・デメリットがあるのか!?

◼︎ メリット.

・P2P分散ネットワークでは全ノードが対等な機能を持っている.

・全て対等なので一部が故障や停止しても全体への影響が少ない.

・規模が大きくなればなるほど、耐障害性に優れている.

◼︎ デメリット.

・ノードが増える程に全体のパフォーマンスが下がる.

・不特定多数の見知らぬノードが勝手に参加してくる.

・システムを止めたくても気軽に止められない.

ブロックチェーンは一般的なサービスと比べ、どのような違いがあるのか!?

まずサービス提供側から「これだけは保証したい」3つの考えについて確認。

一貫性(C):アクセス時に必ず最新の情報が提供される.

可用性(A):サービスが落ちない(停止しない)

分断耐性(P):ネットワークが切れてもサービスが停止しない.

一般的なリレーショナルデータベースでは分断耐性(P)を犠牲にしたAC型で、ブロックチェーンはP2P方式で可用性(A)と分断耐性(P)を保証する代わりに一貫性(C)を犠牲にしているAP型。

TaNA
多くのノードが存在する場合、互いに通信しながらの稼働なので、データを書き込んでも全ノードに反映される迄、時間を要するため、瞬時に手続きが終わる事を期待される業務(クレジットカードや交通系ICカード)には不向き!!
まあ工夫すれば利用できるようですが・・・

合意アルゴリズム

皆に合意された情報のみを書き込むには合意アルゴリズムが必要。

一体何を基準に合意できた!!と捉えることが出来るのか!?

TaNA
プライベートチェーンであればノード数(参加人数)が判明しているので、多数決での合意も出来ますが、パブリックチェーンは世界中にノードがあるので総数を知る事が難しく、多数決での合意形成が困難と言われています。

ではパブリックチェーンではどのように合意するのか!?

POINTパブリックチェーンではノード運営者に経済的なインセンティブを与える事で合意!!

正しい選択をした者が経済インセンティブ権を行使でき、そうでなければ行使出来ない仕組みがProof of WorkやProof of Stakeと呼ばれる合意形成。

◼︎ Proof of Work.

・ノードが取引データを幾つも取り出す.

・その際に前ブロックのハッシュ値とタイムスタンプを現ブロックに詰める.

・更にノンスと呼ばれる適当な数字を入れる.

・そのブロックのハッシュ値の先頭に所定の数だけ0が並ぶのを発見するまで計算.

世界中のノード運営者(特に中国)は、大量のスパコンを並べ、大量の電気代を消費し、一見無意味なノンスの発見競争を行なっており、めでたく所定数の「0」の並びを発見したノードにはコインの新規発行が認められるので、マイニングと呼ばれています。

ただ上のやり方ではエコロジーの点で問題があります。

これを解決する合意アルゴリズムがProof of Stake。

◼︎ Proof of State.

・コインエイジ = コインの保有量 * コインの保有期間.

ただこの方法ではお金を貯め込む人ほど優位になりやすい傾向があるので、他にも色んな工夫が施されます(例えば流通頻度の高い物程コインエイジが高くなるとか)

トランザクション

ブロックチェーンにおけるトランザクションとは何か!?

POINTトランザクションとは取引のことで、例えば送金などが該当.

TaNA
例えば送金取引を行う場合、トランザクションが送り手によって正しく作られた事を証明するために、取引内容+タイムスタンプ+電子署名の構成となり、そのトランザクションのハッシュ値がトランザクションIDと呼ばれます。

ただしトランザクションはP2Pネットワークでやり取りされているので、内部で検査され問題なければ、世界中のノードにバケツリレー方式でココピーされていくので、しばらくは待機状態。それが承認されるとトランザクションが合意されたと見なされます。

スマートコントラクト

ブロックチェーンより10年近く前に提唱されたスマートコントラクト。

POINTスマートコントラクトはネットワークに計算能力を持たせ、自動的に契約履行する仕組み.

身近な例では自動販売機がスマートコントラクトそのもの。

TaNA
何か物を買う際、利用者と販売者の間に「価値の移転に関する合意=契約」が暗黙のうちに存在しますが、複数人が合意した内容を人がいない所でも自動的に実行出来る仕組みを、提唱者はスマートコントラクトと呼んでいるようです。

インターネットを介した商取引や機会を介した商取引の殆どや、ブロックチェーンで言えば送金も該当し定義が広すぎるので、本書では以下の旨で説明されていました。

◼︎ スマートコントラクト.

契約成立のために必要な条件が書かれた取引が、ブロックチェーン上で限りなく改ざんが難しい状態で記録され、記載条件が満たされると、自動的に成立すること!!

今後この仕組みが充実化すると、人と人の取引より、人と機械、機械と機械の取引が増加。

IoTが発達し全てのウォレットが連動すれば、機械が自律的にサービスを提供し、それに対して人が支払いをするような未来が来るのもそう遠くはないとか…ワクワクします。

かなり技術的な詳細は飛ばしましたが、読む程に奥が深い世界です。