ビットコイン・インスティテュート

ビットコインP2P電子キャッシュ論文

サトシ・ナカモトの投稿(2008年11月10日22:18 UTC)

同じトランザクションの複数の二重支払いバージョンがある場合、1つだけが有効となる。

それは私が尋ねている質問ではない。

私が懸念しているのは信頼の問題ではない。全員がきちんと振る舞ったとしても、どうすればグローバルに共有された見解を持つことが可能になるかという点だ。

誰がどのbitgoldコインを所有しているかについて、グローバルに共有された見解へ至るプロセスの規定が不十分だ。それが規定されて初めて、全員が正しく振る舞うインセンティブを持つかどうかを検討できる。

全員がXを知っているだけでは足りない。全員が「全員がXを知っている」ことを知り、さらに「全員が、全員がXを知っていることを知っている」ことを知る必要もある。これは、ビザンチン将軍問題と同じく、分散データ処理の古典的な難問だ。

この問題は、Xがきわめて大量のデータになりうる場合——つまり、ある時点においてすべてのbitgoldコインを誰が所有していたかについての合意——にさらに難しくなる。

その上さらに、合意が生じるような振る舞いをする動機を全員が持っている必要がある。動機づけられるべき振る舞いが何なのかが分からない以上、彼らにその動機があるとは私には見えない。

攻撃下でのシステムの分析を繰り返し述べている。だが、攻撃を受けていないときにシステムがどう振る舞うべきかが分からない限り、攻撃下でどう振る舞うかを語ることはできない。

トランザクション数が多ければ、あるノードの見解と別のノードの見解との食い違いを効率的に発見するのは難しい。しかも新しいトランザクションは絶えず到着し続けるため、たとえ全ノードが正直で、報告されたトランザクションがすべて正しい単一支払いであったとしても、2つのノードの見解が完全に一致することは決してない。

直近のある時点で誰がどのbitgoldコインを所有していたかについて、2つのノードが合意に至りやすいシステムを実現できるはずだが、それは簡単なことではない。

あるノードが、特定の時点で誰がどのbitgoldコインを所有していたかについての知識を表すハッシュを構築し、別のノードがそのハッシュを検証したいとする。合意が生じやすく、かつ正直できちんと振る舞うノード間の不一致が効率的に検出・解決される形でそれを行うのは、簡単なことではない。

仮に合意がどう生成されるかの仕様があったとしても、2つ目のノードがそのハッシュを検証するインセンティブを持つ理由は自明ではない。

システムは、合意に至るためにノードが直近のトランザクションについての見解を容易かつ低コストで変更できる一方で、確定性と不可逆性を提供するためには、いったん合意に達し、その上に新たなものが——とりわけ新しいbitgoldが古い合意の上に積み重ねられたなら、決定事項をさかのぼって変更するのが極めて困難になる、という形で機能しなければならない。

それがどう機能するかを述べるだけでは、実際にそう機能させる方法にはならない。

サトシ・ナカモト

支払いの受取人は、それが有効であると信じる前に1時間ほど待たなければならない。ネットワークはそれまでにあらゆる二重支払いの競争を解決する。

攻撃について議論し続けている。当事者全員がきちんと行動した場合の通常の振る舞いが何なのかが私には明確でない以上、攻撃への対応を考えるのは難しい。

分散データベースは、すべてのデータベースが単一の所有者の意志に完全に従っている場合でさえ難しい。メッセージは失われ、リンクは切断し、同期の遅延は異常な水準になり、マシンごと燃えてしまうこともある。それでもネットワーク全体として、こうしたことすべてを乗り越えていかなければならない。

これをどう行うかを解明すること自体が、攻撃が完全に存在しない状況でさえ難しい。そのすべてにどう対処するかを解明できて初めて、次に攻撃が来る。


The Cryptography Mailing List Unsubscribe by sending “unsubscribe cryptography” to majordomo at metzdowd.com