Tiivistelmä Hajautuksesta
Pyyhkäise näyttääksesi valikon
Hajautusta ja lohkojen tiivisteitä on mainittu useaan otteeseen, mutta itse käsitettä ei ole vielä tarkasteltu yksityiskohtaisesti. Nyt on aika ymmärtää, mitä hajautus oikeastaan on.
Hajautus on prosessi, jossa syöte muunnetaan kiinteän kokoiseksi tavujonoksi, joka esitetään tyypillisesti heksadesimaalilukuna. Tuotosta kutsutaan tiivisteeksi, ja se näyttää satunnaiselta sekä muuttuu täysin, jos syötettä muokataan – tätä ominaisuutta kutsutaan "lumivyöryefektiksi".
Hajautusfunktioiden ominaisuudet
Lohkoketjussa hajautusfunktioita käytetään:
- Turvaamaan tapahtumat luomalla jokaiselle yksilöllinen sormenjälki;
- Luomaan osoitteita julkisista avaimista;
- Muodostamaan lohkoketjun linkit lohkotiivisteiden avulla.
Tämän perusteella hyvä hajautusfunktio lohkoketjua varten sisältää useita keskeisiä ominaisuuksia:
Hajautusta, erityisesti hyvän hajautusfunktion avulla, voidaan verrata smoothien valmistamiseen. Tarkastellaan seuraavaa havainnollistusta:
Itse asiassa on mahdollista löytää alkuperäinen syöte annetusta hashista, mutta siihen kuluisi niin paljon aikaa, ettei se olisi käytännössä mahdollista.
Lohkon hashauksen yleiskatsaus
Bitcoin käyttää tietyn lohkon hashin laskemiseen SHA-256-hash-funktiota, joka tuottaa 256-bittisen (32-tavuisen) hashin. Se kuuluu SHA-2-perheeseen, jonka on suunnitellut National Security Agency (NSA) ja joka tunnetaan vahvoista suojausominaisuuksistaan, tehden siitä vastustuskykyisen törmäyksille, preimage-hyökkäyksille ja muille kryptografisille haavoittuvuuksille.
Bitcoin-lohkon hash lasketaan ottamalla lohkon otsikkotiedot. Nämä tiedot syötetään SHA-256-hash-funktioon kahdesti prosessissa, jota kutsutaan kaksois-SHA-256:ksi.
Tässä on kuva selventämään asiaa:
Tuloksena syntyvän 256-bittisen tiivisteen on täytettävä verkon vaikeustason määrittelemät kriteerit. Jos tiiviste ei alita tavoitetta, nonce-arvoa muutetaan ja tiiviste lasketaan uudelleen, kunnes kelvollinen tiiviste löytyy. Tämä lopullinen tiiviste toimii lohkon yksilöllisenä tunnisteena.
Merkle-juuri
Merkle-juuri on yksittäinen tiiviste, joka edustaa kaikkia lohkoon sisältyviä transaktioita. Sen laskenta alkaa jokaisen yksittäisen transaktion tiivisteestä käyttäen kaksois-SHA-256 -algoritmia.
Jokainen transaktiotiiviste paritetaan toisen kanssa, ja pari tiivistetään yhdessä uuden tiivisteen muodostamiseksi. Tätä parittelu- ja tiivistysprosessia jatketaan kerros kerrokselta, kunnes jäljellä on vain yksi tiiviste. Lopullinen tiiviste on Merkle-juuri, joka kattaa koko transaktiojoukon ja varmistaa niiden eheyden koodaamalla ne yhteen arvoon. Tätä hierarkkista rakennetta kutsutaan nimellä Merkle-puu.
Seuraava esimerkki havainnollistaa, miten Merkle-puu muodostetaan:
Kuten näet, lohkossamme on 6 tapahtumaa (jokainen merkitty Tx-tunnuksella) ja hajauttamalla sekä yhdistämällä uusia tiivisteitä lasketaan Merkle-juuri.
Aina kun oikeanpuoleisella tiivisteellä ei ole paria, kuten esimerkissämme Hash56, tämä viimeinen tiiviste kopioidaan parin muodostamiseksi. Tämä tekniikka säilyttää Merkle-puun rakenteen eheyden ja tehokkuuden myös silloin, kun tapahtumien tai tiivisteiden määrä on pariton jossain vaiheessa.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme