SHA-256衝突への対処

7 件のメッセージ BitcoinTalk lachesis, サトシ・ナカモト, Theymos, Xunie 2010年6月13日 — 2010年6月14日
lachesis 2010年6月13日 原文 · 個別ページ

数学者の友人が指摘したのだが、10年以上存続したハッシュプロトコルはほとんど、あるいはまったく存在しないとのことだ。もしSHA-256が明日破られたら、ビットコインの解決策はどうなるのだろうか?

BitCoinが普及すれば、暗号が破られたとしてもそれが終わりになるとは思わない。ブロックチェーンはデータをほとんど失わずにフォークできるため、BitCoinのあらゆる側面の変更が可能だ。SHA-256が破られた場合、アドレスにより強力なハッシュ関数を採用する新バージョンのBitCoinがリリースされるだろう。ブロックに使用されるハッシュ関数の変更は、その脆弱性がなお相当な計算量を必要とするなら、必ずしも必要ではないかもしれない。新バージョンはある時点以降のSHA-256ブロックを無視するが、古いトランザクションの大部分は生き残る。

SHA-256の弱体化が突然ではなく漸進的な場合(個人的にはその可能性の方が高いと思う)、BitCoinは別のハッシュアルゴリズムへの切り替えプロセスを長期間にわたって引き伸ばすことができる。まずSHA-256に加えてSHA-512(あるいは別のもの)を受け入れ、次にデフォルトでSHA-512を使用し、最終的に新しいブロックでのSHA-256の受け入れを停止する。

Xunie 2010年6月14日 原文 · 個別ページ

Quote from: theymos on June 14, 2010, 02:34:57 AM

BitCoinが普及すれば、暗号が破られたとしてもそれが終わりになるとは思わない。ブロックチェーンはデータをほとんど失わずにフォークできるため、BitCoinのあらゆる側面の変更が可能だ。SHA-256が破られた場合、アドレスにより強力なハッシュ関数を採用する新バージョンのBitCoinがリリースされるだろう。ブロックに使用されるハッシュ関数の変更は、その脆弱性がなお相当な計算量を必要とするなら、必ずしも必要ではないかもしれない。新バージョンはある時点以降のSHA-256ブロックを無視するが、古いトランザクションの大部分は生き残る。

SHA-256の弱体化が突然ではなく漸進的な場合(個人的にはその可能性の方が高いと思う)、BitCoinは別のハッシュアルゴリズムへの切り替えプロセスを長期間にわたって引き伸ばすことができる。まずSHA-256に加えてSHA-512(あるいは別のもの)を受け入れ、次にデフォルトでSHA-512を使用し、最終的に新しいブロックでのSHA-256の受け入れを停止する。

lachesis 2010年6月14日 原文 · 個別ページ

「オンザフライ」で新しいハッシュ関数に切り替えることは可能なのか? その場合、古いトランザクションはすべて危殆化しないのだろうか(簡単に再計算できるため)?

SHA-256は既に16倍弱体化されている(友人によると。その文献は見つけられないが、彼を信頼している)。それは2^256のうちの16なので、大した問題ではないが、それでも。

これについてもう少し考えた結果、ブロックで使われるハッシュ関数が破られることは、当初思っていたよりも悲惨だと気づいた。しかし、新しいBitCoinリリースに旧チェーンの各実ブロックのセキュアなハッシュを含めることで、ハッシュ関数を「オンザフライ」で変更することはまだ可能なはずだ。(できればもっとエレガントな)何らかのメカニズムが、段階的なハッシュ変更にも使われる必要がある。

全員の残高は公開されているので、BitCoinにどのような変更が加えられても、このデータを保存することは常に可能なはずだ。

SHA-256は非常に強力だ。MD5からSHA1への段階的な進歩とは違う。大規模なブレークスルーがない限り、数十年は持つだろう。

もしSHA-256が完全に破られた場合、問題が始まる前の正直なブロックチェーンが何であったかについて合意に達し、それを固定して新しいハッシュ関数で継続できると思う。

ハッシュの崩壊が徐々に起きた場合は、秩序立った方法で新しいハッシュに移行できるだろう。ソフトウェアは特定のブロック番号以降に新しいハッシュを使い始めるようにプログラムされる。その時までに全員がアップグレードする必要がある。ソフトウェアは古いブロックの新しいハッシュを保存して、同じ古いハッシュを持つ別のブロックが使用されないようにすることができる。

SHA-256は非常に強力だ。MD5からSHA1への段階的な進歩とは違う。大規模なブレークスルー攻撃がない限り、数十年は持つだろう。

もしSHA-256が完全に破られた場合、問題が始まる前の正直なブロックチェーンが何であったかについて合意に達し、それを固定して新しいハッシュ関数で継続できると思う。

ハッシュの崩壊が徐々に起きた場合は、秩序立った方法で新しいハッシュに移行できるだろう。ソフトウェアは特定のブロック番号以降に新しいハッシュを使い始めるようにプログラムされる。その時までに全員がアップグレードする必要がある。ソフトウェアは古いブロックの新しいハッシュを保存して、同じ古いハッシュを持つ別のブロックが使用されないようにすることができる。