RFC 9562 (旧 RFC 4122) 準拠の完全ランダムな識別子生成の技術詳解
UUID Version 4 は、完全にランダムな値に基づいて生成される 128 ビットの識別子です。 タイムスタンプや MAC アドレスを使用する Version 1 や、特定の名前空間と名前に基づく Version 3/5 とは異なり、 入力値に依存せず、生成されるたびに異なる値を持つことが期待されます。
128 ビットのうち、特定のビットはバージョンとバリアントを示すために予約されています。
| 位置 (Hex) | 目的 | 値の条件 |
|---|---|---|
| 13番目 | Version | 4 |
| 17番目 | Variant | 8, 9, A, B のいずれか |
バリアントビットの上位 2 ビットは常に 10 に固定されます(RFC 9562 バリアント)。
そのため、16進数表記では 8 (1000), 9 (1001), A (1010), B (1011) のいずれかで始まります。
UUID v4 では、128 ビットのうち 122 ビットがランダムに使用可能です。
この膨大な数により、意図的に衝突を発生させることは天文学的に困難であり、分散システムにおいて中央集権的な ID 発行局なしに一意な ID を生成するために広く利用されています。