カテゴリー
blockchain

ブロックチェーン(15)

ブロックチェーンにおけるブロックを生成する方法について述べる。

まず、ノンス(ナンス、ともいう。英語ではnonce)というものを理解する必要がある。ノンスとは、暗号通信で用いられる、使い捨てのランダムな値を指す。

なぜ、ノンスが必要か。暗号の送信者と受信者の間で、常に同じ暗号を使うと、もし送信した暗号が他者に盗まれてしまった場合、その他社は、送信者を装って受信者にその暗号を送ることで、受信者に何かを不正に要求することができる。それを防ぐために、暗号にノンスを加える。

例えば、ある暗号にノンスを加えるときにタイムスタンプを使うとする。例えば、通常使う暗号のあとに年・月・日・時・分からなるタイムスタンプをつける。例えば、201907222212。このようなノンスをつけることを受信者は第三者に知られないように安全に送信者から教えてもらう必要がある。

もし、他者が暗号 201907222212 というノンス付き暗号を盗んで、受信者におくっても、同じノンス付き暗号が2回使われるはずはないということで、それが不正な暗号であると受信者は判定できる。

もちろんこのノンスの付け方に法則性があることを他者が知ってしまうと悪用されてしまうので意味がなくなる。したがって、他者によって予測されてしまうようなノンスは使わない方がよい。

コメントを残す