it今や仮想通貨だけでなく、dAppsゲームや、音楽やイラストのデジタルコンテンツなど多岐にわたる分野で、その斬新的な技術の活躍が期待されています。そもそもブロックチェーンとはどのような技術なのでしょうか?その誕生から、現状の活躍にまで迫ります!ブロックチェーンが誕生したきっかけはビットコイン(BTC)ブロックチェーンを考える前に、まずビットコインについてです。仮想通貨の代表格であるビットコインは、2008年、サトシ・ナカモトと名乗る人物が「誰にも管理されず、改ざんのできない公平なシステムを取り入れた通貨を作りたい」という思いから、ビットコインのホワイトペーパーを発表しました。その後、論文を読んでその考えに共感した人たちがコードを作成します。2009年1月3日、有志あるプログラマーたちが最初のビットコインを開発します。ビットコインの中核技術ブロックチェーンは、ビットコインの開発をしている最中に誕生した「分散型台帳システム」です。「ブロック」と呼ばれる箱のようなものの中に取引データーを取り入れ、その「ブロック」の容量に空きがなくなる※1と、新しいブロックが作られます(これを『ブロックが生成される』と表現します)。ブロックが満たされるたびに次の新しいブロックができて、チェーンで繋いでいきます。この流れでできた技術を「ブロックチェーン」といいます。ちなみに、取引データは、「トランザクション」といいます。ビットコインの場合、データ容量は1MBユーザー全員が管理する「分散型台帳システムブロックチェーンは管理者が1人ではありません。特定の組織に情報が一極集中せず、利用するユーザー(ノード※2)同士がネット上で管理する非中央集権的システムです。国や銀行、大企業などといった組織が管理・運営していないので、勝手に情報が書き換えられることがないのです。→「分散型台帳システム」ブロックチェーンのブロックの中はどのような仕組みになっている?ブロックチェーンの基本的な仕組みについてです。実際にはもっと複雑ですが、今回はメイン要素の「ナンス値」、「過去のブロックにあるハッシュ値」、「複数の取引データ」に絞って説明します。ブロックチェーンの大まかなイメージ図です。イメージとしては電車や数珠でしょうか。ブロックチェーンの特徴の1つとして、ブロックが生成され、繋がるたびに1つ前の情報は過去のものになる点です。新しいブロックがつながると、その1つ前のブロック内の情報は変えることができません。改ざんができないのです。仮に目の前のブロックや、これから繋げようとする新ブロックを改ざんすると、過去の全てのブロックや、後に続く未来のブロックの情報も永遠に変えなければならないということになります。不可能に等しい作業です。新しいブロックを繋げるには、コンピューターを使って膨大な量の難解な計算をして正解を見つける必要があります。この膨大な量の難解な計算をする人たちのことを『マイナー』と呼び、そのマイナーの計算作業を『マイニング』と呼びます。このマイナーたちの仕事は誰よりも早く「ある条件を満たした新しいハッシュ値を見つけること」です。「ある条件を満たした新しいハッシュ値を見つけること」とはどういうことでしょうか?下の図はブロックチェーンの中のイメージ図です。「複数の取引データ」......取引データ(トランザクション)順番に説明します。マイナーにブロックチェーンから問題が出ます。この問題からランダムな文字列が表示されているある数字が提供されます。one/一度だけ使用される使い捨ての数字)』といいます。マイナーはこのナンスを一度だけ使うことができます。この32ビットのナンス値を手元においたまま、次に、マイナーは1つ前の過去のブロックから『ハッシュ値』をゲットします。新しいブロックに記録される予定の指紋付値をとりだします。この1、2、3を「ハッシュ関数※3」に入れて256桁の値を得ます。これが新しいハッシュ値として、新ブロックに記録されるかもしれない候補の値となります。「候補」とは、まだこの段階ではマイニングが成立していないからです。成立するには、この256桁の前にたくさんの0をつけなければならず、膨大な計算を繰り返さなければなりません。最初に受け取った『ナンス値』を変えて繰り返し計算をします。※3データから不規則なハッシュ値を生み出す関数のこと何度も計算をして、一番目にたくさんの0が並び、全体の数値もぴったりと合った『ナンス値』を見つけ出すことができたら、新しいブロックに投入することができます。他のマイナー達からマイニングの正当性を認められると、晴れて新しいブロックを繋げることができます。ここで報酬(新コイン)もゲットできます。「ある条件を満たした新しいハッシュ値を見つけること」とは、「新しいハッシュ値の条件に合ったナンス値を最も早く見つけること」です。同時にブロックが生成されたら?マイニングは、あちこちのネットワーク上で行われています。いった状況下ではほぼ同時に、新しいブロックが生成されてしまう場合も生じます。何らかの不正行為により改ざんされてしまったブロックが生成できてしまう可能性もあります。ブロックチェーンではそのような場合の対応策として、「分岐したチェーンがでた場合、『長い方』を正しいブロックチェーンとして認める」というルールがあります。かりに、一時的に分岐することがあっても、『長い方』のブロックチェーンを選ぶルールによって、同じ取引情報を共有できる仕組みになっています。P2Pとは?ブロックチェーンの「分散化台帳システム」は「P2Pネットワークシステム(以後P2Pと称します)」とも言います。ビットコインのホワイトペーパーにあるようにP2Pはビットコインの基盤となるシステムです。P2Pのネットワーク上でトランザクションが公開され、誰でも確認できるのもP2Pシステムがベースとなっているからです。System(ビットコイン:P2P電子マネーシステム)https://bitcoin.org/bitcoin.pdfまず「P2P」を説明する前に、その対照システムである「クライアントサーバー型ネットワークシステム」について説明します。巨大なサーバー(コンピューター)が一括して情報やデータを管理し、必要に応じてクライアント(ユーザー)の通信端末(パソコンやスマホ等)に情報を提供するネットワークシステムです。ポイントはサーバー(サービスする側)とクライアント(サービスを受ける側)が別物という点です。「クライアントサーバー型ネットワークシステム」の問題サーバーは常時、情報やデータの管理をし、クライアントの要求に応えなければならないため、負担が大きいのが特徴です。処理が遅れたり、サービスの質が落ちたりすると、最悪の状況としてサーバーがダウンしてしまうこともあります(スケーラビリティ問題)。いったサーバーの不具合を改善するため誕生したのが「P2P」です。「P2P」P2Pは、“peer-to-peer(ピア・ツー・ピア)”の略で、“peer”は「同じ立場にいるもの、同格のもの」、“to”は「~へ」の意味です。“peer-to-peer”は「同格の立場のもの同士のやりとり」で、同じ立場にあるユーザー同士が情報を提供したり、取引を直接に行ったりする方法のことです。IT用語で知られていましたが、ここ数年は、仮想通貨界隈で頻繁に使われるようになりました。このシステムのポイントはサーバー(サービスする側)とクライアント(サービスを受ける側)が同一である点です。中央にサーバーのような管理者は存在せず、信頼関係をもったもの同士がお互いに情報やデータを提供したり、提供されたりする役割を担う、分散型ネットワークシステムであるということです。「管理者のいない(トラストレス)な環境」をモットーとしているブロックチェーンがP2Pとコラボレーションするのは自然の成り行きであるといえます。P2Pは3つの世代ごとに分けられます。ハイブリットP2Pその名の通り、クライアントサーバー型とP2P型のハイブリット(混合)のシステムです。サーバーの役割を担う、データ検索用の「インデックスサーバー」とクライアントである通信端末の関係で成り立っています。「インデックスサーバー」はデータの所在情報を持っていて、その探索だけをします。通信端末は端末同士で「インデックスサーバー」から届いたデータのやり取りをします。ピュアP2Pデータ探索用の「インデックスサーバ」のない通信端末だけが存在するシステムです。データのやり取りはこの通信端末同士で行います。従来のP2Pのシステムにある通信端末同士のやり取りのみで支えられているシステムです。スーパーノード型ハイブリットP2PハイブリットP2Pの特徴をもちつつ、「インデックスサーバー」のようなものが存在しません。その代わりに「スーパーノード」と呼ばれる、処理能力の高いリーダー的な存在の通信端末がデータの所在情報をもち探索します。データのやり取りは通信端末同士です。「クライアントサーバー型ネットワークシステム」では、サーバーが停止してしまうと、システム全体が停止してしまいます。これを「ダウンタイム」と言います。「P2P」ですと、管理しているユーザーが分散されているので、スケーラビリティ(拡張性)が高く、かりにどこかのユーザーがハッキングを受けたとしても、システム全体が停止することがありません。これを「ゼロダウンタイム」といいます。高速な処理が可能ノード同士での直接データを取引するため、一旦、サーバーに預けてからダウンロードするといった余計な手順を踏む必要がながなく、素早い取引が可能です。中央に管理者(サーバー)が存在しないため、通信回線費用などの手数料がかからない、あるいは安価ですみます。匿名性を確保しやすいデータが分散されているため、情報の匿名性を確保しやすいです。P2Pはデータの情報を分散化させて、各々のユーザーに管理されているので、個人のダメージが原因で、全体もダメになることはありません。外部の攻撃に強いとされています。デメリットも存在します。次はP2Pのデメリットについて見ていきます。ビザンチンって?将軍って?と、P2Pやブロックチェーンと関係あるの?」と思うことでしょう。