同じ不具合、二つの結末:Telestai と Ravencoin、そしてフォークが受け継ぐもの

·7 分で読める·SSP Editorial Team 著
SSP Academy カバー:Telestai と Ravencoin、フォークが受け継ぐもの

同じ不具合、二つの結末:Telestai と Ravencoin、そしてフォークが受け継ぐもの

昨日は Ravencoin のコンセンサス不具合について書きました。ブロックヘッダーの検証されない nHeight フィールドがプルーフ・オブ・ワークの偽造を許し、それを取り消すのに三日ぶんのチェーン再編成を要した話です。

あの話には後半があり、そちらのほうが役に立ちます。別のチェーンが、まったく同じ場所にまったく同じ不具合を抱えていました。そちらは一度も悪用されませんでした。

この二つの結末の違いは理解する値打ちがあります。コードの違いではないからです。

Telestai は欠陥を受け継いだ。フォークとはそういうもの

Telestai は Ravencoin のフォークです。そのコードベースは Meowcoin を経て Ravencoin から下ってきました。Telestai Core 3.0.1 のリリースノートには片づけ項目として今も「Meowcoin 由来ソースの一掃」が並んでおり、その血筋がついこの間までソースツリーに見えていたことを物語ります。

Ravencoin のヘッダー検証は、宣言された nHeight をブロックのチェーン上の実際の位置と照らし合わせていませんでした。Meowcoin も同じ。Telestai も同じ。誰かが Telestai にこの不具合を持ち込んだのではありません。ほかのすべてと一緒にやってきたのです。フォークが、誰かが見ている部分と一緒に、誰も見ていない部分まで受け継ぐ、あのやり方で。

一つの欠陥が複数のチェーンの問題になる、その地味な仕組みがこれです。フォークは独立へ向かって漂っていく複製ではありません。親の前提の履歴をまるごと運ぶ複製です――ここでは、そのフィールドはもう誰かが検証しているはず、という前提も含めて。

二日の猶予で Telestai がしたこと

Ravencoin の悪用が公表されたのは 2026 年 8 月 11 日。Telestai Core 2.1.8 は 8 月 13 日、ずばり「Security: KAWPOW nHeight bind」と題して出ました。

そのリリースノートは言葉を濁しません。

本リリースは、ヘッダーの nHeight フィールド(ethash のエポックを選ぶフィールド)がチェーンに束縛されていなかったという KAWPOW のコンセンサス/DoS 問題を修正します。同種の不具合は Ravencoin メインネットで悪用されました。旧バージョンを動かす Telestai ノードは、アップグレードするまで露出したままです。

修正そのものは層になっており、その層構造こそが興味深い部分です。

  • エポックの絶対上限が即座に強制されます。プルーフ・オブ・ワークのハッシュ計算が始まるより前にです。
  • 厳密な height == prev + 1 の束縛はブロック 1,100,000 で有効化されます。ソフトフォーク方式で、履歴の書き換えは伴いません。
  • プルーフ・オブ・ワークは、親ブロックが見つかり高さが検証されたあとでしか計算されません。これは、本来即座に拒否すべきヘッダーに対してノードに高価な計算をさせられるメモリ枯渇の経路を塞ぎます。
  • 同じ検査は ConnectBlockVerifyDB にも適用され、データベースを再インデックスするノードが新しい規則の禁じるものを黙って受け入れ直すことがないようにしています。

2.1.8 が着地したときメインネットは高さ 1,057,000 あたりでした。強制の発動は 1,100,000 に置かれました。この差――およそ 43,000 ブロック――は意図的です。取引所、プール、エクスプローラー、ノード運用者が規則の発動前にアップグレードするのに十分な滑走路であり、かといって窓が無期限に開いたままになるほど長くもない。

Telestai は出所も明示しました。ノートは 2miners/Ravencoinrvn-nheight-fix ブランチ――Ravencoin の事故から生まれたまさにそのパッチ――を指し、より広範なヘッダー受理の修正を文書化した研究者たちに謝意を示しています。治療法は、不具合が通ったのと同じ道を通ってきたのです。

二つの結末を並べて

二つのチェーン。ひとつのコードの系譜。まったく同じ、眠っていた欠陥。

Ravencoin のほうは攻撃者が先に見つけました。結果は、公表までの四日間の偽ブロック、入出金を止める取引所、およそ 20% の値下がり、そして汚染された枝を取り除くための三日ぶんの再編成です。

Telestai のほうは、他人の事故報告を読むことで見つかりました。結果は、二日後のパッチ、余裕をもって置かれた発動高さ、そして――取り除くべき無効な履歴がなかったので――再編成そのものが不要でした。何も巻き戻されていません。巻き戻す必要がなかったからです。

違いはそれだけです。より良いコードではありません。別の不具合でもありません。ただ、誰が先に気づいたか。そして、そのチェーンを保守する人たちが、他人のひどい一週間にどれだけ速く反応したか。

そのあと Telestai はアルゴリズムごと入れ替えた

セキュリティパッチの六日後、Telestai は Core 3.0.0 を公開し、ブロック 1,150,000――2026 年 10 月 16 日ごろ――で自前のプルーフ・オブ・ワークである Meraki へフォークします。Meraki は今も KAWPOW の親戚で(ProgPoW 風味の Ethash 派生であり、マイナーは kawpowminer のフォークとして始まりました)、低消費電力で控えめな GPU でも届く、と位置づけられています。

ここで因果関係には慎重であるべきです。まっすぐな線を引きたくなりますが、線はまっすぐではありません。Meraki は八月より前からすでに進行中でした。3.0.0 のテストネット慣らしビルドが公開されたのは 8 月 13 日と 14 日、セキュリティリリースと同じ日々です。四十八時間で組み上げられる日程ではありません。アルゴリズムの変更は、たまたま事故の隣に着地した計画済みの作業であって、それへの反応ではないのです。

リリース一覧には、チェーンを保守することの地味な側面についての小さな教訓もあります。セキュリティ修正とフォークのあいだに、Telestai はコンセンサスとは何の関係もない理由で 2.1.9 を出しました。2.1.8 は新しめの Berkeley DB に対してビルドされており、それで古い wallet.dat を開くとウォレットのログが書き換えられ、古いクライアントがそのファイルを読めなくなりうるのです。そこで Berkeley DB 4.8 に対して作り直し、もう一度出しました。それにアップグレードすることが利用者のウォレットファイルを危険にさらすなら、セキュリティリリースの意味は薄れます。

これが二つの小さなチェーンを超えて重要な理由

これを読む人の多くは RVN も TLS も持っていません。一般化できるのはパターンのほうです。

フォークされたチェーンは不具合の面を共有しており、それを追う者はほとんどいません。 ライトコイン、ドージコイン、ビットコインキャッシュ、Ravencoin、Zcash、そのほか数十のチェーンが Bitcoin Core から下っており、どれもが分岐点を抱えています。その点より先では、上流の修正は自動的には届きません。あるチェーンで公表された脆弱性は、同じコードの下流にあるすべてのチェーンにとって未解決の問いであり、フォークが遠くへ漂っているほど、その修正が当てはまるかどうかを知ることすら手間になります。Telestai はその問いに二日で答えました。すべてのフォークに、それを仕事とする人がいるわけではありません。

「誰も悪用しなかった」は「そこに無かった」と同じではありません。 Telestai のノードソフトウェアは、その存在の全期間にわたって脆弱でした。不具合はずっと本物で、新しかったのは注意だけです。兄弟チェーンからの事故報告を一度も受け取らないチェーンは、この道筋では知りようがありません。

悪用より先に着地する修正はほとんど費用がかかりません。同じ修正があとになると、費用は再編成です。 Telestai 2.1.8 の技術的な作業と Ravencoin のハードフォークのそれは、おおむね同じパッチです。違ったのはその周囲のすべて――捨てるべき無効な履歴があったかどうか、取引所が止まらねばならなかったかどうか、利用者の承認が三日のあいだ何かを意味していたかどうか。

これは再現可能ビルドと依存関係の精査の背後にあるのと同じ理屈です。あなたを守っているものの大半は、ウォレットの内側から見えるどんなものよりも上流にあり、あなたの代わりに気を配っている人たちによって保たれています。

SSP における意味

実務上は、あなたにとって何も変わりません。

SSP は Ravencoin に対応しており、私たちのノードは回復チェーン上で 4.8.0 を動かしています――昨日の記事で、再編成の両側のブロックハッシュを参照チェーンと突き合わせて確認しました。SSP は Telestai に対応していないので、あなたのウォレットに気を揉むべき Telestai 残高はありません。

対応していないチェーンについて書いているのは、この話が、私たちが本当に真剣に受け止めているものをきれいに例示しているからです。ノード基盤を運用するとは、私たちが載せているすべてのチェーンについて上流のセキュリティ作業を追うということであり、そこにはコードベースが祖先を共有するチェーンも含まれます。その価値は、うまくいっているあいだは完全に不可視です。パッチを当てたノードは当てていないノードとまったく同じに見えます――そう見えなくなる日が来るまでは。

Telestai の八月は、それを内側から見た姿です。保守する誰かが他人の悪用について読み、自分のコードツリーに同じ形を見つけ、リリースする。事故もなく、再編成もなく、外の誰かが覚えているような告知もない。ただバージョン番号が上がるだけです。

この記事をシェアする

関連記事