NFTでも使用されているブロックチェーン技術を素人がまとめてみた
こんにちは、グリチキです。
前回、NFTに触れる記事を書いていましたが、NFTで使われている
ブロックチェーン技術について「改ざんされない技術」ぐらいしか分からないので勉強のためにもまとめていきたいと思います。
前回の記事はこちら
ブロックチェーンの名前しか分からない人(自分含む)が少しでもイメージ掴めたら嬉しいです。
◯ そもそもブロックチェーンとは
ブロックチェーンとは、仮想通貨「ビットコイン(Bitcoin)」を構成する中核技術の一つであり、インターネットでつながったP2P(Peer to Peer:ピア・トゥー・ピア)ネットワークの参加者同士が取引履歴を共有し、相互に監視することで、信頼性を担保し、データの改ざんを防ぐ技術のことを指す。
イメージがこんな感じです。
従来のネットワークは、管理者が存在し取引データをまとめて管理している中央集権型。
一方、P2Pネットワークは、個々のシステムが繋がっている状態で
ネットワーク内の取引データを持っている状態になります。
後にも説明しますが、従来のような中央集権型の場合、管理システムがダウンしたり、悪意のあるユーザーが情報を改ざん、削除してしまう可能性があります。
P2Pネットワークでは相互に監視している状態にあるので、一人のシステムがダウンしてもネットワーク内の他の人のシステムが稼働していればデータを復旧することができます。
また、データの改ざんや削除は一時的にはできますが、他のシステムのデータと差異がないか比較することで正しいデータを担保することができる利点があります。
◯ ブロックチェーンの構造
データを共有したり不正されないことはわかったけど、実際にどんな感じで動いているかをみていきましょう。
図をみるとブロックごとにいくつかのデータを持っていることがわかると思います。
ひとつずつみていきましょう。
■ハッシュ値
取引データとナンス値が特定の処理によってランダムな英数字になったものとここでは覚えてください。
図の「25921256・・・c531931e9」部分になります。
次のブロックには前のブロックのハッシュ値が入っているので、鎖で繋がれている(ハッシュ値が繋がっている)ような構造になります。
※厳密には「SHA-256」のようなハッシュ関数と呼ばれる操作によって変換されたもの。
■取引データ
ブロックが作成される一定時間内で行われた取引データになります。
ビットコインですと10分間に1回ブロックが作成されます。
■ナンス値
「number used once」の略称で一度だけ使用される使い捨ての数字です。
すでに前ブロックのハッシュ値と取引データは決まっているため、次のブロックのハッシュ値を決める要素として必要になるのがナンス値になります。
◯ 偽造や改ざんを防ぐ「電子署名」
ここで取引データが作成された時に出てくる電子署名について触れていきます。
簡単にするとこんなイメージです。
秘密鍵(作成者のみ知っている鍵)と公開鍵(誰でも利用できる鍵)はペアで存在します。
秘密鍵で暗号化したデータは、キーペアとなる公開鍵のみ復号(暗号を解除すること)ができます。
暗号化することで作成者のなりすましや改ざんを防ぐことができるのが
電子署名の役割です。
◯ 合意形成で正当性をとるコンセンサスアルゴリズム
最初のおさらいですが、P2Pネットワーク上の全ての人に同じデータが記録されていくと書きました。
そのデータが本当に正しいのかをどう判断しているのか疑問が出てくると思います。
ブロックチェーンでは、そのためのルールがあります。
それが「コンセンサスアルゴリズム」です。
コンセンサスは、「合意する」という意味です。
ビットコインを例にするとProof of Work(プルーフ オブ ワーク)と呼ばれる
ルールが採用されています。
Proof of Workとは、簡単に言うとゲームの勝者にその権限を与えることです。
例えばランダムで表示される数字の中から「123...」のような最初の3桁が123となる数字を引き当てた人が勝者となるゲームがあると仮定します。
ボタンを押すたびに数字が止まり、最初の3桁が123となる数字が出るまで同じ作業を繰り返します。
見事、最初の3桁が123となる数字を引き当てた人が勝者となりビットコインを発行する権利を得られます。
ビットコインを発行するタイミングでインセンティブのような形でビットコインが付与されます。
インセンティブを付与されることによって不正がなくなり、正しい合意形成が浸透することでビットコインの名が一気に広まっていくことになりました。
コンセンサスアルゴリズムは他にもあり、ブロックチェーンが使われるものによって採用されるコンセンサスアルゴリズムも変わってきます。
ここでは割愛させていただきますが下記に載っているので興味のある方は覗いてみてください。
◯ ブロックチェーンのメリット / デメリット
ブロックチェーンの仕組みについて書いてきましたが、
結局はブロックチェーンのメリットとデメリットが知りたいと思うので簡単に書いていきます。
■メリット
「不正や改ざんを防げること」
「取引データを永久に残せること」
本文で何度か登場しましたが、ネットワーク内の人の合意形成によってデータが担保されるので不正や改ざんを防ぐことができます。
また、取引データが永久的に残るので管理が面倒なものや大事な書類をデータとして残せることはメリットだと思いました。
■デメリット
「取引データを消せないこと」
「取引データが膨大になってしまうこと」
メリットにも登場しましたが取引データが永久に消えないので、間違って取引や操作をしたデータも残ってしまいます。
その点がメリットでもあり、デメリットにもなりうると感じました。
また、ブロックチェーンが今後ますます利用される場合に必然的に取引データ量も増えるので大量のデータを処理しきれなくなる日が来るのではと感じました。
そうはならないことを願っていますが。
◯ さいごに
長い間お付き合いありがとうございました。
調べていて感じたのは、ブロックチェーンを完全に理解するにはまだまだ奥が深いと感じました。
と同時にアウトプットすることがやっぱり知識の定着において大事だと体感する時間になりました。
また気になることあれば書いていきます!
参考文献
coindesk Japan
NTTデータ
それではまた!
グリチキ