ダブルハッシュハッシュの概要ハッシュとは、あるデータを変換して得られる固定長のデータのことです。ハッシュを得るための関数をハッシュ関数といいます。ハッシュ関数は数値やドキュメントのような文字列など、どんな値でも指定の長さの数値に変換できます。暗号関数はデータを暗号化したり復号できるのに対し、ハッシュ関数はあるデータを一方向にしか変換できないのが特徴で、ハッシュ化されたデータを元のデータに戻すことは基本的に不可能です。元のデータを一文字でも変更すると、ハッシュ化された結果は全く違うものとなり、ハッシュ化された結果から元データを推測することも不可能にしています。ハッシュが使われる場所として、ウェブサイトなどのパスワードの保存があげられます。ウェブサービスではパスワードをハッシュ化してデータベースに保存することがよくあります。フォームから入力されたパスワードのハッシュ値を取ったものと、データベースに保存されていたパスワードのハッシュ値を比較し、これらが一致するかを見てパスワードの確認しています。よって、ハッシュ化されたパスワードしかデータベースに保存されていないため、データベースに保存されている数値からパスワードは復元できず、いざデータベースの内容が漏洩したとしても一定の安全性が保たれます。ビットコインなどのブロックチェーンににおいて、ハッシュはいたるところで使われています。マイニングでは何度もハッシュ関数を使うため、ハッシュを計算する効率がとても重要になってきます。そのために、ハッシュ計算に特化したハードウェアなども開発されています。ビットコインで使用されるハッシュ関数はSHA256とRIPEMD160です。これらのハッシュはGPUや計算専用のハードウェアであるASICで計算するのに向いています。これに対し、他のブロックチェーンでは普通のPCでもマイニングしやすいように、GPUやASICでは計算しづらいハッシュアルゴリズムを使っているものも多く存在しています。ビットコインで使われているSHA256は、任意の長さの原文から固定長の特徴的な値を算出するハッシュ関数の一つであり、どんな長さの原文からも256ビットのハッシュ値を算出することができます。安全性のバランスに優れ、広く普及しています。上記のような特徴を理解するために、実際にデータをSHA256ハッシュ関数にかけて以下のように変換してみます。このように、1文字または1ビット異なるだけで、ハッシュ値は全く異なる結果になります。長い文字列の場合でも、出力される数値の長さ(ビット数)は同じであることが特徴としてあげられます。よって、どんなに長い文字列も一定の長さに変換されるため、文章や画像ファイルを一意に要約する機能として、よく活用されています。ダブルハッシュダブルハッシュとは、ハッシュ関数を重ねて使うことです。一度ハッシュ関数に入れた出力値を、さらにまたハッシュ関数にかけます。ダブルハッシュを行うメリットは、一回ハッシュ関数を適用するよりも安全性が二乗になることです。このため、ビットコインなどでは様々な場面でダブルハッシュが使用されています。前述したように、ビットコインでは使われているSHA256とRIPEMD160というハッシュ関数のうち、SHA256を二回適用したハッシュがよく使われています。短いハッシュが必要な場合は、一度SHA256を適用したハッシュに、さらにRIPEMD160を適用したハッシュが用いられています。どんなデータも、一定の長さに変換するハッシュ。限られたデータしか書き込めないブロックチェーンには欠かせない技術です。ハッシュを理解すれば、いろいろなサービスの仕組みの理解が進んだり、新しいブロックチェーンの使い方を検討するときの幅が広がります。ハッシュを理解して、よりブロックチェーンを楽しみましょう。MineGaiax技術マネージャ。研究開発チーム「さきがけ」リーダー。新たな事業のシーズ探しを牽引。ロンドンに参加しブロックチェーンの持つ可能性に魅入られる。以降ブロックチェーン分野について集中的に取り組む。関連記事インドでP2Pカーシェアリングを展開するDrivezyインドでP2Pカーシェアリングを展開するDrivezyを紹介します。Ethereumの処理能力を向上させるSharding(シャーディング)Ethereumのスケーリング問題における解の1つ、シャーディングについて解説します。Ethereumベースのトークンの標準ERC20Ethereumベースのトークンのインターフェースの標準「ERC20」について解説します。Bizは株式会社ガイアックスが運営しています。ガイアックスは、ブロックチェーン技術の活用に取り組んでいます。reserved.ブロックチェーンビジネス用語集イベント案内このサイトについてお問い合わせSearchSubmit。