ハッシュ関数とは?|短編 現役エンジニアが解説

目次

1、ハッシュ関数とは

2、ハッシュ関数の一方向性

3、ハッシュ関数の種類

SHA256とは?

RIPEMD160とは?

1、ハッシュ関数とは

ハッシュ関数は、一言で言うと復元不可能な値を導くための関数

と言えます。

そもそもハッシュ関数がビットコインや仮想通貨にどのように役立てられているのか、ご存知ですか?

私たちが普段使用しているビットコインアドレスがハッシュ関数をかけた結果なのです。

具体例を挙げますと

ビットコインアドレスを公開鍵から生成する際にハッシュ関数を使用します。

公開鍵生成→ハッシュをかける→ビットコインアドレス生成

*ビットコインアドレスとは銀行で言う所の、口座番号のようなものです。公開鍵は通常、長くて扱いにくいので、ハッシュをかけることにより短縮され使いやすくされます。

また、ビットコインアドレスから公開鍵は算出できません。

それはハッシュ関数の一方向性という性質が関係しています。

2、ハッシュ関数の一方向性

では、ハッシュ関数の一方向性とはどういうことなのでしょうか。

例えば、

3×3=9という式があるとします。

これを公開鍵とビットコインアドレスに例えると以下のようになります。

2(公開鍵)×9(公開鍵)=18(ビットコインアドレス)

これはすでに2と9という数字がわかっている状態なので、18という解を導き出すことができています。

ですが、これにハッシュ関数をかけると以下のようになります。

X(公開鍵)×Y(公開鍵)=18(ビットコインアドレス)

こうすることによって、解は18であることはわかるのですが、どのように18という解を導き出したのかわからなくなります。

繰り返しますが、公開鍵は通常、長くて扱いにくいので、ハッシュやをかけることにより短縮され使いやすくされます。

3、ハッシュ関数の種類

こちらの図にあるように、ビットコインアドレスを生成するためにハッシュ関数が2度使用されています。

こちらの関数は

・SHA256

・RIPEMD160

という関数が使用されています。

SHA256とは?

「SHA」は「Secure Hash Algorithm 」の略で、セキュアハッシュアルゴリズムと読みます。

SHA256はビットコインで使用されている、一方向性の安全な値を導きたすための大事な関数です。

以下のサイトは、文字をSHA256に変換ができますので試してみてください。

http://www.convertstring.com/ja/Hash/SHA256

例えば、「おはよう」と打つとSHA256では「4314662C3426676A1DD586BE6A6F1BDDF8DAE143C7E8514C50AF525F9DC6CEC8」

といった値に変換してくれます。

SHA256が今いちばん安全だと言われているハッシュ関数とされています。

今後、コインやICOなどを調べる際にハッシュ関数は何を使っているか?を調べてみるのもコインを選定する上で大事です。

RIPEMD160とは?

ルーヴェン・カトリック大学のDobbertin氏が1996年に開発したハッシュ関数です。

これもハッシュ関数であるのですが、SHA256よりも短いハッシュ値を算出することができるハッシュ関数となっています。

SHA256では長いハッシュ値が出力されますが、その値を短いものに変換してくれるのがRIPEMD160の役目です。


ハッシュ関数とは?|短編 現役エンジニアが解説 was originally published in Bit-create on Medium, where people are continuing the conversation by highlighting and responding to this story.

Source: 暗号通貨大学校bitcamp
ハッシュ関数とは?|短編 現役エンジニアが解説