Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen?

Hoe wordt Bitcoin verdedigd door energie? En wat is een nonce? Deze vragen en meer worden binnen beantwoord!

Hoe mijnbouw werkt, is fascinerend. Als ik het aan mensen uitleg, vind ik het leuk om hun gezicht te zien op het moment dat ze versteld staan. Ik zal het hier uitleggen, maar weet gewoon, ik stel me al je gezichten voor terwijl je geest waait!

Ik moet beginnen met hash-functies. Zonder hashfuncties zou Bitcoin niet mogelijk zijn. Laat me eerst uitleggen wat ze zijn, niet alleen zodat je cool kunt klinken op feestjes, maar ook omdat het van fundamenteel belang is om te begrijpen hoe Bitcoin werkt - met name mijnbouw maar ook transacties - onder de motorkap.

U hoeft niet te begrijpen hoe Bitcoin werkt om ervan te profiteren, net zoals u niet hoeft te begrijpen hoe TCP/IP werkt om internet te gebruiken. Maar ga door, want het is best interessant en ik zal het gemakkelijk te begrijpen maken, dat beloof ik.

Hash-functies

Laten we beginnen met een schema dat ik hieronder zal uitleggen...

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
(Grafisch/@jirols_btc)

Aan de linkerkant is de invoer, het midden is de functie en aan de rechterkant is de uitvoer. De invoer kan alle gegevens zijn, zolang het maar digitaal is. Het kan van elke grootte zijn, op voorwaarde dat uw computer het aankan. De gegevens worden doorgegeven aan de SHA256-functie. De functie neemt de gegevens en berekent een willekeurig ogend getal, maar met speciale eigenschappen (later besproken).

Het eerste Secure Hash Algorithm (SHA) was oorspronkelijk: ontwikkeld door de NSA en er zijn nu veel verschillende versies (Bitcoin gebruikt SHA256). Het is een reeks instructies voor het door elkaar halen van de gegevens op een zeer gecompliceerde maar gespecificeerde manier. De instructies zijn geen geheim en het is zelfs mogelijk om het met de hand te doen, maar het is erg vervelend.

Voor SHA256 is de uitvoer een 256-bits getal (geen toeval).

Een 256-bits getal betekent een binair getal dat 256 cijfers lang is. Binair betekent dat de waarde wordt weergegeven met twee symbolen, ofwel 0 of 1. Binaire getallen kunnen worden geconverteerd naar elk ander formaat, bijvoorbeeld decimale getallen, waarmee we bekend zijn.

Hoewel de functie een binair getal van 256 cijfers retourneert, wordt de waarde meestal uitgedrukt in hexadecimaal formaat, 64 cijfers lang.

Hexadecimaal betekent dat in plaats van 10 mogelijke symbolen zoals we gewend zijn met decimaal (0 tot 9), we 16 symbolen hebben (de tien die we gewend zijn, 0-9, plus de letters a, b, c, d, e, en f; die de waarden 11 tot 15 hebben). Als voorbeeld, om de waarde van decimaal 15 in hexadecimaal weer te geven, schrijven we gewoon "f" en het is dezelfde waarde. Er is veel informatie online beschikbaar met een snelle Google-zoekopdracht als u meer uitleg nodig heeft.

Om SHA256 in actie te demonstreren, kan ik nummer 1 nemen en het door een online hash-calculator, en kreeg deze uitvoer (in hexadecimaal):

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Het bovenste vak is de invoer, het onderste vak is de resulterende uitvoer.

Merk op dat alle computers ter wereld dezelfde output zullen produceren, op voorwaarde dat de input hetzelfde is en de SHA256-functie wordt gebruikt.

De uitvoer van het hexadecimale getal, indien geconverteerd naar decimaal, is (merk op dat er meer cijfers nodig zijn om te schrijven):

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

En omgezet naar binair is het:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Gewoon uit interesse, hier is dezelfde waarde in basis 64.

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

Merk op dat de kleinst mogelijke waarde die SHA256 kan retourneren nul is, maar de LENGTH is nog steeds 256 bits. Zo wordt nul weergegeven:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

En de grootst mogelijke waarde is:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

In decimaal is dat:

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

In hexadecimaal is het:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Merk op dat er precies 64 F's zijn.

Nul in hexadecimaal kan eenvoudig worden geschreven als รฉรฉn enkele nul, maar voor hash-uitvoer zijn het 64 van hen om te voldoen aan de vereiste van een uitvoer met een vaste grootte:

0000000000000000000000000000000000000000000000000000000000000000

Hier is een samenvatting van enkele feiten over de hash-functie die essentieel zijn om te waarderen:

  • De invoer kan niet worden bepaald uit de uitvoer
  • De invoer kan elke lengte hebben
  • De uitvoer is altijd even lang
  • De uitvoer wordt altijd identiek weergegeven als u dezelfde invoer geeft.
  • Elke wijziging aan de invoer, hoe klein ook, zal een onvoorspelbare en totaal verschillende uitvoer veroorzaken
  • De uitvoer is schijnbaar willekeurig, maar is in feite deterministisch (wat betekent dat het berekend en reproduceerbaar is)
  • De output kan niet worden voorspeld. Het kan alleen worden berekend en dit kost een meetbare hoeveelheid werk van een computer (en uren met potlood en papier! Niet doen.)

Nu je het basisconcept begrijpt van wat een hash is, kun je de uitleg begrijpen van hoe Bitcoin-mining werkt.

Maar voordat je verder gaat, raad ik je aan om naar een online hash-calculator te gaan en er een beetje mee te spelen en zelf te testen wat ik heb gezegd over hash-functies. Ik vind deze leuk.

Mijnbouw

Ik zal beginnen met het demonstreren van een concept van werk, waar "proof-of-work" in Bitcoin vandaan komt.

Ga naar de online hash-calculator en typ "Ik maak 50 bitcoins en betaal mezelf dit bedrag."

Typ het precies, hoofdlettergevoelig, inclusief de punt. Je zou deze output moeten krijgen:

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Laten we nu een regel maken die zegt dat dit betalingsbericht geldig moet zijn, dat de hash met รฉรฉn nul moet beginnen. Om dat te doen, moeten we de invoer op de een of andere manier wijzigen. Maar, zoals je hebt geleerd, het is niet voorspelbaar wat de output zou zijn voor een bepaalde input. Welke wijziging kunnen we aanbrengen om ervoor te zorgen dat een hash begint met nul?

We moeten gegevens toevoegen met trial-and-error. Maar we willen ook de betekenis van het invoerbericht niet veranderen. Laten we dus een veld (een toegewezen sectie) maken, een "nonce" genaamd, die een onzinwaarde zal bevatten.

Het woord "Nonce" zou zijn afgeleid van "nummer slechts รฉรฉn keer gebruikt", maar ik zie het niet.

Merk hieronder op hoe alleen het toevoegen van "Nonce:" als een extra veldkop de hash-uitvoer verandert.

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De uitvoer begint nog steeds niet met een "0", dus laten we wat onzin toevoegen (ik heb een betekenisloze "x" toegevoegd):

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Het begint nog steeds niet met een nul. Ik probeerde nog wat karakters totdat de hash begon met een nul:

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Daar gaan we. Nu, volgens de willekeurige regels die ik heb ingesteld voor deze nepversie van Bitcoin, is de tekst in het invoervenster een geldig blok met een enkele transactie die me 50 bitcoin betaalt.

Merk op dat Bitcoin-blokken in wezen pagina's van een grootboek zijn. Elk blok is genummerd en creรซert nieuwe bitcoin, samen met een lijst van de transacties tussen gebruikers. Dit record is waar bitcoin leeft.

Nu een nieuwe regel. Voor het volgende blok moet de hash van het vorige blok worden opgenomen. Ik zal een beetje complexiteit toevoegen en nog een paar velden toevoegen om te benaderen wat een echt Bitcoin-blok heeft.

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De hash begint met een "f" niet "0", dus ik zal enkele waarden in het nonce-veld moeten proberen:

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Deze keer had ik meer geluk en vond ik al na vier pogingen een geschikte nonce. Bedenk dat het voor het eerste blok 22 pogingen kostte. Er is hier wat willekeur, maar over het algemeen is het niet zo moeilijk om een โ€‹โ€‹geldige hash te vinden als we alleen maar รฉรฉn nul proberen te krijgen. Er zijn 16 mogelijke waarden voor het eerste hash-cijfer, dus ik heb een kans van 1 op 16 dat elke wijziging die ik aanbreng in het invoerveld ertoe leidt dat het eerste hash-cijfer "0" is.

Merk op dat de velden van Bitcoin er zo uitzien, maar er zijn meer details die ik niet heb toegevoegd. Dit is slechts om een โ€‹โ€‹punt te illustreren, niet noodzakelijk om precies te beschrijven hoe een Bitcoin-blok eruit ziet.

Ik zal een tijdveld toevoegen aan het volgende blok omdat ik dat nodig heb om de "moeilijkheidsaanpassing" hierna uit te leggen:

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Hierboven is blok nummer drie. Het bevat de hash van het vorige blok en nu ben ik ook begonnen met het opnemen van de tijd. De nonce die ik met succes vond, maakte de hash-start met een nul (ik bleef gewoon een "1" typen totdat het hash-doel was bereikt).

Er is hier nu genoeg om een โ€‹โ€‹paar interessante concepten over de Bitcoin-blockchain en mining uit te leggen.

Een blok winnen

Het mijnbouwproces is competitief. Degene die als eerste een geldig blok produceert, mag zichzelf een vaste blokbeloning betalen. Een miner die iets later hetzelfde bloknummer produceert, krijgt niets - dat blok wordt afgewezen. Uitleggen waarom dat is, zal nu te veel afleiding opleveren, dus ik zal het in de bijlage uitleggen.

Nadat blok drie is gevonden en naar iedereen is uitgezonden (alle Bitcoin-knooppunten), stoppen alle mijnwerkers met werken aan wat hun versie van blok drie zou zijn geweest. Ze beginnen bovenop dat succesvolle blok drie te bouwen (door de blokhash naar voren te trekken in een nieuw blok) en beginnen te werken aan het vinden van een geschikte nonce voor blok vier. De winnaar publiceert de uitslag en dan gaat iedereen aan de slag met blok vijf, etc.

Met elk blok worden nieuwe bitcoins gecreรซerd en vormen samen het totale aanbod tot nu toe. Als er veel miners zijn, dan mogen we statistisch verwachten dat blokken sneller worden geproduceerd, en dus bitcoin sneller. Probleem, toch?

Op zoek naar een beperkte voorraad bitcoin met een voorspelbare uitgifte in de loop van de tijd, dacht Satoshi Nakamoto aan dit probleem en introduceerde een negatieve feedbacklus om de blokproductie gemiddeld met tussenpozen van 10 minuten te houden. Op welke manier? Kijk of je een manier kunt bedenken. Pauzeer even en denk na - kijk of je met dezelfde geniale oplossing kunt komen en lees verder als je het opgeeft.

NODES: Ik noem "geldige" blokken. Nou en? Wie controleert? De Bitcoin-knooppunten zijn. Een Bitcoin-knooppunt houdt tot nu toe een kopie van de blockchain bij en volgt een reeks regels om te controleren of nieuwe blokken binnen de regels vallen en blokken die dat niet zijn af te wijzen. Waar zijn de regels? In de code. Een computer die de Bitcoin-code downloadt, is een knooppunt.

De moeilijkheidsgraadaanpassing

De gemiddelde tijd om nieuwe Bitcoin-blokken te maken, wordt door elk knooppunt elke 2016-blokken berekend (daarom is het tijdveld nodig). Dit maakt deel uit van het protocol en de regels die de knooppunten volgen. Er wordt een formule toegepast om het aantal nullen aan te passen waarmee elke blokhash moet beginnen om geldig te zijn.

Strikt genomen is het niet het aantal nullen dat wordt aangepast, maar een doelwaarde waar de hash onder moet liggen, maar het bedenken van voorloopnullen is eenvoudiger uit te leggen.

Als blokken te snel worden geproduceerd, wordt het hash-doel aangepast volgens vooraf gedefinieerde regels die alle knooppunten identiek volgen (het staat in hun code).

Om het simpel te houden voor mijn voorbeeld, laten we zeggen dat andere mensen met mij concurreren, blokkeringen gebeuren te snel en nu heeft het vierde blok twee nullen nodig in plaats van รฉรฉn, volgens een denkbeeldige berekening.

Het duurt wat langer voordat ik twee nullen heb, maar we stellen ons voor dat er veel andere mensen met me concurreren, dus de totale tijd die iemand nodig heeft om een โ€‹โ€‹blok te vinden, blijft beperkt tot een doel.

Hier is het volgende blok:

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Let op de tijd. Er zijn meer dan 10 minuten verstreken sinds het vorige blok (ik heb net de tijd gemaakt om te demonstreren). Het doel van 10 minuten is waarschijnlijk; het is nooit precies bekend wanneer het volgende blok wordt gevonden.

Ik rommelde een minuut op het toetsenbord totdat er twee nullen verschenen. Dit was exponentieel moeilijker dan het vinden van een enkele nul. De kans om twee nullen op een rij te vinden is 1 op 162, of een kans van 1 op 256.

Als er meer mensen zouden meedoen aan de mining en competitie voor nieuwe bitcoin, dan zijn er uiteindelijk drie nullen nodig.

Ik heb net het laatste echte Bitcoin-blok opgezocht, dat de hash van het vorige blok bevat. De hasj was:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

Dat zijn 19 nullen! Er is een 1 op 1619 kans om bij elke poging zo'n blok te vinden. Bitcoin-mijnwerkers doen vele, vele pogingen per seconde, gezamenlijk over de hele wereld.

Het aantal pogingen per seconde staat bekend als de 'hash rate'. Momenteel is de geschatte hashsnelheid in de wereld iets minder dan 200 miljoen terahashes per seconde (รฉรฉn terahash is een biljoen hashes). Met zoveel pogingen per seconde wordt er ongeveer elke 19 minuten een blok gevonden met een hash die begint met 10 nullen.

In de toekomst, naarmate meer miners meedoen, zal de hash-snelheid stijgen, zullen blokken sneller worden gevonden en zal de moeilijkheidsgraad van Bitcoin worden aangepast om 20 nullen te vereisen, wat de blokproductie terugbrengt tot ongeveer 10 minuten.

De halvering

Toen Bitcoin voor het eerst begon, werden er bij elk blok 50 bitcoins geproduceerd. De regels van de Bitcoin-blockchain specificeren dat na elke 210,000 blokken de beloning wordt gehalveerd. Dit moment staat bekend als 'de halvering' en vindt ongeveer om de vier jaar plaats. De halvering, gecombineerd met de moeilijkheidsaanpassing om blokken met tussenpozen van 10 minuten te houden, betekent dat rond het jaar 2140 de blokbeloning 0.00000001 of 1 satoshi, de kleinste eenheid van een bitcoin, zal zijn en niet meer kan worden gehalveerd. Mijnbouw stopt niet, maar de blokbeloning zal nul zijn. Vanaf dat moment wordt er geen nieuwe bitcoin meer gemaakt en is het aantal bitcoin wiskundig berekenbaar en dicht genoeg bij 21 miljoen munten. Dit is hoe het totale aanbod bekend is - het is programmatisch ingesteld.

Zelfs met de blokbeloning op nul, zullen de mijnwerkers nog steeds worden gestimuleerd om te blijven werken om transactiekosten te verdienen.

Hoe wordt de blokbeloning precies gehalveerd? Het zit in de code van de knooppunten. Ze weten elk nieuw blok te weigeren na 210,000 waarbij een miner zichzelf meer dan 25 bitcoin betaalt. En om vervolgens alle blokken te weigeren na 420,000 waarbij een miner zichzelf meer dan 12.5 bitcoin betaalt, enzovoort.

Transactiekosten

Tot nu toe heb ik alleen denkbeeldige blokken getoond met een enkele transactie - de transactie waarbij de mijnwerker een beloning krijgt. Dit wordt de 'muntbasistransactie' genoemd.

Het is niet vernoemd naar het bedrijf, Conbase, ik bedoel Coinbase. Het bedrijf noemde zichzelf naar de coinbase-transactie, niet andersom. Raak niet in de war.

Naast de coinbase transactie zijn er transacties waarbij mensen elkaar betalen. Hier is een ingebeeld voorbeeld:

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Ik heb deze keer niet de moeite genomen om een โ€‹โ€‹echte hash te vinden (het is eigenlijk de echte hash gerapporteerd in blok 200,001). De nonce heb ik gewoon voor de lol goedgemaakt, maar merk op dat daar een bericht kan worden ingesloten.

Satoshis heeft de beroemde woorden "Kanselier op de Brink of Second Bailout for Banks" in het eerste Bitcoin-blok (The Genesis Block) opgenomen, na de krantenkop van die dag.

Hoe SHA256 en mijnbouw het Bitcoin-netwerk beschermen PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Het punt hier is dat er 132 transacties zijn inbegrepen (niet allemaal weergegeven). Kijk naar transactie #132 โ€“ 2.3 bitcoin van een adres is 2.1 bitcoin betalen naar een ander adres en ook naar een tweede adres het bedrag 0.1 bitcoin (ik heb punten gebruikt om de lengte van het adres in te korten).

Dus een bron van 2.3 bitcoin betaalt in totaal 2.2 bitcoin (2.2 + 0.1 = 2.2). Ontbreekt er 0.1 bitcoin? Nee, het verschil wordt opgeรซist door de mijnwerker, zoals ik zal uitleggen.

De miner mag zichzelf 25 bitcoin betalen als blokbeloning (omdat er 210,000 blokken zijn verstreken, is de beloning gehalveerd van 50 naar 25). Maar als je kijkt, is de coinbase-transactie 27.33880022. De extra 2.33880022 bitcoin komt van de andere 132 transacties in het blok โ€“ de inputs zullen allemaal iets groter zijn dan het totaal van de outputs. Dus de mijnwerker mag deze "verlaten" bitcoin claimen als betaling aan zichzelf. Deze worden beschouwd als transactiekosten die aan de miner worden betaald.

De blokruimte is beperkt. Toen Bitcoin nieuw was, konden gebruikers transacties zonder kosten verzenden en de mijnwerkers zouden de transactie in het blok opnemen. Maar nu zijn er meer gebruikers en aangezien het concurrerend is om in het volgende blok te komen, nemen gebruikers een vergoeding op in de transactie om de miner te verleiden hun transactie te verkiezen boven die van anderen.

Dus wanneer de blokbeloning gestaag daalt, elke vier jaar gehalveerd en uiteindelijk tot nul, worden miners nog steeds op deze manier betaald.

Sommigen hebben gesuggereerd dat op een dag de beloning voor mijnwerkers niet genoeg zal zijn en ervoor zal zorgen dat Bitcoin faalt. Deze zorg is grondig ontkracht en ik zal het hier niet herhalen.

Kan een blok worden herschreven?

Dit is uiterst onwaarschijnlijk en het is de moeite waard om te begrijpen waarom. U zult dan begrijpen waarom Bitcoin-transacties onveranderlijk (onveranderlijk) zijn.

Ik heb eerder uitgelegd dat de hash van het vorige blok is opgenomen in het huidige blok. Dat betekent dat elke bewerking van transacties in een oud blok de hash van dat bewerkte blok verandert. Maar die hash wordt in het volgende blok vastgelegd, dus dat betekent dat het volgende blok ook moet worden bijgewerkt. Maar als u de hash die in dat volgende blok is opgenomen, wijzigt, moet de hash worden gewijzigd, enzovoort.

Merk op dat elke keer dat een hash wordt gewijzigd, je al deze mooie nullen verliest en alleen een willekeurig uitziende hash overhoudt - en al het werk opnieuw moet doen om de nullen terug te krijgen. Als je dat doet voor het blok dat je probeerde te bewerken, moet je het werk voor het volgende blok opnieuw doen, en het volgende helemaal tot aan het meest recente blok. Je kunt niet zomaar stoppen bij het oude blok, omdat de regels van Bitcoin zodanig zijn dat de langste keten van blokken het echte Bitcoin record is. Als je 10 blokken geleden teruggaat en een blok bewerkt, heb je niet langer de langste ketting. Je moet nog 10 blokken toevoegen en dan een beetje meer, want terwijl je die 10 blokken aan het maken was, werd de echte ketting waarschijnlijk iets langer. Je moet racen om de echte ketting in te halen. Als dit lukt, wordt de nieuwe versie de echte versie.

Het herhalen van de collectieve hash-inspanning van de hele wereld van het bewerkte blok tot het laatste blok is de barriรจre voor het bewerken van Bitcoin. De energie is besteed aan het maken van die hashes met al die onwaarschijnlijke nullen en dat energieverbruik moet worden herhaald om Bitcoin te bewerken. Dit is de reden waarom de energie die wordt gebruikt om Bitcoin te minen niet "verspild" is; het is er om Bitcoin te beschermen tegen bewerkingen, om het grootboek onveranderlijk te maken zonder een centrale autoriteit te hoeven vertrouwen.

Wat gebeurt er als twee miners tegelijkertijd een blok vinden?

Dit gebeurt eigenlijk zo nu en dan, en het lost zichzelf altijd als volgt op:

Elk knooppunt ontvangt eerst een van de nieuwe, bijna gelijktijdige blokken en accepteert die en verwerpt degene die even later arriveert. Dit resulteert in een splitsing van het netwerk, maar het is tijdelijk.

Laten we ter illustratie een van de blokken blauw noemen en de andere rood (ze hebben geen kleur, heb geduld met mij).

Mijnwerkers werken dan aan het volgende blok, maar er zal een splitsing zijn over van welk blok ze de ketting verlengen.

Laten we zeggen dat de winnende mijnwerker een blok heeft gevonden met behulp van de blauwe ketting. Ze sturen het nieuwe blok naar alle knooppunten en de langste keten zal duidelijk zijn. De knooppunten die de rode ketting hebben geaccepteerd, laten deze dan vallen en nemen de blauwe ketting over.

Alle mijnwerkers die aan de rode ketting werkten, zullen stoppen en zullen nu werken aan de langere ketting, de blauwe ketting. De rode ketting is dood.

Bijlage

Waarom een โ€‹โ€‹runner-up mijnwerkersblok ongeldig is?

Stel dat blok 700,000 zojuist is gedolven door MINER-A. Dertig seconden later creรซerde MINER-B ook een andere versie van blok 700,000. Wanneer MINER-B dit alternatief uitzendt, zal elk knooppunt het afwijzen omdat ze het blok door MINER-A al hebben gezien en geaccepteerd. Sterker nog, laten we in die 30 seconden zeggen dat MINER-C blok 700,001 heeft gevonden. Aangezien het concurrerende 700,000ste blok van MINER-B de huidige keten niet verlengt (die oploopt tot 700,001), wordt het om die reden ook afgewezen.

Nog interessanter is dat als MINER-B aan blok 700,001 had gewerkt in plaats van een concurrerende versie van 700,000, ze net zoveel kans zouden hebben gehad om een โ€‹โ€‹geldig blok 700,001 te minen als ze uiteindelijk een alternatief blok 700,000 zouden moeten vinden. Dus zodra een mijnwerker een nieuw blok ziet, moeten ze hun inspanningen op het volgende blok richten.

Als Miner-B echter blok 700,000 heeft gevonden een seconde nadat MINER-A dat deed, dan is het mogelijk dat sommige knooppunten het blok van MINER-A eerst zien terwijl anderen het blok van MINER-B eerst zien, afhankelijk van geografische locaties en internetsnelheden. In dat geval is er een tijdelijke splitsing en zullen sommige miners werken om de ene versie uit te breiden, terwijl andere mijnwerkers zullen werken om de andere uit te breiden. Zoals eerder uitgelegd met behulp van de descriptoren "blauwe ketting" en "rode ketting", zal uiteindelijk een van de versies verder uitbreiden dan de andere en unaniem de geldige versie worden.

Dit is een gastpost van Arman The Parman. De geuite meningen zijn geheel van henzelf en komen niet noodzakelijk overeen met die van BTC Inc of Bitcoin Magazine.

Tijdstempel:

Meer van Bitcoin Magazine