この記事できる悩み
・ブロックチェーンの基礎知識
・ブロックチェーンの仕組みと技術が理解できる
・ブロックチェーンへの理解が深まる
こんな悩みを解決できる記事となっています。
ブロックチェーンは仮想通貨やNFTなどで利用され、改ざんが困難で透明性の高いやり取りを第三者の介入がなくできる技術です。
ブロックチェーンの仕組みを理解しようとすると、ブロック・ハッシュ値・P2Pなど様々な専門用語がでてきて理解が難しいという人も多いでしょう。
その他にも公開鍵暗号やUTOXなど理解する言葉も多いです。
この記事ではブロックチェーンの仕組みやブロックチェーで使用されている技術について1つづつ詳しく図解を交えて解説していきます。
目次
ブロックチェーンの基礎知識
ブロックチェーンは、2008年に「サトシ・ナカモト」という匿名の人物によって発表された論文が始まりです。
論文には電子通貨の二重使用問題を第三者の仲介を必要なしに実現する方法が書かれており、これがビットコインの始まりでありブロックチェーンの起源となります。
ブロックチェーンは一定の情報の塊であるブロックが1本のチェーンのように繋がっています。
ブロックにはトランザクションと言われる取引データが含まれており、ビットコインでは10分ごとにブロックが生成され、各ブロックは前のブロックのハッシュ値を参照して連結しており、ハッシュ値が改ざんされると全てのハッシュ値を変更しなければならず、事実上改ざんは不可能となっています。
また、ブロックチェーンはP2Pという通信方式で、分散型台帳技術を使い中央管理者を必要とせず、ネットワーク全体でデータを共有・管理しています。
ブロックチェーンは特定の企業や組織が管理しているわけではなく、ネットワーク全体で運営・管理しているので、いわゆる中央管理者を必要としません。これにより特定の場所に権力や情報が集中するのを防ぎ、全ての人が対等な立場でやり取りができます。
従来は、現金であれば国や金融機関の信頼の元にお金のやり取りをし、電子マネーも運営する企業の信用のもとに成り立っていましたが、ブロックチェーンはインターネット上で信頼できる第三者(国、金融機関、企業)を必要としないトラストレス(信用不要)なやり取りを実現します。
ブロックチェーンが作るトラストレス(信用不要)な仕組み
ブロックチェーンを学ぶ際、まずトラスト(信用)に関する理解が必要です。
ブロックチェーンは新しいトラストの仕組みです。
例えば、銀行にお金を預けるときは、銀行を信頼してお金を預けます。また、お金を使うときは、国を信じて1万円が1万円の価値を保つことを期待します。
サービスを利用する際も、運営企業を信頼し、個人情報が安全に扱われることを期待します。社会はトラストを基盤に成り立っており、トラストは自分のリスクを相手に託すことによって成立します。
しかし、時にはトラストが崩れることもあります。たとえば、企業による個人情報の流出や銀行の破綻などがあります。
そこで、ブロックチェーンは第三者を信頼せず、トラストレスな取引を実現します。
では、どのようなトラストの形が存在するのか4つの分類に分けて解説していきます。
リヴァイアサン型トラスト
━:トラストされている主体
〇:トラストされていない主体
→:信頼の方向
リヴァイアサン型のトラストは、信頼されている組織や枠組みがありながら、その中に信頼されていない人がたくさん存在する状況です。
私たちは国や法律という信頼できる枠組みの中で生活しています。周りには知らない人もたくさんいますが、ほとんどの人は見ず知らずの人を信用しません。
国や法律があるおかげで、自分の命や財産が危険にさらされる心配は少なく、違法な行為には罰があるため、国民同士がお互いを信頼していなくても、国や法律という信頼できる枠組みがあるおかげで安心して生活できます。
このような状況では、一般的なルールや法律に基づいて相手を信頼するリスクを取ることができます。
仲介者型トラスト
■:トラストされている主体
〇:トラストされていない主体
→:信頼の方向
仲介型トラストは、信頼できる仲介者を通じて成り立っています。
例えば、銀行やGoogleなどの金融機関やサービスを利用する際、私たちはその仲介者を信頼してお金を預けたり個人情報を渡したりします。これが仲介者型トラストの形です。
仲介型トラストでは信頼できる仲介者(第三者)がいるので、利用者同士ではお互いに信頼する必要はありません。
P2P型トラスト
●:トラストされている主体
→:信頼の方向
P2P型トラストは、特定のコミュニティ内でお互いを信頼し合う形です。
例えば、家族や会社など特定のコミュニティでは、共通の考えや倫理観によって結ばれており、そのコミュニティ内ではお互いを信頼することで成り立っています。
P2P型トラストでは、第三者が不要で個人同士で信頼関係を築きます。この形では、個人同士が自分のリスクや弱点を共有し合います。
言い換えると、「私もあなたを信用しているから、あなたも私を信用してください」という状態です。
※通信方式のP2P(ピア・ツー・ピア)とは違うので注意
トラストレス型トラスト
☁:トラストされている主体
→:信頼の方向
トラストレス型トラストは、ブロックチェーン技術によって実現された新しい信頼の形です。
これは従来のトラストとは異なり、ブロックチェーンが信頼を担うことになります。
トラストレス型トラストでは信頼の中心はブロックチェーンネットワークにあります。
ネットワークに参加する個人同士は信頼していなくても、ブロックチェーンという技術があることで信頼が生まれます。
この形では、個人のリスクや弱点をブロックチェーンネットワークに委ねることになります。
国や企業、第三者のような信頼できる存在を必要とせず、ブロックチェーンというシステムが信頼を築くことができるため、お互いが信頼しあわなくてもやり取りが成り立つのです。
ブロックチェーンの仕組みと使われている技術
ここからはブロックチェーンに使用されている技術や仕組みを1つずつ解説していきます。
ブロックチェーンにはいくつか種類がありますが、ここではブロックチェーンの原点である、ビットコインで使用されているブロックチェーンについて、図解を交えて解説していきます。
トランザクション
トランザクションとはブロックチェーン上でのやり取りを記録したデータです。
トランザクションの中には、送金者や受取者の情報、手数料、送金額、電子署名などの情報が含まれ、トランザクションは一定の量になるとブロックに追加されます。
またトランザクションは手数料の高い取引を優先的に処理され、手数料の低い取引は処理されるまでに時間がかかる場合があります。
これだと手数料の低い取引はいつまでたっても処理されないままになると思いますが、トランザクション内の一定量は、手数料に関係なく先に取引が成立したものから処理されるので、手数料が低くていつまでも処理されないという事は起こりません。
トランザクションにはいくつか種類があり、ビットコインでは「UTOXモデル」が使われ、イーサリアムでは「アカウントモデル」が使用されています。
UTOXモデルとアカウントモデルに関しては後で詳しく解説します。
ブロック
ブロックはトランザクションが格納された塊で、1本のチェーン状につながっていることでブロックチェーンが形成されます。
マイナーと呼ばれる人々がマイニングを行うことでブロックが作られ、ビットコインでは約10分ごとに新しいブロックができます。
各ブロックは「ブロックヘッダ」と「トランザクション」の2つの部分で構成されています。ブロックヘッダにはブロックの情報が含まれ、トランザクションには取引データが入っています。
ビットコインのブロック容量は最大で1MBであり、ブロックヘッダは約80バイトのサイズです。
それぞれのブロックは、前のブロックのハッシュ値を参照することでつながっており、このつながりをたどると最初のブロックであるジェネシスブロックまでたどることができます。
ハッシュ値
ハッシュ値は、ハッシュ関数によって生成される数字のことです。この値は、入力されたデータの大きさに関係なく、一定の長さの文字列で表現されます。
ブロックチェーンでは、トランザクションの内容をハッシュ値として生成し、それがブロックヘッダに含まれます。各ブロックは自身のハッシュ値と前のブロックのハッシュ値を保持しています。
各ブロックは前のブロックのハッシュ値を参照することにより繋がっています。
ハッシュ値の一番の特徴は不可逆性があるところです。
同じ入力値であれば必ず同じハッシュ値が出力されますが、ハッシュ値からもとのデータを割り出すことは不可能です。
また入力されたデータが1文字でも違うと全く違うハッシュ値が出力されます。
これにより悪意のある人が改ざんをしようとしても、1つのブロックのハッシュ値を変えると全てのブロックのデータを書き換えないといけないので、実質改ざんは不可能となっています。
ブロックのデータが改ざんされたらどうなる?
ブロックチェーンは、最も長いブロックを正しいものと見なします。
例えば、悪意を持つ人がブロックチェーンを改ざんしようとする場合を考えてみましょう。
その人は自分の改ざんしたブロックチェーンを正当化したいので、熱心にマイニング計算を行います。
しかし、同時にブロックが生成されるとブロックチェーンが分かれ、より長いブロックチェーンが正しいものとされます。
改ざんを試みる人は自分のブロックを最長にしようとしますが、他の参加者と競争してマイニングを行うため、自分が毎回マイニング競争で勝つ確率は限りなくゼロに近いです。そのため、実際には改ざんは不可能となります。
P2P
P2P(ピアツーピア)は、サーバーを経由せずにデバイス同士が直接通信する方法です。
クライアントサーバー型では、情報を取得するために中央のサーバーに問い合わせたり、他のユーザーとのやり取りもサーバーを介して行います。ユーザー同士が直接通信することはありません。これは中央集権的な通信方法です。
一方、P2Pではネットワーク内の各ノード(デバイス)が役割を担い、全てのノードが同じ権限を持ち直接通信を行います。データや権限が一箇所に集中しないので、分散型の通信方法です。
P2Pではサーバーがないためアクセスが集中しても問題なく使用でき、特定のノードが停止しても通信は継続できます。
また、中央管理者がいないためコストを抑えられ、匿名性も高まります。
このP2P技術は、過去にWinnyなどでも使われていたことで有名です。
分散型台帳技術(DLT)
分散型台帳技術(DLT)は、みんなで同じ台帳(データ)を管理・共有する仕組みです。
ブロックチェーンでは参加者全員が同じ台帳を持ち、特定の人だけが台帳を管理する中央管理者はいません。
台帳が更新されると、全員にその情報が伝わります。
この仕組みにより誰かがデータを改ざんしても、他の参加者が持っている台帳と異なることがすぐに分かるので、不正を防ぐことができます。
従来の中央集権システムでは、ユーザーがデータの信ぴょう性や改ざんされていないか確認できずデータの信頼性が不透明でした。
ブロックチェーンではP2Pネットワークで分散台帳技術を利用することで、取引の透明性を確保しています。
マイニング
マイニングはトランザクションを1つのブロックにまとめて、新しいブロックを作りそれをブロックチェーンに追加する作業です。
マイニングには大量の計算が必要で、世界中のマイナー(マイニングする人)同士が競い合います。
ビットコインでは10分ごとにマイニング競争が行われ、最速で計算を解いた人がブロックを作る権利を得ます。
ブロックを作った人は、マイニング報酬として仮想通貨をもらえます。
現在のビットコインブロックチェーンのマイニング報酬は「3.125BTC」です。
公開鍵暗号
公開鍵暗号は、デジタルデータを安全に送受信する方法です。データを送る人と受け取る人以外は内容を見ることができず、データが盗まれても内容が漏れる心配はありません。
公開鍵暗号では、受信者側が「公開鍵」と「秘密鍵」の2つを作ります。ここで大事なのは、秘密鍵がないと公開鍵で閉められたデータの入った箱は開けることができないことです。
秘密鍵は受け取る人だけが持っていて、データが盗まれても鍵を持っていない人は中身を見ることができません。
①データを受信する人が「公開鍵」と「秘密鍵」を作成します。
②データを送ってほしい人(送信者)に公開鍵だけ送り、送信者は作成したデータを箱に入れて公開鍵で鍵をかけます。
③送信者はデータの入った箱を受信者に送り、受信者は秘密鍵で箱を開けて中身を取り出します。
電子署名
電子署名とは送られてきたデータが誰によって作成され、その作成者は本当に本人なのか確認する方法です。
電子署名も公開鍵暗号と同様に「秘密鍵」と「公開鍵」を作成しますが、公開鍵暗号と違うのは電子署名では送信者が2つの鍵を作成するということです。
送信者は「秘密鍵」と「公開鍵」の2つを作成し、秘密鍵で署名したデータを暗号化します。秘密鍵で暗号化されたデータは一緒に作成された公開鍵でしか復号できません。
①署名をする送信者が「秘密鍵」と「公開鍵」を作成します。
②送信者は公開鍵と署名データを受信者に送り、受信者は公開鍵でデータを復号し間違いがないことを確認します。
ビザンチン将軍問題
ビザンチン将軍問題は、悪意を持った人がいる状況でお互いを信頼する方法についての問題です。
ブロックチェーンはビザンチン将軍問題を解決するために、仕組みとルールを活用して信頼性を確保しています。
ブロックチェーンでは不特定多数の参加者がネットワークに参加していおり、お互いの正しさを確認するための中央管理者が存在しません。その代わりに、ブロックチェーンネットワークではブロック生成の際にルールが設定されており、参加者はルールに基づいて行動し信頼性を確保します。
例えば、不正なブロックを生成しようとする参加者がいた場合、そのブロックは他の正常な多数の参加者とのマイニング競争することになり、敗れる可能性が高くなります。
ブロックチェーンではトランザクションの検証をしないと次のブロック生成ができないため、不正なブロックを生成するよりも次のブロックを生成してマイニング報酬を得る方が合理的であり、ブロックチェーンでは経済的合理性を重視するため、多数派がルールに従った行動を選択します。
このように、ブロックチェーンではルールに基づいた仕組みによって信頼性を確保し、ビザンチン将軍問題を解決しています。参加者はルールを守ることで信頼を築き、ネットワーク全体の安全性と信頼性を確保する仕組みです。
UTXOとアカウントモデル
ブロックチェーンでは仮想通貨の残高を確認する方法に「UTXOモデル」と「アカウントモデル」の2つがあります。
ビットコインではUTXOモデルが使用され、イーサリアムではアカウントモデルが使用されています。
どのような違いがあるのか解説していきます。
UTXOモデル
UTXO(Unspent Transaction Output)は、一旦全ての残高をインプットに渡し、送金した後の残高を再度アウトプットから自分のウォレットに戻します。
UTXOモデルでは、送金のたびに新しいウォレットアドレスが使用されるため、個人を特定することが難しく匿名性にすぐれています。
また、複数のトランザクションを同時に検証できるためアカウントモデルに比べスケーラビリティにすぐれています。
送信者(ウォレット残高:1BTC)が受信者に0.3BTC送る場合の例をみてみましょう。
①送信者はウォレット残高の1BTCを全て、インプットに渡します。
②アウトプットで、受信者に送る0.3BTCと残りの0.7BTCに分けられます。
③受信者に0.3BTC送られ、残りの0.7BTCが送信者に返されます。
UTXOモデルの特徴
・匿名性が高い
・複数のトランザクションを同時に検証できる
アカウントモデル
アカウントモデルは、単純に送金する額のみ自分のウォレットから送ります。
送金のたびに新しいウォレットアドレスを使用するUTXOと違い、アカウントモデルは1アカウント毎に署名や残高が管理されるので少ないトランザクション容量ですみます。
また、アカウントモデルは柔軟性があり、DAppsやスマートコントラクトなどに柔軟に対応できるメリットがあります。
アカウントモデルの特徴
・小さなトランザクション容量
・柔軟性がある
まとめ
今回はブロックチェーンの仕組みや使用されている技術について解説してきました。
なんとなく聞いたことはあるけど理解できていなかった部分まで、理解できたのではないでしょうか。
ブロックチェーンは従来にはなかった新たな信頼の形を築き、改ざんが不可能で透明性の高いやり取りを可能にし、仮想通貨やNFT、DAppsなど多くの分野で利用されています。
インターネット以来の革命と言われるブロックチェーンは、今後も様々な分野で利用されていくでしょう。