Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Kuidas SHA256 ja kaevandamine Bitcoini võrku kaitsevad

Kuidas kaitseb Bitcoini energia? Ja mis on nonce? Nendele ja paljudele teistele küsimustele leiate vastused!

See, kuidas kaevandamine töötab, on põnev. Kui ma seda inimestele selgitan, naudin nende nägude nägemist hetkel, mil nende mõistus on löödud. Ma selgitan seda siin, aga teadke, ma kujutan ette kõiki teie nägusid, kui teie mõistus lööb läbi!

Pean alustama räsifunktsioonidest. Ilma räsifunktsioonideta poleks Bitcoin võimalik. Lubage mul kõigepealt selgitada, mis need on, mitte ainult selleks, et saaksite pidudel lahedalt kõlada, vaid ka seetõttu, et see on oluline, et mõista, kuidas Bitcoin kapoti all töötab – eriti kaevandamine, aga ka tehingud.

Sellest kasu saamiseks ei pea te aru saama, kuidas Bitcoin töötab, nagu ka seda, kuidas Interneti kasutamiseks ei pea te mõistma, kuidas TCP/IP töötab. Aga jätkake, sest see on päris huvitav ja ma luban, et ma muudan selle lihtsaks.

Räsifunktsioonid

Alustame skeemiga, mida ma allpool selgitan ...

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.
(Graafiline/@jirols_btc)

Vasakul on sisend, keskel on funktsioon ja paremal on väljund. Sisend võib olla mis tahes andmed, kui see on digitaalne. See võib olla mis tahes suurusega, eeldusel, et teie arvuti saab sellega hakkama. Andmed edastatakse funktsioonile SHA256. Funktsioon võtab andmed ja arvutab juhusliku välimusega arvu, millel on eriomadused (seda käsitletakse hiljem).

Esimene Secure Hash Algorithm (SHA) oli algselt välja töötanud NSA ja praegu on palju erinevaid versioone (Bitcoin kasutab SHA256). See on juhiste kogum, kuidas andmeid väga keerulisel, kuid täpsustatud viisil segamini ajada. Juhised pole saladus ja seda on võimalik isegi käsitsi teha, kuid see on väga tüütu.

SHA256 puhul on väljundiks 256-bitine arv (mitte juhus).

256-bitine arv tähendab 256-kohalist kahendarvu. Binaarne tähendab, et väärtus on esitatud kahe sümboliga, kas 0 või 1. Binaarseid numbreid saab teisendada mis tahes muusse vormingusse, näiteks kümnendarvudesse, mis on meile tuttavad.

Kuigi funktsioon tagastab 256-kohalise kahendarvu, väljendatakse väärtust tavaliselt kuueteistkümnendsüsteemis, mis on 64 numbrit pikk.

Kuueteistkümnendsüsteem tähendab, et 10 võimaliku sümboli asemel, nagu oleme harjunud kümnendkohaga (0 kuni 9), on meil 16 sümbolit (kümme, millega oleme harjunud, 0-9, pluss tähed a, b, c, d, e, ja f; mille väärtused on 11 kuni 15). Näiteks kümnendkoha 15 väärtuse esitamiseks kuueteistkümnendsüsteemis kirjutame lihtsalt "f" ja see on sama väärtus. Kui vajate täpsemat teavet, on Internetis saadaval palju teavet kiire Google'i otsingu abil.

SHA256 demonstreerimiseks tegevuses võin võtta numbri 1 ja käivitada selle läbi Interneti-räsikalkulaator, ja sai selle väljundi (kuueteistkümnendsüsteemis):

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Ülemine kast on sisend, alumine kast on saadud väljund.

Pange tähele, et kõik maailma arvutid toodavad sama väljundit, kui sisend on sama ja kasutatakse funktsiooni SHA256.

Kuueteistkümnendarvu väljund, kui see teisendatakse kümnendarvuks, on (pange tähele, et kirjutamiseks kulub rohkem numbreid):

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 binaarseks teisendatuna on see:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Lihtsalt huvi pärast on siin sama väärtus alus 64.

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

Pange tähele, et väikseim võimalik väärtus, mille SHA256 võiks tagastada, on null, kuid PIKKUS on siiski 256 bitti. Nulli esitatakse järgmiselt:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Ja suurim võimalik väärtus on:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Kümnendkohas on see:

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

Kuueteistkümnendsüsteemis on see:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Pange tähele, et seal on täpselt 64 F-d.

Kuueteistkümnendsüsteemis oleva nulli saab kirjutada lihtsalt ühe nullina, kuid räsiväljundi puhul on fikseeritud suurusega väljundi nõude järgimiseks 64 neist:

0000000000000000000000000000000000000000000000000000000000000000

Siin on kokkuvõte mõnedest faktidest räsifunktsiooni kohta, mida on oluline hinnata:

  • Väljundist ei saa sisendit määrata
  • Sisend võib olla mis tahes pikkusega
  • Väljund on alati sama pikk
  • Kui sisestate sama sisendi, esitatakse väljund alati identselt.
  • Igasugune sisendi muudatus, ükskõik kui väike, põhjustab ettearvamatu ja metsikult erineva väljundi
  • Väljund on näiliselt juhuslik, kuid tegelikult deterministlik (see tähendab, et see on arvutatud ja reprodutseeritav)
  • Väljundit ei saa ennustada. Seda saab ainult arvutada ja selleks kulub arvutiga mõõdetav hulk tööd (ja tunde pliiatsi ja paberiga! Ärge seda tehke).

Nüüd, kui mõistate räsi põhikontseptsiooni, saate aru, kuidas Bitcoini kaevandamine töötab.

Aga enne kui edasi lähed, soovitan minna interneti räsikalkulaatori juurde ja sellega veidi mängida ning ise katsetada, mida olen räsifunktsioonide kohta öelnud. Mulle meeldib see üks.

Kaevandamine

Alustan töö kontseptsiooni demonstreerimisega, millest pärineb Bitcoini "töötõend".

Minge veebipõhisesse räsikalkulaatorisse ja tippige "Loon 50 bitcoini ja maksan selle summa endale."

Sisestage see täpselt, tõstutundlik, sh punkt. Peaksite saama selle väljundi:

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Nüüd loome reegli, mis ütleb, et selle makseteate kehtivuse jaoks on vaja, et räsi algaks ühe nulliga. Selleks peame sisendit kuidagi muutma. Kuid nagu olete õppinud, pole etteaimatav, milline oleks antud sisendi väljund. Milliseid muudatusi saame teha, et tagada nulliga algav räsi?

Peame andmed lisama katse-eksituse meetodil. Kuid me ei taha ka sisendsõnumi tähendust muuta. Niisiis, loome välja (eraldatud jaotis), mida nimetatakse "nonce", mis sisaldab mõttetut väärtust.

Sõna "nonce" arvatakse olevat tuletatud sõnast "ainult üks kord kasutatud number", kuid ma ei näe seda.

Pange tähele, kuidas lihtsalt „Nonce:” lisamine täiendava välja pealkirjana muudab räsiväljundit.

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Väljund ei alga ikka 0-ga, nii et lisame veidi jama (lisasin mõttetu "x"):

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

See ikka ei alga nulliga. Proovisin veel mõnda tähemärki, kuni räsi algas nulliga:

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Lähme. Nüüd, vastavalt suvalistele reeglitele, mille ma sellele Bitcoini teesklevale versioonile seadsin, on sisestusaknas olev tekst kehtiv plokk, kus üks tehing maksab mulle 50 bitcoini.

Pange tähele, et Bitcoini plokid on sisuliselt pearaamatu lehed. Iga plokk on nummerdatud ja loob uue bitcoini koos kasutajatevaheliste tehingute loendiga. See rekord on koht, kus bitcoin elab.

Nüüd uus reegel. Järgmise ploki jaoks tuleb lisada eelmise ploki räsi. Lisan veidi keerukust ja lisan veel mõned väljad, et läheneda tõelise Bitcoini ploki omadustele.

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Räsi algab tähega "f", mitte "0", seega pean proovima mõnda väärtust väljal nonce:

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Seekord vedas rohkem ja leidsin sobiva nonce juba nelja katsega. Tuletage meelde, et esimese ploki jaoks kulus 22 katset. Siin on mõningast juhuslikkust, kuid üldiselt pole kehtiva räsi leidmine liiga keeruline, kui me püüame saada ainult ühte nulli. Esimesel räsinumbril on 16 võimalikku väärtust, seega on tõenäosus 1:16, et mis tahes sisestusväljal tehtud muudatus toob kaasa esimese räsinumbri väärtuse 0.

Pange tähele, et Bitcoini väljad on sellised, kuid seal on rohkem üksikasju, mida ma pole lisanud. See on lihtsalt asja illustreerimiseks, mitte tingimata selleks, et täpselt kirjeldada, kuidas Bitcoini plokk välja näeb.

Lisan järgmisesse plokki ajavälja, kuna vajan seda "raskuste kohandamise" selgitamiseks:

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Ülal on plokk number kolm. See sisaldab eelmise ploki räsi ja nüüd hakkasin ka aega arvestama. Leidsin edukalt, et räsi algas nulliga (kirjutasin lihtsalt "1", kuni räsi eesmärk oli täidetud).

Siin on nüüd piisavalt, et saaksin hakata selgitama mõnda huvitavat kontseptsiooni Bitcoini plokiahela ja kaevandamise kohta.

Bloki võitmine

Kaevandusprotsess on konkurentsivõimeline. Kes esimesena kehtiva ploki toodab, maksab endale määratud plokipreemia. Kaevur, kes toodab veidi hiljem sama plokinumbri, ei saa midagi – see plokk lükatakse tagasi. Selle põhjuse selgitamine põhjustab nüüd liiga palju kõrvalekallet, seega selgitan seda lisas.

Pärast seda, kui kolmas plokk on leitud ja kõigile (kõigile Bitcoini sõlmedele) edastatud, lõpetavad kõik kaevurid töötamast selle kallal, mis oleks olnud nende kolmanda ploki versioon. Nad hakkavad sellele edukale kolmele plokile peale ehitama (tõmbates selle ploki räsi edasi uude plokki) ja hakkavad töötama neljanda ploki jaoks sobiva nonce leidmisega. Võitja avaldab tulemuse ja seejärel hakkavad kõik viienda ploki jne kallal töötama.

Iga plokiga luuakse uusi bitcoine, mis moodustavad seni kogu pakkumise. Kui kaevureid on palju, siis statistiliselt peaksime eeldama, et plokid toodetakse kiiremini ja seetõttu tekib bitcoin kiiremini. Probleem, eks?

Otsides prognoositava emissiooniga bitcoine piiratud koguses aja jooksul, mõtles Satoshi Nakamoto sellele probleemile ja võttis kasutusele negatiivse tagasisideahela, et hoida plokkide tootmist keskmiselt 10-minutilise intervalliga. Kuidas? Vaata, kas suudad välja mõelda. Peatuge hetkeks ja mõelge – vaadake, kas suudate sama geniaalse lahenduse välja mõelda ja kui loobute, loe edasi.

SÕLMMED: Mainin "kehtivaid" plokke. Mis siis? Kes kontrollib? Bitcoini sõlmed on. Bitcoini sõlm säilitab seni plokiahela koopiat ja järgib reegleid, et kontrollida, kas uued plokid on reeglite piires, ja lükata tagasi need, mis ei ole. Kus on reeglid? Koodis. Arvuti, mis laadib alla Bitcoini koodi, on sõlm.

Raskusastme kohandamine

Uute Bitcoini plokkide loomise keskmist aega arvutab iga sõlm iga 2016. aasta ploki järel (sellepärast on ajaväli vajalik). See on osa protokollist ja reeglitest, mida sõlmed järgivad. Valemit rakendatakse nullide arvu reguleerimiseks, millest iga räsi kehtivus peab algama.

Rangelt öeldes ei kohandata nullide arvu, vaid sihtväärtust, millest räsi peab jääma allapoole, kuid eesolevate nullide mõtlemist on lihtsam seletada.

Kui plokke toodetakse liiga kiiresti, kohandatakse räsi sihtmärki vastavalt eelnevalt määratletud reeglitele, mida kõik sõlmed järgivad identselt (see on nende koodis).

Olles minu näite puhul lihtne, oletame, et teised inimesed võistlevad minuga, plokid toimuvad liiga kiiresti ja nüüd vajab neljas plokk kujuteldava arvutuse kohaselt ühe nulli asemel kahte nulli.

Mul läheb kahe nulli saamiseks natuke rohkem aega, kuid me kujutame ette, et minuga võistlevad paljud teised inimesed, nii et ploki leidmiseks kuluv koguaeg jääb sihtmärgini.

Siin on järgmine plokk:

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Pange tähele aega. Eelmisest blokist on möödas üle 10 minuti (varustasin just demonstreerimiseks aega). 10-minutiline sihtmärk on tõenäosuslik; kunagi pole täpselt teada, millal järgmine plokk leitakse.

Segasin ühe minuti klaviatuuriga, kuni kaks nulli ilmusid. See oli eksponentsiaalselt raskem kui ühe nulli leidmine. Võimalus leida kaks nulli järjest on 1:162ehk võimalus 1:256.

Kui uute bitcoinide kaevandamisel ja konkursil osaleks rohkem inimesi, on lõpuks vaja kolme nulli.

Otsisin just üles viimase päris Bitcoini ploki, mis sisaldab eelmise ploki räsi. Räsi oli:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

See on 19 nulli! Seal on 1:1619 võimalus iga katsega selline plokk leida. Bitcoini kaevurid teevad palju-palju katseid sekundis, ühiselt üle kogu maailma.

Katsete arvu sekundis nimetatakse räsimääraks. Praegu on maailma hinnanguline räsimäär veidi alla 200 miljoni terahaši sekundis (üks terahaš on triljon räsi). Nii paljude katsete korral sekundis leitakse umbes iga 19 minuti järel plokk, mille räsi algab 10 nulliga.

Tulevikus, kui rohkem kaevureid liitub, tõuseb räsimäär, plokke leitakse kiiremini ja Bitcoini raskused kohanduvad 20 nulliga, mis lükkab plokkide tootmise tagasi umbes 10 minutini.

Poolitamine

Bitcoini esmakordsel käivitamisel toodeti iga plokiga 50 bitcoini. Bitcoini plokiahela reeglid näevad ette, et iga 210,000 10 ploki järel vähendatakse tasu poole võrra. Seda hetke nimetatakse "poolitamiseks" ja see juhtub ligikaudu iga nelja aasta tagant. Poolitamine koos raskuste reguleerimisega plokkide hoidmisel 2140-minutiste intervallidega tähendab, et 0.00000001. aasta paiku on plokipreemiaks 1 ehk 21 satoshi, bitcoini väikseim ühik, ja seda ei saa enam poolitada. Kaevandamine ei peatu, kuid ploki tasu on null. Sellest hetkest alates ei looda enam uut bitcoine ja bitcoinide arv on matemaatiliselt arvutatav ja piisavalt lähedal XNUMX miljonile mündile. Nii teatakse kogu pakkumist — see on programmiliselt seatud.

Isegi kui plokitasu on null, motiveeritakse kaevureid tehingutasude teenimiseks tööd jätkama.

Kuidas täpselt plokipreemia pooleks lõigatakse? See on sõlmede käes olevas koodis. Nad teavad tagasi lükata kõik uued blokid pärast 210,000 25, kui kaevur maksab endale üle 420,000 bitcoini. Ja siis tagasi lükata kõik blokid pärast 12.5 XNUMX, kus kaevur maksab endale üle XNUMX bitcoini jne.

Tehingutasud

Siiani olen näidanud ainult ühe tehinguga kujuteldavaid plokke – tehingut, mille puhul kaevandajale makstakse tasu. Seda nimetatakse "mündibaasi tehinguks".

See ei ole nime saanud ettevõtte Conbase, ma mõtlen Coinbase järgi. Ettevõte nimetas end mündibaasi tehingu järgi, mitte vastupidi. Ärge sattuge segadusse.

Lisaks mündibaasi tehingule on tehingud, kus inimesed maksavad üksteisele. Siin on väljamõeldud näide:

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Ma ei vaevunud seekord päris räsi leidma (see on tegelikult plokis 200,001 XNUMX teatatud tõeline räsi). Nonce, mille ma lihtsalt nalja pärast välja mõtlesin, kuid teade, et sinna saab manustada sõnumi.

Satoshi lisas kuulsalt sõnad "Kantsler on pankade teise päästmise piiril" esimesse Bitcoini plokki (The Genesis Block) pärast päevalehepealkirja.

Kuidas SHA256 ja kaevandamine kaitsevad Bitcoini võrgu PlatoBlockchaini andmeluure. Vertikaalne otsing. Ai.

Asi on selles, et kaasatud on 132 tehingut (kõiki pole näidatud). Vaadake tehingut nr 132 – 2.3 bitcoin ühelt aadressilt maksab 2.1 bitcoini teisele aadressile ja ka teisele aadressile summa 0.1 bitcoini (ma olen aadressi pikkuse lühendamiseks kasutanud punkte).

Seega maksab 2.3 bitcoini allikas kokku 2.2 bitcoini (2.2 + 0.1 = 2.2). Kas 0.1 bitcoini on puudu? Ei, erinevust väidab kaevandaja, nagu ma selgitan.

Kaevujal on lubatud maksta endale plokipreemiana 25 bitcoini (kuna 210,000 50 plokki on läbitud, seega on preemia vähenenud poole võrra 25-lt 27.33880022-le). Aga kui vaadata, siis mündibaasi tehing on 2.33880022. Täiendav 132 bitcoini pärineb ploki ülejäänud XNUMX tehingust – kõik sisendid on veidi suuremad kui väljundite kogusumma. Nii saab kaevur nõuda seda "mahajäetud" bitcoini maksena endale. Neid loetakse kaevandajale makstud tehingutasudeks.

Ploki ruum on piiratud. Kui Bitcoin oli uus, said kasutajad tehinguid saata tasuta ja kaevurid lisasid tehingu plokki. Kuid nüüd on kasutajaid rohkem ja kuna järgmisele blokile pääsemine on konkurentsivõimeline, lisavad kasutajad tehingusse tasu, et meelitada kaevandajat valima oma tehingut teiste omade asemel.

Nii et kui plokitasu pidevalt väheneb, poole võrra iga nelja aasta järel ja lõpuks nullini, saavad kaevurid ikkagi sel viisil palka.

Mõned on väitnud, et ühel päeval ei piisa kaevurite tasust ja see põhjustab Bitcoini ebaõnnestumise. See mure on põhjalikult lahti lükatud ja ma ei hakka seda siin kordama.

Kas plokki saab ümber kirjutada?

See on äärmiselt ebatõenäoline ja tasub mõista, miks. Seejärel mõistate, miks Bitcoini tehingud on muutumatud (muutmatud).

Seletasin varem, et eelmise ploki räsi on kaasatud praegusesse plokki. See tähendab, et mis tahes tehingute redigeerimine vanas plokis muudab selle muudetud ploki räsi. Kuid see räsi salvestatakse järgmises plokis, nii et see tähendab, et ka järgmist plokki tuleb värskendada. Aga kui muudate selles järgmises plokis salvestatud räsi, peab selle räsi muutuma jne.

Pange tähele, et iga kord, kui räsi muudetakse, kaotate kõik need armsad nullid ja teile jääb lihtsalt juhuslikult näiv räsi – ja nullide tagasi saamiseks peate uuesti tegema kogu töö. Kui teete seda ploki puhul, mida proovisite redigeerida, peate järgmise ploki töö uuesti tegema ja järgmise kuni viimase plokini. Te ei saa lihtsalt vana ploki juures peatuda, sest Bitcoini reeglid on sellised, et pikim plokkide ahel on tõeline Bitcoini rekord. Kui lähete tagasi ja muudate plokki 10 plokki tagasi, pole teil enam pikimat ahelat. Peate lisama veel 10 plokki ja siis natuke rohkem, sest nende 10 plokki loomise ajal muutus tegelik kett tõenäoliselt veidi pikemaks. Tõelisest ketist möödumiseks peate võistlema. Kui see õnnestub, saab uuest versioonist tegelik versioon.

Bitcoini redigeerimise takistuseks on kogu maailma kollektiivse räsimise kordamine redigeeritud plokist uusima plokini. Energia kulutati nende ebatõenäoliste nullidega räside loomiseks ja seda energiakulu tuleb Bitcoini redigeerimiseks korrata. See on põhjus, miks Bitcoini kaevandamiseks kasutatud energiat ei raisata; see on selleks, et kaitsta Bitcoini muudatuste eest, muuta pearaamat muutumatuks, ilma et oleks vaja keskasutust usaldada.

Mis juhtub, kui kaks kaevurit leiavad ploki korraga?

Seda juhtub tegelikult aeg-ajalt ja see laheneb alati järgmiselt:

Iga sõlm saab esmalt ühe uutest peaaegu samaaegsetest plokkidest ja võtab selle vastu ja lükkab tagasi mõne hetke hiljem saabuva. Selle tulemuseks on võrgu lõhenemine, kuid see on ajutine.

Illustreerimiseks nimetagem ühte klotsi siniseks ja teist punaseks (neil pole värvi, lihtsalt kannatage).

Seejärel töötavad kaevurid järgmise ploki kallal, kuid seal tehakse vahet, millisest plokist nad ketti pikendavad.

Oletame, et võitnud kaevandaja leidis sinise keti abil ploki. Nad saadavad uue ploki kõikidesse sõlmedesse ja pikim ahel on nähtav. Punase ahela aktsepteerinud sõlmed kukuvad selle maha ja võtavad kasutusele sinise ahela.

Kõik kaevurid, kes töötasid punase keti kallal, peatuvad ja töötavad nüüd pikema ahelaga, milleks on sinine kett. Punane kett on surnud.

Lisa

Miks teise koha kaevurite plokk on kehtetu?

Oletame, et MINER-A kaevandas just 700,000 700,000 ploki. Kolmkümmend sekundit hiljem lõi MINER-B ploki 30 700,001 erineva versiooni. Kui MINER-B edastab selle alternatiivi, lükkab iga sõlm selle tagasi, kuna nad on MINER-A plokki juba näinud ja vastu võtnud. Veelgi enam, oletame, et selle 700,000 sekundi jooksul leidis MINER-C ploki 700,001 XNUMX. Arvestades, et MINER-B konkureeriv XNUMX XNUMX. plokk ei pikenda praegust ahelat (mis on kuni XNUMX XNUMX), lükatakse see samuti sel põhjusel tagasi.

Veelgi huvitavam on see, et kui MINER-B oleks konkureeriva 700,001 700,000 versiooni asemel töötanud ploki 700,001 700,000 kallal, oleks neil olnud sama palju võimalusi kaevandada kehtiv plokk XNUMX XNUMX, kui nad oleksid pidanud lõpuks leidma alternatiivse ploki XNUMX XNUMX. Nii et niipea, kui mõni kaevandaja näeb uut plokki, peaks ta seadma oma jõupingutused järgmisele plokile.

Kui aga Miner-B leidis ploki 700,000 XNUMX üks sekund pärast MINER-A, siis on võimalik, et mõned sõlmed näevad MINER-A plokki esimesena, teised aga MINER-B plokki esimesena, olenevalt geograafilisest asukohast ja Interneti-kiirusest. Sel juhul on ajutine kahvel ja mõned kaevurid töötavad ühe versiooni pikendamise nimel, teised aga teise versiooni pikendamise nimel. Nagu varem selgitatud, kasutades „sinise ahela” ja „punase ahela” deskriptoreid, laieneb lõpuks üks versioonidest kaugemale enne teist ja muutub ühehäälselt kehtivaks versiooniks.

See on Arman The Parmani külalispostitus. Avaldatud arvamused on täielikult nende omad ja ei pruugi kajastada BTC Inc või Bitcoin ajakiri.

Ajatempel:

Veel alates Bitcoin ajakiri