ブロックチェーンを実装してみよう #1

プログラミング

You x Tech 初の連載企画です。今回から数回かけてブロックチェーンを実装してみます。

ユウ兄
ユウ兄

先日説明したブロックチェーンについて実際にコードを書いて理解を深めてみましょう。

イマノ君
イマノ君

僕 python しか書けないから python がいい!

ユウ兄
ユウ兄

いいですよ。それでは python で実装していきましょうか。

ブロックチェーンに必要な機能

ユウ兄
ユウ兄

まずはブロックチェーンについてのおさらいからです。

どんな機能が必要だったか覚えていますか?

イマノ君
イマノ君

えっと、デジタル署名ハッシュ化、あとPoW

ユウ兄
ユウ兄

お。いいですね。

では PoW の部分だけ補足説明をしますね。

ユウ兄
ユウ兄

ブロックチェーンではPoWとして特定の数値をくっつけることでハッシュ値の先頭n桁を0にできるその数値を探すことを採用しています。

イマノ君
イマノ君

ハッシュ値の先頭n桁を0にするの?

それって逆算したら簡単なんじゃないの?

ユウ兄
ユウ兄

いいえ。そうではないんです。

ブロックチェーンの説明では脱線してしまうので話さなかったのですが、ハッシュ化というのは限りなく逆算が難しい処理なんです。

イマノ君
イマノ君

逆算はできないのか…

え。したらどうやって探すの?

ユウ兄
ユウ兄

ランダムもしくは0から探します。

イマノ君
イマノ君

それじゃあ早く見つけられるかは運じゃん

ユウ兄
ユウ兄

はい。運です。

イマノ君
イマノ君

えぇ…

ユウ兄
ユウ兄

ここが PoW として使われる理由ですね。

処理能力だけによらないため誰かが一人勝ちしづらくなっています。

ユウ兄
ユウ兄

ここまでをまとめるとブロックチェーンに必要なのは

1. デジタル署名

2. ハッシュ化

3. PoW (先頭n桁を0にする特定値の探索)

という3つですね。

デジタル署名

イマノ君
イマノ君

でもデジタル署名ってなんなの?

ユウ兄
ユウ兄

そうですね。デジタル署名についてはここで少し解説しておきましょうか。

ユウ兄
ユウ兄

デジタル署名とは公開鍵暗号方式で実現される、作成者の証明文章の改ざんがされていないことの証明を行える技術です。

イマノ君
イマノ君

公開鍵暗号方式

ユウ兄
ユウ兄

公開鍵暗号方式とは、2つの鍵を使う暗号化・複合技術です。

一方の鍵で暗号化を行うともう一方の鍵で復元できます。

ユウ兄
ユウ兄

公開鍵暗号方式では、片方の鍵を公開します。

この時、公開する鍵を公開鍵、公開しない鍵を秘密鍵と言います。

ユウ兄
ユウ兄

秘密鍵で暗号化された文章は公開鍵でのみ復号ができるので、正しく復号ができると作成者であることが証明できるんですね。

今回のまとめ

ユウ兄
ユウ兄

今回は、ブロックチェーンを実装するにあたって必要な知識を補足しました。

イマノ君
イマノ君

デジタル署名・ハッシュ化・PoWについてだったね!

ユウ兄
ユウ兄

そうです!

これらの知識を用いて次回から実際にコードを書いてみましょうか。

コメント

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