Sisällysluettelo:

Kuinka lohkoketju todella toimii
Kuinka lohkoketju todella toimii

Video: Kuinka lohkoketju todella toimii

Video: Kuinka lohkoketju todella toimii
Video: Галлатин Теннесси Маленький краевед из еженедельного ... 2024, Saattaa
Anonim

Tämän postauksen tarkoituksena on kertoa kaikille, miksi lohkoketju keksittiin, miten kryptovaluutat toimivat ja miksi se on logiikan näkökulmasta viime vuosien kaunein järjestelmä.

Varoitan heti, että leikkauksen alla on VALTAINEN arkki tekstiä ja jos et ole valmis "sulkemaan" kysymystä kryptovaluutoista lopullisesti, lisää merkintä suosikkeihisi heti ja varaa aika)

Blockchain on tekniikka, uutta, outoa, käsittämätöntä, mutta se näyttää muuttavan maailmaa, toisin kuin nämä tarinasi. Ilmeisesti hän on ollut kanssamme pitkään.

Tämä viesti on kirjoitettu ikään kuin se kerrottaisiin ihmisille, jotka ovat hyvin kaukana tietokoneista ja tuntevat ne vain pintapuolisesti, esimerkiksi kuvittele, että hän valmistautui vanhempiisi. Voin jopa heittää sen pois humanistisille tovereilleni ja olla varma, että he ymmärtävät.

Ja Oleg auttaa meitä kaikkia tässä vaikeassa asiassa. Tavata!

Jos et pidä Olegista, potkaisen hänet ulos.

Perusasiat: miksi tarvitsemme lohkoketjua?

Lohkoketju kuvattiin Satoshi Nakamoton artikkelissa "Bitcoin: A Peer-to-Peer Electronic Cash System". Siellä kirjoittaja kuvasi vain kahdeksalla sivulla Bitcoinin kryptovaluutan perusteita, jotka perustuivat Blockchain-algoritmiin.

Lista, jota ei voi muuttaa

Blockchain - lohkojen ketju tai toisin sanoen linkitetty luettelo. Tällaisessa luettelossa jokainen seuraava tietue viittaa yhteen edelliseen ja niin edelleen ketjussa aivan ensimmäiseen. Kuten junan vaunut, jokainen vetää seuraavan mukanaan. Listojen osalta on hyvä Nikita Likhachevin artikkeli TJ:ssä, jossa sama selitetään täysin aloittelijoille. Analogiat on osittain otettu sieltä.

Otetaan esimerkki

Olegin ystävät lainaavat häneltä jatkuvasti rahaa. Oleg on ystävällinen, mutta äärimmäisen unohtava. Viikkoa myöhemmin hän ei enää muista, kuka ei palauttanut velkaa hänelle, mutta hän hämmentää kysyä sitä kaikilta. Siksi eräänä päivänä hän päätti tehdä lopun tästä luomalla kotinsa taululle ystävistä, joille hän lainasi rahaa.

Nyt Oleg voi aina mennä laudalle ja varmistaa, että Max palautti kaiken, mutta Vanya ei anna jo 700 ruplaa. Eräänä päivänä Oleg kutsuu Vanyan juomaan kotiinsa. Kun Oleg menee wc:hen, Vanya pyyhkii pois merkinnän "Lainasin Vanjalle 200 ruplaa" ja kirjoittaa sen tilalle "Vanya antoi 500 ruplaa".

Oleg, joka luotti luetteloonsa, unohtaa velan ja menettää 700 ruplaa. Hän päättää jotenkin taistella sitä vastaan. Viime vuonna Oleg osallistui ohjelmointikurssille, jossa hänelle kerrottiin hashuksesta. Hän muistaa, että mikä tahansa merkkijono voidaan muuttaa yksiselitteiseksi merkkijoukoksi - hash, ja minkä tahansa merkkijonon muuttaminen muuttaa sen kokonaan.

Pisteen lisääminen loppuun muutti lopullisen tiivisteen tuntemattomaksi - voit käyttää sitä.

Oleg ottaa tunnetun SHA-256 tiivisteen ja tiivistää jokaisen tietueen sillä lisäämällä tuloksen lopussa. Nyt Oleg voi varmistaa, ettei kukaan ole muuttanut hänen tietueitaan tiivistämällä ne uudelleen ja vertaamalla niitä vihreään.

Mutta EVIL IVAN osaa myös käyttää SHA-256:ta ja voi helposti muuttaa merkintää ja sen tiivistettä. Varsinkin jos hash on kirjoitettu sen viereen taululle.

Siksi Oleg päättää turvallisuuden lisäämiseksi tiivistää paitsi itse tietueen, myös lisätä sen yhdessä edellisen tietueen tiivisteen kanssa. Nyt kaikki seuraavat merkinnät riippuvat edellisistä. Jos muutat vähintään yhtä riviä, sinun on laskettava uudelleen kaikkien muiden alla olevien luettelon hajautusarvot.

Mutta eräänä päivänä Ivan hiipii yöllä, muuttaa tarvitsemaansa merkintää ja päivittää koko luettelon tiivisteet loppuun. Häneltä kestää useita tunteja, mutta Oleg nukkuu edelleen syvässä eikä kuule. Aamulla Oleg löytää ehdottoman oikean luettelon - kaikki tiivisteet täsmäävät. Mutta Ivan petti hänet joka tapauksessa, vaikka hän viettikin unettoman yön. Kuinka muuten voit suojautua Night Ivanilta?

Oleg päättää jotenkin monimutkaistaa elämäänsä. Nyt lisätäksesi luetteloon uuden merkinnän, Oleg ratkaisee siihen liittyvän monimutkaisen ongelman, esimerkiksi matemaattisen yhtälön. Hän lisää vastauksen viimeiseen tiivisteeseen.

Oleg on hyvä matematiikassa, mutta jopa merkinnän lisääminen vie kymmenen minuuttia. Tästä huolimatta käytetty aika on sen arvoista, koska jos Ivan haluaa muuttaa jotain uudelleen, hänen on ratkaistava yhtälöt jokaiselle riville, ja niitä voi olla kymmeniä. Se vie paljon aikaa, koska yhtälöt ovat joka kerta ainutlaatuisia ja liittyvät tiettyyn tietueeseen.

Mutta luettelon tarkistaminen on aivan yhtä yksinkertaista: ensin sinun on verrattava tiivisteitä kuten ennen, ja sitten tarkistettava yhtälöiden ratkaisut yksinkertaisella korvauksella. Jos kaikki konvergoi, luetteloa ei muuteta.

Todellisuudessa yhtälöiden kanssa asiat eivät ole niin hyvin: tietokoneet ratkaisevat ne liian hyvin, ja mihin tallentaa niin monia ainutlaatuisia yhtälöitä. Siksi lohkoketjun kirjoittajat keksivät kauniimman ongelman: sinun on löydettävä sellainen numero (nonce), jotta koko tietueen lopullinen hash alkaa 10 nollalla. Tällaista ei ole vaikea löytää, mutta tulos voidaan aina tarkistaa pelkällä silmällä.

Nyt Oleg tarkistaa kaikki tiivisteet ja varmistaa lisäksi, että jokainen alkaa määritetyllä määrällä nollia. Viekas Ivan, jopa aseistettu tehokkaalla kannettavalla tietokoneella, ei ehdi laskea kaikkia tiivisteitä uudelleen yössä, jotta ne täyttäisivät ehdon - aika ei riitä.

Tällainen luettelo on itse asiassa kodin lohkoketju polvellaan. Sen turvallisuuden takaavat matemaatikot, jotka ovat osoittaneet, että näitä tiivisteitä ei voida laskea jotenkin nopeammin, paitsi raa'alla voimalla. Tällainen tiivisteiden luettelointi jokaiselle tietueelle on kaivostoimintaa, josta tänään tulee paljon ja yksityiskohtaisesti.

Luottamuksen keskittäminen

Ystävämme pitivät ajatuksesta pitää valelistaa "kuka lainasi kenet". He eivät myöskään halua muistaa, kuka maksoi kenelle baarissa ja kuinka paljon he ovat vielä velkaa - kaikki on kirjoitettu seinälle. Keskustelit ajatuksesta ja päätit, että nyt tarvitset yhden luettelon kaikille.

Mutta kenelle näin tärkeä kirjanpito pitäisi uskoa? Loppujen lopuksi, kun on kyse rahasta, luottamus tulee etualalle. Emme luota tuntemattomiin pitämään rahojamme. Tätä varten esi-isämme keksivät pankit, joihin ajan myötä alettiin luottaa, koska niitä tukevat keskuspankin lisenssi, lait ja vakuutus.

Ystäväpiirissä kaikki luottavat toisiinsa ja voit yksinkertaisesti valita vastuullisimman tähän rooliin. Mutta entä jos kysymys koskee tuntemattomia? Kokonainen kaupunki, maa tai koko maailma, kuten Bitcoinin tapauksessa? Yleensä kukaan ei voi luottaa kehenkään siellä.

Hajauttaminen: kukaan ei luota keneenkään

Joten he keksivät vaihtoehtoisen lähestymistavan: pidä luettelosta kopio kaikille. Siten hyökkääjän ei tarvitsisi vain kirjoittaa uudelleen yhtä listaa, vaan myös livahtaa jokaiseen taloon ja kirjoittaa luettelot sinne uudelleen. Ja sitten käy ilmi, että joku piti kotona useita listoja, joista kukaan ei tiennyt. Tämä on hajauttamista.

Tämän lähestymistavan haittapuoli on, että uusien merkintöjen tekemiseksi sinun on soitettava kaikille muille osallistujille ja ilmoitettava heille viimeisimmistä muutoksista. Mutta jos nämä osallistujat ovat sieluttomia koneita, se ei enää ole mikään ongelma.

Tällaisessa järjestelmässä ei ole yhtä luottamuspistettä, eikä siten ole mahdollista lahjontaa ja huijausta. Kaikki järjestelmän osallistujat toimivat yhden säännön mukaan: kukaan ei luota keneenkään. Jokainen uskoo vain sen tiedon, joka hänellä on käytössään. Tämä on minkä tahansa hajautetun verkon päälaki.

Tapahtumat

Kun ostat potin kaupasta, syötät kortiltasi PIN-koodin, jolloin kauppa voi kysyä pankista, onko tililläsi 35 ruplaa. Toisin sanoen allekirjoitat 35 ruplan tapahtuman pin-koodillasi, jonka pankki vahvistaa tai hylkää.

Myös "Lainasin Vanjalta 500 ruplaa" tyyppiset tietueemme ovat tapahtumia. Mutta meillä ei ole pankkia, joka valtuuttaisi liiketoimien tekijän. Kuinka voimme tarkistaa, ettei Ivan ole hiljaa lisännyt merkintää "Max velkaa Olegille 100 500 ruplaa"?

Lohkoketju käyttää tähän julkisten ja yksityisten avainten mekanismia, joita IT-asiantuntijat ovat käyttäneet pitkään valtuutukseen samassa SSH:ssa. Selitin sen sormillani viestissä "Turvallisuus, salaus, kyberpunk" "Johdatus salaukseen" -osiossa.

Lyhyesti siitä, kuinka tämä monimutkainen mutta kaunis matematiikka toimii: luot tietokoneellesi parin pitkiä alkulukuja - julkisen ja yksityisen avaimen. Yksityistä avainta pidetään erittäin salaisena, koska se voi purkaa julkisesti salatun.

Mutta myös päinvastoin toimii. Jos jaat julkisen avaimen kaikille ystävillesi, he voivat salata minkä tahansa viestin heille, jotta vain sinä voit lukea ne, koska omistat yksityisen avaimen.

Mutta tämän lisäksi julkisella avaimella on hyödyllinen vaikutus - sen avulla voit tarkistaa, että tiedot on salattu yksityisellä avaimellasi, purkamatta itse tietojen salausta. Kaikki nämä ominaisuudet on kuvattu hyvin "Salakirjoituskirjassa".

Olemme hajautetussa Internetissä, jossa keneenkään ei voi luottaa. Tapahtuma allekirjoitetaan yksityisellä avaimella ja lähetetään yhdessä julkisen avaimen kanssa erityiseen varastoon - vahvistamattomien tapahtumien pooliin. Joten kuka tahansa verkoston jäsen voi varmistaa, että se oli sinä, joka aloitit sen, eikä joku muu halua maksaa rahaasi.

Tämä varmistaa verkon avoimuuden ja turvallisuuden. Jos aiemmin pankit olivat vastuussa tästä, niin lohkoketjussa matemaatikot ovat vastuussa tästä.

Tavallisille käyttäjille, jotka eivät halua selvittää, kuinka antaa ja säilyttää yksityisiä avaimia, online-lompakkopalvelut auttavat. Pitkien julkisten avainten kopioimiseksi siellä tehdään käteviä QR-koodeja. Esimerkiksi Blockchain Wallet, koska siinä on kätevä mobiilisovellus ja se tukee kahta pääasiallista kryptovaluuttaa - BTC:tä ja ETH:ta.

"tasapainon" käsitteen puute

Kuten meidän hallitus, lohkoketju koostuu olennaisesti vain tapahtumahistoriasta. Se ei tallenna jokaisen lompakon saldoa, muuten joudumme keksimään lisäsuojamenetelmiä.

Vain yksityinen avain vahvistaa lompakon omistajuuden. Mutta kuinka muut verkoston jäsenet voivat varmistaa, että minulla on tarpeeksi rahaa ostaa?

Koska meillä ei ole tasapainoa, sinun on todistettava se. Siksi lohkoketjutapahtuma ei sisällä vain allekirjoitustasi ja sitä, kuinka paljon haluat kuluttaa, vaan myös linkkejä aiempiin tapahtumiin, joissa olet saanut vaaditun määrän rahaa.

Eli jos haluat käyttää 400 ruplaa, käy läpi koko tulo- ja menohistoriasi ja liität tapahtumaasi ne tulot, joista sinulle annettiin 100 + 250 + 50 ruplaa, mikä todistaa, että sinulla on nämä 400 ruplaa.

Jokainen verkoston jäsen tarkistaa vielä kerran, ettet ole liittänyt tuloja kahdesti. Et todellakaan ole vielä käyttänyt niitä 300 ruplaa, jotka Max antoi viime viikolla.

Tällaisia tapahtumaan liittyviä tuloja kutsutaan lohkoketjussa tuloiksi ja kaikkia rahan saajia tuotoksiksi. Kaikkien tulojen summa on harvoin täsmälleen sama kuin haluat siirtää kerrallaan - siksi yksi lähdöistä on useimmiten sinä. Toisin sanoen lohkoketjun tapahtuma näyttää tältä: "Minulle annettiin 3 ja 2 BTC, haluan siirtää heiltä 4 BTC:tä ja palauttaa loput 1 BTC:tä."

Lohkoketjun kauneus on, että syötteiden ei tarvitse tulla yhdestä lompakosta. Loppujen lopuksi vain avain tarkistetaan. Jos tiedät kaikkien syötteiden yksityisen avaimen, voit helposti liittää ne tapahtumaasi ja maksaa näillä rahoilla. Ihan kuin maksaisit supermarketissa useilla korteilla, joista tiedät pin-koodin.

Jos kuitenkin kadotat yksityisen avaimesi, levysi kuolee tai kannettava tietokone varastetaan, bitcoinisi katoavat ikuisesti. Kukaan ei voi käyttää niitä syötteinä uusiin tapahtumiin.

Tämä summa on koko maailman ulottumattomissa ikuisesti - ikään kuin polttaisit setelinipun. Ei ole olemassa yhtä pankkia, jossa voit kirjoittaa hakemuksen ja kopion passistasi, ja hän tulostaa sen. Tämä edellyttää uusien bitcoinien lisäjulkaisua "ilmasta".

Tuplakulutusongelma

Yllä sanoin, että tapahtumat lisätään erityiseen "vahvistamattomien tapahtumien joukkoon". Mihin tarvitsemme jonkinlaista välikokonaisuutta, jos meillä on itse asiassa jo valmiita allekirjoitettuja transaktioita? Mikset kirjoita niitä suoraan lohkoketjuun?

Koska signaalit pisteestä A pisteeseen B kulkevat aina viiveellä. Kaksi kauppaa voi tapahtua täysin eri tavalla. Ja ensin aloitettu tapahtuma voi saavuttaa vastaanottajan myöhemmin, koska se vei pidemmän matkan.

Tämä johtaa kaksinkertaiseen kulutukseen, kun sama raha lähetettiin kahdelle vastaanottajalle kerralla, mitä he eivät osaisi edes arvata. Tämä ei tarkoita laskujen luovuttamista kädestä käteen.

Tämä ongelma on erityisen akuutti hajautetussa verkossa, jossa ei voi luottaa keneenkään. Näin varmistat, että yksi tapahtuma oli ehdottomasti ennen toista? Pyydä lähettäjää ompelemaan siihen lähetysaika, eikö niin? Mutta muista - et voi luottaa kehenkään, et edes lähettäjään.

Kaikkien tietokoneiden aika vaihtelee välttämättä, eikä niiden synkronointia voida taata. Lohkoketjun kopio tallennetaan jokaiselle verkon tietokoneelle ja jokainen osallistuja luottaa vain siihen.

Kuinka voit varmistaa, että yksi tapahtuma oli aikaisemmin kuin toinen?

Vastaus on yksinkertainen: se on mahdotonta. Tapahtuman ajankohtaa ei voi vahvistaa hajautetussa verkossa. Ja ratkaisu tähän ongelmaan on kolmas tärkeä lohkoketjuidea, jonka Satoshi keksi ja joka kummallista kyllä on kirjoitettu suoraan hänen nimessään - lohkot.

Lohkot ovat lohkoketjun selkäranka

Jokainen verkossa toimiva tietokone valitsee haluamansa tapahtumat yleisestä poolista. Yleensä vain korkeimmalla palkkiolla, jonka hän voi ansaita siitä. Joten hän kerää tapahtumat itselleen, kunnes niiden kokonaiskoko saavuttaa sovitun rajan. Bitcoinissa tämä lohkokokorajoitus on 1 MB (SegWit2x:n jälkeen 2 MB) ja Bitcoin Cashissa - 8 MB.

Koko lohkoketju on pohjimmiltaan luettelo tällaisista lohkoista, joissa jokainen viittaa edelliseen. Sitä voidaan käyttää seuraamaan mitä tahansa tapahtumaa koko historian aikana, avaamalla lohkoketjun jopa ensimmäiseen tietueeseen asti.

Juuri tämä luettelo painaa nyt satoja gigatavuja, ja se on ladattava kokonaan kaikkiin tietokoneisiin, jotka haluavat osallistua verkkoon (mutta tämä ei ole välttämätöntä vain tapahtumien luomiseksi ja rahan siirtämiseksi). Se ladataan samalla tavalla kaikilta lähimmiltä verkon tietokoneilta, aivan kuin jos lataat sarjaa torrenteista, siinä julkaistaan vain uusia uusia jaksoja 10 minuutin välein.

Kirjoitettuaan tapahtumat poolista itselleen, tietokone alkaa laatia niistä samaa väärentämätöntä luetteloa kuin teimme julkaisun alussa taululla kotona.

Vain hän tekee sen puun muodossa - tiivistää tietueet pareittain, sitten tulos on jälleen pareittain, ja niin edelleen, kunnes jäljellä on vain yksi tiiviste - puun juuri, joka lisätään lohkoon. Miksi juuri puulla - en löytänyt vastausta, mutta oletan, että se on yksinkertaisesti nopeampi näin. Lue lisää wikistä: Merkle-puu.

Koska nykyinen lohkoketju on jo ladattu, tietokoneemme tietää tarkalleen, mikä sen viimeinen lohko on. Hänen tarvitsee vain lisätä linkki siihen lohkon otsikkoon, tiivistää se kaikki ja kertoa kaikille muille verkon tietokoneille "katso, tein uuden lohkon, lisätään se lohkoketjuumme".

Loput tarkistavat, että lohko on rakennettu kaikkien sääntöjen mukaan ja että emme ole lisänneet siihen tarpeettomia tapahtumia, ja sitten lisätä ne ketjuihimme. Nyt kaikki tapahtumat siinä on vahvistettu, lohkoketjua on kasvatettu yhdellä lohkolla ja kaikki menee hyvin, eikö niin?

Mutta ei. Tuhannet tietokoneet työskentelevät samanaikaisesti verkossa, ja heti kun ne kokoavat uuden lohkon, ne ryntäävät melkein samanaikaisesti ilmoittamaan kaikille, että heidän lohkonsa luotiin ensin. Ja edellisestä osasta tiedämme jo, että hajautetussa verkossa on mahdotonta todistaa, kuka todella oli ensimmäinen.

Kuten koulussakin, kun kaikki ratkaisivat vaikeaa koetta, niin harvoin tapahtui, että jopa erinomaiset oppilaat vastasivat samaan aikaan.

Mutta jos henkilölle on vaikeaa suunnitella lomaa niin, että hän pääsee toukokuun lomalle, ja liput merelle ovat edullisia, niin tietokoneelle on lisättävä tällainen numero (nonce) lohko niin, että tuloksena koko lohkon SHA-256 hash alkaa vaikkapa 10 nollasta. Tämä on ongelma, joka on ratkaistava, jotta voidaan lisätä lohko Bitcoin-verkkoon. Muiden verkkojen tehtävät voivat vaihdella.

Joten tulemme kaivostoiminnan käsitteeseen, johon kaikki ovat olleet niin pakkomielle viime vuosina.

Kaivostoiminta

Bitcoinin louhinta ei ole jonkinlainen pyhä sakramentti. Kaivostoiminnassa ei ole kyse uusien bitcoinien löytämisestä jostain Internetin syvyyksistä. Kaivostoiminta on sitä, kun tuhannet tietokoneet ympäri maailmaa kumisevat kellareissa, käyvät läpi miljoonia numeroita sekunnissa ja yrittävät löytää 10 nollalla alkavaa tiivistettä. Heidän ei edes tarvitse olla verkossa tehdäkseen tämän.

Näytönohjaimet, joissa on satoja rinnakkaisia ytimiä, ratkaisevat tämän ongelman nopeammin kuin mikään prosessori.

Miksi juuri 10 nollaa? Ja juuri näin, siinä ei ole mitään järkeä. Joten Satoshi keksi. Koska tämä on yksi niistä ongelmista, joihin aina löytyy ratkaisu, mutta sitä ei varmasti löydy nopeammin kuin pitkä yksitoikkoinen vaihtoehtojen luettelo.

Kaivostoiminnan monimutkaisuus riippuu suoraan verkon koosta, eli sen kokonaistehosta. Jos luot oman lohkoketjun ja käytät sitä itse kotona kahdella kannettavalla tietokoneella, tehtävän pitäisi olla yksinkertaisempi. Esimerkiksi niin, että hash alkaa vain yhdestä nollasta, tai niin, että parillisten numeroiden summa on yhtä suuri kuin parittomien summa.

10 nollalla alkavan hajautusarvon löytäminen tietokoneelta kestää useita vuosikymmeniä. Mutta jos yhdistät tuhansia tietokoneita yhdeksi verkkoksi ja haet rinnakkain, niin todennäköisyysteorian mukaan tämä ongelma ratkaistaan keskimäärin 10 minuutissa. Tämä on aika, jolloin uusi lohko ilmestyy bitcoinin lohkoketjuun.

Joka 8-12 minuuttia joku maan päällä löytää tällaisen hajautuksen ja saa etuoikeuden ilmoittaa löydöstään kaikille, mikä välttää ongelman siitä, kuka oli ensimmäinen.

Vastauksen löytämisestä tietokone (vuodesta 2017) saa 12,5 BTC - tämä on palkkion määrä, jonka bitcoin-järjestelmä tuottaa "ilmasta" ja joka pienenee joka neljäs vuosi.

Teknisesti tämä tarkoittaa, että jokainen kaivosmies lisää aina toisen tapahtuman lohkoonsa - "luo 12,5 BTC ja lähetä ne lompakkooni". Kun kuulet "Bitcoinien määrä maailmassa on rajoitettu 21 miljoonaan, nyt ne ovat jo palkanneet 16 miljoonaa" - nämä ovat verkoston tuottamia palkintoja.

Mene katsomaan todellista live Bitcoin-lohkoa jollakin omistetuista sivustoista. On myös tapahtumia syötteillä ja lähdöillä ja jopa 18 nollaa alussa ja kaikki yllä kuvatut tiivisteet.

Kaivostyöläiset lisäävät nousevat tapahtumat lohkoketjuun. Joten jos joku sanoo, että hän "tekee lohkoketjun ***lle", ensimmäinen kysymys, jonka hänen on vastattava, on, kuka luo sen ja miksi. Useimmiten oikea vastaus on "kaikki tekevät, koska kaivostoimintaan annamme kolikoitamme, jotka kasvavat ja se on kaivostyöntekijöille kannattavaa". Mutta tämä ei koske kaikkia projekteja.

Esimerkiksi joku terveysministeriö huomenna luo oman suljetun lohkoketjunsa lääkäreille (ja he haluavat sen), kuka louhii sen? Viikonlopputerapeutit?

Mutta mitä hyötyä kaivostyöntekijöille on myöhemmin, kun palkkiot katoavat tai tulevat vähiksi?

Creatorin idean mukaan siihen mennessä ihmisten on uskottava bitcoinin todellisuuteen ja kaivostoiminta alkaa maksaa itsensä takaisin jokaiseen tapahtumaan sisältyvien maksujen määrällä. Tähän kaikki menee: vuonna 2012 kaikki palkkiot olivat nolla, kaivostyöläiset louhivat vain palkkioita lohkoista. Nykyään kauppa ilman provisiota voi roikkua poolissa useita tunteja, koska kilpailua on ja nopeudesta ollaan valmiita maksamaan.

Eli kaivostoiminnan ydin on merkityksettömien ongelmien ratkaisemisessa. Eikö kaikkea tätä voimaa voisi käyttää johonkin hyödyllisempään - esimerkiksi syöpälääkkeen etsimiseen?

Kaivostoiminnan ydin on ratkaista mikä tahansa laskennallinen ongelma. Tämän tehtävän tulee olla tarpeeksi yksinkertainen, jotta verkon osallistujilla on vakaa todennäköisyys löytää vastaus - muuten tapahtumat vahvistetaan ikuisesti. Kuvittele, että kaupan kassalla joudut odottamaan joka kerta puoli tuntia, jotta pankki vahvistaa tapahtumasi. Kukaan ei käytä sellaista pankkia.

Mutta tehtävän on oltava samalla vaikea, jotta kaikki nettiläiset eivät löydä vastausta kerralla. Koska tässä tapauksessa he ilmoittavat useista lohkoista samoilla tapahtumilla verkkoon ja siellä on mahdollisuus "kaksinkertaiseen hukkaan", jonka mainitsin. Tai vielä pahempaa - yhden lohkoketjun jakaminen useisiin haaroihin, joissa kukaan ei voi selvittää, mikä tapahtuma on vahvistettu ja mikä ei.

Jos 12,5 BTC:n palkinto jaetaan vain kerran 10 minuutissa ja vain yksi henkilö, joka löysi lohkon, käy ilmi, että joudun tuhlaamaan näytönohjainkortteja useita vuosia siinä toivossa, että jonain päivänä pudotan 40 000 dollaria. nykyinen valuuttakurssi)?

Tämä pätee juuri bitcoineihin. Mutta se ei aina ollut niin. Aikaisemmin verkko oli pienempi, monimutkaisuus pienempi, mikä tarkoittaa, että todennäköisyys löytää hajautus uudelle lohkolle yksin on suurempi. Mutta sitten bitcoin ei ollut niin kallista.

Nyt kukaan ei louhi bitcoineja yksin. Nyt osallistujat yhdistyvät erityisryhmiin - kaivosaltaisiin, joissa kaikki yhdessä yrittävät löytää oikean hashin.

Jos ainakin yksi ryhmä löytää, niin koko palkinto jaetaan osallistujien kesken sen mukaan, mikä on heidän panoksensa yhteiseen työhön. Osoittautuu, että olet kaivostyössä ja saat pennin kokonaisosuudesta joka viikko.

Mutta yksinlouhinta on täysin mahdollista muissa verkoissa. Viime aikoihin asti oli helppo louhia Ethereumia, jossa lohkoja löytyy 10 sekunnin välein. Lohkopalkkio on siellä paljon pienempi, mutta todennäköisyys ansaita melkoinen penni on suurempi.

Poltamme siis turhaan tuhansia näytönohjainkortteja, eikä sieltä ole mitään ulospääsyä?

Kyllä, mutta ideoita on. Kuvaamani louhinta on klassista ja sitä kutsutaan Proof-of-Workiksi (työtodistus). Eli jokainen kone todistaa toimineensa verkon eduksi ratkaisemalla merkityksettömiä ongelmia tietyllä todennäköisyydellä.

Mutta jotkut kaverit alkavat tehdä lohkoketjuja muun tyyppisellä kaivostoiminnalla. Nyt toiseksi suosituin konsepti on Proof-of-Stake (todistus panoksesta). Tämän tyyppisessä kaivostoiminnassa mitä enemmän "kolikoita" verkon osallistujalla on tilillään, sitä todennäköisemmin hän lisää lohkonsa lohkoketjuun. Kuten kylän äänekkäin kaveri.

Voit ajatella muita kaivostyyppejä. Kuten jo ehdotettiin, kaikki verkossa olevat tietokoneet voivat etsiä parannuskeinoa syöpään, vain sinun on selvitettävä, kuinka tässä tapauksessa kirjataan heidän panoksensa järjestelmään. Loppujen lopuksi voin ilmoittaa, että minäkin osallistun, mutta sammuta näytönohjain enkä laske mitään.

Kuinka arvioit kunkin osallistujan panoksen syöpälääkkeen löytämisessä? Jos keksit sen - uskalla leikata CancerCoin-rahaasi, sinulle on taattu hype mediassa.

Blockchain

Kuvittele tilanne, jossa kaikesta todennäköisyysteoriastamme huolimatta kaksi kaivostyöntekijää onnistui löytämään oikean vastauksen samaan aikaan. He alkavat lähettää kaksi täysin oikeaa lohkoa verkon yli.

Nämä lohkot ovat taatusti erilaisia, koska vaikka ne ihmeen kaupalla valitsisivat samat tapahtumat poolista, tekisivät täysin identtisiä puita ja arvasivat saman satunnaisluvun (ei kerran), niiden tiivisteet ovat silti erilaisia, koska jokainen kirjoittaa lompakkonumeronsa lohko palkkioksi.

Nyt meillä on kaksi pätevää lohkoa ja taas herää ongelma, ketä pitäisi harkita ensin. Miten verkko käyttäytyy tässä tapauksessa?

Lohkoketju-algoritmi sanoo, että verkon osallistujat yksinkertaisesti hyväksyvät ensimmäisen oikean vastauksen, joka saapuu heille. Sitten he elävät oman maailmankuvansa pohjalta.

Molemmat kaivostyöläiset saavat palkkionsa, ja kaikki muut alkavat louhia, luottaen viimeiseen henkilökohtaisesti vastaanottamaansa lohkoon ja hylkäävät kaikki loput ovat oikein. Verkkoon ilmestyy kaksi versiota oikeasta lohkoketjusta. Tällainen on paradoksi.

Tämä on rutiinitilanne, jossa todennäköisyysteoria taas auttaa. Verkko toimii sellaisessa kaksihaaraisessa tilassa, kunnes yksi kaivostyöntekijöistä löytää seuraavan lohkon johonkin näistä ketjuista.

Heti kun tällainen lohko löydetään ja laitetaan ketjuun, se pitenee ja yksi lohkoketjuverkoston sopimuksista tulee mukaan: kaikissa olosuhteissa pisin lohkoketju hyväksytään ainoaksi oikeaksi koko verkossa.

Lyhyen ketjun kaikesta oikeellisuudestaan huolimatta kaikki verkoston osallistujat hylkäävät. Siitä tehdyt tapahtumat palautetaan pooliin (jos niitä ei ole vahvistettu toisessa), ja niiden käsittely alkaa alusta. Kaivosmies menettää palkkionsa, koska hänen lohkoaan ei enää ole.

Verkon kasvun myötä tällaiset "erittäin epätodennäköisestä" sattumukset menevät luokkaan "no, joskus niin tapahtuu". Vanhat kertovat, että oli tapauksia, joissa neljän lohkon ketju pudotettiin kerralla.

Tämän vuoksi on keksitty kolme ketjun pään epävarmuutta koskevaa sääntöä:

1. Kaivospalkkiot voidaan käyttää vasta 20 vahvistetun lohkon jälkeen vastaanottamisen jälkeen. Bitcoinille tämä on noin kolme tuntia.

2. Jos sinulle on lähetetty bitcoineja, voit käyttää niitä syötteinä uusissa tapahtumissa vasta 1-5 lohkon jälkeen.

3. Säännöt 1 ja 2 on vain kirjoitettu kunkin asiakkaan asetuksissa. Kukaan ei valvo niiden noudattamista. Mutta pisin ketjulaki pyyhkii silti pois kaikki liiketoimesi, jos yrität huijata järjestelmää olemaan panematta niitä täytäntöön.

Yritetään huijata lohkoketjua

Nyt kun tiedät kaiken kaivostoiminnasta, lohkoketjun laitteesta ja pisimmän ketjun säännöstä, saatat herätä kysymyksen: onko mahdollista jotenkin nimenomaan ohittaa lohkoketju tekemällä pisin ketju itse ja siten vahvistaa väärennetyt tapahtumasi.

Oletetaan, että sinulla on maailman tehokkain tietokone. Googlen ja Amazonin datakeskukset ovat koota käytettävissäsi ja yrität laskea sellaisen ketjun, josta tulee verkon pisin lohkoketju.

Et voi ottaa ja laskea välittömästi useita ketjun lohkoja, koska jokainen seuraava lohko riippuu edellisestä. Sitten päätät mahdollisimman nopeasti laskea jokaisen lohkon valtavissa tietokeskuksissasi samanaikaisesti sen kanssa, kuinka kaikki muut osallistujat jatkavat päälohkoketjun kasvattamista. Onko mahdollista ohittaa ne? Luultavasti kyllä.

Jos laskentatehosi on yli 50 % kaikkien verkon osallistujien tehosta, pystyt 50 % todennäköisyydellä rakentamaan pidemmän ketjun nopeammin kuin kaikki muut yhteensä. Tämä on teoreettisesti mahdollinen tapa huijata lohkoketju laskemalla pidempi tapahtumaketju. Sitten kaikki todellisen verkon tapahtumat katsotaan kelpaamattomiksi, ja keräät kaikki palkinnot ja aloitat uuden virstanpylvään kryptovaluutan historiassa, jota kutsutaan "lohkoketjujakoksi". Kerran koodin virheen vuoksi näin oli Ethereumin tapauksessa.

Mutta todellisuudessa mitään datakeskusta ei voi verrata teholtaan kaikkiin maailman tietokoneisiin. Puolitoista miljardia kiinalaista icicsillä, toinen puolitoista miljardia nälkäistä intialaista kaivostiloilla ja halvalla sähköllä - tämä on valtava laskentateho. Kukaan maailmassa ei voi vielä kilpailla heidän kanssaan yksin, ei edes Google.

Se on kuin menisit kadulle ja yrittäisivät vakuuttaa kaikki ihmiset maailmassa, että dollari on nyt yhden ruplan arvoinen ja ole ajoissa ennen kuin media paljastaa sinut. Ja jos onnistut vakuuttamaan kaikki, voit romahtaa maailmantalouden. Teoriassa, eikö se ole mahdollista? Mutta käytännössä kukaan ei jostain syystä onnistunut.

Lohkoketju perustuu myös tähän todennäköisyyteen. Mitä enemmän osallistujia-kaivostyöntekijöitä, sitä enemmän turvallisuutta ja luottamusta verkkoon. Siksi, kun Kiinassa katetaan toinen suuri kaivostila, kurssi romahtaa. Kaikki pelkäävät, että jossain päin maailmaa oli paha nero, joka oli jo kerännyt joukon kaivostyöläisiä ~ 49 % kapasiteetilla.

Johtopäätös

Blockchain ei ole tiukasti määritelty algoritmien joukko. Se on rakenne valeverkoston rakentamiseksi osallistujien välille, jossa kukaan ei voi luottaa kehenkään. Lukiessasi olet luultavasti useammin kuin kerran ajatellut, että "voit tehdä sen näin ja siitä on vielä enemmän hyötyä". Tämä tarkoittaa, että ymmärrät lohkoketjun, onnittelut.

Jotkut kaverit maailmassa myös ymmärsivät sen ja halusivat parantaa tai mukautua tiettyihin tehtäviin. Kryptovaluutat eivät ole samoja, vaikka niitäkin on paljon. Tässä on lyhyt luettelo joistakin ideoista ja projekteista, jotka ovat saaneet jonkin verran suosiota lohkoketju-idean uudelleenajattelun ansiosta.

Ethereum

"Eetterit" on Bitcoinin jälkeen toiseksi suosituin sana, jonka kuulet kryptohype-uutisissa. Tavallisille ihmisille tämä on toinen kryptovaluutta ja tapa tehdä trendikkäin asia nimeltä ICO. Sivuston kehittäjät kuvailevat Ethereumia "lohkoketjun rakentajaksi tarpeisiisi". Tämäkin on mahdollista, kyllä.

Mutta jos kaivaa vielä syvemmälle, eetteri ei ole vain kolikoiden verkosto. Tämä on valtava globaali laskentakone, jossa käyttäjät suorittavat muiden ihmisten ohjelmien koodia (älykkäitä sopimuksia) ja saavat palkkion jokaisesta suoritetusta rivistä. Ja kaikki tämä on hajautettua, tuhoutumatonta ja kaikilla lohkoketjun takeilla.

Ethereumista ja älykkäistä sopimuksista voidaan puhua niin kauan, että se riittää toiseen tällaiseen postaukseen. Siksi toimimme huippubloggaajien tyyliin: jos tätä postausta julkaistaan aktiivisesti uudelleen ja uudelleentwiitataan ja se saa perjantaihin mennessä vähintään 1500 ainutlaatuista katselukertaa, kirjoitan jatko-osan Ethereumista ja älykkäistä sopimuksista.

Suositeltava: