Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

今ビットコインのブロックチェーンを学ぶ意義とは?Pythonで作ってみたい人のための解説書から紹介

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/11/18 07:00

 ゲームを始めとする分散型アプリケーションの存在感が増し、いよいよブロックチェーンの技術が各社のサービスに実装され始めました。翔泳社の最新刊『Pythonで動かして学ぶ!あたらしいブロックチェーンの教科書』(翔泳社)では、その根幹にあるビットコインのブロックチェーンに注目して構成技術やコードを解説しています。では、なぜ今それを学ぶべきなのでしょうか。本書から「第1章」を抜粋して紹介します。

本記事は『Pythonで動かして学ぶ!あたらしいブロックチェーンの教科書』の「第1章 ブロックチェーンの概要と学ぶ意味」から抜粋したものです。掲載にあたり、一部を編集しています。

分散システムとブロックチェーン

 ブロックチェーンは突然生み出された技術ではありません。このことは分散システムの特徴と発展の歴史を見ていくと、よくわかります。

集中システムと分散システム

 ソフトウェアシステムの構造(アーキテクチャ)には大きく「集中システム」と「分散システム」の2つがあります。図1.1のように、集中システムは1つの中心があり、そこに他のコンピューターが接続する形になっており、分散システムは複数のコンピューター同士が相互に接続し合って形成されます。システムによっては、分散システムと集中システムを組み合わせることもあり、状況に応じて適切な構造を採るよう工夫されます。

図1.1 集中システムと分散システム
図1.1 集中システムと分散システム

 集中システムと分散システムそれぞれの長所・短所は表1.1の通りです。比較すると、この2つは正反対の性質を持つ構造だとわかります。

表1.1 集中システムと分散システムの長所・短所
表1.1 集中システムと分散システムの長所・短所

 集中システムでは、中心にあるコンピューターが動かなくなるとシステム全体が停止(システムダウン)してしまう「単一障害点」と呼ばれるマシンが存在したり、維持管理にコストがかかってしまったりする欠点があるものの、システムの柔軟性や一貫性を維持するのが比較的、容易である長所があります。また何よりもシステムにおけるデータ完全性を維持できるメリットがあります。データ完全性は、データに欠けているところや間違っているところがない性質のことで、システムにおけるデータを信頼するための条件になります。

 分散システムは、システムにおける処理を多くのコンピューターで分担するためコストを削減することができ、単一障害点がないことでシステムダウンする可能性がとても低くなります。加えて、計算能力を高めていくことも可能です。ネットワークに接続している多くのコンピューターの計算能力を利用できるため全体の計算能力が高くなると同時に、接続するコンピューターを増やすことで、その計算能力を徐々に大きくすることも可能です。今では多くの人々が高性能のPCやスマートフォンなどを持つようになっているため、それらが接続し合って大きな計算能力を実現できるようになりました。また、低コストかつダウンしないシステムであれば、貨幣や資産のような重要なデータを扱うことができるように思えます。

ブロックチェーンが成し遂げたこと

 しかし、分散システムには貨幣や資産のようなデータを扱えない決定的な欠点があります。それはデータ完全性の維持が困難であることです。貨幣や資産のデータがネットワーク上のコンピューターによって異なっていると、どのデータを信じればよいかがわからなくなり、データへの信頼性がなくなってしまいます。このような状況では、重要なデータを扱うことはできません。そのため、貨幣や資産などの重要なデータはこれまで、完全性を維持しやすい集中システムを中心に扱われてきました。

 しかし、すでに紹介した通り、集中システムには単一障害点という“急所”があり、情報が一箇所に集まっています。このことは長所であるものの、維持管理するために必要な技術力やコストが高くなることや、情報が集中することによるプライバシーの問題を浮き彫りにしてしまいます。

 そこで、プライバシーの問題が小さく、コストを抑え計算能力の高い分散システムで、集中システムほどの利便性を持つことができれば両者のいいとこ取りができます。そこで登場するのが、ブロックチェーン技術なのです。ブロックチェーン技術は、多くのメリットを持つ分散システムで、集中システムのようにデータの完全性を維持するための技術として開発されたとみることができます。その意味では、分散システムの可能性をさらに拡張するための技術であり、新たな扉を開いた技術として熱い視線を浴びることとなったのです。

ブロックチェーンの構造

 ブロックチェーンは「ブロック」と呼ばれるデータを数珠状につなげた形をしており、ブロックを要約したデータを次のブロックに取り込むことで全体の整合性を取っています。

ブロックとチェーンの構造

 複数の取引データをひとまとまりにして、ブロックとしてまとめます。この時、ブロックには関連する複数のデータも同時に格納されます。これらのデータはブロックヘッダと呼ばれています(図1.2)。ブロックヘッダには同じブロックに格納されている取引データを要約したデータやタイムスタンプなどのメタデータも含まれます。

図1.2 ブロック生成のイメージ(Txはトランザクションデータのこと)
図1.2 ブロック生成のイメージ(Txはトランザクションデータのこと)

 このブロックヘッダの要約されたデータが、次のブロックのブロックヘッダに格納されます。こうして、あるブロックから1つ前のブロックへの“リンク”ができあがります。これをすべてのブロックに対して連鎖的に行うことで、ブロックチェーン全体で整合性を保つことができるようになります(図1.3)。

図1.3 ブロック同士がリンク
図1.3 ブロック同士がリンク

たくさんのコンピューターによって共有されている

 ブロックチェーンは特定のサーバーやコンピューターに保管されているのではなく、多くのコンピューターによって分散的に管理されています。そのため、同じブロックチェーンのデータを多くのコンピューターで共有して管理しています。このような仕組みを「P2P方式」と言い、ブロックチェーン技術の大きなポイントの1つとなっています。

ブロックチェーンの特徴

 ブロックチェーン技術の持つ特徴は主に以下の4点に集約できます。

  • 改ざんへの耐性が強い
  • ゼロダウンタイム(障害や攻撃があってもダウンしない)
  • トラストレス
  • 低コスト

 ブロックチェーンはブロックの並び方に依存関係があるため、データを書き換えた場合、そこから連なるすべてのデータが変わってしまいます。データは多くのコンピューターによって共有されているため、ブロックチェーンを見ることのできる人であれば改ざんされたと確認できるようになっています。

 また、分散システムの1つであるP2Pネットワークを前提として成立する技術のため、障害や攻撃に強いという特徴があります。仮に何かのマシンが障害や攻撃に見舞われたとしても、周りの他のノードに問い合わせれば元どおりのデータを復元でき、トラブル以前のサービスを受けることができます。

 トラストレスとは、何らかのサービスを利用する際に必要な信用リスクが低いことを指します。ブロックチェーンはその高い耐改ざん性ゆえに、特定の誰かを特別に信じなくてもサービスを利用することができます。

 低コストであることも大きな特徴です。ブロックチェーンと同程度のレベルのセキュリティを従来通りのシステムで実現するには、大きなコストがかかります。また、国や地域に関係なく利用できるため、これまで高いコストのかかっていた国際送金のような領域では大きくコストを下げることも可能になります。

ブロックチェーンの型

 一言でブロックチェーンと言っても3つに分類されます。それぞれに強み弱みがあるため、ケースバイケースで使い分ける必要があります。

パブリックチェーン

「パブリックチェーン」とは、ビットコインをはじめとする仮想通貨のブロックチェーンに代表されるように、誰でも参加できるネットワークを持っているブロックチェーンです(図1.4)。

図1.4 パブリックチェーンのイメージ
図1.4 パブリックチェーンのイメージ

「パブリックチェーン」の長所と短所を整理すると表1.2のようになります。

表1.2 パブリックチェーンの特徴
表1.2 パブリックチェーンの特徴

 パブリックチェーンは、誰でも自由にネットワークに参加できるため、権限が集中せず公正公平な環境を作ることができます。また、衆人環視のもとで運営されるため、透明性や公共性を高く維持することが可能です。加えて、何らかの仕様変更や取引の承認などは正当なルールの下で実施されます。

 一方、承認に時間がかかることや、ブロックチェーン全体のデータ容量が増え続けることなどがデメリットとして挙げられます。また、「ファイナリティ」がない点もパブリックチェーン特有の課題だと言えます。ファイナリティとは決済完了性のことで、決済が確定し覆らない性質のことを言います。パブリックチェーンの場合は、十分にブロックがつながれば覆される可能性が著しく低くなることをもって確率的に取引を確定と見なします。ビットコインの場合、6ブロックがつながれば確率的にファイナリティが得られるとされています。

プライベートチェーン

「プライベートチェーン」とは、ネットワークへの参加者を特定の組織や個人が承認できたり、ネットワーク上での仕様変更を独断で進めることができたりするタイプのブロックチェーンです(図1.5)。

図1.5 プライベートチェーンのイメージ
図1.5 プライベートチェーンのイメージ

 プライベートチェーンの長所と短所を整理すると表1.3のようになります。

表1.3 プライベートチェーンの特徴
表1.3 プライベートチェーンの特徴

コンソーシアムチェーン

「コンソーシアムチェーン」とは、ネットワークへの参加者を複数の組織や個人が承認できたり、限られた主体での合意形成で仕様変更をできたりするタイプのブロックチェーンです。パブリックチェーンとプライベートチェーンの間をとったような仕組みです(図1.6)。

図1.6 コンソーシアムチェーンのイメージ
図1.6 コンソーシアムチェーンのイメージ

 コンソーシアムチェーンの長所と短所を整理すると表1.4のようになります。

表1.4 コンソーシアムチェーンの特徴
表1.4 コンソーシアムチェーンの特徴

ブロックチェーンの活かし方は工夫次第

 パブリックチェーンとプライベートチェーン、コンソーシアムチェーンを比較してみるとそれぞれの個性が浮かび上がってきます(表1.5)。

表1.5 各種ブロックチェーンの比較
表1.5 各種ブロックチェーンの比較

 いずれのタイプもブロックチェーンの基本哲学を引き継いでいるものの、管理主体や合意形成の速さなどに大きな違いがあることがわかります。この違いはビジネスで使いやすいかどうかに大きな影響を与えます。

 最初に登場したのはパブリックチェーンでしたが、パブリックチェーンは大部分のデータが公開されてしまいます。また、取引の承認に時間がかかる上に、ファイナリティがないという特徴を持っているため、ビジネスでは利用しにくいという欠点がありました。そのため、ブロックチェーンの特徴を持ちつつ、ビジネスの現場でも使いやすいブロックチェーンとしてプライベートチェーンやコンソーシアムチェーンが開発されました。

スマートコントラクト

 ブロックチェーン技術はいくつもユニークな性質を持っていますが、それをより幅広い分野で活かせるようにと開発されたのが「プラットフォーム型ブロックチェーン」や「スマートコントラクト」です。

ブロックチェーン2.0とプラットフォーム型ブロックチェーン

 ブロックチェーンは当初、仮想通貨を実現するための技術として世に生まれました。ところが、仮想通貨以外の領域でもブロックチェーンを利用する試みが生まれ、さまざまな研究開発が行われ始めました。このような動きは「ブロックチェーン2.0」と呼ばれることがあります。

 プラットフォーム型ブロックチェーンの代表格は、Ethereum(イーサリアム)やLISK(リスク)などが挙げられます。これらのブロックチェーン上ではプログラミングをすることが可能で、仮想通貨の送金以上に複雑な処理を記述し実行することができるようになりました。

 2013年、イーサリアムの開発者の一人であるヴィタリック・ブテリンは弱冠19歳でイーサリアムの原型を作り上げ、今も勢力的に開発を進めています。彼はイーサリアムの着想について、「ビットコインが電卓なら、イーサリアムはスマートフォン」と語っています。プログラミング言語をサポートすることで、誰もが自由にあらゆるアプリケーションを想像力のままに構築し、簡単に使うことができるための基盤としてイーサリアムを構想しています。そして、その鍵になる技術がスマートコントラクトです。

スマートコントラクトと分散型アプリケーション(DApps)

 スマートコントラクトとは、「契約の当事者同士で交わされた合意内容について、条件が満たされれば当事者がいなくとも自動的に実行される仕組み」のことです。スマートコントラクトの概念自体は、1997年にアメリカの法学者・暗号学者であったニック・ザボーによって提唱されており、ブロックチェーンの登場以前から存在していました。ブロックチェーンにおけるスマートコントラクトは、「記述された契約の内容が改ざんされる恐れが極めて低く、自動的に実行される」という点でスマートコントラクトを非常に強力なものにしています。

 スマートコントラクトを利用して、より複雑な処理を記述することで実現したのが分散型アプリケーション(DApps)です。ブロックチェーンの特徴を活かすことで、これまでには実現し得なかった顧客体験がデザインできるとして大きな注目を集めています。

ブロックチェーンの歴史

 2019年9月現在では、多種多様なブロックチェーンや周辺技術が誕生していますが、歴史を遡ればビットコインのブロックチェーンに辿り着きます。

ブロックチェーン前史(1990年代前半~2000年代前半)

 1990年代前半から2000年代前半にかけて、eコマースがビジネスモデルとして実現されるようになり、後にドットコムバブルと呼ばれるブームが到来しました。ITがビジネス上の大きな潜在性を持っていると認識されるようになったことで大きな投資を呼び込んだのです。

 そんな中、電子マネーの開発も盛んに行われるようになりました。1996年には、ソニーが「FeliCa」と呼ばれるICチップを開発し、さまざまな非接触式ICカードを使った電子マネーが乱立するようになりました。クレジットカード各社もオンライン決済などに力を入れるようになり、電子決済の普及が徐々に進むようになりました。しかし、どれも特定の企業による担保を必要とする意味では中央集権的な仕組み、いわば集中システムでした。

 時を同じくして、P2P技術の開発も盛んに行われるようになり、WinnyをはじめとするP2Pアプリケーションが開発され始めました。ところが、著作権に違反したデータが共有されたり、ウイルスが拡散し削除できなくなってしまったり、といった事案が数多く報告され、P2P技術が克服しなければいけない課題が浮き彫りになりました。

 eコマースが普及したことが追い風となり、電子決済が普及し始めましたが、中央集権的であることが問題視され始め、P2P技術への注目が集まりました。ところが、P2P技術が持つ課題をクリアしなければ、電子決済では使えないことが明らかになりました。さまざまな研究者や技術者が課題をクリアしようと試みてきましたが、これといった成果がでないままでした。そんな状況に風穴をあけたのが他でもないブロックチェーンというアイデアだったのです。

サトシナカモトによる論文発表(2008年~2010年)

 ブロックチェーンの元となるアイデアはサトシナカモトと呼ばれる謎の人物によって2008年10月に暗号学のメーリングリストで共有される形で突如として公開されました。最初は論文の内容をいぶかしむ人も多かったのですが、その可能性を感じた一部の研究者や技術者がサトシナカモトとやり取りを始め、2009年1月に人類史上最初のブロックが生成されました。ちなみに、ブロックチェーンの最初のブロックを「ジェネシスブロック」と言います。ビットコインのジェネシスブロックには、以下のフレーズが格納されています。

・タイムズ紙 2009年1月3日 『銀行の二度目の救済を宰相が検討中』
 The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

 ビットコインをはじめとするパブリックチェーンのブロックは、誰でも確認することができるため、ジェネシスブロックと上記のフレーズを確認することができます(図1.7)。

図1.7 ジェネシスブロックの中身
図1.7 ジェネシスブロックの中身 出典:chainFlyer

 ビットコインのジェネシスブロックにこのフレーズが刻まれた理由はいくつか考えられますが、従来型の金融システムへの批判や皮肉が込められていると考えられています。中央集権的な金融システムの失敗へ税金が投入されることに対して、ビットコインの仕組みがこれを解決するという宣言だとみられています。

 その後、2010年5月22日には、ピザ2枚が1万BTC(ビットコイン1単位あたりを1BTCと表します)と交換され、初めてビットコインが利用されました。こうして、ここからビットコインの普及が始まりました。

アルトコインの急増(2011年~2019年現在)

 ビットコインが次第に知名度を上げていく中で、ビットコインのブロックチェーンをベースにしつつ、より機能を改良したり付加したりした新しいブロックチェーンも開発されるようになりました。そこで誕生したビットコイン以外の仮想通貨を「アルトコイン」と言います。

 最初のアルトコインは、Namecoin(ネームコイン)と言われるものでした。ビットコイン自体からもさまざまなアルトコインが分岐しており、2017年にはビットコインキャッシュ、ビットコインゴールド、スーパービットコインなど数多くが誕生しています。さらに2018年にビットコインキャッシュは、ビットコインABCとビットコインSVに分裂しています。このようにビットコインのブロックチェーンを起点に、アルトコインが急増してきました。

 また、アルトコインの急増に伴って、多くのマイナーが乱立するようになりました。ブロックをつなげていく作業をマイニングといい、マイニングを行う主体をマイナーと言います。特に、マイニングの方式にProof of Work(PoW)を採用しているブロックチェーンでは、マイナーの持つマシンの演算能力がものをいいます。そのため、マイニング専用の「ASIC」と呼ばれるチップも開発されマイニング競争に拍車をかけました。

プラットフォーム型ブロックチェーンの誕生(2015年~2019年現在)

 ビットコインやその他のアルトコインの急増を受けて、ブロックチェーンの仮想通貨以外の使い方を模索する動きがでてきました。2015年にはイーサリアムが、その翌年にはLiskがリリースされました。プラットフォーム型のブロックチェーンが数多くリリースされたことで、さまざまなDAppsが開発されアルトコインの開発にも拍車がかかりました。

 また、この頃にはICO(Initial Coin Offering)が盛んに行われるようになりました。ICOは仮想通貨を新規に発行し、出資者に販売することで資金調達する方法のことです。それまでのアルトコインの急増に加え、プラットフォーム型のブロックチェーンによって、よりDAppsやトークンを開発しやすくなったことで、この新しい資金調達法に注目が集まりました。2017年には世界中で約8000億円がICOによって調達されました。これが後押しとなり、多額の資金がブロックチェーン開発に流れ込むことになりました。

プライベート(コンソーシアム)チェーンの誕生(2015年~2019年現在)

 すでに触れた通り、パブリックチェーンの短所をカバーするために、プライベートチェーンやコンソーシアムチェーンが開発されるようになりました。Linux Foundationが開発を主導しているHyperledgerやR3が開発しているCorda、テックビューロ社が開発しているmijinなどが続々とリリースされ、ビジネスの現場でも使いやすいブロックチェーン基盤が登場しています。

ブロックチェーンや周辺技術が多様化(現在~)

 2019年現在までに、ビットコインのブロックチェーンをベースにしたアルトコインから、プラットフォーム型ブロックチェーン、プライベートチェーンやコンソーシアムチェーンのリリースを経て、実に多種多様なブロックチェーンが登場しています。今後もより速く、よりスケーラブルなブロックチェーンを目指して、さまざまな技術が開発されていくとみられます。

増えるユースケース

 2019年現在、ブロックチェーンの可能性を活かすべく、さまざまなプロジェクトが進められています。ブロックチェーンの可能性を捉えるために、代表的なものをいくつか見ていきましょう。

トレーサビリティの向上

 ブロックチェーンの耐改ざん性や透明性の高さを活かした、トレーサビリティ(追跡可能性)を高めるためのプロジェクトが生まれています。食品や化石燃料、医薬品などが生産されてから、最終的な消費者に届くまでのすべてのプロセス(サプライチェーン)において不正が行われていないかどうかを確認できるシステムが世界各国で作られています。現代のサプライチェーンはグローバル化が進展しており、すべてを追跡することが難しくなっている中、この現状に風穴をあけることが期待されています。

分散型ゲーム

 プラットフォーム型ブロックチェーンが誕生して、大きく数を増やしたDAppsのカテゴリの1つがゲームでした。従来のゲームとの大きな違いはゲームの世界観に経済圏を作れることで、育成したキャラクターや獲得したアイテムを公正公平な透明性の高い環境下で売買することができます。また、少額の課金も可能になり、課金のあり方もより変わっていくと期待されています。

パラメトリック保険

 保険は決められた保険料を支払い、病気や事故などのトラブルがあった際に支払いがされる仕組みですが、従来では、生活習慣や家庭環境などの影響を含めることが難しく、生活習慣や家庭環境によらず保険料が一律になってしまい不公平感がありました。ブロックチェーンを利用することで、個人の状況に合わせて柔軟に保険料を設定することができ、支払いもこれまで以上に迅速に行うことができます。

分散型SNS

 2019年現在、さまざまなSNSが利用されていますが、ブロックチェーンを用いたSNSも開発されています。SNSを利用するためには、個人情報を登録しなければいけませんが、それらの管理や安全性に疑問が投げかけられることもよくありました。ブロックチェーンを利用すれば、個人情報の管理という面で安全性が高くなります。また、投稿や「いいね」などのアクションに報酬を設定することができ、インセンティブを用意することができるため、より活発なコミュニティを作ることができます。

IoTとの連携

 IoT(モノのインターネット)が普及し始めていますが、ブロックチェーンが連動することでIoTのポテンシャルをより引き出せると期待されています。スマートコントラクトを利用して、IoT端末からの信号を受けると自動的に特定の処理を実行するようにすることで、人間が介在せずに機器の操作が可能になります。また、法定通貨よりも細かい金額(例えば0.01円のような金額)でも支払いができるようになるため、多くのビジネスモデルに影響を与えると期待されています。

ブロックチェーンを学ぶ意義

 ここまでブロックチェーンの概要や歴史について整理してきました。スマートコントラクトを利用したDAppsを開発する時には、ブロックチェーンの細かい技術までは理解しなくとも開発できそうな気がします。しかし、ウェブアプリケーションを開発する際に、ネットワークやサーバーなどインフラ面を理解しなくては適切な設計やメンテナンスができないのと同じように、ブロックチェーンを使ったアプリケーションを開発する際にブロックチェーン技術自体を理解しておくことは重要です。そして歴史を遡ればわかる通り、ブロックチェーン技術は元をたどればビットコインのブロックチェーンへ行き着きます。本書でビットコインのブロックチェーンを中心に扱い、ブロックチェーンの理解を深めるのはこれが理由です。

Pythonで動かして学ぶ!あたらしいブロックチェーンの教科書

Amazon SEshop その他


Pythonで動かして学ぶ!あたらしいブロックチェーンの教科書

著者:株式会社FLOC
発売日:2019年11月11日(月)
価格:2,680円+税

本書について

FLOCブロックチェーン大学校の人気講師である赤澤直樹氏の執筆協力により、基礎から体系的にブロックチェーン技術の仕組みを学べます。全体で5部構成となっています。



  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 渡部 拓也(ワタナベ タクヤ)

     翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。

バックナンバー

連載:翔泳社 新刊紹介

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5