見出し画像

ギャル語がわかれば「ハッシュ」がわかる

暗号通貨の数理面を理解するために欠かせない、計算機科学の知識の一つに、「ハッシュ」という概念があります。

暗号通貨界隈では、PoW マイニングでの「ハッシュパワー」など、本来の意味から派生した概念でも使われています。なので、技術的なところに興味を持たない方でも、耳にしたことがあるかもしれません。

しかし、どんなものなのか正攻法で知ろうとすると、例によって数学に阻まれます。

本稿では、数学から遠く離れて「ハッシュ」とはどういうものなのかを説明してみます。

本稿が説明できる範囲のハッシュは、暗号通貨で実際に使われるハッシュ(「暗号学的ハッシュ関数」と呼ばれます)よりも大きな括りのものです。別稿で扱いたいと考えてはいますが、いきなり暗号学的ハッシュ関数を考え出すと確実に挫けますので、まずは本稿を騙されたと思って #トラストレス ご一読ください。

...

生真面目なオタクとギャル語の会話です。

「おつかれさま。」「本当?それが無いと困るのかしら?」「了解です。買って帰ります。」「ああ、なるほど。そうですね。」

率直なところ、略さずに言え!一文字では意味が判らん!など思ったりしなくもないわけですが。わかっている人の間では会話が通用します。

この「おつかれさま」から「おつ」への変換は、ハッシュの典型例です。

ギャル語の場合、ハッシュにするメリットは、入力文字数の削減でしょう。フリック入力を用いて口頭と同じスピードで会話しようとすると、文字数は少ない方がよいわけです。

同様に、人が介在しないプログラムの世界でも、保持するデータは少ないほうがよいのです。大きなデータは、保存するにしても処理するにしても、大きなコストがかかります。データを小さなハッシュに変換する価値があります。

...

もう一つ別のハッシュを見てみましょう。

辞書のインデックスです。

この例は、ギャル語よりは仕組みが整然としていて、数理っぽいかもしれません。

日本語を読める方で辞書をお使いになったことがない方は、たぶんいらっしゃらないと思うのですが。念のため説明すると…。

全ての単語は辞書順(「辞書」ですから)に整列され1ページ目から列挙されています。各ページの単語の先頭一文字が何なのかがわかるようなマークと文字が前小口に付けられています。このマークがハッシュです。

このハッシュでは、データの量は変わりません。辞書のページ数が減ったりはしませんね。

しかし、検索の時間を小さくするという大きなメリットがあります。もしインデックスが無かったとしたら。最初のページからめくっていくか、もう少し賢い調べ方もありますが、いずれにせよインデックス無しよりは時間がかかります。

コンピュータの中でも、検索時間が短くなる力技でない方法があるならば、そのほうが好ましいわけです。

本稿では深追いしませんが、ブロックチェーンの中ではマークル・ツリーという構造が使われていて、それは辞書のインデックスと遠縁のような構造と言えたりします。

本稿と全く関係ないですが、皆さんおなじみの辞書のインデックスって、正式名称不明らしいっぽい。調べ物のプロである図書館の司書さんでも調べつかなかったとか。

...

その他、「広義のハッシュ」と呼べるものは、身近なところにたくさんあります。POSレジのJANコードとか、学籍番号とか、例示しきれません。

計算機科学の世界では、なんでも「関数」にすることで話を単純化したがるのですが、例に漏れずハッシュはハッシュ関数として使われ、しばしば要約関数と和訳されます。

つまり世の中で、何か存在を要約したものは、だいたいハッシュです。

ここから先、暗号学的ハッシュ関数とは何かというところまで行くと、ブロックチェーンという構造が効率的かつ安全であることが解ってくるのですが…。

本稿の目的は「分かった気になる」なので、ここまでで終了です。

...

P.S. 本稿中にある LINE 風の画像はもじまるを使って作成しました。

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