ID 生成ライブラリ uuid を使用した UUID v4 の衝突報告──約 1.5 万件の小規模 DB で発生
統計的にほぼ不可能な UUID v4 の衝突が npm パッケージ環境で報告され、実行環境の PRNG 信頼性や ID 設計の前提を揺るがしている。
リリース: 2026-05-08 · 読了 3 分何が起きた
Hacker News にて、わずか 15,000 件のレコードを保持するデータベースで UUID v4 (b6133fd6-70fe-4fe3-bed6-8ca8fc9386cd) の重複が報告された。
使用されていたツールは npm の uuid パッケージであり、標準的な uuidv4() メソッドを呼び出す実装であった。
UUID v4 は 122 ビットの乱数に基づき、衝突確率は 10^15 件生成して 10 億分の 1 程度とされるが、今回はその数兆分の 1 の規模で発生した。
コミュニティでは、OS のエントロピー不足や VM スナップショットのクローンによる PRNG 状態の重複が原因として疑われている。
なぜ重要
「UUID は事実上衝突しない」という設計前提が、特定の実行環境(コンテナやサーバーレス)では崩れるリスクを具体例で示している。
👁️ 開発者
分散システムで ID を生成する際、OS のエントロピー不足や VM 複製に起因する乱数重複を想定し、DB 側の Unique 制約と衝突時のリトライロジックの実装が不可欠になる。
🇯🇵 日本
国内のスタートアップや受託開発チーム(特に Node.js 環境)は、ID 生成を UUID v4 に依存しきらず、DB 側の制約による保護を徹底するか、ULID 等の代替案を検討する契機となる。