見出し画像

【超簡単図解】ブロックチェーンが改ざんされないすごい技術なワケ

はじめに

noteをご覧の皆さんこんにちは!長野生まれ、吉祥寺をこよなく愛する25歳、てらしいです。超簡単図解シリーズの1本目(法定通貨との違い)2本目(取引の仕組み)は、ざっくりとビットコインが何なのかを図解しました。今回はもう少し深掘りし、ビットコインの中核技術でもあるブロックチェーンについて図解してみました!

これからブロックチェーンを理解されたい方はぜひお読み下さい。

記事を読む前におさえておきたい用語

アルゴリズム:特定の問題を解決するための処理方法や計算手順。
ブロックチェーン:個々の取引データをブロック化し、鎖状のように複雑にするコンピュータ上の技術、アルゴリズム。
ハッシュ関数:入力した値に対して、まったく別の値(ハッシュ値)が出力される暗号方式。

ブロックは1つ前の情報を受け継ぐ

ブロックチェーンの中身を分解すると、ブロックと呼ばれるデータが格納されている箱が時系列順につながっています。

このブロックの最大の特徴は「1つ前のブロックのデータが引き継がれること」です。ブロックが追加されるたびに過去の情報が引き継がれ、新しいブロックが誕生します。

ブロックは多数のコンピューターの計算処理能力を使って、約10分間かけて1つ追加されますが、この処理は途方もなく膨大な計算量が必要なため、ブロックを作るには大きなコストが伴います。

ブロックを作るための一連の作業(計算処理の検証・承認)のことをマイニングと言い、このマイニングをする人のことをマイナーと呼びます。

マイナーたちは新しいブロックが問題なく追加されるように、膨大な計算処理の検証や承認を行います。

(※どのような検証や承認をしているかは、別途違う記事で説明します。)

なぜマイナーたちがここまで労力をかけて、取引や承認作業をするかというと、その報酬としてビットコインが貰えるからです。2018年時点では1ブロックあたり12.5BTCの報酬が貰える仕組みになっています。

ブロックの中身は3つで出来ている

ブロックは『①トランザクション』『②ナンス』『③前のブロックの情報』の3つで構成されています。この3つがあることでブロックチェーンが改ざんされず、ビットコインの信用が担保されます。

トランザクション:取引データのこと。取引データが正しいかどうかを確認して、ブロックに格納する。
ナンス:ブロック同士をつぐための鍵となる数字(先頭に0が15~17が並ぶ)。このナンスを探し当てるために膨大な計算処理を行う必要がある。
前のブロックの情報:前のブロックの情報をハッシュ関数で出した特定の文字列。ハッシュ値。

ブロックチェーンのアルゴリズム

ブロックは必ず前のブロックの情報が引き継がれています。ブロック2自体のデータをもとに、ハッシュ関数SHA-256と言うアルゴリズムを使ってハッシュ化したものが、ブロック3の中身に含まれます。そして、次のブロック4が追加されるときはブロック3がハッシュ化され...。といったようにブロックが次々に追加されていきます。

ブロックそのものをハッシュ化することで、逆算ができなくなります。無理に書き換えようとすると過去のデータも全て書き換えないといけいため、改ざんはかなり困難です。

分岐(フォーク)の仕組み

また、ブロックをつなぐときに必要なナンスを、2人以上の人が同時に発見したときは、分岐(フォーク)が発生します。

このフォークが発生するといち早く計算をしてナンスを見つけ、ブロックを追加したマイナーが勝者となり、報酬がもらえます。

分岐して短い方のブロックは承認できないので不採用となり、データは無効となります。

ブロックチェーンのまとめ

・ブロックチェーンは個々の取引データをブロック化し、鎖状のように複雑にするコンピュータ上の技術
・ブロックは1つ前のブロックのデータが引き継がれる
・ブロックの追加作業のことをマイニングと言い、膨大な計算処理をする必要がある
・約10分の間にマイニングが行われ、新しいブロックが1つ追加される
・マイナーへの成果報酬は2018年時点では1ブロックあたり12.5BTC
・ブロックの中身は①トランザクション②ナンス③前のブロックデータの情報(ハッシュ値)の3つで構成されている
・ブロックのデータはハッシュ関数SHA-256を使ってハッシュ化されるので逆算不可
・フォークが発生すると、いち早くナンスを見つけて、ブロックを形成した側が採用される

ブロックチェーンが改ざんされない理由について図解させて頂きました。もっと分かりやすい表現方法(特に図解)を思いついたら随時アップデートしていきます。

記事に関するコメントやご指摘がありましたら、コメント欄もしくはTwitterにお願いします。(Twitter開設したばっかりなので、フォローして頂けると嬉しいです!)

Twitterアカウント:@terashii_me

この記事が気に入ったらサポートをしてみませんか?