ソフトウェア開発において、オブジェクトを一意に識別するIDは根幹的な技術の一つです。現在広く使われているUUID(Universally Unique Identifier)は122ビットのランダム値を用い、衝突確率を極めて低く抑えています。しかし、もし人類が太陽系を超えて広がる文明を築いたとしたら、UUIDの設計は十分でしょうか。

ソフトウェアエンジニアのJason Fantl氏が発表した「Cosmologically Unique IDs」という論考が、Hacker Newsで239ポイントを獲得し注目を集めました。UUIDの限界を物理学の観点から分析し、宇宙の熱的死まで衝突しないIDの設計を真剣に考察した内容になっています。

UUIDの仕組みと「衝突確率」の考え方

UUIDv4は122ビットのランダム値を使い、誕生日のパラドックスに基づくと約261個のIDを生成した時点で衝突が期待されます。これは日常的なシステムでは十分すぎる数ですが、文明が宇宙全体に広がるシナリオではどうなるのか、という問いがこの論考の出発点になりました。

宇宙の物理的限界から逆算するID設計

Fantl氏は「Universal Limits on Computation」という論文を引用し、宇宙全体を最大効率のコンピュータ(コンプトロニウム)に変換した場合の演算上限を10120回と見積もりました。この全演算がID生成に使われたとしても衝突しないためには、798ビットのIDが必要になります。

より現実的なシナリオも検討されています。観測可能な宇宙のすべての原子(約1080個)にIDを割り当てるなら532ビット、全質量を1グラムのナノボットに変換するなら372ビットで十分という計算結果が示されました。

確率ではなく確実性を求める「Dewey方式」

ランダムIDは衝突確率を「ほぼゼロ」にできますが、理論上ゼロにはなりません。Fantl氏はこの点に着目し、決定論的に一意性を保証する階層型命名方式「Dewey」を提案しています。

仕組みはシンプルで、IDを持つデバイスが新しいデバイスにIDを割り当てる際、自身のIDの後ろにカウンター値を追加する方式を採用しています。たとえばID「13」の衛星が6番目のIDを発行すると「13.5」になり、その船がさらにロボットにIDを発行すると「13.5.3」のように伸びていきます。中央管理なしで一意性が確実に保証されるのが特長です。

開発者にとっての実務的な意味

この論考は思考実験の側面が強いものの、いくつか実務に通じる示唆を含んでいます。まず、ID空間の設計はシステムの寿命と規模を決定づけるという点です。IPv4からIPv6への移行が示すように、「今は十分」なID空間はいずれ不足する可能性があります。

また、Dewey方式のような階層型IDは、分散型ネットワークやIoTデバイスの管理において参考になる考え方でしょう。中央サーバーへの依存を排除しつつ一意性を保てるため、通信遅延が大きい環境にも適しています。

暗号学的な安全性との関係

ランダムIDの生成には、真の乱数源やCSPRNG(暗号論的擬似乱数生成器)の使用が推奨されます。疑似乱数生成器のシード値が予測可能だと、衝突確率が理論値よりはるかに高くなるためです。セキュリティ脆弱性の観点からも、ID生成の乱数品質は軽視できない要素と言えます。

まとめ

Cosmologically Unique IDsの論考は、ID設計という身近な技術課題を宇宙物理学のスケールで考え直した興味深い試みです。798ビットから122ビットまで、求めるパラノイアレベルに応じた選択肢が示されており、インターネット基盤技術の未来を考えるうえでも示唆に富む内容になっています。

詳細はJason Fantl氏の元記事で確認できます。また、UUID仕様についてはRFC 9562が参考になるでしょう。誕生日のパラドックスの数学的背景はWikipediaの解説がわかりやすくまとまっています。