A hash az adatok ujjlenyomata. Bármely bemenetet betáplálunk egy hash függvénybe, és egy fix hosszúságú karakterláncot kapunk vissza. Ugyanaz a bemenet mindig ugyanazt a hash-t eredményezi. Ha megváltoztatunk egy karaktert a bemenetben, a hash teljesen megváltozik. Ez a tulajdonság hasznossá teszi a hash-eket az ellenőrzéshez. Ellenőrizhetjük, hogy egy fájl nem változott-e meg, ha összehasonlítjuk a hash-ét egy ismert jó értékkel. A Bitcoin SHA-256-ot használ. Az Ethereum Keccak-256-ot használ. Minden blokk tartalmazza az előző blokk hash-ét, amely összekapcsolja a láncot.
A hash-ek egyirányúak. Nem lehet visszafelé haladni egy hash-től az eredeti bemenetig. Ezért használják őket jelszavakhoz és bizonyítékokhoz. A bányászok versenyeznek, hogy egy adott célpont alatti hash-t találjanak. Megváltoztatnak egy nonce-t, hashelik a blokk fejlécét, és ellenőrzik az eredményt. A folyamat nagy léptékben tippelés és ellenőrzés. Egy érvényes hash megtalálása bizonyítja, hogy a munka megtörtént. Ennek ellenőrzése szinte semmilyen erőfeszítést nem igényel. Ez az aszimmetria a munkabizonyítás alapja. A hash függvényeket tárcacímek generálására és tranzakciók integritásának ellenőrzésére is használják.
Hash függvény tulajdonságai
- Determinisztikus – ugyanaz a bemenet mindig ugyanazt a kimenetet adja
- Gyorsan kiszámítható – az ellenőrzés olcsó
- Preimage-rezisztens – nem tudja visszafordítani a hash-t
- Lavinahatás – kis bemeneti változás, teljesen eltérő kimenet
A hash nem titkosítás. Ez egy egyirányú kivonat. Nincs kulcs, és nincs mód a visszafejtésre.
Comments
No comments yet. Be the first to share a thought.
Leave a comment