Re: プルーフ・オブ・ワーク難易度の上昇

参加者: fergalish

Quote from: lachesis on June 05, 2010, 03:28:29 PM

Quote from: theymos on June 05, 2010, 03:02:57 PM

この数式で気になるのは「目標確率」0.5の部分だ。0.5はパスワードの総当たり攻撃の計算に使われるが、これは別の問題かもしれない。もしブロックが数式の予測の倍の時間がかかるなら、代わりに1を使ってみてくれ。

それは考えた。0.5が妥当かどうかわからない。引き続き観察を続ける。成功した時にdebugログに書き込むのだろうか。

実際のところ、その数式は1つのブロックを解くまで取り組み続けることを前提としている。Bitcoinでは、複数のノードが同じブロックに取り組んでいるのではないか?1つが完了すると、他のノードはそのブロックの作業を放棄して別のブロックを選ぶのではないか?そういう印象を持っていたが、間違っているかもしれない。

0.5ではなく1を使え。max=100、target=10とすると、100ハッシュのうち10がターゲット以下になるので、成功率は10%であって5%ではない。

現時点でtarget/max ≈ 1.5x10^-11(target≈0x000000000f、つまり36個のゼロなので、基本的に2^36=690億面のサイコロを振って1が出るまで待つようなものだ)。1秒あたり100万ハッシュ x 86400 = 1日あたり864億ハッシュなので、1日に1回よりやや多い成功が期待できる。

これがBitcoin生成の平均時間であり、約1週間以上の期間にわたってのみ有効であることを理解するのは非常に重要だ。成功イベントは完全にランダムなので(そうでなければハッシュ関数はおそらく安全ではなく、いずれ誰かが解読し、したがってbitcoinも!)、ある成功から次の成功までの間隔はn=0のポアソン分布、つまり指数分布に従う(Wikipediaを参照)。したがって、1日1回の成功という平均レートでは、おおよそ10%の確率で2.5日以上、1%の確率で4.5日、0.1%の確率で7日待つことになる、といった具合だ。