🛠Tools🔥

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 等の代替案を検討する契機となる。