ブロックチェーンについて気になったのでいろいろ調べてまとめてみました。
その際、下記書籍とコンテンツを参考にさせていただきました。
イラストが豊富で読みやすかったです。
ブロックチェーンのプログラム回りではなく、概要をつかむのに助かりました。
いまさら聞けない ビットコインとブロックチェーンいまさら聞けない ビットコインとブロックチェーン | 大塚雄介 | ビジネス・経済 | Amazon.co.jpホーム | Amazon
この書籍はビットコインについての中心ですが、マイニング等、ブロックチェーンについて大事な内容についても触れられています。
また、文章もやさしく書いてあり読みやすかったです。
株式会社電緑 DENEN_YOSHIDA さんによるセミナー内容ブロックチェーンのビジネス利用入門
このセミナー資料だけもポイントがまとめられていて、骨子を掴むのにちょうどよいです。
ブロックチェーンについての要約まとめ!
ブロックチェーンをざっくりいうと?
分散型台帳技術。P2Pネットワーク(分散型)で管理・運営される取引記録の一覧表。
大きな括りで言うとデータベースっちゃあ、データベース。
ざっくり言うと、いつ、だれが、何をしたのかをみんなで手分けして記録していく仕組み。
一定時間ごとのデータがブロック上にまとめられ、連鎖的につながっていく。
「ブロック」な「チェーン」でブロックチェーン。
ちょっとカッコよく言うと
「インターネットによって実現した個人間の情報のやりとりを進化させ、データの送受信が特定の業者によって仲介されることなく、利用者どうしが直接やりとりできるようにする技術」。
P2Pネットワークって?
「ピア・ツー・ピア(Peer to Peer)ネットワーク。」
個々のユーザー同士をネットワークで結んで直接データをやりとりするネットワークのこと。
反対に、中心に企業などがあってそこが管理・運営する方式は「クライアント・サーバー方式」。
ブロックチェーンの特徴って?
障害や攻撃に極めて強いよ!
過去の記録が多数のノード(個々のコンピューター)で共有されているため、システム全体をダウンさせるのが難しい。
また、特定の存在がコストを負担せずともシステム全体が維持されるようになっている。
出来事を網羅的かつ透明に記録できるよ!
「過去に誰が何をしたか」「今だれがどんな状態か」がネットワーク内で常に一致し、簡単にさかのぼることができる。
改ざんやコピーができないよ!
すべての根拠が過去の記録に基づくため、一度取り込まれた情報は事実として扱われるため、それ以降の改ざんは受け付けない!
管理者不在の平等なネットワークだよ!
特定の誰かが管理したり、承認したりしているわけではないので、いわゆる「公共性」をもったシステムを構築できる
もちろん、一概にそうとも言えない側面もあるよ!
ブロックチェーンで私たちは何ができるようになるの?
従来は信頼のある第三者を介して行っていたお金や価値のやりとりも個人間で行えるようになっていく筈!
具体的にはブロックチェーンによってどうなるの?
- 個人取引間のマーケットがより活性化するかも!
どんな立場の人とも手数料を気にせず、直接やりとりできるようになるかも! -
情報を自分で活用し多様な暮らしを可能にするかも!
情報の所有権がひとりひとりに戻り、自分の情報を価値として取り扱うことができるようになり、互いに売買できるようになる -
ビジネスが会社中心から個人中心になるかも!
個人の能力や嗜好に基づいて、働く場所や職種を選ぶことができるようになるかも -
最先端技術の活用範囲が広がるかも!
AI、VR、ドローンなど未来の技術はブロックチェーンと相性がよい。個人のアイデアがもっと活かせるようになるかも -
お金の流れや価値観がかわるかも!
ひとりひとりがもつデータに資産価値が認められ、仮想通貨やトークンといった報酬を得られる仕組みが生まれるかも -
P2P通信を用いた分散型のネットワークにが基本になりかも!
ブロックチェーン誕生前はあるサービスを運営するためには中央管理サーバーなどが必要だったけれどこれからはコンピューターで1対1で直接やりとりするP2Pが基本になるかも
ところでブロックチェーンは何がそんなに新しいの?
ブロックチェーンによる「データの保証」により、中央管理的役割に依存しない形でデジタルネットワーク上で価値移転を実現できるようになった点が斬新。
じゃあこれまでどうやって価値転送してたの?
ブロックチェーン誕生前は中央集権的な団体に頼る形で実現させていた。
中央集権的存在とは国・銀行・運営会社とか。
例えば、クレジットカードを使うときって国・銀行・運営会社のシステムに不正がないだろう、という「信用」のもとに価値転送を行ってる。
ブロックチェーン 誕生の経緯
ビットコインがブロックチェーンという革新的な技術の最初の実用例といえる。
ビットコインの副産物としてブロックチェーンが生まれたとも言える。
構想は2008年に発表されたサトシ・ペーパーなる論文で発表された。
サトシは何を語ったん?
- 今のインターネットでのいろんな取引は第三者の金融機関に依存してるよね?
- 信頼に基づくモデルだからこその脆弱性ってあるよね?
-お客さんに多くの情報をもとめがち
-キャンセルできない取引ができない
-一定割合の詐欺は避けられない - 信頼に依存するのではなく暗号学的証明に基づいたら利用者同士直接取引できるんじゃない?(でもシステムを運用しているマシンの半分以上が善人である前提!)
ブロックチェーンってどんな技術で成り立っているの?
ブロックチェーンを支えているのは高度な暗号化技術。
その中でも重要なのは下記の2つ。
- 一方向ハッシュ関数
- 公開鍵暗号方式
一方向ハッシュ関数
ハッシュ関数は入力したデータを一定の長さの無作為な文字列に変換することができる。(無作為な文字列のことをハッシュ値という)
入力するデータがちょっとでも違うと全く違う文字列になる(生成される文字列は同じ長さになる)。
一度ハッシュ関数を通した文字列からはもとのデータを算出することができない為、「一方向ハッシュ関数」と呼ばれる。
公開鍵暗号方式
公開鍵暗号方式は、「秘密鍵」と「公開鍵」というペアとなる鍵を用いて暗号化通信や電子署名を行う技術。
秘密鍵を用いてデータを暗号化することを「電子署名」という。
ブロックチェーンのネットワーク内では秘密鍵による電子署名によって中央集約的な機関に頼ることなく本人であることを確認できる。
電子署名によって、中央集権的に本人証明を行う機関を頼ることなく、取引の当事者が本人であることを確認できる。
公開鍵暗号方式の流れ
秘密鍵をつかったデジタル署名の仕組み
1.送信者と受信者が互いに送受信の合意形成
↓
2.送信者がまず秘密鍵と公開鍵を作成
↓
3.送信者が公開鍵を送り、受信者がそれを受け取る
↓
4.秘密鍵で送る内容を暗号化
↓
5.送信者が送るデータの作成して送る!
5-1.作成したデータをもとにハッシュ値を出す
5-2.そのハッシュ値を秘密鍵を使用して暗号化する
5-3.送りたいデータにハッシュ値を署名として付けて送付
↓
6.受信者が送られたデータを受け取る
6-1.送信者から入手した公開鍵からハッシュ値を復号する(暗号化されらものから元に戻す)
6-2.受信者は受け取ったデータを元として、送信者と同じハッシュ関数を使用してハッシュ値を算出する
6-3.上記を比較し、一致すれば送られたデータが正しいものとして認識!
そして、秘密鍵によって署名が行われた取引記録は特定のサーバーに対してではなく、ネットワーク全体に公開される。
そして、それぞれのコンピューターサーバー(ノード)の相互通信によって共有されていく
ところでなんでビットコインて通貨として機能してるの?
ブロックチェーンはデータを一つの場所に格納して保存し運用するのではなく、全世界のマシン(ノード)で管理するという仕組みを持っている。
ブロックチェーンが改ざんを不可能にし、データの分散を可能にした。
改ざんがない為、誰が誰にどんなデータを送ったという事実を信用することができ、参加者はデータを通貨としてみなして利用することが可能になる。
デジタルだからこそ発生しうる二重払いのリスク
送信元にデータが残る為、同じデータを別の人に送信できてしまう。
その結果、二重払いが発生するリスクがある。
一般的なデータのやりとりはコピー&ペーストのかたちで行われる。
お金のやりとりも同様で、データが残っていると送り主が一度使ったお金を使えてしまうことになる。
そのため、二重支払いができてしまう。
そのリスクを防ぐ仕組みとして、トランザクションを公開する方法がある。
トランザクションって?
ブロックチェーンを利用した個々の取引記録のこと。
ブロードキャストって?
自分が行うトランザクションに秘密鍵で署名し、ネットワーク内のサーバーに送信すること。
んで、二重払いをどうやって防ぐの?
一度ブロードキャストされたトランザクションは、全てのサーバーに共有されていくことで公然の事実となる。
結果、別の誰かに対して利用することができなくすることで防いでいる。
例えば、現金が突然現れないように、ビットコインも
「誰かから過去に受け取ってまだ自分が使っていない」と
ネットワーク上で記録されているものしか使うことができない。
でも、デジタルだから改ざんされるんじゃない?
改ざんを受け付けない工夫がされている。
ブロックチェーンは一定時間ごとにデータがブロック状にまとめられ、それが連鎖的につながっていく。(ブロックチェーンはその様子から名付けられた)
過去のブロック情報は、一方向ハッシュ関数によって次のブロックに引き継いでいく。
ブロックには一定時間内に行われた世界中の取引情報がまとめられている。
そのほか、「前ブロックのハッシュ値」「ナンス値」が含まれている。
ナンス値って?
「各ブロックのハッシュ値を調整するための使い捨てのデータ」が「ナンス(nonce)値」。
ナンス値によって、ブロックは正しくつながっていく。
その条件を満たすことでチェーンがガッシャンと繫がっていく。
ブロックのハッシュ値には特殊な条件がある。
ブロックチェーンは管理者がいない為、何をもって「正しい」とするか参加者全員の合意によって決めなければならない。
ブロックチェーンはナンス値によって参加者の合意形成(コンセンサスアルゴリズム)を実現しているといえる。
ブロックチェーンではPoWが用いられるブロックから出力されるハッシュ値が一定の条件を満たすように、ナンス値を調整する必要がある。
条件を満たすナンス値は逆算することができない為、総当たりで最適なナンス値を見つけだす必要がある。
総当たりで最適なナンス値を見つけだすことを「マイニング」という。
マイニング?
ナンス値を見つけてブロックを生成する行為。
ブロックを生成したいユーザーはブロックの正当性を検証し、現在のブロックチェーンに新たなブロックを追加する。
PoWって?
Proof Of Worksの略。プルーフオブワーク。正当性の検証とか仕事の証明とかの意。
ブロックのヘッダ部分の情報をハッシュ化して、予め決められている値より小さな値を見つける競争を行う。
とりあえずやってることとしたらすごい量の単純計算をコンピューターを使ってごりごりやる。
だからマイニングするにはCPUとか強力なやつが必要だからある程度の財力が必要。
元々はスパムメールを防止するための技術。この技術は1993年に誕生している。
# 計算からのハッシュ値算出のきれいな流れがなかなか出せないぜ!
ブロックチェーンに自動販売機システムを追加したイーサリアム
初期のブロックチェーンは「たった今行われた出来事」を順次記録していくだけの仕組みだった。ビットコインもそう。
そこに「こんな仕組みもあるとよくない?」的な機能を追加したのがイーサリアム。
それは「スマートコントラクト」と呼ばれる機能。
イーサリアムは2013年にヴィタリック・ブテリンが発表した。
スマートコントラクトにより「当事者が合意する条件のもと、特定の処理を、将来において確実に実行すること」が可能となった。
スマートコンラクトってどんな機能なの?
スマートにコントラクト(契約)を実行できるプロトコル。
スマートコントラクトの例としては自動販売機がよくあげられる。
自動販売機は、
1.お金を入れる
2.ジュースを選び、ボタンを押す
3.ジュースが出てくる
4.おつりが出てくる
のようにお金を入れると想定された処理(ジュースを出す)を実行してくれるように、予め定められた処理を必ず実行してくれる。
こんな感じで、あらかじめ決められた処理を実行してくれる。
もう少し、スマートコントラクトの流れを専門性を持って固く書くと
1.契約の事前定義(管理者が入力)
2.イベント発生
3.契約執行・価値移転
4.決済
となる。
※2~4がプログラムにより自動的に実行される
※1の「事前定義」が重要になってくいるのでイーサリアムを初めとして
多くのプラットフォームで書き換えが不可能
従来の契約とスマートコントラクトってどう違うの?
スマートコントラクトの場合はブロックチェーン上に自動的に作動するプログラムを実装することにより第三者による仲裁なしに確実に合意内容を執行できる点が違う。
一般的な契約は当事者同士が行ったなんらかの約束が将来きちんと果たされるように法律とその執行機関の下、合意を取り交わすこと。
そしてイーサリアムにより分散型アプリケーション(DApps)が誕生した
イーサリアムにより、ブロックチェーンはさまざまなプログラム・アプリケーションを提供することができる管理者不在のプラットフォームに進化した。
それはつまり、さまざまな用途をもつアプリケーション(プログラム)を一つのブロックチェーン上に開発していけることを意味する。
そして、このように開発されたアプリケーションは「DApps(Decentirailzed Applications)」
と呼ばれる。
DAppsはスマートコントラクトを活用することで根幹となるシステムをサービス提供者のサーバーに依存せず提供することでとができる。
サービスを成立させる主要なプログラムをスマートコントラクトに実装することでブロックチェーンの基本的な特徴を個別のアプリケーションにも反映させることができた!
お金を集めるよ!「ICO」
ブロックチェーンの開発者やユーザーがDAppsをはじめとしたエコシステムに参加する動機付けとしてトークンを発行している。
「ICO」ではスマートコントラクトでトークンを発行する
ブロックチェーンを用いたDAppsを開発する人たちには、
手数料などによる利益が出にくい傾向がある。
そのため、開発しても得られるメリットが少ないと開発者が集まらず、いいサービスが生まれにくい。
そうすると人があつまらず、開発が進まなくなる、という悪循環に陥る。
それを開発する方法として、トークン発行で開発やマーケティングにかかる資金をあつめる必要がある。
管理者不在のブロックチェーンにおいて開発資金をあつめるためにICO(Inicial Coin Offering)という手法がうまれた。
ICOではどんなことやるの?イーサリアムの例
スマートコントラクトを用いて参加者(開発者やユーザー)にトークンを発行している。
例えるなら、自動販売機で株券を発行するようなもの。
一般的にICOでは調達目標額、トークンの価格・発行量を設定し、全世界にスマートコントラクトを公開する。
これにより、開発・運営に必要な資金を集めることができる。
トークンはサービスの利用権としても使うことができたり、株券のようにサービスの将来の方向性を決める際の議決権の証明のような使われ方をしたりする。
イーサリアムではICOではこんなことやる
1.スマートコントラクトで「トークンの自動販売機」を作成
2.自動販売機にイーサが送られると、イーサはそのまま実施者におくられる。
3.実施者はイーサを換金して資金を得る
ブロックチェーン上のトークンって?
ブロックチェーンの合意形成に対する報酬として得られる仮想通貨は各ブロックチェーン上の基軸通貨を中心としてさまざまなトークンが発行される。
トークンの分類
トークンという言葉自体は「なんらかの概念を定量的に表現しやすく置き換えたもの」のことで、ありとあらゆるものをトークンと考えることができる。
ブロックチェーン上で扱われるトークンはFungible TokenとNon-fungible Tokenの2つに分けられる。
Fungible Token
円やドルなどのお金と同様に、共通の単位によって資産価値を自由に分割・代替することができるもの。
よく知られている仮想通貨がこれにあたる。
Non-fungible Token
骨董品やアート作品のように唯一固有の存在として発行され、分割や部分譲渡できないもの。
応用されるブロックチェーン・ブロックチェーンの活用範囲と分類
ブロックチェーンを考えるには従来のデータとネットワークのあり方を根底から変え直す必要がある。
最初は新しいお金の仕組みとして広がったけれど、次にあらゆるものが個人間で売買・流通できる「価値」に変化する。
ブロックチェーンは最初、金融に影響を与えた。
次に、データの在り方が変質し、デジタルとアナログのいいとこ取りをしたサービスが可能となった。
その結果、個人間でやりとりできるものが増え、結果、ネットワークのあり方そのものが変化する可能性がある!
ブロックチェーンの管理と運用
ブロックチェーンの非中央集権性は、新たなブロックの生成(マイニング)とソースコードの変更に誰もが自由に参加できるという特徴によって支えられている。
一方、ブロックチェーンの仕組みを用いながら、マイニングやソースコード更新を一部の主体によって中央集権的に運用することも可能。
非中央集権性をもったブロックチェーンは「パーミッションレス型」。
公共性や透明性が高く恣意的に運用されづらいシステムを実現する。
半面、スケーラビリティやブロックチェーン特有の課題を考えている。
ブロックチェーンと聞いてみんながイメージするのはこっちのほう。
後者はパーミッション型と呼ばれ、高いスケーラビリティを備えシステムを構築しやすいが、運用にまつわるコストとメリットが管理者に集中するのが特徴。
データ処理におけるデジタルとアナログの融合
ブロックチェーンによってさまざまなデータが「誰か信頼できる人によって正しさを保障されたもの」から「公共システム上で誰もが認める正しい事実」へと代わる。
現実世界の出来事のように、デジタルデータをやり取りすることが可能となる。
こうして生まれる事例がブロックチェーンサービスの第2類型。
それらはどんなものか大別すると
- 公共データベースの一元化
- 権利・価値のデジタル活用
- デジタルアセットの有限・固有化
の3つの特徴をもつ。
それぞれ、もう少し詳しく見てみる。
公共データベースの一元化
従来のデータベースは、管理者がそれぞれの活動のために独自に構築し維持するものであった。
そのため、
– データを恣意的に用いられる
– 利用者にとってブラックボックスが生じる
– データベース間の相互運用が難しい
などの問題が発生する。
改ざんや複製のできないブロックチェーンを公共のデータベースとして利用することで
特定の主体に利益や負担の集中することのない透明で一貫したデータベースを構築することができる
権利や価値のデジタル活用
円やドルなどのお金と同様に権利や価値の管理には厳密さが問われる領域。
正しさを保証するブロックチェーン上に記録された情報は、明白な事実としてインターネット上で半永久的に保存される。
これにより、従来は紙媒体でしか「確かさ」を保証できなかった、さまざまな権利や価値をデジタルにやりとりすることが可能になる。
デジタルアセット(デジタルな資産)の有限化・固有化
従来のデジタルデータは
・無限にコピーできる
・管理者によって恣意的にコントロールすることができる
といった特徴で、現実世界の資産のような価値を持たせることが困難。
それに対し、ブロックチェーン上のデータは管理者不在のシステムによって生み出された有限なもの。
それにより資産としてやりとりすることの難しかったデジタルデータやアイテムを、現実世界と同様に資産としてやりとりすることが可能となった。
ブロックチェーンはこれからどうなる?
パブリックチェーンはWeb3.0に向けて動いている。
実際のところ、完全なる非・中央集権的なアプリは存在してない
- ほとんどのdApps(分散型アプリケーション)やDEX(分散型取引所)に管理者は存在する
- 特に開発初期では安全のためにコントラクトを停止できるコードを入れていたり、開発にメドがついた段階でガバナンスを移譲するプロジェクトが多い
- 分散されサードパーティーの動くが活発になると最早それは分散型「アプリ」というより「プロトコル」に近い存在となる。
管理会社みたいな中央集権的な役割は持たずに済むと言われているが実際はそんなこともなさそう。
分散型アプリケーションは存在せず、分散化されたミドルウェアプロトコルだけが存在する世界が来ると考えられる。
また、ブロックチェーン単体で何かが解決するものでもないので、他の技術を組み合わせて使うとよい!
第三世代以降のブロックチェーン
ビットコインからはじまったブロックチェーンは、その課題を改善すべく第二世代のイーサリアムから第三世代と続いている。
第三世代として有力なのがEOS(イオス)とZILIQA(ジリカ)。
これらについて、簡単にまとめ比較してみる。
第三世代ブロックチェーンはビットコインやイーサリアムが直面した課題を乗り越えるべく、やや中央集権的なコンセンサスアルゴリズムを採用しているのが特徴。
スケーラビリティを重視 EOS(イオス)
EOSは2017年に「ポストイーサリアム」としてICOを開始。
それから約1年の間に4300億円を確保。
EOS(イオス)はdPoS(DBFT)というコンセンサスアルゴリズムを採用している。
検証ノードを限定することで、高いスケーラビリティを安定したファイナリティを実現している。
dPosは、ネットワークの参加者が保有するトークン量に応じた「投票権」をもっている。
検証ノードを選定・委任することで検証ノードを選ぶシステム。
いわば、「投票による間接民主制」のようなアプローチといえる。
EOSのコンセプト
コンセプトは「DAppsを動かすためのスケーラビリティと、基本的なOSを兼ね備えた高機能ブロックチェーン」
「ビットコインは電卓、イーサリアムがiPhoneなら現状のイーサリアムはiOSが提供されていないiPhone。普通の人には使えない」
というのが彼らの主張。
基本的な機能を保障するDAppsオペレーティングシステムを提供しようとしている。
ファイナリティを重視 ZILIQA
ブロックチェーン先進国のシンガポールにおける、暗号学の研究者と実業家たちが主導するプラットフォーム型のブロックチェーン。
イーサリアムに導入されようとしているシャーディングの基礎理論の提唱者。
高い処理能力を持ったブロックチェーンを実現しようとしている。
特徴として、公共性を極力維持したまま、高い処理能力を持たせたことにある。
ZILIQAエコシステムの構築に向けて、世界各国のブロックチェーンと連携している。
PBFT形式のコンセンサスアルゴリズムを採用して取引記録を即時確定することを可能にしている。
同時に、PBFTに先述のシャーディングを組み合わせて高い処理能力を実現しスケーラビリティも、もっている。
この際、検出ノードのためにPow的な計算競争を設け、検証ノードが固定化して権力が集中することを防ぐ。
「社会への貢献者による間接民主制」のようなアプローチ。
EOSとZILIQAのざっくりした違い
EoSのdPosが一定期間ごとにコアノードを投票形式で選出するのに対し、ZILLIQAのPBFTでは短期間の計算競争でコアノードが頻繁に入れ替わる。
つまり、イオスは投票で選び、ジリカはマシンパワーの順に選ぶ。
まとめ いろいろ広がったけどブロックチェーンって結局何なん?
記録がブロック型にまとめられてそれがチェーンで繋がっていくデータベースのようなもの。
通貨みたいに公共システムに成り得るポテンシャルをもっているが、実際には何らかの団体が管理機能を担わなければならないのでは?