blockchain-101

Lohkoketju on julkinen, hajautettu pääkirja kaikista tapahtumista, jotka koskaan tapahtuvat kyseisellä lohkoketjulla. Vaikka Bitcoin näyttää olevan synonyymi blockchainille, blockchain -tekniikka ei ole vain Bitcoin. Bitcoin on suurin ja tunnetuin teknologian toteutus, mutta jotkut muut suuret avoimen lähdekoodin toteutukset ovat Ethereum ja Litecoin.

Yksinkertaisesti estoketju on ohjelmisto, joka toimii miljoonilla tietokoneilla. Nämä tietokoneet (tai solmut) kommunikoivat keskenään varmistaakseen, että tiedot pysyvät synkronoituna.

Mutta miten se toimii ja miksi se keksittiin?

Kaksinkertainen kulutusongelma

Yksi keskuspankin, luotettavan viranomaisen, kuten pankin, ensisijaisista tehtävistä on estää niin sanottu ”kaksinkertainen kulutus”Ongelma. Pankit toimivat luotettavina välittäjinä varmistaakseen, että rahaa ei käytetä digitaalisesti kahdesti. Pankit varmistavat, että tämä rahanvaihto tapahtuu a kauppa.

Tapahtuma on määritelmän mukaan atomi, eli joko tapahtuu tai ei tapahdu, ei ole välitilaa. Myös tapahtumat ovat peräkkäisiä. Tämä tarkoittaa, että tapahtuma seuraa ja/tai edeltää aina toista tapahtumaa. Kaupat eivät tapahdu samanaikaisesti.

Oletetaan esimerkiksi, että Hannalla on 10 dollaria ja hänen on maksettava Aliselle 3 dollaria ja Liamille 5 dollaria. Näiden tapahtumien looginen ja onnistunut lopettaminen johtaisi siihen, että Hannahilla olisi 2 dollaria, Alicella 3 dollaria ja Liamilla 5 dollaria. Hannah ei voi lähettää samaa rahaa sekä Alicelle että Liamille täsmälleen samaan aikaan. Jos hän tekisi niin, Hannah saisi 5 dollaria, Alice 3 dollaria ja Liam 5 dollaria. Hannah olisi luonut maagisesti 3 dollaria ylimääräistä. Hän olisi käyttänyt rahansa kahdesti.

Ilman luotettavaa keskusviranomaista, kuten pankkia, joka pitää kirjaa kaikista näistä tapahtumista, rahoitusjärjestelmä hajoisi nopeasti.

Siksi, vaikka ajatus hajautetusta kirjanpidosta ja digitaalisesta valuutasta on ollut esillä 1990 -luvulta lähtien, kaksinkertaisen kulutuksen ongelma oli valtava kompastuskivi sen käytännön toteuttamisessa.

Kuinka Bitcoin/Blockchain ratkaisee sen

Vuonna 2009 Satoshi Nakamoto, vielä tunnistamaton henkilö, julkaisi valkoinen paperi jossa hän väitti ratkaisevansa kaksinkertaisen kulutuksen ongelman ilman keskusvirastoa toimimasta välimiehenä digitaalisen salauksen, peliteorian ja tietojenkäsittelytieteen avulla.

Nick Szabo esitteli Bitgold Bitcoin on niin samanlainen kuin Bitgold ja jakaa niin monia sen käsitteitä, että jotkut epäilevät, että Szabo on Satoshi Nakamoto.

Julkisen avaimen salaus

Jotta voidaan ymmärtää, miten blockchain-tekniikka toimii, sinun on ymmärrettävä julkisen avaimen salaus. Tämän aiheen tekniset yksityiskohdat eivät kuulu tämän artikkelin soveltamisalaan. Lisätietoja on saatavilla tässä.

Erittäin korkealla tasolla julkisen avaimen salaus perustuu kahteen avaimeen: julkiseen avaimeen ja yksityiseen avaimeen. Nämä kaksi avainta ovat linkitettyjä, mutta erillisiä alla olevan mukaisesti:

  • Vain julkinen avain voi purkaa vastaavan yksityisen avaimen salaaman datan salauksen
  • Julkinen avain voi tarkistaa vastaavan yksityisen avaimen allekirjoittamat tiedot

Julkinen avain voidaan jakaa turvallisesti muiden kanssa, joten “julkinen”. Yksityinen avain on pidettävä salassa turvallisuussyistä. Julkinen avain voidaan johtaa yksityisestä avaimesta, mutta ei päinvastoin.

Oletetaan esimerkiksi, että Bob haluaa lähettää salaisen viestin Alicelle. Bob tarvitsee tietää Alicen julkisen avaimen salatakseen viestin ennen sen lähettämistä hänelle. Koska julkinen avain ei ole salaisuus, Alice voi lähettää sen Bobille. Kun Alice vastaanottaa salatun viestin, hän voi purkaa sen salauksen yksityisellä avaimellaan. Jokainen keskellä oleva, joka sieppaa viestin, ei voi purkaa sen salausta ilman Alicen yksityistä avainta.

Esimerkiksi julkinen avain näyttää tältä:

305C300D06092A864886F70D01010105 00034B003048024100A251C92CCA3E7B 6599146DDB10044807B3AA1EFA8BE627 4D329765E0CC5A0EA03CA8F010524A89 2484A7C3309DB

Salattu viesti voi näyttää tältä:

—–BEGIN PGP MESSAGE —– hIwCMavvb4t6z90BA / 42UOAdWvnzfhRG2xXyYe203CISLsn2O39vM / y640hNbSl7 U29aNGZFfLMRGn7eLZG43SWwBz4cHjphG6iAzeLftRgHkLggxXA9VpGki5PyNID9 B0rk4TpRVE3qzgTbdio69aMlK6BdAQ4zWkyxSCi0oR3Vpnh + VVZyOVyaX8etlYRM AvUTsuDYCkr1AQH + OlA4ntqhxoPP / SJpKm5ugMLYiiij8ak8V90a8IYMkYB0CzMr liOJ6ZZxQm1x8orgjL / 6Bm5EoSvN4eCCeA / xXKYAAAHXLhG47kVhJkjlPrI / U / sr 2aQEm6r + aU1s0ziU1LxF2c5DAW6cD5b4xH + EbvYrnQQJClNMh9y03SjviXvnqFDC O4M70u3iLC50 + em4PouqM1DZdoW8O5pb = vhFx —– END PGP MESSAGE—–

Hash-toiminnot-SHA-256

Salaus varmistaa, että kahden osapuolen väliset viestit ovat turvallisia ja luotettavia. Vastaanottajan on kuitenkin myös varmistettava, ettei vastaanotettua viestiä ole muokattu. Tätä varten jokainen lähetetty viesti allekirjoitetaan digitaalisesti käyttäen hajautusarvoa.

Hajautus on kuin viestin digitaalinen allekirjoitus. Lukuisia algoritmeja, jotka tunnetaan nimellä hash -toiminnot, on kehitetty tuottamaan tiiviste, kuten MD5 ja SHA-1, mutta nykyään yleisimmin käytetty on nimeltään SHA-256. Hajautuksen yksityiskohdat ja eri hajautustoimintoihin liittyvä matematiikka ovat tarpeettomia lohkoketjun ymmärtämiseksi.

Hajautusfunktio on yksisuuntainen funktio. Tämä tarkoittaa, että viestin tiiviste on aina sama käytettäessä samaa toimintoa. Viestiä ei kuitenkaan voida purkaa hajautuksesta.

SHA-256 tuottaa aina 256-bittisen tiivistearvon. Esimerkiksi:

[taulukon tunnus = 1 /]

Kuten näette, yksittäinen tietojen muutos (tässä tapauksessa iso kirjain L) muuttaa tiivisteen kokonaan.

Hajautusfunktion tietojen syöttö voi olla yhtä yksinkertaista kuin yksi sana tai se voi olla koko sanakirja, ja se tuottaa aina 256 -bittisen tiivistearvon, joka on samanlainen kuin edellä.

Mitä Ketjut ovat

Kuten edellä mainittiin, mikä tahansa tietojoukko voidaan siirtää hajautusfunktion kautta vastaavan tiivisteen luomiseksi. Lohkoketjussa tämä tietojoukko on siinä tapahtuvat tapahtumat. Jokainen lohkoketjun tapahtuma on digitaalisesti allekirjoitettu hashilla, joka käyttää tällä hetkellä SHA-256-toimintoa. Kaikki myöhemmät tapahtumat sisältävät sen edellisen tapahtuman digitaalisen allekirjoituksen. Tämä muodostaa a ketju tapahtumista siten, että jos ketjuun kuuluvia tapahtumia muutetaan, se muuttaa kaikkien myöhempien tapahtumien hajautusarvoa. Tämä helpottaa ketjun tunnistamista, jossa aiempaa tapahtumaa on muokattu, vain vertaamalla hajautusarvoja.

Esimerkki: Oletetaan, että Bobin on siirrettävä 10 dollaria Alicelle ja toinen 5 dollaria Charlielle. Koska tapahtumat ovat atomisia, Bob siirtää 10 dollaria Aliceen ensin. Tämä tapahtuma allekirjoitetaan digitaalisesti SHA-256-tiivisteellä. Seuraava tapahtuma, jossa Bob siirtää 5 dollaria Charlielle, allekirjoitetaan myös digitaalisesti, mutta tällä kertaa se sisältää myös edellisen tapahtuman hajautuksen.

[taulukon tunnus = 2 /]

Lohkoketjun tapahtumat eivät tietenkään näytä tältä, mutta tämä antaa yleiskuvan siitä.

Mikä on kaivostoiminta

Kuten aiemmin mainittiin, lohkoketju on samaa ohjelmistoa käyttävien solmujen verkko, jotka kommunikoivat keskenään varmistaakseen, että tiedot ovat synkronoituja. Jotkut näistä ovat erikoistuneita solmuja, joita kutsutaan kaivostyöläisiksi.

Kaivostyöläisten tarkoitus on tarkistaa lohkoketjussa suoritettavat tapahtumat. Kun useita tapahtumaketjuja on vahvistettu, ne yhdistetään muodostamaan lohko tapahtumista.

Palkkiona tapahtumien oikeasta ja rehellisestä tarkistamisesta kaivostyöläiset saavat vastaavan lohkoketjun kryptovaluutan. Joten esimerkiksi Bitcoin -lohkoketjun kaivostyöläiset palkitaan Bitcoinilla. Tämä määrä on kiinteä, mutta voi vaihdella ajoittain.

Kaivostyöläisten on näytettävä omansa todiste työstä ansaitakseen palkintonsa. The tehdä työtä suoritettava on olennaisesti löytää 32-bittinen kenttä, joka tapahtumaketjun hajautusarvon kanssa tiivistettynä luo toisen tiivistearvon, jolla on tietty määrä alkulukuja. Tätä kenttää kutsutaan nonceksi. Syntyvien nollien lukumäärän määrää vaikeus, joka muuttuu, kun tietty määrä lohkoja on louhittu. Mitä enemmän numeroita on edessä, sitä vaikeampaa on löytää ei -numero. 

Esimerkkinä Bitcoin -lohkon nonce493257 todettiin olevan 1488602745 joka lohkon tapahtumien kanssa tiivistettynä loi lohkon hajautuksen 0000000000000000000034bd56aea0c6db865e8dff1fe5d2023170b568ad5e0968. Huomaa lohkon tiivistearvon alussa olevat nollat.

On erittäin mahdotonta johtaa ei -kaavaa käyttämällä kaavaa. Ainoa tapa löytää ei -arvaus on arvailla. Tämä tarkoittaa sitä, että kaivostyöläisten on käytettävä omaa laskentatehoaan voidakseen käydä läpi suuren määrän 32-bittisiä arvoja ennen kuin he törmäävät olennaisesti arvoon, joka täyttää johtavien nollien vaatimukset. Se, että he löysivät noncen, osoittaa, että he ovat tehneet työtä löytääkseen sen.

Blockchainin yhdistäminen

Julkisen avaimen salaus varmistaa, että kahden tilin väliset tapahtumat ovat turvallisia.

Hash -toiminnot varmistavat, että tapahtumat ovat kelvollisia, atomisia ja käytännössä mahdotonta muuttaa.

Kaivostoiminta työtodistuksen avulla varmistaa, että kolmas osapuoli vahvistaa ja vahvistaa tapahtumat.

Kaikki nämä yhdessä toimivat menetelmät tekevät hajautetun kirjanpidon ja siten digitaalisen valuutan kaltaisen sovelluksen mahdolliseksi lohkoketjussa.