【ブロックチェーン】仕組みと中身を分かりやすく解説

仮想通貨と聞くと『金融商品』のイメージが否めない。ビットコインが決済に使えるように開発されましたが、ボラテリティ(価格変動)が大きいため中々使うまでには至らなかった。その中でもエルサルバドルがビットコインを法定通貨に認めたり、一部決済に使われ始めたりと実用化が進んできています。

『金融商品』のイメージが強いのは取引所に現在の価格、前日との比較がされることでしょう。

ただ、世界的にも取引されて注目しているのは事実。注目されている元の根源としては仮想通貨に使われている技術であるブロックチェーンである。

取引はしているけど、ブロックチェーンがどういった技術なのか知らない人が大半なのでは?と思い、拙者も知らなかったので調べてみました。

調べた内容をまとめましたので知らない人、知りたい人は是非読んでみてくださいませ。

スポンサーリンク

仮想通貨とは(初心者用)

知っている人は飛ばしちゃってください。

仮想通貨はネット上で利用できる暗号化された電子通貨です。銀行のような中央で管理する企業や組織などをもたず、相互決済を可能にする仕組みを可能としたもの。

2008年にサトシナカモト(satoshi nakamoto)の名前でビットコイン:ピアツーピア電子キャッシュシステムという論文名で紹介され、2009年から使用されるようになったのがビットコインです。

ちなみにサトシナカモトについては個人名なのかグループ名なのか、今だ解明されておらず謎に包まれている。

ビットコイン以外にもゲーム内で使用できるコインなどが開発されている。その総称をアルトコインという。

 

ブロックチェーン技術

取引データをひとつのブロックと見立てて、ネットワークユーザー同士で取引履歴を共有し、ブロック同士をチェーンのようにつないで蓄積する構造となっている。

ざっくりですが、ここまでは知っているという人は多いはず。では、その技術の詳細を解説していきます。

ブロックの中身

まずブロックの中身について見ていきます。ブロックの中でも特別なのがジェネシスブロックになります。ジェネシス(起源)にちなんで、一番最初のブロックを表します。

ビットコインのジェネシスブロックの中身がこちら。

https://www.blockchain.com/を参照

ビットコインは2009.1.4 03:15にサトシナカモトにより作成され誕生しました。これがジェネシスブロックの中身の情報になります。では、生成方法を中身の情報とともに見ていきましょう。

ブロックの生成方法

誰が、誰に、いくら送金したかの取引した際のトランザクション(取引履歴)がある程度集まるとひとつのブロックとして生成されます。ここではビットコインを例にします。ブロックの生成のことをマイニング(採掘)といい、膨大な計算のもとに生成されます。

この計算にはハッシュ関数というものが用いられており、任意の長さの原文から規則性のない固定された長さの文字列を生成する関数となります。

何を言っているか分からないと思うので、先程のジェネシスブロックを見ると先頭にハッシュという文字があり、右に数字とアルファベットの混じった64の文字列があります。これはハッシュ値と呼ばれるものです。

ハッシュ関数にも種類があり、ビットコインにはSHA-256が採用されていて64の不規則な文字を生成します。専門の知識を要するので例を挙げます。

例え話になりますので、デタラメな文字を使っていきます。【コイン】という文字をあるハッシュ関数を使って変換します。

64の不規則な文字列に変換されました。ハッシュ値に変換される前の【コイン】は平文(元の文章)といいます。

このハッシュの用途は主に

・検索の高速化
・データ比較処理の高速化
・改ざんの検出
・パスワードの管理
に使われています。ただし平文をハッシュ化できても、ハッシュ値を平文には戻せません。
ハッシュ値を生成するのには、ノンス Nonce(ナンスともいう)を用います。ノンスとはNumber used onesの略で一度だけ使う値となります。ノンスも不規則な数字が並んでいてハッシュ関数に代入し、ハッシュ値が生成しています。

ジェネシスブロックのノンス

新たなハッシュ値を生成するには前のトランザクション(取引履歴)が必要になります。
では、ジェネシスブロックの次のブロックを生成するとします。その時にジェネシスブロックのトランザクション(取引履歴)が必要になります。
ノンスを用いてハッシュ関数で計算するのですが、ジェネシスブロックのハッシュ値より小さい値になればブロックが生成されます。ハッシュ値が小さい、大きいといったことを難易度といい、複雑なのでここではある条件をクリアすればブロックが生成され、クリアできなければ失敗という表現を使います。
失敗しても新たなノンスを使って計算することが可能で、条件をクリアするために無作為にノンスを何兆回と入力し、計算してようやくブロックが生成されます。
ビットコインでは約10分でひとつのブロックが生成されています。ノンスの値でブロックの生成が決まるのです。ノンスの値をランダムに決めて、手当り次第に膨大な量の計算をこなさなければなりません。
この計算をするためにハイテクなコンピュータを使っており、高速で計算していくためかなりの電力が消費され、これも環境問題として課題に挙げられています。
このように計算する業者がおり、マイニング(採掘)する者をマイナーと呼びます。
計算してある条件を一番最初にクリアしてブロックが生成できたマイナーには報酬が送られます。報酬はどこからくるのかというとビットコインを取引した時に発生する手数料がそのままマイナーへ送られます。
この報酬を手に入れるために日々マイナーは計算をし、他のマイナーと計算能力の速さを競っているのです。
そして生成されたブロックは全てのトランザクション(取引履歴)が有効かつ未使用であることが確認され、問題がなければブロックをチェーンに繋ぎます。この新しいブロックは全ノードへ送信され共有されます。

合意形成

コンセンサス(合意)アルゴリズム(計算方法)と呼ばれており、ブロックを追加する際のルールを作り合意形成をとることをいいます。

ビットコインは取引を承認するためにマイナーの膨大な計算処理能力によって合意形成を行います。このことをPoW(Proof of Work)といいます。マイナーの中には悪意のある者もいるため、改ざんなどができないようにわざわざ複雑な計算をしないと承認できない仕組みにして合意形成を図っています。

コンセンサスアルゴリズムには様々な種類がありますが、当記事では省略します。

コンセンサスアルゴリズムについて詳細記事はこちら。

ブロックが同時に生成された場合

では、ある条件をクリアしてブロックが同時に2つ生成された場合どうなるかを解説していきます。このようなことは往々に考えられるため対策がされているのです。

2つ生成された後も取引がされていくので、また新たなブロックを生成しなければいけません。ひとつのブロックから二つのブロックが生成されることをフォークと言います。食卓で見るフォークの先が由来になります。

2つのブロックにもまたブロックが生成されるのですが、新たなブロックを生成されるのが速いが採用され、生成できなかったブロックは破棄されてしまいます。

電子署名

ビットコインを送金する側は、送金者本人であることを証明するために電子署名をします。このときに『秘密鍵』と『公開鍵』と呼ばれるペアとなるキーが作成されます。
ある平文を秘密鍵を使って暗号化(ハッシュ値)し、公開鍵を送金相手に送信します。秘密鍵を使って暗号化(ハッシュ値)した文字は公開鍵によって元の文章に復元できるため、送金した人が秘密鍵を持っていてビットコインのデータを送信した人ということが分かり、ここで本人確認の証明が完了します。
このようにして安全に取引ができるようになっています。
この性質を使って外部からパスワードを読み取られないように不規則な文字列へ変換して、悪用させるのを防ぐといったことに使われています。また、電子メールなどにも採用されています。
秘密鍵 署名者が使用
公開鍵 送信相手が使用※ただし秘密鍵から公開鍵を生成できるが、公開鍵から秘密鍵は生成できない。

まとめ

ネット上で通貨を作ってもハックング等の盗難に遭ってしまうため、安全に取引ができないといった課題がありましたが、ブロックチェーン技術のおかげで実現することになりました。

ハッシュ、電子署名、コンセンサスアルゴリズム(合意形成)、他には個人間でデータのやり取りを行うP2Pの技術を駆使してブロックチェーンが成り立っています。将来的に仮想通貨だけでなく様々な分野でも活躍が期待できる技術です。

ただブロックチェーン技術ができてから10数年と歴史も浅く改善も必要なのも事実です。

取引だけで終わりではなく根本を知っておくと、より仮想通貨に対して興味も湧くことでしょう。是非この記事で知識を深めてみてください。

最後まで読んで頂きありがとうございます!

ご意見等ございましたら下記に記載願います!

 

コメント

タイトルとURLをコピーしました