Privát kulcs, nyilvános kulcs, cím
Hogyan lesz egy véletlen számból cím, és miért nem lehet a címből visszafejteni a kulcsot?
Az előző kártyán láttuk, hogy a kriptovaluta birtoklása egy titkos kulcs ismeretét jelenti. Most nézzük meg, mi ez a kulcs valójában, és hogyan kapcsolódik a címhez.
A privát kulcs: egy nagyon nagy véletlen szám
A privát kulcs semmi más, mint egy véletlenszerűen választott szám, 1 és körülbelül 2^256 között. Ez 256 bitnyi információ – mintha 256-szor feldobnánk egy érmét, és minden fej 1-es, minden írás 0-s számjegy lenne. A számot általában hexadecimálisan, 64 karakterrel írjuk le, de a tárcák más, rövidebb és ellenőrzőösszeget is tartalmazó formátumokat is használnak (ezekről a Bitcoin és az Ethereum térképen lesz szó).
A kulcs biztonsága kizárólag azon múlik, hogy a szám elképzelhetetlenül nagy halmazból, valóban véletlenszerűen van kiválasztva. Próbáld ki, hogyan születik egy kulcs:
Interaktív elem – betöltés…
A nyilvános kulcs és a cím
A privát kulcsból egy matematikai művelettel, az elliptikus görbés szorzással számolható ki a nyilvános kulcs (public key). Ennek a műveletnek az a különlegessége, hogy az egyik irányban könnyű elvégezni, visszafelé viszont gyakorlatilag lehetetlen: a nyilvános kulcsból nem lehet kiszámolni a privát kulcsot. Az ilyen kulcspárokra épülő titkosítást aszimmetrikus vagy nyilvános kulcsú kriptográfiának nevezzük. A Bitcoin és az Ethereum is a secp256k1 nevű görbét használja.
A cím a nyilvános kulcsból készül hash-függvényekkel, majd egy olyan formába alakítják, amely rövidebb, könnyebben kezelhető, és ellenőrzőösszeget (checksum) is tartalmaz. Az ellenőrzőösszeg miatt egy elgépelt cím szinte mindig érvénytelen lesz – a tárca nem engedi, hogy egy elírt címre küldjünk pénzt.
Egy hasonlattal: a cím olyan, mint egy postaláda bedobónyílása. Bárki láthatja, és bárki bedobhat rajta valamit. A privát kulcs pedig a láda kulcsa: csak az veheti ki a tartalmát, akinél van.
Próbáld ki egy valódi kalkulátorral
Az alábbi kalkulátor a cryptodetective.net oldalról van beágyazva, és ugyanazt a számítást végzi el, amit egy tárcaprogram. Egy közismert gyakorló kulccsal van kitöltve (a „bitcoin is awesome” mondat SHA-256 hash-ével). Írj át benne egy karaktert, és nézd meg, mennyire más cím jön ki!
Megjegyzés: a címeket és a kulcsokat a tárca offline, internetkapcsolat nélkül is létrehozhatja, hiszen pusztán matematikai műveletekről van szó. Egy új cím a blokkláncon addig nem is jelenik meg, amíg valaki pénzt nem küld rá. Ezért a címek létrehozásáról nincs sehol nyilvántartás, és nem is lehet kérni senkitől, hogy „adja ki”, kié egy cím.
Extra tudásMi van, ha két ember ugyanazt a kulcsot kapja?
Elméletileg előfordulhatna, hogy két tárca véletlenül ugyanazt a privát kulcsot sorsolja ki. A lehetséges kulcsok száma azonban olyan nagy, hogy ennek esélye gyakorlatilag nulla: ha a Föld minden lakója másodpercenként egymilliárd kulcsot generálna, akkor is a világegyetem eddigi korának sokszorosáig tartana, mire két egyezőt találnának. A veszély nem a véletlen egyezés, hanem a rossz véletlen: ha egy tárcaprogram hibás, kiszámítható véletlenszám-generátort használ, vagy a felhasználó maga talál ki egy „véletlen” kulcsot (például egy jelszóból), akkor a kulcsok kitalálhatóvá válnak. Ez a gyakorlatban már többször vezetett tömeges lopáshoz – és a tárolásról szóló térképen látni fogjuk, hogy néha a nyomozónak is lehetőséget ad.
Extra tudásMiért kell külön nyilvános kulcs és cím?
Jogos kérdés, miért nem maga a nyilvános kulcs a cím. Ennek több oka van: a cím rövidebb, ellenőrzőösszeget tartalmaz, és a hash-elés egy további védelmi réteget is ad – amíg egy címről nem költöttek, a nyilvános kulcsa sem ismert. A régebbi Bitcoin-tranzakciók egy része egyébként közvetlenül nyilvános kulcsokra küldött pénzt; a legelső blokkok jutalmai ilyenek.
Ellenőrizd a tudásod
A kvíz betöltése…