さて、仮想通貨についてお話をしていると度々出てくる「ブロックチェーン」
これは果たしてどういう物なのでしょうか?
仮想通貨ごとに創意工夫もありますが、ここではビットコインを例に紹介したいと思います。
<ビットコインのブロックチェーン>
さて、ビットコインのブロックチェーンには、ビットコインの一番最初の取引記録から今までの全てが記入されており、このデータはビットコインウォレットのすべてに同じコピーがあります。
ブロックチェーンというのは、やりとりの記録が延々と連なっているもので、複数の取引のかたまりが「ブロック」で、それが繋がっている様子が「チェーン」なので、ブロックチェーンという名前になっています。
これのどれか一つに侵入し、ハッカーが書き換えようにも、異質データとして拒否されてしまいます。
一つ一つのブロックには通し番号があります。
これは必ず連番になるため、途中が抜け落ちることがありません。
内容は公開されていますが、誰も内容を改竄することができません。
世界中のノードに同じデータがコピーされ、公正に世界中でその後のやりとりが監視され続けます。
中央サーバがなく、世界のあちらこちらのコンピュータにまったく同じデータのコピーを作っているので、災害やハッキングなどの事故に大変強くなっています。
ブロックチェーンのデータは、独立しているのではなく、かならず前後関係が紐付けられているので、途中の一部内容だけを改ざんすると、その後に続くデータに矛盾がおきます。
一瞬のうちに全てのデータを改ざんすることはほぼ不可能なため、ハッキングが成立しないことになります。
<ブロックチェーンのしくみ>
ビットコイン(BTC)のブロックチェーンには、記録のかたまりのブロックが連なり、そしてひとつのブロックには、大きくわけて5種類のデータが記録されます。
・時刻スタンプ
・取引の内容
・1個前のブロックから出たハッシュ
・Nonce
・その他のメッセージ
ビットコインでは約10分間でデータは1個のブロックにまとめられます。
これを完成させるために、前ブロックが作ったハッシュ値を使います。
このハッシュを得るためにはNonceと呼ばれる数字を求めてマイニングが行われます。
ナンスとは、ゼロを連続して一定数並べるた情報で、ほとんど意味がありませんが、これに正解しないと報酬がもらえなくなっていますので、マイナー(マイニングをする人々)たちは真剣に行います。
マイナー(採掘者)は、自分のコンピュータと電力を使って計算を行い、ブロックヘッダーのハッシュのゼロ連続値(ナンス)を見つけようとします。
そしてナンスが発見すると、マイナーは微量なビットコインがもらえます。
これはいわば「早押しクイズ」です。
面白いのは、マイニングがビットコインの取引の内容が正しいかどうか計算しているのではなく、「一番最初にクイズに正解する」ためにやっているという点です。
<ブロックチェーンの直面する問題を解決する新技術>
世の中に仮想通貨がどんどん普及し、ユーザーやノードが増えていくに従って、処理速度の低下やトランザクションの遅延が問題になってきます。
このため、ビットコインやイーサリアムなど規模の大きな仮想通貨では、現在以下のような解決手段を模索しています。
ここでは、もっとも規模が大きく、様々なスケーラビリティ問題に直面しているビットコインとイーサリアムでの実例を紹介していきましょう。
<Segwitの実装>
「セグウィット」(Segwit)とは、トランザクション内部の署名データを「ウィットネス(witness)」という新エリアに書き写す方式です。
仮想通貨のブロック内にある取引データを分析すれば、基本的には1.インプット 2.アウトプット 3.(複数の)電子署名データのパートに分けることが可能です。
インプットというのは簡単に言えば「送信者の情報」で、逆にアウトプットは「受信側の情報」となります。
セグウィット(Segwit)方式は、それに続く電子署名データ部のみを別途処理することで、ブロック内の取引データを圧縮することができるというものです。
ビットコインにおいては、各ブロックチェーンの1ブロックあたりの容量はわずか1MBとしかありません。
これはトランザクションの遅延を防ぐためにあえてこうしているのですが、それでも現在のビットコインのようにあまりにも多くの人々が送金を繰り返しているため、ネットワークの速度が低下してきています。
またそれによりトランザクション処理が遅延すると、急いで処理するために規定の送金手数料より高い額を払い、優先して処理してもらおうとすることになります。
そうなればどんどん送金手数料の相場が上がっていきます。
セグウィットを採用することにより、1つのブロックにより多くのデータを収納することが出来るようになり、前述したスケーラビリティ問題を解決出来ると期待されています。
ちなみに、「ブロックサイズを単純に大きくすればいいではないか」という思想も根強くあります。
1ブロックのデータサイズを大きくすることで、1ブロックに記録できるトランザクションの数を増やすということです。
実際に、ビットコインからハードフォークして誕生した新しいコインであるビットコインキャッシュは、ブロックサイズが最大8MBにまで拡大されます。
このブロックサイズ拡大により、BCH(ビットコインキャッシュ)のユーザーには送金も元祖ビットコインに比べスピーディーに行えるようになり、送金手数料も同時に下がるという恩恵を受けています。
<ライトニングネットワーク(LN)>
「ライトニングネットワーク」というのは、ブロックチェーンにすべてを書き込まないで、一部の情報を「オフチェーン」にする技術です。
仮想通貨は基本的に、すべてブロックチェーンにデータが記載される事で存在証明、確認ができます。
ブロックチェーンありき、なのですが、オフチェーンの思想は、全部をブロックチェーンに書き込まず、「この取引は別紙に記す。」というメモだけをブロックチェーンに書き、「別紙」は他のデータに残すということです。
具体的には、「ペイメントチャネル」という、支払い者と受け取り者の間の情報を同一仮想通貨ネットワーク内に流していくことで、トランザクションの高速化ができるというものです。
ペイメントチャネル内での取引はブロックチェーンには無く、これをオフチェーン処理(上記の例のように「別添資料に書いてある。」とする)します。
その結果ブロックのデータ量が減り、トランザクションが「軽くなる」というわけです。
ペイメントチャネルとは、やり取りする金額をあらかじめ入金(デポジット)して、その限度額内で両者で自由に送金をし、この記録はオフチェーン処理します。
最後にこのペイメントチャネルを終了するときに、最終結果のみをブロックチェーンに書き戻すのです。
「オフチェーン」について、単純化して表現すれば、例えばこのようになるでしょう。
「5/3にママがケンちゃんに100円渡した。5/4にケンちゃんがお釣りの20円を返した。5/5にママがケンちゃんに130円渡した…」という記録を、いちいちおうちの家計簿にびっしり書き込むのではなく、「5/3にママからケンちゃんへのお小遣い:今月は最大で500円渡す。詳細はケンが別のメモに書いておく。」とだけ書いて、毎日の細かなやり取りはこの家計簿には書きません。
その後、家計簿には「5/25 今月は480円だった。」と書きます。
その間の「500円のお小遣いメモ」については、別の紙にケンちゃんが自分で「5/3に100円、翌日20円返した、次の日に130円もらった…」と書いていきます。
家計簿にびっしり書かないで「ケンちゃんのお小遣いは最大500円。月末に残高を書く。以上」ってママの家計簿に書いておくだけ。
ケンちゃんは自分の小遣い500円の使いみちは自分のメモに書いておく、家の家計簿は500円渡したことにしてその範囲ならご自由に、と書きましょう、何から何まで家計簿に書き込まなくてもいいでしょう。
というやりかたが、「オフチェーン」スタイルです。
このようにすることでライトニングネットワークを採用する仮想通貨のトランザクション処理速度が高速化すると言われています。
しかし、これはそもそも「すべてがきっちりとブロックチェーンに書き込まれており、改ざんのしようがない価値保全の方法」という、当初のビットコインで採用したブロックチェーンの思想から外れています。
上記の例で言えば、ケンちゃんがきちんとメモをつけていなかったら、おかしくなってしまいます。
この他にも、様々な方法で仮想通貨が直面する問題を解決しようとしていますが、一長一短であり、決定的な解決策がまだ無いのが現状です。
今後も、仮想通貨の動向には留意していく必要があるでしょう。