DigiByte:シェアがブロックにならなかった理由

DigiByteのシェアがネットワーク難易度を超えたのに何も得られなかった。MultiShieldはSHA-256の目標値を数秒ごとに動かします。プールの実ログで検証。

DigiByteのMultiShieldは、5つのアルゴリズムのいずれかでブロックが届くたびに、SHA-256のマイニング目標値を再計算します。平均すると15秒ごとです。エクスプローラー、ダッシュボード、マイニングレポートで見るネットワーク難易度は、すでに古くなったスナップショットです。その値を超えたシェアが有効なブロックになるのは、プールに届いたまさにその秒に有効な目標値を超えた場合だけです。これが、DigiByteのソロマイナーが記録的なシェアを見ながら何も得られない、最もよくある理由です。

要点

  • DigiByteでは、SHA-256の目標値は5つのアルゴリズムのいずれかでブロックが届くたびに再計算されます。SHA-256のブロックが見つかったときだけではありません。
  • 90分間の窓で、SHA-256ブロックの難易度は4.18億から11.2億まで動きました。2.7倍の幅です。
  • わずか2分間の区間で、有効な目標値は7.48億から13.1億へと**75%**上昇しました。
  • シェアの価値はそれが届いた秒の目標値で決まります。同じシェアが、ある瞬間には届かず、1〜2分後には勝つこともあります。
  • これはブロックが失われたという意味ではありません。有効な目標値を下回るシェアはブロックとして送られることがないので、孤立させるものも、拒否するものも、隠すものもありません。

シェアがネットワーク難易度を超えたのに、なぜブロックが見つからなかったのか?

あるDigiByteのソロマイナーが、丁寧でよく調べられた報告を送ってくれました。その方のマイナーは、難易度約9.97億のシェアを出していました。約1時間後に作成されたマイニングレポートにはネットワーク難易度5.31億と表示されており、シェアは目標値のほぼ2倍ということになります。それでもブロックは現れませんでした。その方はプールのAPIを確認し、シェアが受信・受理されたことを確かめ、拒否や古いシェアの記録が一切ないことも確認していました。見えるすべての数字からすれば、ブロックになっているはずでした。

その方が見ていた数字は本物でした。ただし、見るべき数字ではありませんでした。

私たちはプールのログでそのシェアを追跡しました。シェアが届いたのは2026年10月4日の06:26:31から06:27:31 UTCの間です。その1分間、ネットワークが求めていたのは5.31億ではありませんでした。求めていたのは11.3億〜12.1億です。シェアは必要な値の82.7%〜88.1%に達していました。

5.31億という数字は、急上昇が過ぎ去った1時間後の難易度でした。そして06:28:37以降、つまりシェアが届いてから1〜2分後には、目標値は9.97億を下回りました。同じシェアが1〜2分遅く届いていれば、ブロックになっていたのです。

なぜDigiByteの難易度はこれほど大きく動くのか?

DigiByteはブロック生成を5つの独立したマイニングアルゴリズムに分けています。SHA-256、Scrypt、Skein、Qubit、Odocryptです。それぞれがおよそ5ブロックに1つを採掘し、それぞれが独自の難易度を持ちます。チェーン全体では15秒に1ブロックを目標としているため、SHA-256レーンは平均して75秒に1ブロックとなります。

各レーンの難易度は、DigiByteが2014年に導入したDigiShieldのマルチアルゴリズム拡張であるMultiShieldが管理しています。Bitcoinが2,016ブロックに1回再調整するのに対し、MultiShieldは毎ブロック難易度を再計算します。

マイナーが意表を突かれるのは、MultiShieldが毎ブロック、そのブロックを見つけたレーンだけでなくすべてのレーンを再計算するという点です。DigiByteのコンセンサスコードは、難易度パラメータの上にあるコメントでこれを明言しています。別のアルゴリズムがブロックを解くと、あるアルゴリズムの難易度が下がる場合がある、と。つまりSHA-256の目標値は、SHA-256のブロックとブロックの間でもじっとしていません。Scrypt、Skein、Qubit、Odocryptで見つかったブロックもすべて目標値を動かし、その結果、目標値はおよそ15秒ごとに変わります。完全なアルゴリズムについては、コンセンサスコードから直接読み解いたDigiByte解説で取り上げています。

その1分間、目標値は実際にどう動いたのか?

新しいブロックが届くたびに、プールは新しいマイニングジョブを組み立て、そのジョブが満たすべき目標値を記録します。以下は、そのシェアの前後でプールのログが記録した正確な値です。

時刻(UTC)有効なSHA-256目標値
06:24:07748,086,882
06:24:35919,283,054
06:25:361,128,075,706
06:25:481,078,654,901
06:26:021,312,633,757
06:26:101,262,143,768
06:26:181,205,245,749
06:26:551,130,849,418
06:27:311,087,355,545
06:28:301,039,941,926
06:28:37989,362,566
06:28:49942,584,060

シェアが届いたのは06:26:31から06:27:31の間で、そのとき目標値は1,205,245,749、続いて1,130,849,418でした。996,739,624のシェアは、要求値の82.7%〜88.1%に達していました。目標値が初めてシェアを下回ったのは06:28:37です。

この波を生んだものは、同じ窓でチェーンが実際に生成したSHA-256ブロックを加えると明らかになります。

ブロック採掘時刻(UTC)難易度
24,323,73906:24:11748,086,882
24,323,74006:24:35919,283,054
24,323,74206:25:501,078,654,901
24,323,75206:30:14857,977,528

99秒間にSHA-256のブロックが3つ届きました。75秒に1つという想定ペースに対して、33秒に1つです。SHA-256レーンは他の4つを大きく先行しており、MultiShieldはこれに応じて難易度を引き上げ、ピークの13.1億に達しました。その後、4分24秒にわたってSHA-256のブロックは1つも届きませんでした。他のアルゴリズムでブロックが届くにつれ、目標値は一段ずつ下がっていきました。シェアが届いたのは頂点の直後、目標値がまだそこから下降している最中でした。

記録された値は推定ではなく、ネットワークの実際の要求値です。上の4つのSHA-256ブロックはいずれも、プールが直前に記録した目標値とまったく同じ値で、1の位まで一致して採掘されています。4つとも、どのDigiByteエクスプローラーでも公開検証できます。

なぜレポートの難易度は目標値と一致しなかったのか?

レポートが記録したのは1時間後の瞬間であり、DigiByteにとって1時間は長い時間だからです。

エクスプローラー、プールのダッシュボード、マイニングレポート、収益性計算ツールなど、どこで見る難易度の値も、読み取った瞬間の値です。Bitcoinではその値が2週間続きます。DigiByteでは、5つのアルゴリズムのいずれかがブロックを見つけるたびにSHA-256の目標値が再計算されるため、07:34に取った値は06:27に何が求められていたかをほとんど何も語りません。

このシェアの前後90分間で、チェーン上のSHA-256ブロックの難易度は約4.18億から11.2億まで、2.7倍の幅がありました。9.97億のシェアは、その範囲の下の方なら余裕でブロックになり、上の方なら余裕で届きませんでした。

もう一つ落とし穴があります。エクスプローラーが公開するのは、採掘された時点の各ブロックの難易度、つまり勝者に適用された値です。ブロックとブロックの間の数秒に有効だった目標値の公開記録は存在しません。上のログで最も高い目標値である13.1億は、どのエクスプローラーにも表示されません。その値が有効だった間に、SHA-256のブロックが1つも採掘されなかったからです。それでも、惜しい外れが起きるのはまさにそういう瞬間なのです。

なぜ目標値はMultiShieldの8%制限を超えて跳ね上がるのか?

私たちのDigiByte解説では、MultiShieldは再調整を制限しており、難易度は1ステップで最大16%下がる一方、上がるのは最大8%までだと説明しています。ところがこの窓では、3つの高速なSHA-256ブロックの後、そのたびに目標値が20%以上、つまり22.9%、22.7%、21.7%上昇しました。

この2つの事実は矛盾しません。MultiShieldはレーンを2つの別々の方法で動かすからです。8%と16%の制限は、レーン自体の平均化された再調整を縛るものです。それに加えて、アルゴリズムごとに4%の調整があり、レーンが他の4つより遅れているか先行しているかに応じてレーンを動かします。

この窓では、2つ目の仕組みがはっきりとしたのこぎり歯状のパターンを生みました。他のアルゴリズムでブロックが出るたびに、SHA-256の目標値は約4〜5%下がりました。そしてレーンがすでに先行しているときに届いたSHA-256ブロックは、そのたびに目標値を急激に押し上げました。これを念頭に上の目標値ログを読み直すと、パターンは見間違えようがありません。SHA-256ブロックの後ごとに3つの大きな段差で上がり、その後は長い階段を下っていきます。

eCashのReal-Time Targetingとはどう違うのか?

症状は同じです。シェアが公表難易度を超えても何も得られません。しかし仕組みは違います。

eCash(RTT)DigiByte(MultiShield)
動くもの1つのブロック間隔の中での要求値ブロックの間の目標値
何で決まるか前のブロックからの経過時間5つのアルゴリズムのどれが各ブロックを見つけるか
形各ブロックの後に急上昇し、約115秒で減衰高速なSHA-256ブロックの後に上がり、他の後に下がる
事前に予測できるかはい、経過時間からいいえ、他のレーン次第

eCashでは、シェアの運命は前のブロックがどれだけ前に届いたかで決まります。これはeCash RTT:ソロのシェアがブロックにならなかった理由で詳しく解説しています。DigiByteでは、いずれかのアルゴリズムでの最新ブロックの後にSHA-256の目標値がどこにあったかで決まります。どちらも、マイナーの側から見るとまさにブロックを逃したように見える、惜しい外れを生みます。

BitcoinやほかのSHA-256チェーンでも起きるのか?

この形では起きません。ほとんどのSHA-256チェーンでは、目標値はブロック間隔の間ずっと固定されており、そのチェーンが次のブロックを見つけたときにだけ変わります。

チェーン難易度調整ブロック間の目標値
Bitcoin2,016ブロックごと一定
Bitcoin CashASERT、毎ブロック一定
eCashASERTとRTT各ブロックの後に上昇し、その後減衰
DigiByteMultiShield、毎ブロック、全アルゴリズムどのアルゴリズムのブロックでも動く

BitcoinとBitcoin Cashでは、調べた難易度がそのまま超えるべき値です。DigiByteでは、あなたのシェアの運命を決めた目標値は数秒しか存在せず、どこにも公開されませんでした。

ブロックは失われた、孤立した、あるいは隠されたのか?

いいえ。そもそもブロックは存在しなかったからです。

プールは、シェアがそのジョブのネットワーク目標値に達するたびに、ブロック解決イベントを記録します。このシェアについては、そのイベントは一度もありませんでした。プールはシェアを有効な目標値と照らし合わせ、届いていないと判断し、通常のシェアとして受理しました。ブロックは組み立てられず、submitblockの呼び出しも行われず、ネットワークには何も送られていません。孤立させるもの、拒否するもの、失うものは何もありませんでした。

ノンカストディアルのプールでは、これを外部から確認できます。マイナーの支払いアドレスはハッシュ計算が始まる前にブロックテンプレートのコインベーストランザクションに書き込まれるため、本物のブロックはすべて、マイナー自身の名義で永久にオンチェーンに現れます。ブロックにならなかったシェアはそうした痕跡を残しません。そして本物のブロックが存在していたなら、それを隠すことはできなかったはずです。

DigiByteのソロマイナーは実際に何をすべきか?

ほとんど何もする必要はありません。ただし、数字は正しく読んでください。

  • どの難易度の値もスナップショットとして扱う。 ダッシュボードやレポートで難易度を超えるベストシェアがあっても、それはブロックを逃した証拠ではありません。シェアが届いたときに目標値がもっと高かったという証拠です。
  • マイナーが表示するベストシェアはローカルで計算される。 マイナーはハッシュを見つけた瞬間、プールの応答より前にその難易度を記録し、多くの場合リセットされない歴代最高値を保持します。それはハードウェアに良い瞬間があったことを示すだけで、その瞬間が勝ちだったかどうかは示しません。
  • シェア難易度の管理はvardiffに任せる。 DigiByteは毎ブロック再調整するので、ある1時間に合う固定のシェア難易度が、次の1時間には合わなくなることがあります。設定についてはDigiByteセットアップガイドで説明しています。
  • 遅延を低く保つ。 15秒ブロックのチェーンでは、近いサーバーほど、新しいジョブが現れてからマイナーがそれに取りかかるまでの間隔が短くなります。
  • カウンターではなくコインベースを確認する。 ブロックを見つけたかどうかを知るには、オンチェーンのコインベーストランザクションで自分のアドレスを探してください。

これらはいずれも、長期的な確率を変えるものではありません。変動は時間とともに平均化されるため、平均難易度に基づく確率、たとえば私たちのソロ確率計算ツールが使うものが、引き続き期待値の正しい基準です。変動が決めるのは、どの惜しい外れがブロックになるかだけです。

出典

この記事の目標値は、2026年10月4日のプールのログから取ったもので、新しいマイニングジョブが組み立てられるたびに記録されたものです。窓の中で採掘された4つのSHA-256ブロック、24,323,739、24,323,740、24,323,742、24,323,752はいずれも、それぞれの直前にプールが記録した目標値と完全に一致しており、記録された値がネットワークの実際の要求値であることを裏付けています。引用したブロック難易度はすべて、どのDigiByteエクスプローラーでも公開検証できます。

よくある質問

DigiByteのシェアがネットワーク難易度を超えたのに、なぜブロックが見つからなかったのですか?

あなたが見たネットワーク難易度がスナップショットだったからです。DigiByteのMultiShieldは、5つのアルゴリズムのいずれかでブロックが届くたびにSHA-256の目標値を再計算します。おおよそ15秒ごとです。シェアがブロックになるのは、プールに届いたまさにその秒に有効な目標値を超えた場合だけで、その目標値は後から読んだ値よりはるかに高いことがあります。

DigiByteの難易度は毎ブロック変わるのですか?

はい。MultiShieldは毎ブロック再計算し、ブロックを見つけたアルゴリズムだけでなく5つすべてのアルゴリズムの難易度を更新します。DigiByte自身のソースコードには、別のアルゴリズムがブロックを見つけると、あるアルゴリズムの難易度が下がる場合があると記されています。実際にはSHA-256の目標値はおよそ15秒ごとに変わります。

DigiByteのSHA-256難易度は短時間でどれくらい動きますか?

非常に大きく動きます。2026年10月4日の90分間の窓では、SHA-256ブロックの難易度は約4.18億から11.2億まで、2.7倍の幅がありました。わずか2分間の区間で、有効な目標値は7.48億から13.1億へと75パーセント上昇しました。シェアの価値は、それが届いた秒によって決まります。

ダッシュボードの難易度と、超えるべきだった難易度が違うのはなぜですか?

ダッシュボード、エクスプローラー、マイニングレポートは読み取った時点の難易度を表示しますが、DigiByteではその値は数秒で古くなります。さらにエクスプローラーが公開するのは、採掘された時点の各ブロックの難易度だけで、ブロックとブロックの間の数秒に有効だった目標値は決して公開されません。惜しい外れが起きるのは、まさにその間です。

これはeCashのReal-Time Targetingと同じですか?

症状は同じですが、仕組みは違います。eCashのRTTは各ブロックの後に要求値を引き上げ、経過時間に応じて約115秒かけて下げていきます。DigiByteのMultiShieldは、5つのアルゴリズムのいずれかでブロックが出るたびにSHA-256の目標値を動かし、その方向はSHA-256レーンが他より先行しているか遅れているかで決まります。

私のDigiByteのブロックが失われた、孤立した、あるいはプールに隠された可能性はありますか?

シェアが有効な目標値を下回っていたなら、その可能性はありません。そもそもブロックが作られていないからです。目標値に届かないシェアは通常のシェアとして受理され、ネットワークには一切送られません。ノンカストディアルのプールでは、ハッシュ計算の前から支払いアドレスがコインベースに書かれているため、本物のブロックはすべてあなた自身の名義でオンチェーンに表示されます。

DigiByteの難易度が急上昇しているときにシェアが届くと、何か損をしますか?

あなたが対処できる形での損はありません。難易度の変動はすでにチェーンの実際のブロック生成に織り込まれているので、時間とともに平均化されます。変動が決めるのは、どの惜しい外れがブロックになるかだけです。長期的な確率は、引き続き平均難易度とあなたのハッシュレートに従います。

難易度の急上昇でDigiByteのブロックを逃さないにはどうすればいいですか?

目標値のタイミングは読めないので、急上昇を避ける設定はありません。役立つのは、自分の数値を正しく読むこと、シェア難易度の管理をプールのvardiffに任せること、そして15秒ブロックのチェーンで遅延を低く保つために近いサーバーへ接続することです。ブロックを確認するには、オンチェーンのコインベーストランザクションで自分のアドレスを探してください。