UUID v4 Generator 解説書

RFC 9562 (旧 RFC 4122) 準拠の完全ランダムな識別子生成の技術詳解

1. UUID v4 とは

UUID Version 4 は、完全にランダムな値に基づいて生成される 128 ビットの識別子です。 タイムスタンプや MAC アドレスを使用する Version 1 や、特定の名前空間と名前に基づく Version 3/5 とは異なり、 入力値に依存せず、生成されるたびに異なる値を持つことが期待されます。

RFC 9562 において、Version 4 は「Randomly Generated UUIDs」として定義されています。

2. ビット構造とフォーマット

128 ビットのうち、特定のビットはバージョンとバリアントを示すために予約されています。

位置 (Hex) 目的 値の条件
13番目 Version 4
17番目 Variant 8, 9, A, B のいずれか

バリアントビットの上位 2 ビットは常に 10 に固定されます(RFC 9562 バリアント)。 そのため、16進数表記では 8 (1000), 9 (1001), A (1010), B (1011) のいずれかで始まります。

3. エントロピーと衝突の確率

UUID v4 では、128 ビットのうち 122 ビットがランダムに使用可能です。

Total possible IDs: 2^122 ≈ 5.3 × 10^36

この膨大な数により、意図的に衝突を発生させることは天文学的に困難であり、分散システムにおいて中央集権的な ID 発行局なしに一意な ID を生成するために広く利用されています。