loading
UUID v4
Printo
  • 0

? A është UUID v4 më unik se një kokërr rëre?

“A është e mundur të gjenerosh dy herë të njëjtin UUID v4?”
“A është më e mundur të marrësh të njëjtën kokërr rëre nga një plazh?”

Për zhvilluesit, sistemistët, dhe çdo njeri kurioz me probabilitetin, kjo pyetje nuk është thjesht interesante — është një dritare në çfarë do të thotë “unik” në botën reale dhe atë digjitale.


? Çfarë është UUID v4?

UUID v4 (Universally Unique Identifier, version 4) është një 128-bit identifikues që gjenerohet përmes një gjeneratori të sigurt të numrave të rastësishëm (CSPRNG).

  • Ka 2¹²² kombinime të mundshme

  • Kjo përkthehet në:
    5.3 × 10³⁶
    (53 undecilion, një numër me 36 zero!)

Në praktikë, kjo është aq e madhe saqë një përsëritje është më pak e mundshme se… çdo gjë tjetër që mund të imagjinosh.


? Si funksionon CSPRNG (Cryptographically Secure Pseudo-Random Number Generator)?

UUID v4 nuk është thjesht një numër rastësor — është një numër i gjeneruar kriptografikisht, që do të thotë:

  • Përdor një burim të fortë entropie (të rastësishme) nga sistemi operativ

  • Gjeneron numra që janë të paparashikueshëm

  • Ka cilësi të lartë të rastësisë, që e bën të sigurt për përdorim në kriptografi

Burimet e entropisë për CSPRNG përfshijnë:

  • Lëvizje të mausit

  • Kohë të rastësishme të aksesimit të diskëve

  • Rrjete dhe sinjale ndërprerjeje

  • Mikrosekonda nga bootimi i sistemit

  • Jitter të CPU-së

Në Linux, CSPRNG përdor zakonisht:

  • /dev/urandom ose /dev/random

  • Algoritme si ChaCha20, ose AES-CTR, varësisht nga implementimi

Në Windows:

  • Përdoret BCryptGenRandom() ose CryptGenRandom()

? E rëndësishme: Edhe në makina virtuale të klonuara, këto burime janë të ndryshme çdo herë — ndaj edhe UUID v4 i gjeneruar është ndryshe çdo herë.


?️ Krahasimi me një kokërr rëre

Studiuesit vlerësojnë se ka rreth 7.5 × 10¹⁸ kokrra rëre në të gjitha plazhet e Tokës.

Pra, nëse ti zgjedh një kokërr rëre nga plazhi, e hedh poshtë, dhe pas disa ditësh përpiqesh të marrësh të njëjtën kokërr përsëri, gjasa ekziston — por është jashtëzakonisht e vogël.

Megjithatë:

? Përsëritja e një UUID v4 është më pak e mundshme se të marrësh të njëjtën kokërr rëre nga Toka.


? Po nëse kopjoj dy makina virtuale identike?

Një pyetje e shkëlqyer:

Nëse krijoj dy makina virtuale të njëjta, me të njëjtën RAM, disk, MAC adresë, dhe i startoj në të njëjtën kohë… mund të prodhojnë të njëjtin UUID v4?

✅ Përgjigjja: Jo.

Sepse:

  • Edhe në kopje perfekte, disk latency, scheduling i CPU, dhe entropia në sistem ndryshojnë menjëherë pas startimit.

  • RNG në sisteme operative moderne mbështetet në burime të çrregullta të entropisë: lëvizje të mausit, kohëra të disqeve, rrjete, etj.

Do të të duhej të kopjoje jo vetëm diskun dhe RAM-in, por edhe gjendjen e RNG-së në memorie për të krijuar mundësi për përsëritje — diçka që është praktikisht e pamundur në kushte normale.


? Shembuj të tjerë të “unikalitetit të pamundur për t'u përsëritur”

? Gjurmët e gishtave

  • Formohen në bark të nënës, ndikuar nga presioni, pozicioni dhe rrjedhja e lëngjeve.

  • Edhe binjakët identikë i kanë ndryshe.

?️ Irisi i syrit

  • Më shumë se 266 veçori.

  • Përdoret në teknologji të sigurisë dhe është më unik se gjurmët e gishtave.

? Struktura e trurit

  • Çdo tru ka rrugëzime dhe sinapse të ndryshme.

  • Askush s’ka të njëjtën “hartë mendore”.

❄️ Flokët e borës

  • Formohen ndryshe çdo herë për shkak të kushteve të ajrit.

  • Askush nuk ka parë ndonjëherë dy të njëjtë.


? Tabela krahasuese

GJË UNIKE BURIMI SHANSET PËR PËRSËRITJE
UUID v4 RNG + kriptografi 1 në 5.3×10³⁶
Gjurmët e gishtave Biologji 1 në triliona
Irisi i syrit Strukturë biologjike Thuajse zero
ADN-ja Kombinime të trashëgimisë Shumë-shumë e rrallë
Flokët e borës Kushte atmosferike Thuajse unike
Kokërr rëre Planetare ~7.5×10¹⁸

✅ Përfundimi:

UUID v4 është një nga shembujt më ekstrem të unikalitetit digjital që ka ndërtuar njerëzimi.

Nëse ndonjëherë gjeneron të njëjtin UUID v4 dy herë pa e kopjuar — ndoshta RNG-ja është prishur, ose universi po të bën shaka.


? BONUS për zhvilluesit:

Përdor UUID v4 për:

  • ID unike në databaza të shpërndara

  • Token sigurie

  • URL unike të parashikueshme vetëm nga sistemi

Por asnjëherë mos përdor Math.random() për të gjeneruar UUID manualisht — nuk është i sigurt!

A ishte kjo përgjigje e dobishme?