筆者は現在大学生ですが、受験では国語や社会が得意で、数学や理科、英語は苦手でした。そのため当然選んだ進路は文系で、テクノロジー分野についての知識はほぼ無い状態で学生生活を過ごしてきました。
金融と技術を掛け合わせた動きを指す「フィンテック」や、インターネットとモノを繋げる「IoT」という用語を知ったのも、IT業界を見てみようと思った就活の時点です。そんな私はIT企業に就職が決まり、現在アルバイトとしてその企業でテクノロジーについての勉強をしています。
今回は、そんなITの知識が皆無に等しい大学生が、「ブロックチェーン」について一から学ぶために、2008年にビットコインを提案したというサトシ・ナカモトの「ホワイトペーパー」を読んでみました。
ホワイトペーパーを読みやすくしてみた
論文は、まず概要から始まります。この論文にはどのようなことが書いてあるのかがここには書かれており、論文の趣旨がおおよそ理解できるようになっています。
というわけで、気合を入れて読み始めたのですが、私がすんなりと理解できたのは最初の二行だけでした。「P2P」「Proof-of-work」「ハッシュ関数」などの専門用語が次々と出現したからです。早くも挫折しそうになりましたが、それでも分からない単語を一つずつ調べたり聞いたりして、なんとかざっくりと理解することができました。
本章では、それらの専門用語をなるべく分かりやすい言葉に変えたり、説明を加えたりしながら要約しています。ぜひ、気構えずに気楽に読んでみて下さい。
なにを伝えたいの?
現在のインターネット上での商業における取引は、そのほとんどを第三者の金融機関を仲介して行っています。ほとんどの場合はこれで問題ありませんが、金融機関の性質上、キャンセル出来ない取引をすることが出来ず、また小さい額での取引をすることも出来ません。
しかし、利用者同士で直接交わされる電子通貨が実現されることで、金融機関の仲介無しで決済が行われることが可能になります。ただし、それには二重に支払いがされてしまうかもしれないというリスクが混在しているのです。
このホワイトペーパーは、「P2Pネットワーク(端末の利用者同士で取引するネットワーク)の使用による二重支払い問題の解決策」を提案するための論文になります。
取引方法が大きく変わる⁉
コインの所有者は、持っているコインに電子上で署名をして、次の所有者にコインを渡します。受取人は、そこに書かれている署名を見ることで、これまでの所有者を確認することが出来ます。
しかし、この方法だと、過去のコインの所有者が二重支払いをしたかどうかを受取人が確認できないという問題が発生します。一般的には、第三者の機関が二重支払いについて確認しますが、この方法では第三者に頼っているという点で既存のシステムと変わらないものになってしまいます。
第三者を頼らないためには、過去の所有者が二重支払いをしていないことを受取人に伝える方法が必要になります。そのために、ブロックチェーンの参加者たちが取引履歴に合意できるシステムを用意しなければなりません。受取人は、取引をするときに、初めてコインが受け取られたことを多くの参加者から合意されなければならないのです。
データの存在を証明してくれる「タイムスタンプ」
システムを実現させるための方法として、タイムスタンプサーバがあります。様々な情報が合わさってできたブロックにタイムスタンプ(その日時にそのデータが確認された判子)を押し、ハッシュ値(解読が非常に難解な値)を取得します。その後、そのハッシュ値を公開する事でタイムスタンプサーバは機能します。
ハッシュ値の中には一つ前のタイムスタンプが含まれており、そのデータはその時点で存在していたということを証明してくれます。これは、タイムスタンプを行う度に、一つ前のタイムスタンプを上書きしていきます。
データの改ざんを防いでくれる「Proof of workシステム」
P2Pネットワークを基盤としたタイムスタンプサーバを実装するためには、Proof-of-Workシステム(過去のデータの改ざんを防ぐ仕組み)を使用する必要があります。これを使用することで、計算が完了した後に、再計算をしないでブロックを変更することが出来なくなるのです。ブロックを変更しようとする際には、その後に続くブロックも再計算しなくてはなりません。
Proof-of-Workにおける本人確認は、原則としてPC一台につき一票になります。そして、Proof-of-Workの計算を最もされたチェーンが、正しい値として扱われます
ブロック作成までの流れ
ブロックが作成されるまでの流れは以下のようになります。
1) 新しい取引は全PCに送信されます。
2) 参加者が新しい取引をあるブロックに取り入れます。
3) 参加者がそのブロックに対するProof-of-Workの値を算出します。
4) Proof-of-Workの値を算出次第、参加者はそのブロックを全参加者に公開します。
5) 参加者は、そのブロック内の全取引が有効かつ未使用の場合のみ、承認を行います。
6) 参加者は、承認したブロックのハッシュを直前のハッシュとして使用し、次のブロックの作成を開始することで、ブロックの承認を表明します。
もし、2つのPCから異なる2つのブロックが同時に公開された場合、次のProof-of-Workの値が発見され、どちらかのチェーンが伸びた時に、短い側のチェーンに取り組んでいた参加者は長いチェーンに切り替わります。
ブロックを作成するメリットは?
ブロックを作成した際に発生したコインは、ブロック作成者のものになります。これは、参加者がネットワークを支持する報酬になると同時に、コインを発行する機関がない中でコインを発行する方法にもなるのです。
報酬は、取引手数料によっても獲得できます。例えば、ある取引で貰う金額が支払う金額よりも少なかった場合、その差額は取引手数料としてブロック作成者の報酬になります。この方法は、参加者がルールに従って行動をする動機にもなります。
インターネットが使えないと取引の確認はできないの?
完全にPCがネットワークに繋がっていなくても、支払いの検証は可能です。参加者は、最長のチェーンの各ブロック・ヘッダーのコピーを保存しておくだけで大丈夫です。これにより、タイムスタンプが行われたブロックに関連するだけのデータが得られます。
参加者自身は取引の確認はできませんが、ネットワークに繋がっている他の参加者がその取引を承認済であるかどうかを確認でき、後に連鎖するブロックの存在でネットワーク全体が承認済かどうかを確認することができます。
コインの価値は両替することができる
コインの価値の分割や結合を可能にするため、一つの取引には複数の入金が含まれます。入金には、価値のより大きな取引からのものか、小額のものを組み合わせた複数のものとなります。一方、出金は、支払い目的のものと、釣銭があったときそれを支払い元に返すものとなります。
プライバシーはちゃんと保護されるのか?
ブロックチェーンは、全取引を公開する必要があるため、プライバシー問題に不安を覚えるかもしれません。
その解決策として、誰かが誰かにどれだけのコインを送付したかは公開しますが、その取引の当事者自体は誰にも分からないようにします。
既存のプライバシーモデルでは、利用者の情報や取引情報は仲介する第三者の機関や取引先にまで公開され、公共機関には公開されないようになっています。このモデルでは、利用者の情報と取引情報を切り離して、取引情報だけを公共機関に公開するようにします。そうすることで、利用者のプライバシーは保護されます。
悪意を持つ参加者にチェーンが乗っ取られることはあるのか?
結論を言えば、可能性はあります。しかし、悪意のある参加者がチェーンを乗っ取ることに成功する確率は、ブロックの数が増えれば増えるほどその成功率は段違いに低くなっていきます。
また、仮にそれが成功したとしても、コインを無から生成したり、攻撃者自身が所有した事のないコインを取得したり、といったようにシステムを自由に変更できるわけではありません。
まとめ
本論文では、相手の素性を知らなくても信頼して取引ができるトラストレスな電子取引のシステムを提案しました。
電子署名により生成されるコインは、所有者を明確にできますが、二重支払いの防止策無しには不完全です。その解決策として、善意のユーザーが全体の過半数を占める限り、記録した取引履歴を改ざんする事が不可能となっていくP2Pネットワークを提案しました。
参加者は自由にネットワークに離脱・再接続でき、離脱していた間のチェーンをその間の取引の証明として承認します。受信したブロックが正しいと判断した場合にはそのブロックを延長させることで承認し、間違っているブロックだと判断した場合にはその処理を拒否する事で拒絶を示します。ルールや報酬、全てこの合意メカニズムに従って実行されていきます。
ホワイトペーパーを読んでの感想
ブロックチェーンが、従来の取引のシステムを根底から覆すシステムだということは理解していただけたでしょうか。P2Pネットワークが構成できることで、第三者が間に入って取引を管理しなくても、利用者同士で自由に取引することが可能になるのです。
正直、私はブロックチェーンがビットコインに使われていると聞いて、あまり良いイメージを抱いてはいませんでした。6,500億円相当のビットコインを横領された「マウントゴックス事件」や4,600億円相当のビットコインをクラッキングされて不正送金されそうになった「The DAO事件」など、信用を大きく損なうような事件を多く起こしている記憶ばかりがあるからです。ニュースで大きく報道されたり、たびたび教育系の番組に取り上げられていたことが、そういうマイナスのイメージを抱かせていたのかもしれません。
しかし、ホワイトペーパーを読んだことで、そのイメージは大きく覆されました。
一番変わったイメージは、信頼性の高さです。「信用できないもの」というイメージが強くあったばかりに、そのギャップに非常に驚かされました。たしかに、みんなが既に情報を把握しているのであればわざわざそれを書き換えようとは思わないし、仮に実行したとしてもそれがすんなり通るとは思えません。
また、プライバシー問題についても、利用者が特定されない仕組みに感服しました。私は、システムを利用するために個人情報を多くの企業に登録しています。しかし、近年そうして登録していた企業から個人情報が漏洩していたというニュースが散見されるようになりました。それなら、第三者を介す必要のないブロックチェーンの方が信頼できるように思えてきました。
調べてみると、ブロックチェーンはビットコインだけでなく、様々なことに活用され始めています。今回はビットコインで利用されるためのブロックチェーンについて学びましたが、そもそものブロックチェーンの仕組みや他の用途に使われるブロックチェーンについても学びたいと思うようになりました。
記事提供:株式会社電縁様
東京都品川区西五反田1-21-8 ヒューリック五反田山手通ビル7階(受付6階)
事業内容:
システムコンサルティングサービス
システムインテグレーション
パッケージソフトウェアの提供
URL:https://www.denen.com/