Re: GPU 寡頭制を打倒する方法

lzsaverの投稿(2010年10月1日 20:49 UTC)

これについてもっと教えてくれないか: 「extraNonceで変なことをしなければならず、ブロックヘッダーのサイズが増える」。

生成時にはブロックヘッダーのハッシュを計算する。より多くのデータをハッシュする方が少ないデータをハッシュするより遅いので、ブロックヘッダーは一つの例外を除いて全員にとって固定サイズであることが極めて重要だ。各ハッシュ試行後に Nonce ヘッダーフィールドをインクリメントするが、このフィールドは 32 バイトしかないため、頻繁にオーバーフローする。オーバーフローするたびに、可変サイズの extraNonce フィールドをインクリメントする。extraNonce が大きくなるほど、生成は遅くなる。ただし通常のインクリメントでは有意に大きくはならない。

多くのコンピューターがあり、すべてが同じ公開鍵で同じブロックに取り組んでいる場合、すべてが同時に同じブロックをハッシュしている可能性が非常に高く、これは無意味だ。これを修正するために、各コンピューターに固有の extraNonce 修飾値が与えられる。衝突を防ぐためにこれは非常に大きくなる可能性があり、そのためハッシュが遅くなる。

間違いなくこの欠点のないプーリングシステムを設計できるだろうが、それはより困難になる。

m0mchil の getwork が extraNonce で何かしているのは見た。その実装がどれほど悪いかわからないが、理論的にはそれなしのクライアントよりも必ず遅くなる(他の条件が同じなら。GPU サポートの追加で明らかにパフォーマンスは向上する)。