ハッシュとは何か?

ビットコインのマイニングの話題に飛び込む前に、少し回り道をして、暗号通貨の基礎となるある概念について学ぶ必要がある。

ビットコインやその他の暗号通貨の仕組みを真に理解するためには、まず"ハッシュ".

ハッシュ」という言葉を見て、アメリカの朝食として人気のハッシュ・ブラウンを思い浮かべる人もいれば、スヌープ・ドッグのように大麻濃縮食品を思い浮かべる人もいるだろう。 

このレッスンでは 別の種類のハッシュ!

これは技術的な概念だが、皆さんもよくご存知のはずなので、簡単に説明しよう。

ハッシュの概念に精通していることは、次のような場合にも必要である。 ビットコインマイニングの仕組みを理解する (次のガイドです)。 これらのレッスンをスキップしないでください

ハッシュとは何か?

ハッシュ とは、あらゆる形式のデータを一定の長さの一意なテキスト文字列に変換する暗号の手法である。

暗号技術 とは、外部の監視者から安全に通信するための技術を実践・研究することである。インターネット時代には、暗号はコンピュータ情報または「データ」を保護するために使用される。

暗号通貨の "クリプト "とは、次のような意味である。 暗号技術.

ハッシュは暗号の基本.そして、暗号通貨の「クリプト」の背後で大きな役割を果たしている。

簡単に言えば、ハッシュとは テキスト入力 任意の長さの ハッシュ関数 を生成する。 固定長の出力.

どんなデータでも"ハッシュ化"、そのサイズ、タイプ、長さは問わない。

生成されるハッシュは 常に同じ長さ.

以下の例では SHA-1 ハッシュ関数では、"入力 "の長さに関係なく、"出力 "は常に次のようになる。 40文字.

ここで3つの例を簡単に比較してみよう:

インプットハッシュ
こんにちはf7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
ベビーピップス・ドットコム8c8780d0b70c5ef42a534846cc042629cf07a440
Ica73ab65568cd125c2d27a22bbd9e863c10b675d

インプット "が変化しても、3つのハッシュは同じであることに注目してほしい。 40文字.

この具体例では、固定長は40文字である。 ハッシュ関数 これは後で説明する。

とりあえず、次のことを知っておいてほしい。 その他 ハッシュ関数は異なる固定長を出力することがある。ほとんどの固定長は40文字より長い。

ハッシュはデジタル指紋の役割を果たす。

一意のデータは常に同じハッシュを生成する。

例えば、"Hello "をハッシュ関数に100万回通すと、上記のハッシュが100万回表示されることになる。

Hello "という単語のSHA-1ハッシュは常にこうなる:

f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0

そして、そのハッシュを生成するのは "Hello "だけである。

たとえ "Hello "を "hello "に変えただけでも、ハッシュ関数は "hello "を "hello "に変換する。 全然違う ハッシュ値。

これが、ハッシュがデジタル"指紋".

指紋があなたに固有であるように、ハッシュは特定の入力データに固有である。

ハッシュは元に戻せない。

ハッシュ関数への入力は、"プリイメージ"しかし、物事をシンプルにするために、私はただ "入力 "にこだわる。

ハッシュ関数のOUTPUTは"ハッシュ値「またはダイジェスト「または単に"ハッシュ".

ハッシュ関数は、以下のように設計されている。 一方通行.

ハッシュ関数は一方向性関数なので、出力である「ハッシュ」を使って入力である「前画像」を明らかにすることはできない。

つまり、ハッシュだけを見ても、そのハッシュが表す元のデータ(「プリイメージ」)を解読することはできない。

ハッシュ関数は 不可逆ハッシュ。

不可逆的 つまり、ハッシュしか持っていなければ、それを使って元のデータが何であったかを知ることはできない。これにより、元のデータは 安否不明.

ハッシュ関数とは何か?

ハッシュ関数 は うんざん の入力データを変換する。 任意 の出力に変換する。 固定 を使用して実行される。 アルゴリズム.

アン アルゴリズム とは、ソフトウェア・プログラムによって行われる計算を実行するための、ステップ・バイ・ステップの指示にすぎない。

入力が1文字であろうと、単語であろうと、全文であろうと、本の1ページであろうと、本全体であろうと関係ない。 任意 の部分だ。

各入力は、以下の英数字の文字列で表されるユニークな出力を生成する。 固定 の長さだ。

英数字は、文字と数字の両方で構成されていることを意味する。

便利なハッシュ関数 入力がどのようなものであったかについての手がかりを隠す.

例えば、入力が長いのか短いのか、数字が含まれているのか文字が含まれているのかを判断できないようにする必要がある。また、入力の文字を1文字変えるだけで、出力が根本的に違ってくるはずだ。

一般的なハッシュ関数

ハッシュ関数はどれも似たような仕組みだ。データを入力すると、ハッシュ関数はデータを「スクランブル」してハッシュを出力する。

一般的なハッシュ関数には次のようなものがある:

  • MD-5: メッセージダイジェスト5(MD5)は一般的なハッシュ関数である。以前は安全だと考えられていたが、最近ではハッカーがアルゴリズムを解読する方法を発見し、数秒で解読できるようになっている。
  • SHAだ: セキュアハッシュアルゴリズム(SHA)もハッシュ関数の一種である。SHAにはいくつかのバリエーションがあり、次の4つに分類される。 ファミリー:SHA-0、SHA-1、SHA-2、SHA-3:一般に、数字が大きいほどリリースが新しく、より安全なアルゴリズムである。

この目的のために、今知っておくべき唯一のハッシュ関数は セキュアハッシュアルゴリズム(SHA).より具体的には、SHA-2ファミリーは、その中に SHA-256.

SHA-256は、文字列を常に同じ長さの別の文字列に変換するハッシュ関数である。これは256ビットに相当し、名前の "256 "はこれに由来する。

ビットコインシステムのいくつかの部分で使用されるハッシュ関数であるため、これは特別なものです。今のところ、次のことを知っておくことが重要です。 SHA-256はハッシュ関数の一種で、ビットコインで使用されているものです。.

入力がハリー・ポッターの本の1ページであろうと、あるいは 全体 SHA-265ハッシュ関数の出力は、常に次のように表示されるのと同じ長さになる。 英数字64文字.

では、暗号におけるハッシュの仕組みを見てみよう。