仮想通貨で使われるブロックチェーンの仕組みをひとことでいうと…?
暗号資産・仮想通貨の話とブロックチェーンはセットでよく話になるけど、本当はよくわかっていないんよな…
ブロックチェーンって何?ブロック、チェーンもよくわからん!!
ざっくりしたイメージでいいからブロックチェーンについて知りたい…
こんにちは。たろぽんずです。
暗号資産(仮想通貨)の投資・投機をしていると “ブロックチェーン”という言葉がたびたび出てきます。
ブロックチェーンはブロックと呼ばれる単位でデータを管理し…という説明はよく見ますよね。
正直よくわからないですよね…。わたしも最初はよくわかりませんでした。
しかし、投資をするからにはちょっとくらいは仕組みについて知っておきたい方はいるのではないでしょうか。
そこで、今回はブロックチェーンの仕組みについて少し深堀して説明していきます!
ブロックチェーンの構成要素
ブロックチェーンは主に次の3つで構成されています。
- 取引データ
- 一つ前のブロックをハッシュ化した値
- ナンス値


取引データはなんとなくわかるけど、ハッシュ化した値…?
ナンス値…?
???
一つ一つ説明していきますね。
取引データ


誰がいくら持っているか、もしくは、誰が誰とどれぐらいの取引をしたか記録されているデータです。
例えば、金貨をどれくらいみんなが持っていて、AさんからBさんに2つの金貨を渡しましたというような記録が書かれている部分です。



台帳データの方がしっくりくるかもしれませんね。
一つ前のブロック情報をハッシュ化した値


簡単に言うと、チェーンのつなぎ目になる部分(点線部分)です。
この部分のおかげで過去の取引情報などのブロックを鎖のようにつなげることができます。
ハッシュ化については後ほど詳しく説明します。



チェーンのつなぎ目の部分だと思ってください
ナンス値
ナンス値はブロックをチェーンでつなぐことを可能にするの部分です。
ナンスは“number used one”の略で、一度だけ使われる数という意味で、この数値自体には意味のないデータです。
具体的な役割は後で詳しく説明します。
大きく分けると、この3つがブロックチェーンの登場人物です。
では、ハッシュ化・ハッシュ値、ナンス値について役割を説明していきますね。
ハッシュ化・ハッシュ値とは?
ハッシュ値とは、文字や数字のデータをハッシュ関数にかけて返ってくる値のことです。
ハッシュ化はデータをハッシュ関数に入れてハッシュ値を得ることです。



ハッシュ関数???
…もう少し簡単に・分かりやすく具体的に説明します。
まず関数について説明しますね。
関数はひとことでいうと、自動販売機です。
コインを自動販売機に入れてボタンを押すと、ドリンクが1つだけ出てきますよね。
それと同じで、ある文字や数値(元データ)を関数(ハッシュ関数)に投げると一つの結果が返ってくるもの(ハッシュ値)が返ってきます。



パッとイメージがつかめないと思うので、一度実際に自分で好きな文字・数字をハッシュ化してみましょう!
例えば、こちらのサイトにアクセスして、適当な文字や数字を入力すれば簡単にハッシュ値を生成できることができます。
例えば“ととろ”をハッシュ化(SHA256:関数の一つ)すると
“4b403ab582291a693b35c740deafcceee9704cac19f9d7d66847078d74c22549”になり、この値がハッシュ値といわれるものです。
ハッシュ値は次の特徴があります。
- 少しでもデータが変われば、生成するハッシュ値が大きく変わる
- 元のデータが同じであれば生成するハッシュ値も同じ
- ハッシュ値から元のデータを特定するのは極めて困難
少しでもデータが変われば、生成するハッシュ値が大きく変わる
また、上記では“ととろ”をハッシュ化しましたが、“とろろ”をハッシュ化すると全く別のハッシュ値が得られます。
- ととろ⇒4b403ab582291a693b35c740deafcceee9704cac19f9d7d66847078d74c22549
- とろろ⇒99f6d8845799733b3ac5cf3952d470197ed3d24412c0e0c2e26d4f6ea542077f
このように1文字でも変わると得られるハッシュ値が大きく変わるのも特徴です。
データが変われば、生成するハッシュ値が大きく変わる
こちらも実際にやってみましょう。
同じことを書くことになるのでここでは書きませんが、同じ文字を入力すれば同じハッシュ値が得られます。
ハッシュ値から元のデータを特定するのは極めて困難
実際にハッシュ化してみると分かると思いますが、元データからハッシュ値を生成するのはとても簡単です。
ハッシュ値から元データを出すのはかなり困難とされています。
”ととろ⇒4b403ab582291a693b35c740deafcceee9704cac19f9d7d66847078d74c22549”は簡単ですが、
”4b403ab582291a693b35c740deafcceee9704cac19f9d7d66847078d74c22549⇒ととろ”に変換するのは非常に困難です。
ナンス値の役割~ブロックをチェーンで結ぶための値~
ナンス値はある条件(≒ブロック同士をつなぐ条件)を満たすように計算される値です。
例えばビットコインの場合、ナンス値の条件が決められています。
それは、ナンス値を含むブロック情報のハッシュ値が数桁連続で0が続くことです。


この条件を満たすナンス値を求めることをマイニングといい、そのナンス値はブロックに格納されて次のブロックとの懸け橋となります。
ブロックチェーンが改ざんできないと言われている理由
過去の取引データを改ざんしようと、ブロックデータのハッシュ値が変わり、以降のブロック中のハッシュ値が000…でなくなります。
これを解消するために以降のナンス値をすべて計算してマイニングする必要があります。
しかしながら、一つのナンス値を求めるだけでも労力がかかるのに、すべてのナンス値を求めるのは実質的に不可能といえるという仕組みです。
さらに、既存のブロックとチェーンがある状態で改ざんしようとするとかなりの電気代・計算機が必要になるのでほぼ不可能といわれています。
まとめ
今回はブロックチェーンの仕組みについて紹介しました。
ブロックチェーンはハッシュ値、取引データ、ナンス値で構成されています。
暗号資産の投資をするならブロックチェーンのざっくりした仕組みを理解の一助となればさいわいです(^-^)