(主にビットコインの)ブロックチェーンについてざっくり解説
みなさんこんにちは、クリプト大好きhideo18です。
今回は、ビットコインのブロックチェーンについてみていきたいと思います。
この記事を読んでいただければ、ビットコインのブロックチェーンについてイメージしやすくなると思います。
他のネットワークのブロックチェーンを理解する上ので足がかりにもなります。
〜参考図書〜
最新 いまさら聞けないビットコインとブロックチェーン
それでは、いってみましょう!
ブロックチェーンってなぁに(簡単な回答)
ざっくりの説明で「分散型台帳」です。
分散型は、複数のコンピューターで管理していることです。
台帳は帳簿のことです。ここでいう台帳は、帳簿のまとまりみたいなイメージです。
つまり、複数のコンピューターで帳簿のまとまりを管理しよう!ということです。
なぜブロックチェーンっていうの
先ほどの説明と「ブロックチェーン」という言葉は、結びつかないですよね。
ブロック
まず、ブロックです。
これは、データのまとまりのことをいいます。
「太郎くんから花子さんに1ビットコインを送りました。」
「アレクサがシリに10ビットコインを送りました。」
このような、いくつものデータが一つの箱にまとめられたものを「ブロック」といっています。
チェーン
次にチェーンです。
これは、ブロック同士が連なっているということです。
各ブロックには、「ハッシュ値」という特別な値を持っています。
このハッシュ値を直前のブロックから受取り、次のブロックに渡す。
といった感じで1本の線のように続いていきます。
つまり、ブロック同士を、ハッシュ値で1本に連なって結びついている状態を「チェーン」といっています。
もう一度ブロックチェーンとは?
・複数のコンピューターで
・いくつものデータがまとめられてた箱が
・ハッシュ値で1本に連なっている状態のことです。
これが、ブロックがチェーン(状)になっているということです。
こんな感想ですよね
だから何?ですよね。
「ブロック」と「チェーン」についてもう少し深くいきます
最初にブロックについてみていきましょう。
ブロックの内訳
資料1の図の詳細をもう少しみていきましょう。
資料2のとおりブロックには大きく分けて2つあります。
・ヘッダー
・トランザクション
トランザクション
分かりやすいように先にトランザクションからみていきましょう。
これまで「いろんなデータ」といってきましたが、
「いろんなデータ」の内訳は、主にトランザクションを指しています。
このトランザクションというのは、「太郎くんから花子さんに1ビットコインを送りました。」
という「誰から誰にいくら送ったか」という取引きをベースとして、署名や公開鍵なども含まれています。
ヘッダー
資料2の「ヘッダー」の内訳をもう少しみていきましょう。
大きく分けて3種類あります。
・ハッシュ値
・マークルルート
・ナンス
ハッシュ値
ヘッダーに含まれている「ハッシュ値」は、直前のブロックのデータを元に作られた(返された)値です。
また、ハッシュ値は、ハッシュ関数で返された値のことで、
①計算元のデータが同じであれば、同じ値を返す
②固定帳(常に同じ桁数で返す)である
③不可逆である
④衝突耐性(同じハッシュ値が返されることはほぼない)
という特徴を持っています。
〜ビットコインのハッシュ値〜
ビットコインでは”SHA256”というハッシュ関数を使っています。
ここで実際にハッシュ関数とハッシュ値をみていきましょう。
片方は「a」の1文字、もう片方は「雨ニモ負ケズ」の全文。
データ量や内容がまったく違うのに同じ64桁を返してきました。
ここでは、②のことを検証してみました。
マークルルート
マークルツリーの最後の一つのハッシュ値です。
各ブロック内にはトランザクションが複数あります。それらをハッシュ値に返して最後の一つになったものが”マークルルート”といっています。
ナンス(nonce)は、Nunber used onceの略
32bitの数値で、この値自体に意味は何もありません。
ブロック生成に指定された採掘難易度のハッシュ値を求めるための値です。
ブロックの内訳まとめ
ヘッダー
ハッシュ値
直前のブロックに対して生成された値
マークルルート
トランザクションの一つひとつにハッシュ値を返し、最後の一つになったハッシュ値
ナンス
今回ブロックに対して発掘難易度以上のハッシュ値を求めるために、マイナーが総当たりで試していく値
トランザクション
主に「誰から誰に幾ら送ったかという取引き」のこと。
ブロック内には数百から数千単位で、ブロックに格納されています。
ノード
ブロックチェーンを維持管理している各コンピューターのこと。
最初の説明では”複数のコンピューター”としていました。
ブロックチェーンは、クライアントとサーバーというような、”利用者”と”サービスの提供者”みたいに中央管理者が維持管理している構造ではありません。
複数のノードには、ブロックチェーンについて、全データを保持するノード(フルノード)があったり、データの一部を保持するノード(SPVノード)があったりします。
これが、複数のコンピューターで管理、つまり分散化ということになります。
後書き
主にブロックチェーンの構造についてみきました。
まだまだ「PoW」「セキュリティ」「報酬」など全然足らないですね。
ちょっと話が長くなり、まとまる気がしません。
今回は、このくらいでお開きとさせていただきます。
また、ノロノロと修正やら、別のページで追記やらしていきます。
それでは良い1日を