Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkkoa

Kuinka energia suojaa Bitcoinia? Ja mikä on nonce? Näihin ja muihin kysymyksiin vastataan sisällä!

Kaivostoiminnan toiminta on kiehtovaa. Kun selitän sen ihmisille, nautin nähdessäni heidän kasvonsa heti, kun heidän mielensä on räjähtänyt. Selitän sen tässä, mutta tiedä vain, kuvittelen kaikki kasvosi mielesi räjähtäneenä!

Minun on aloitettava hash-funktioista. Ilman hash-funktioita Bitcoin ei olisi mahdollinen. Selitän ensin, mitä ne ovat, ei vain siksi, että voit kuulostaa siistiltä juhlissa, vaan myös siksi, että se on olennaista ymmärtääksesi kuinka Bitcoin toimii – erityisesti kaivostoiminnassa, mutta myös transaktioissa – konepellin alla.

Sinun ei tarvitse ymmärtää Bitcoinin toimintaa voidaksesi hyötyä siitä, aivan kuten sinun ei tarvitse ymmärtää kuinka TCP/IP toimii käyttääksesi Internetiä. Mutta jatkakaa, sillä se on varsin mielenkiintoinen ja teen sen helposti ymmärrettävän, lupaan.

Hash-toiminnot

Aloitetaan kaaviolla, jonka selitän alla…

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.
(Graafinen/@jirols_btc)

Vasemmalla on tulo, keskellä on toiminto ja oikealla on lähtö. Syöte voi olla mitä tahansa dataa, kunhan se on digitaalista. Se voi olla minkä kokoinen tahansa, jos tietokoneesi pystyy käsittelemään sitä. Tiedot välitetään SHA256-funktiolle. Funktio ottaa tiedot ja laskee satunnaisen näköisen luvun, jolla on erityisiä ominaisuuksia (käsitellään myöhemmin).

Ensimmäinen Secure Hash Algorithm (SHA) oli alun perin NSA:n kehittämä ja nyt on monia erilaisia ​​versioita (Bitcoin käyttää SHA256:ta). Se on joukko ohjeita tietojen sekoittamiseen hyvin monimutkaisella mutta määrätyllä tavalla. Ohjeet eivät ole salaisuus ja se on mahdollista tehdä jopa käsin, mutta se on erittäin tylsää.

SHA256:n lähtö on 256-bittinen numero (ei sattumaa).

256-bittinen luku tarkoittaa 256 numeroa pitkää binaarilukua. Binääri tarkoittaa, että arvo esitetään kahdella symbolilla, joko 0 tai 1. Binääriluvut voidaan muuntaa mihin tahansa muuhun muotoon, esimerkiksi desimaalilukuihin, jotka ovat meille tuttuja.

Vaikka funktio palauttaa 256-numeroisen binääriluvun, arvo ilmaistaan ​​yleensä heksadesimaalimuodossa, 64 numeroa pitkä.

Heksadesimaali tarkoittaa, että 10 mahdollisen symbolin sijaan, kuten olemme tottuneet desimaaliin (0-9), meillä on 16 symbolia (kymmenen, joihin olemme tottuneet, 0-9, plus kirjaimet a, b, c, d, e, ja f; joiden arvot ovat 11-15). Esimerkkinä desimaaliluvun 15 arvon esittämiseksi heksadesimaalimuodossa kirjoitamme vain "f" ja se on sama arvo. Verkosta löytyy paljon tietoa nopealla Google-haulla, jos tarvitset lisäselvityksiä.

Esittelen SHA256:n toiminnassa ottamalla numeron 1 ja ajamalla sen läpi online-hash-laskin, ja sai tämän tulosteen (heksadesimaalimuodossa):

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Ylälaatikko on syöte, alempi laatikko on tuloksena oleva tulos.

Huomaa, että kaikki maailman tietokoneet tuottavat saman ulostulon, jos tulo on sama ja SHA256-toimintoa käytetään.

Heksadesimaalilukutulostus, jos se muunnetaan desimaalilukuksi, on (huomaa, että kirjoittaminen vaatii enemmän numeroita):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

Ja binäärimuotoon muutettuna se on:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Ihan mielenkiinnosta, tässä on sama arvo pohja 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Huomaa, että pienin mahdollinen arvo, jonka SHA256 voisi palauttaa, on nolla, mutta PITUUS on silti 256 bittiä. Näin nolla esitetään:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Ja suurin mahdollinen arvo on:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Desimaalimuodossa se on:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

Heksadesimaalimuodossa se on:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Huomaa, että siellä on täsmälleen 64 F: tä.

Nolla heksadesimaalimuodossa voidaan yksinkertaisesti kirjoittaa yhdeksi nollaksi, mutta hash-tulostuksessa niistä on 64, jotta pysytään kiinteän kokoisen tulosteen vaatimuksessa:

0000000000000000000000000000000000000000000000000000000000000000

Tässä on yhteenveto joistakin hash-funktiota koskevista seikoista, jotka ovat erittäin tärkeitä arvostaa:

  • Tuloa ei voida määrittää lähdöstä
  • Syöte voi olla minkä pituinen tahansa
  • Tulos on aina samanpituinen
  • Tulos toistetaan aina identtisesti, jos syötät saman tulon.
  • Mikä tahansa muutos tuloon, olipa se kuinka pieni tahansa, aiheuttaa arvaamattoman ja hurjan erilaisen tulosteen
  • Tulos on näennäisesti satunnainen, mutta itse asiassa deterministinen (eli se on laskettu ja toistettavissa)
  • Tulosta ei voi ennustaa. Se voidaan vain laskea, ja se vaatii mitattavissa olevan määrän työtä tietokoneella (ja tunteja kynällä ja paperilla! Älä tee sitä.)

Nyt kun ymmärrät hashin peruskäsitteen, voit ymmärtää selityksen Bitcoinin louhinnan toiminnasta.

Mutta ennen kuin siirryt eteenpäin, suosittelen, että käyt online-tiivistelaskimessa ja leikit sen kanssa ja testaat itse, mitä olen sanonut hash-funktioista. Pidän tästä.

kaivos-

Aloitan esittelemällä työn käsitettä, josta Bitcoinin "työtodistus" tulee.

Siirry online-hajautuslaskuriin ja kirjoita "Luon 50 bitcoinia ja maksan itselleni tämän summan."

Kirjoita se tarkasti, isot ja pienet kirjaimet, mukaan lukien piste. Sinun pitäisi saada tämä tulos:

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Luodaan nyt sääntö, joka sanoo, että jotta tämä maksuviesti olisi kelvollinen, tarvitsemme hajautusarvon alkavan yhdestä nollasta. Tätä varten meidän on muutettava syöttöä jollakin tavalla. Mutta kuten olet oppinut, ei ole ennustettavissa, mikä tulos olisi tietylle tulolle. Mitä muutoksia voimme tehdä varmistaaksemme nollalla alkavan hajautusarvon?

Meidän on lisättävä tiedot kokeilu- ja erehdysmenetelmällä. Mutta emme myöskään halua muuttaa syöttöviestin merkitystä. Joten luodaan kenttä (allokoitu osio), jota kutsutaan "nonceksi", joka sisältää järjettömän arvon.

Sanan "nonce" oletetaan olevan johdettu sanasta "vain kerran käytetty numero", mutta en näe sitä.

Huomaa alla, kuinka pelkkä "Nonce:":n lisääminen ylimääräiseksi kentän otsikoksi muuttaa hajautustulosta.

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Tulos ei vieläkään ala nollalla, joten lisätään vähän hölynpölyä (lisäsin merkityksettömän "x"):

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Se ei silti ala nollalla. Kokeilin lisää merkkejä, kunnes hash alkoi nollalla:

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Siinä mennään. Nyt, mielivaltaisten sääntöjen mukaan, jotka asetin tälle Bitcoinin teeskentelyversiolle, syöttöikkunan teksti on kelvollinen lohko, jossa yksi tapahtuma maksaa minulle 50 bitcoinia.

Huomaa, että Bitcoin-lohkot ovat pohjimmiltaan pääkirjan sivuja. Jokainen lohko on numeroitu ja luo uuden bitcoinin sekä listaa käyttäjien väliset tapahtumat. Tämä ennätys on paikka, jossa bitcoin elää.

Nyt uusi sääntö. Seuraavaa lohkoa varten on sisällytettävä edellisen lohkon hash. Lisään hieman monimutkaisuutta ja lisään muutaman kentän lähestyäkseni todellisen Bitcoin-lohkon ominaisuuksia.

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Hash alkaa kirjaimella "f" ei "0", joten minun on kokeiltava joitain arvoja nonce-kentässä:

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Tällä kertaa olin onnellisempi ja löysin sopivan nokan neljän yrityksen jälkeen. Muista, että ensimmäinen lohko kesti 22 yritystä. Tässä on jonkin verran satunnaisuutta, mutta yleisesti ottaen ei ole liian vaikeaa löytää kelvollista tiivistettä, jos yritämme saada vain yhden nollan. Ensimmäiselle tiivistenumerolle on 16 mahdollista arvoa, joten minulla on 1:16 mahdollisuus, että mikä tahansa syöttökenttään tekemäni muutos johtaa siihen, että ensimmäinen tiivistenumero on "0".

Huomaa, että Bitcoinin kentät ovat tällaisia, mutta siellä on enemmän yksityiskohtia, joita en ole lisännyt. Tämä on vain havainnollistaakseen asiaa, ei välttämättä yksityiskohtaisesti, miltä Bitcoin-lohko näyttää.

Lisään aikakentän seuraavaan lohkoon, koska tarvitsen sen selittämään "vaikeusasteen säätö" seuraavaksi:

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Yllä on lohko numero kolme. Se sisältää edellisen lohkon hashin ja nyt olen alkanut sisällyttää myös aikaa. Löysin onnistuneesti hajautusarvon alkavan nollalla (kirjoitin vain "1", kunnes hash-tavoite saavutettiin).

Täällä on nyt tarpeeksi, jotta voin alkaa selittää muutamia mielenkiintoisia käsitteitä Bitcoin-lohkoketjusta ja kaivostoiminnasta.

Blockin voittaminen

Kaivosprosessi on kilpailukykyinen. Se, joka tuottaa kelvollisen lohkon ensin, saa maksaa itselleen asetetun lohkopalkkion. Miner, joka tuottaa saman lohkonumeron vähän myöhemmin, ei saa mitään - se lohko hylätään. Sen selittäminen aiheuttaa nyt liikaa poikkeavaa, joten selitän sen liitteessä.

Kun lohko kolme on löydetty ja lähetetty kaikille (kaikille Bitcoin-solmuille), kaikki kaivostyöläiset lopettavat työskentelyn sen parissa, mikä olisi ollut heidän versionsa lohkosta kolme. He alkavat rakentaa onnistuneen lohkon kolme päälle (vetämällä sen lohkohajautus eteenpäin uudeksi lohkoksi) ja alkavat etsiä sopivaa noncea lohkolle neljä. Voittaja julkaisee tuloksen ja sitten kaikki alkavat työstää lohkoa viisi jne.

Jokaisella lohkolla luodaan uusia bitcoineja, jotka yhdessä muodostavat toistaiseksi kokonaistarjonnan. Jos kaivostyöntekijöitä on paljon, tilastollisesti meidän pitäisi odottaa, että lohkoja tuotetaan nopeammin, ja siksi bitcoineja luodaan nopeammin. Ongelma, eikö?

Satoshi Nakamoto pohti tätä ongelmaa ja otti käyttöön negatiivisen palautesilmukan pitääkseen lohkotuotannon keskimäärin 10 minuutin välein etsiessään rajoitettua bitcoineja, joiden liikkeeseenlasku on ennustettavaa ajan mittaan. Miten? Katso, voitko ajatella tapaa. Pysähdy hetkeksi ja mieti – katso, voitko keksiä saman nerokkaan ratkaisun ja lue eteenpäin, kun luovutat.

NODES: Mainitsen "kelvolliset" lohkot. Mitä sitten? Kuka tarkistaa? Bitcoin-solmut ovat. Bitcoin-solmu säilyttää kopion lohkoketjusta toistaiseksi ja noudattaa joukkoa sääntöjä tarkistaakseen, että uudet lohkot ovat sääntöjen mukaisia, ja hylätä ne, jotka eivät ole. Missä säännöt ovat? Koodissa. Tietokone, joka lataa Bitcoin-koodin, on solmu.

Vaikeuden säätö

Jokainen solmu laskee keskimääräisen ajan uusien Bitcoin-lohkojen luomiseen joka 2016-lohko (tämän vuoksi aikakenttää tarvitaan). Tämä on osa protokollaa ja sääntöjä, joita solmut noudattavat. Kaavaa käytetään säätämään nollien lukumäärää, joilla kunkin lohkon hajautusarvon on alettava ollakseen kelvollinen.

Tarkkaan ottaen nollien lukumäärää ei säädetä, vaan tavoitearvoa, jonka hashin on oltava alle, mutta etunollien ajatteleminen on yksinkertaisempaa selittää.

Jos lohkoja tuotetaan liian nopeasti, hajautuskohdetta säädetään ennalta määritettyjen sääntöjen mukaan, joita kaikki solmut noudattavat samalla tavalla (se on niiden koodissa).

Yksinkertaisena esimerkissäni sanotaan, että muut kilpailevat kanssani, lohkot tapahtuvat liian nopeasti, ja nyt neljäs lohko tarvitsee kaksi nollaa yhden sijasta, kuvitteellisen laskelman mukaan.

Minulta kestää hieman kauemmin saada kaksi nollaa, mutta kuvittelemme, että kanssani kilpailee monia muita ihmisiä, joten kokonaisaika, joka keneltä tahansa lohkon löytämiseen kuluu, pysyy kohteena.

Tässä on seuraava lohko:

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Huomaa aika. Edellisestä lohkosta on kulunut yli 10 minuuttia (varasin juuri ajan osoittaakseni). 10 minuutin tavoite on todennäköisyys; ei koskaan tiedetä tarkasti, milloin seuraava lohko löydetään.

Sekoittelin näppäimistöä minuutin ajan, kunnes kaksi nollaa ilmestyi. Tämä oli eksponentiaalisesti vaikeampaa kuin yhden nollan löytäminen. Mahdollisuus löytää kaksi nollaa peräkkäin on 1:162, tai mahdollisuus 1:256.

Jos lisää ihmisiä liittyisi louhintaan ja kilpailuun uusista bitcoineista, lopulta vaaditaan kolme nollaa.

Etsin juuri viimeisen oikean Bitcoin-lohkon, joka sisältää edellisen lohkon hashin. Hash oli:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

Se on 19 nollaa! Siellä on 1:1619 mahdollisuus löytää tällainen lohko jokaisella yrityksellä. Bitcoin-kaivostyöntekijät tekevät monia, monia yrityksiä sekunnissa, kollektiivisesti kaikkialla maailmassa.

Yritysten lukumäärä sekunnissa tunnetaan "hajautusnopeudena". Tällä hetkellä arvioitu maailmanlaajuinen tiivisteluku on hieman alle 200 miljoonaa terahashia sekunnissa (yksi terahash on biljoona tiivistettä). Näin monella yrityksellä sekunnissa lohko, jossa on 19 nollalla alkava hash, löytyy noin 10 minuutin välein.

Jatkossa, kun lisää kaivostyöläisiä liittyy mukaan, hash-nopeus nousee, lohkot löytyvät nopeammin ja Bitcoinin vaikeus mukautuu vaatimaan 20 nollaa, mikä painaa lohkotuotannon takaisin noin 10 minuuttiin.

Puolustus

Kun Bitcoin käynnistyi ensimmäisen kerran, jokaisella lohkolla tuotettiin 50 bitcoinia. Bitcoin-lohkoketjun säännöt määrittelevät, että jokaisen 210,000 10 lohkon jälkeen palkkio leikataan puoleen. Tätä hetkeä kutsutaan "puolittumiseksi", ja se tapahtuu noin joka neljäs vuosi. Puolittaminen yhdistettynä vaikeussäätöön pitää lohkojen 2140 minuutin välein tarkoittaa, että noin vuoden 0.00000001 tienoilla lohkopalkkio on 1 eli 21 satoshi, bitcoinin pienin yksikkö, eikä sitä voida enää puolittaa. Kaivostoiminta ei lopu, mutta lohkopalkkio on nolla. Siitä hetkestä lähtien uutta bitcoinia ei luoda jatkossa, ja bitcoinien määrä on matemaattisesti laskettavissa ja tarpeeksi lähellä XNUMX miljoonaa kolikkoa. Näin kokonaistarjonta tunnetaan – se asetetaan ohjelmallisesti.

Vaikka lohkopalkkio olisi nolla, kaivostyöläisiä kannustetaan jatkamaan työskentelyä transaktiomaksujen ansaitsemiseksi.

Kuinka lohkopalkkio leikataan puoleen? Se on solmujen ylläpitämässä koodissa. He tietävät hylättävän kaikki uudet lohkot 210,000 25 jälkeen, jos kaivosmies maksaa itselleen yli 420,000 bitcoinia. Ja sitten hylkäämään kaikki lohkot 12.5 XNUMX jälkeen, kun kaivosmies maksaa itselleen yli XNUMX bitcoinia ja niin edelleen.

Kaupankäyntikulut

Toistaiseksi olen näyttänyt vain kuvitteellisia lohkoja yhdellä tapahtumalla – tapahtumalla, jossa kaivostyöntekijälle maksetaan palkkio. Tätä kutsutaan "kolikkopohjaiseksi tapahtumaksi".

Sitä ei ole nimetty yhtiön mukaan, Conbase, tarkoitan Coinbasea. Yritys nimesi itsensä kolikkokaupan mukaan, ei päinvastoin. Älä hämmenny.

Coinbase-tapahtuman lisäksi on tapahtumia, joissa ihmiset maksavat toisilleen. Tässä kuviteltu esimerkki:

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Tällä kertaa en vaivautunut löytämään oikeaa tiivistettä (se on itse asiassa lohkossa 200,001 XNUMX ilmoitettu todellinen hash). Tein vain huvikseni, mutta huomaa, että viesti voidaan upottaa sinne.

Satoshis sisällytti tunnetusti sanat "Chancellor on Brink of Second Bailout for Banks" ensimmäiseen Bitcoin-lohkoon (The Genesis Block), päivän sanomalehden otsikon jälkeen.

Kuinka SHA256 ja kaivostoiminta suojaavat Bitcoin-verkon PlatoBlockchain-tietoälyä. Pystysuuntainen haku. Ai.

Tässä on se, että mukana on 132 tapahtumaa (kaikkia ei näytetä). Katso tapahtumaa #132 – 2.3 bitcoin osoitteesta maksaa 2.1 bitcoinia toiseen osoitteeseen ja myös toiseen osoitteeseen 0.1 bitcoinin summa (olen käyttänyt pisteitä lyhentämään osoitteen pituutta).

Joten 2.3 bitcoinin lähde maksaa yhteensä 2.2 bitcoinia (2.2 + 0.1 = 2.2). Puuttuuko 0.1 bitcoinia? Ei, eron väittää kaivosmies, kuten selitän.

Kaivosmies saa maksaa itselleen 25 bitcoinia lohkopalkkiona (koska 210,000 50 lohkoa on ohitettu, joten palkkio on puolittunut 25:stä 27.33880022:een). Mutta jos katsot, kolikkopohjatapahtuma on 2.33880022. Ylimääräinen 132 bitcoinia tulee lohkon XNUMX muusta tapahtumasta – kaikki syötteet ovat hieman suurempia kuin ulostulojen kokonaismäärä. Joten kaivosmies saa lunastaa tämän "hylätyn" bitcoinin maksuna itselleen. Näitä pidetään kaivosmiehelle maksetuina transaktiomaksuina.

Lohkon tila on rajallinen. Kun Bitcoin oli uusi, käyttäjät voivat lähettää tapahtumia ilman maksua ja kaivostyöläiset sisällyttivät tapahtuman lohkoon. Mutta nyt käyttäjiä on enemmän ja koska seuraavaan lohkoon pääseminen on kilpailukykyistä, käyttäjät sisällyttävät tapahtumaan maksun houkutellakseen kaivostyöntekijän valitsemaan tapahtumansa muiden sijaan.

Joten kun lohkopalkkio laskee tasaisesti, puolittuen joka neljäs vuosi ja lopulta nollaan, kaivostyöläiset saavat silti palkkaa tällä tavalla.

Jotkut ovat ehdottaneet, että jonakin päivänä kaivostyöläisten palkkio ei riitä ja saa Bitcoinin epäonnistumaan. Tämä huolenaihe on kumottu perusteellisesti, enkä toista sitä täällä.

Voidaanko lohko kirjoittaa uudelleen?

Tämä on erittäin epätodennäköistä, ja on syytä ymmärtää miksi. Sitten ymmärrät, miksi Bitcoin-tapahtumat ovat muuttumattomia (muuttumattomia).

Selitin aiemmin, että edellisen lohkon hash sisältyy nykyiseen lohkoon. Tämä tarkoittaa, että kaikki tapahtumien muokkaaminen vanhassa lohkossa muuttaa muokatun lohkon hajautusarvoa. Mutta tämä hash kirjataan alas seuraavaan lohkoon, joten se tarkoittaa, että myös seuraava lohko on päivitettävä. Mutta jos muutat seuraavaan lohkoon tallennettua tiivistettä, sen tiivisteen on muututtava ja niin edelleen.

Huomaa, että aina kun tiivistettä muutetaan, menetät kaikki nämä ihanat nollat ​​ja jää vain satunnaisen näköinen hash - ja sinun on tehtävä kaikki työ uudelleen saadaksesi nollat ​​takaisin. Jos teet tämän lohkolle, jota yritit muokata, sinun on tehtävä työ uudelleen seuraavalle lohkolle ja seuraavalle aina viimeisimpään lohkoon asti. Et voi yksinkertaisesti pysähtyä vanhaan lohkoon, koska Bitcoinin säännöt ovat sellaiset, että pisin lohkoketju on todellinen Bitcoin-ennätys. Jos palaat takaisin ja muokkaat lohkoa 10 lohkoa sitten, sinulla ei ole enää pisintä ketjua. Sinun täytyy lisätä 10 lohkoa lisää ja sitten vähän enemmän, koska kun loit noita 10 lohkoa, todellinen ketju luultavasti pidentyi hieman. Sinun täytyy kilpailla ohittaaksesi oikean ketjun. Jos onnistuu, uudesta versiosta tulee oikea versio.

Bitcoinin muokkaamisen este on koko maailman kollektiivisen hajautusyrityksen toistaminen muokatusta lohkosta viimeiseen lohkoon. Energiaa käytettiin luomaan hajautusarvot kaikilla noilla epätodennäköisillä nollia ja että energiankulutus on toistettava Bitcoinin muokkaamiseksi. Tästä syystä Bitcoinin louhimiseen käytetty energia ei ole "hukkaa"; se on olemassa suojelemaan Bitcoinia muokkauksilta, tekemään reskontrasta muuttumattoman ilman, että tarvitsee luottaa keskusviranomaiseen.

Mitä tapahtuu, jos kaksi kaivostyöntekijää löytää korttelin samanaikaisesti?

Tätä itse asiassa tapahtuu silloin tällöin, ja se järjestyy aina seuraavasti:

Jokainen solmu vastaanottaa ensin jommankumman uusista lähes samanaikaisista lohkoista ja hyväksyy sen ja hylkää hetken kuluttua saapuvan. Tämä johtaa verkon jakaantumiseen, mutta se on väliaikaista.

Havainnollistamiseksi sanotaan toista lohkoista siniseksi ja toista punaiseksi (niillä ei ole väriä, kestä vain minua).

Sitten kaivostyöntekijät työskentelevät seuraavan lohkon parissa, mutta siellä on jako, mistä lohkosta he jatkavat ketjua.

Oletetaan, että voittaja kaivosmies löysi lohkon käyttämällä sinistä ketjua. He lähettävät uuden lohkon kaikkiin solmuihin ja pisin ketju tulee näkyviin. Punaisen ketjun hyväksyneet solmut pudottavat sen ja ottavat käyttöön sinisen ketjun.

Kaikki punaisen ketjun parissa työskennelleet kaivostyöläiset pysähtyvät ja työskentelevät nyt pidemmän ketjun parissa, joka on sininen ketju. Punainen ketju on kuollut.

Liite

Miksi toisen sijan kaivospalvelija on virheellinen

Oletetaan, että MINER-A louhi juuri lohkon 700,000 700,000. Kolmekymmentä sekuntia myöhemmin MINER-B loi myös erilaisen version lohkosta 30 700,001. Kun MINER-B lähettää tämän vaihtoehdon, jokainen solmu hylkää sen, koska he ovat jo nähneet ja hyväksyneet MINER-A:n lohkon. Lisäksi oletetaan, että tuossa 700,000 sekunnissa MINER-C löysi lohkon 700,001 XNUMX. Koska MINER-B:n kilpaileva XNUMX XNUMX. lohko ei jatka nykyistä ketjua (joka on jopa XNUMX XNUMX), se hylätään myös tästä syystä.

Vielä mielenkiintoisempaa on, että jos MINER-B olisi työskennellyt lohkolla 700,001 700,000 kilpailevan 700,001 700,000 version sijaan, heillä olisi ollut yhtä paljon mahdollisuuksia louhia kelvollinen lohko XNUMX XNUMX kuin heidän olisi lopulta täytynyt löytää vaihtoehtoinen lohko XNUMX XNUMX. Joten heti kun joku kaivostyöntekijä näkee uuden lohkon, hänen tulee asettaa ponnistelunsa seuraavaan lohkoon.

Jos Miner-B kuitenkin löysi lohkon 700,000 XNUMX sekunti MINER-A:n jälkeen, on mahdollista, että jotkut solmut näkevät MINER-A:n lohkon ensin, kun taas toiset näkevät MINER-B:n lohkon ensin, riippuen maantieteellisestä sijainnista ja Internetin nopeuksista. Siinä tapauksessa on olemassa väliaikainen haarukka, ja jotkut kaivostyöntekijät pyrkivät laajentamaan yhtä versiota, kun taas toiset kaivostyöntekijät jatkavat toista. Kuten aiemmin selitettiin käyttämällä "sinisen ketjun" ja "punaisen ketjun" kuvaajia, lopulta toinen versioista ulottuu pidemmälle ennen toista ja siitä tulee yksimielisesti voimassa oleva versio.

Tämä on Arman The Parmanin vieraspostaus. Esitetyt mielipiteet ovat täysin heidän omiaan eivätkä välttämättä vastaa BTC Inc:n tai Bitcoin Magazine.

Aikaleima:

Lisää aiheesta Bitcoin Magazine