UUID é único?

UUID (Universally Unique Identifier) é um algoritmo projetado para gerar um identificador único, existem outros algoritmos similares como o ULID ou o Snowflake do Twitter/X.

Esses métodos geram IDs exclusivos, no entanto, os respetivos objetivos de design, características e cenários aplicáveis são ligeiramente diferentes.

No caso de UUIDs padrão v1 e v2, que utilizam endereços MAC exclusivos de placas de rede, é improvável que ocorram colisões. A utilização dos endereços físicos das placas de rede torna a ocorrência de conflitos praticamente inexistente.

Sob a premissa de que os endereços MAC das placas de rede são exclusivos, não são definidos manualmente, nem gerados automaticamente pelo sistema, e não se trata de uma placa de rede falsa (ou placa-mãe), a probabilidade de colisões é baixa.

No entanto, para UUIDs de versão 3 e 5, que são baseados em algoritmos de hash, e para UUIDs de versão 4, que são gerados aleatoriamente, as colisões podem ocorrer mesmo sem problemas de implementação.

Assim, a probabilidade de encontrar um conflito é muito baixa. o UUID tem 128 bits, os valores possíveis são 2 ^ 128 ou 3,4 X 10 ^ 38.

Talvez assim como eu, você não consiga saber intuitivamente o tamanho desse número.

Então, considere o número total de átomos na matéria da Terra, que é da ordem de 10^50, e cada célula humana possui entre 10^14 e 10^17 átomos.

Agora visualize dividir a Terra em partículas do tamanho de células e espalhá-las em uma camada tão fina quanto o seus fios de cabelo. Se cada partícula fosse distinta e empilhada uma sobre a outra, então lançar-se agulhas da estação espacial, e cada agulha atingirá todas as células com igual probabilidade, a probabilidade de conflito de um UUID é equivalente à agulha atingindo a mesma célula duas vezes.

Ou dizendo de outra forma: suponha que você faça um furo na orelha, e um avião sobrevoe e jogue uma agulha, a probabilidade dessa agulha simplesmente passar pela sua orelha é dezenas de trilhões de vezes maior que o conflito de um UUID.

Portanto, embora o UUID não seja único no mundo e possa de fato entrar em conflito, para as pessoas na Terra ele pode ser considerado único em termos de engenharia.

Mesmo que os humanos o utilizem durante centenas de milhões de anos, enquanto ainda formos uma civilização que não pode viver sem o sistema solar, basicamente não há necessidade de considerar a possibilidade de conflitos contínuos.

Sobre Nicolau 23 Artigos
Fuçando o desenvolvimento de software desde 2013, sou da turma do código aberto, vivo pesquisando e garimpando a segurança na web. Sommelier de sucos e chocólatra de carteirinha. Hic svnt dracones.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*