Hva løser bitcoin gruvearbeidere egentlig?

Hva løser bitcoin-gruvearbeiderne som med gruvedrift? Jeg leste at de løser hasj, men hva betyr det egentlig? Kan vi se hva de løser? Kan noen gi et eksempel på hva en bitcoin-gruvedrift ser å løse?

Kommentarer

  • Relatert: bitcoin.stackexchange.com/q/148/153
  • Ok, men HVILKE data bryter vi! Ingen ser ut til å vite det. Jeg bryr meg ikke ‘ hvordan det fungerer. Jeg vil vite hvor dataene kommer fra at bit mining er dekryptering eller kryptering.

Svar

De prøver å finne en tilfeldig nonce (litt tilfeldige data) som går inn i en blokk og gjør at blokken har en (SHA256) hash som (i binær ) starter med en viss mengde 0 «s. Jo flere nuller jo mer sjelden hash er. Et godt hash» -resultat er ikke forutsigbart, og så må du prøve mange ganger for å finne et godt nonce.

Mengden nuller er basert på hvor vanskelig det skal være å finne en blokk. I Bitcoin justerer den seg til å ha en ny blokk hvert 10. minutt (i gjennomsnitt gitt hastigheten som tidligere blokker blir funnet).

Interessant: fordi hasjene er uforutsigbare, spiller det ingen rolle hvordan nonce endres ! Det meste av tiden er det bare et tall som teller oppover fra 0!

Svar

Her er en ekstremt forenklet skisse av problemet, men det skal gi en ganske god ide om hva problemet er.

Dataene:

Dette er hashen til den siste blokken (forkortet til 30 tegn):

00000000000001adf44c7d69767585 

Disse er hasjene til noen få gyldige transaksjoner som venter på inkludering (forkortet).

5572eca4dd4 db7d0c0b845 

Og dette hash av en spesiell transaksjon du nettopp laget, som gir 25BTC (den nåværende belønningen) til deg selv:

916d849af76 

Bygg neste blokk:

La oss nå bruke en grov tilnærming til hvordan en ny blokk kan se ut (den virkelige bruker binært format). Den inneholder hashen fra forrige blokk og hasjene til de tre transaksjonene:

00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76-- 

La oss nå gjøre gruvedrift for hånd! Målet vårt er å fullføre dette blokk med en nonce (et stykke søppel) slik at hasjen til den nye blokken starter med 13 nuller (med tanke på forrige hash, ser det ut til at 13 nuller er den nåværende vanskeligheten!).

Gruvedrift (prøver å fullføre denne blokken):

La oss prøve med nonce = 1, og beregne hashen av blokken (jeg bruker md5-hash-algoritmen, men Bitcoin bruker dobbel sha256):

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--1" | md5sum 8b9b994dcf57f8f90194d82e234b72ac 

Ikke hell, hasjen starter ikke med en 0 … La oss prøve med nonce = 2

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--2" | md5sum 5b7ce5bcc07a2822f227fcae7792fd90 

Ikke hell …

Hvis vi forfølger til kl. nonce = 16 får vi vårt første ledende nullpunkt.

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--16" | md5sum 03b80c7a34b060b33dd8fbbece79cee3 

For nonce = 208 får vi to ledende nuller!

> echo "00000000000001adf44c7d69767585--5572eca4dd4-db7d0c0b845-916d849af76--208" | md5sum 0055e55df5758517c9bed0981b52ce4a 

Fortsett slik … Hvis du endelig finner en hash som har 13 ledende nuller … du er en vinner! Andre gruvearbeidere vil nå bygge videre på blokken din, du har akkurat fått 25BTC.

Men du må være rask!

Tilbake til trinn 1…

Hvis noen klarer å bygge en blokk før du gjør det, må du starte på nytt fra begynnelsen med den nye blokken «s hash (den av vinneren).

Kommentarer

  • Også eksemplet ditt går konseptuelt i riktig retning, men den virkelige suksessen er når sha256-hashen til overskriften er mindre enn målet. Eksempelmål: 00000000000001ae00000000000000 er større enn 00000000000001adf44c7d69767585 < – dette ville være en gyldig hash .
  • @Reonarudo, ikke akkurat, dette er en veldig forenklet skisse av hva som faktisk gjøres. Transaksjoner er laget med skript som ofte er laget av adresser, du kan finne mer informasjon på Bitcoin-wiki.
  • Dette høres i utgangspunktet ut som en fin (forenklet) oppsummering, men på hvilket tidspunkt aksepterer bitcoin-nettverket dette som neste neste gyldige blokk, og hva skjer i det (usannsynlige) tilfellet at to forskjellige gruvearbeidere klarte å sende inn en gyldig blokk nesten samtidig?
  • Wow, flott svar! Det er ‘ et par ting jeg fremdeles ikke kunne ‘ ikke får hodet rundt: La ‘ s sier at du ‘ har søkt etter en løsning i 6 minutter, og det kommer en ny transaksjon. 1) hva skjer nå? hvis jeg må starte på nytt, så høres det ut som om alle må begynne på nytt. Så hvordan kan blockchain garantere å finne en blokk på ~ 10 minutter? 2) Hvordan kommer den transaksjonen til meg uansett?3) Hva om jeg finner en løsning for denne blokken, og så kommer en ny transaksjon til meg fra en annen node som aksepterte den for blokken jeg nettopp lukket?
  • 1) Ja, alle starter på nytt hvis du bygger på toppen av en gammel blokk er ‘ liten sjanse for at blokkene dine vil være en del av den lengre kjeden, og de vil bli ignorert av resten av nettverket. Det er ingen garanti for at en blokk blir funnet innen 10 minutter, det ‘ er bare et gjennomsnittlig statistisk utfall. 2) Hvilken transaksjon? Blokker sendes av den som bryter dem og videreformidles av andre noder. 3) Ingenting tvinger deg til å ta med alle ventende transaksjoner, men jo flere transaksjoner du inkluderer, desto flere avgifter kan du samle inn.

Svar

Det følgende er en beskrivelse av det globale, statistiske gamblet som spilles hvert tiende minutt. Intervallet for spillet styres av vanskeligheten som sier hvor mange «hashes» som trengs per intervall.

Med andre ord, difficulty og target definerer «husets odds» mot sjansen din for å få en vinnende SHA-hasj. nonce er «skrap av» -området.

Hver hash bruker strøm og avgir varme, noe som krever ytterligere kjøling.

Dette gjøres med hver hash:

Trinn 1

På høyt nivå tar gruverprogramvaren en liste over aktive transaksjoner, og grupperer dem deretter sammen i noe som kalles en «blokk».

Eller mer nøyaktig oppgitt: Gruveprogramvaren dekker alle transaksjonene i en oversiktsvisning som kalles en «merkle root», og hasher den, som er representativ for transaksjonene.

Trinn 2

Så konverterer gruveprogramvaren dette til et binært format kalt a Block Header , som også refererer til de forrige blokkene (også kalt en kjede).

Field Purpose Updated when... Size (Bytes) Version Block version number You upgrade the software and 4 it specifies a new version hashPrevBlock 256-bit hash of the previous A new block comes in 32 block header hashMerkleRoot 256-bit hash based on all A transaction is accepted 32 the transactions in the block Time Current timestamp as seconds Every few seconds 4 since 1970-01-01T00:00 UTC Bits Current target in compact format The difficulty is adjusted 4 Nonce 32-bit number (starts at 0) A hash is tried (increments) 4 

Trinn 3:

Minearbeideren endrer en liten del av denne blokken kalt «nonce» .

Trinn 4:

Blokkoverskriften er hash og sammenlignet med Target som om det bare var et stort antall som 10 000 000> 7 000 000 (de reelle tallene er mye større, og i sekskant). Målet komprimeres og lagres i hver blokk i et felt som heter bits.

Et utvidet mål ser slik ut:

 Target 0000000000000083ef00000000000000000000000000000000000000000000000 

Og Målet er å sørge for at SHA256 hash til blokken er mindre enn denne verdien. I eksemplet nedenfor er «83ee» mindre enn «83ef»

For å forenkle dette konseptet kan du ballparkere målet ved å telle de ledende nullene (som det andre svaret her forklarer). Her er et eksempel:

Her er en prøveblokk med transaksjoner du kan se på BlockChain.info. Se i øvre høyre hjørne av websiden for denne hash:

 Hash 0000000000000083ee9371ddff055eed7f02348e4eda36c741a2fc62c85bc5cf 

Den forrige hash var fra i dag og har 14 ledende nuller. La oss sammenligne det med det som var nødvendig for 3 år siden med blokk 100 som har 8 ledende nuller.

 Hash 00000000a8ed5e960dccdf309f2ee2132badcc9247755c32a4b7081422d51899 

Sammendrag

Så på slutten av dagen gjør alt en gruvearbeider er:

  1. Ta en blokkoverskrift som inngang
  2. Endre Nonce
  3. Test om blokkoverskriften hash er mindre enn målet. Hvis det er, vinner du.
  4. Gå til trinn 2 (eller gå til trinn 1 hvis noen andre vant blokken)

Vil du se hva Bitcoin-QT gjør når den finner en blokk? … Jeg la den ut her. . Informasjonen i dette innlegget vil hjelper deg med å forstå hva som skjedde.

Kommentarer

  • Er ikke ‘ t nonce (32 bits) langt for liten til å kunne finne en hash som må starte med 14 ledende nuller (14×4 = 56 bits)? Å finne en slik hash vil i gjennomsnitt kreve 2 ^ 56/2 forsøk og med 32 bit nei nce bare 2 ^ 32 forsøk er mulig før alle mulige nonce-verdier er oppbrukt. Rediger: med tiden som endres hvert sekund, antar jeg at dette bare gjelder hvis hashfrekvensen overstiger 4 GH / sek (som jeg tror den gjør …)
  • Yup, du ‘ har rett, … fra URL-en på blokkeringsoverskriften: Whenever Nonce overflows (which it does frequently), the extraNonce portion of the generation transaction is incremented, which changes the Merkle root.

Svar

Gruvedrift gir en måte å oppnå enighet om hvordan transaksjonsboksen skal se ut og vite at ingen jukser.

Det er den ikke-tekniske definisjonen av gruvedrift. .

«Autoriteten» for dobbeltbruk er blockchain. Blockchain består av historien til alle blokker i blockchain pluss neste blokk med transaksjoner. Belønningstilskuddet er for tiden 25 BTC til partiet som sender inn neste blokk. Men hei … du vil at 25 BTC (verdt for øyeblikket ca $ 825), som jeg ville som alle andre. Så hvordan får du det til at jeg ikke kan jukse og kreve blokken selv?

Vel, du setter inn et system som du og jeg må konkurrere. Det er beviset på arbeidet gjør – det gjør det slik at når jeg krever belønningen, er det lett å bevise at jeg virkelig gjorde det arbeidet som var involvert. Så for at jeg skal ha 2% sjanse for å løse en blokk, må jeg legge inn 2% av gruvearbeidet. Det er ingen måte for meg å legge inn mindre enn 2% av alt arbeidet og likevel løse blokker minst 2% av tiden (i gjennomsnitt).

Dermed som et resultat når en transaksjonsblokk blir sendt inn, verifiserer alle jevnaldrende at det ikke var dobbeltbruk, at det ble krevd riktig subsidiebeløp, og at innsenderen virkelig brukte arbeidet som var nødvendig for løsningen. Med de tre reglene trenger det ikke å være en sentral myndighet som styrer prosessen eller er i stand til å kontrollere utfallet.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *