ハッシュ&アルゴリズムを学ぶ その2 Scrypt Equihash

ハッシュ関数、アルゴリズムを学ぶ第2回です。こんにちは、ノリヒロです。
今回は「Scrypt」と「Equihash」をご紹介します。なお、コード等は非常に難しいので省略します。Equihashは、正確にはハッシュ関数ではないのでアルゴリズムとして紹介します。第一回目はこちらをどうぞ。
暗号通貨 ハッシュ関数を学ぶ その1 SHA Ethash

第2回 Scrypt Equihash

目次
①Scrypt

②Equihash

①Scrypt

“ess crypt(エスクリプト)”と発音されるハッシュ関数です。
もとはTarsnapというonline バックアップサービスで使われていたものです。IETF(Internet Engineering Task Force)というインターネットで利用される各種技術の標準化を求める国際組織にRFC7914として策定されました。
一番最初にScryptを使用した暗号通貨は、2011年 Tenebrixという通貨です。現在はこの通貨は終了しています。ほぼ日本語訳でのサイトがないので、興味がある方はBitcointalkからどうぞ。
https://bitcointalk.org/index.php?topic=45667.0

Scryptは、ブルーフォースアタックへの耐性をもっていました。ブルーフォースアタックとは、理論的にありうるパターンを全て網羅する、総当たり攻撃です。ASIC等の専用機器が得意とするものですね。

Scryptは、PBKDF2・HMAC-SHA256・Salsa20/8という3つの関数を何回も複雑に使用して、暗号化しています。CPUでの計算に都合がよく、利用するメモリ領域が非常に大きくかつ複数回ランダムにアクセスする必要があるのでGPU・ASICなどでは対応できにくい、安全性が担保されるという仕組みでした。

ただ、2014年以降、専用のASICが開発され最適化が進むなど優位性は失われ、かつ本来のBitCoinでのマイニング速度よりも早くなってしまっている現状があります。

使用されている通貨はLTC(litecoin)、DOGE(Dogecoin)などです。送金が早いといわれる通貨に多いですね。

②Equihash

イクゥイハッシュと読みます。
Equihashは、PoWのアルゴリズムの1つです。ハッシュ関数ではありませんが、ご紹介します。
Equihashは、ルクセンブルグ大学で開発されたメモリ指向のPoWアルゴリズムです。はじめて紹介されたのは2016年になります。比較的新しいアルゴリズムです。

Equihashは、メモリを基とするPoWです。保持するRAMによって、どれだけマイニングできるかがほぼ決まっています。メモリを搭載するのにもコストがかかります。そのコストに見合うだけのマイニングができるのか、逆にマイニングコストに見合ったメモリを作成できるのか(最適化できるのか)という観点から、現状は不可能だと言われています。結果として、ASIC耐性をもつ、安全性が担保されるという仕組みですね。現在はGPUでマイニングが主流なんですかね。

使用されている通貨は
BTCP(BitcoinPrivate)
ZEC(Zcash)
XZC(Zcoin)
BTG(BitcoinGold)
などです。
匿名通貨、特にZKIP(ゼロ知識対話証明)とよく絡んで使用されています。現在はそれだけ安全性が高い(秘匿性が高い)と思われているんですね。

いかがでしたでしょうか。
ハッシュ関数・アルゴリズムにさわる機会になれば幸いです。
次回も別のハッシュ関数、アルゴリズムを紹介します。

コメント