Elke mijnwerker verzamelt niet-geverifieerde transacties in een blok (ongeveer 500 transacties) en racet vervolgens om de problemen van Bitcoin op te lossen. Bewijs van het werk.
Deze uitdaging is vergelijkbaar met het raden van een correcte waarde uit een biljoen mogelijkheden. Omdat er geen patronen zijn om van af te gaan of van te leren, is brute kracht de enige strategie. Probeer zoveel mogelijk waarden.
Dit maakt het puur een spel van verwerkingskracht.
In werkelijkheid zijn er meerdere correcte waarden. Lees verder.
Wat is een bewijs van werk?
Proof of Work is het systeem dat Bitcoin gebruikt, waardoor miners veel berekeningen moeten uitvoeren om de juiste waarde te vinden. En tegelijkertijd de juiste oplossingen voor iedere partij eenvoudig verifieerbaar maken.
In het geval van Bitcoin gaat het om een hashfunctie.
Hoewel de vereisten voor correcte antwoorden in de loop van de tijd veranderen, vereist Bitcoin momenteel dat mijnwerkers input voor de hashfunctie vinden die resulteert in een output die begint met 19 nullen.
Een juiste oplossing zou er als volgt uit kunnen zien:000000000000000000069aef2b97ba47122bfe11d81abb58c91068d331226623
We zullen de hashfuncties zo meteen uitleggen.
De eerste mijnwerker die een juiste oplossing ontdekt, zendt zijn antwoord uit. Zij winnen de ronde.
Alle andere mijnwerkers voegen vervolgens het winnende mijnwerkersblok toe aan hun grootboek. De transacties van de winnende miner bestaan nu in de blockchain en kunnen niet langer door andere miners worden bewerkt.
Wat is een hashfunctie?
Een hashfunctie converteert een willekeurige reeks waarden (dat wil zeggen: een woord, zin, cijfers…) naar een reeks met een vaste lengte.
Een eenvoudige fictieve hashfunctie zou bijvoorbeeld zoiets als dit kunnen doen.
Invoer | Uitvoer
---------------------------------------------
'Hallo wereld' | hd72kf97x
'Hallo wereld 2' | l9ancg478
'123' | nfhyeiv00
'Ik hou van pasta op regenachtige dagen' | x913gzmaw
Bitcoin gebruikt een aangepaste versie van SHA-256.
We komen zo terug op SHA-256.
Erken dat een vergelijkbare input NIET resulteert in een vergelijkbare output. Er is dus geen reden om iets anders te doen dan willekeurige invoer te raden.
Wat zijn inputs voor de hashfunctie van Bitcoin?
De invoer voor de hashfunctie van Bitcoin is vooraf bepaald. Je moet de regels volgen.
Maar dat betekent niet dat elke gebruiker dezelfde ingangen gebruikt.
Er zijn 6 ingangen voor de hashfunctie van Bitcoin.
- Versienummer blokkeren. Geeft de huidige regelset aan voor het valideren van blokken. Momenteel is dit het geval
0x20000004
maar verandert periodiek. Iedereen gebruikt dezelfde versie als hash-invoer. - Hash van vorige blokkop. Dit is de uitvoerhash die is gekoppeld aan het vorige blok in de blockchain. Dit zorgt ervoor dat het grootboek een ononderbroken keten is, waarbij elk blok verwijst naar het blok ervoor. Dit zal voor alle mijnwerkers op een bepaald moment hetzelfde zijn.
Een recent voorbeeld:1b9affbba072ba2e923797d3b2050b9b9c8baacf696f84ac9940282b5568c547
. - Hash van huidige bloktransacties. Een hash gebaseerd op transacties die de miner in het huidige blok heeft opgenomen. Dit is voor elke mijnwerker verschillend, omdat elke mijnwerker waarschijnlijk aan een ander transactieblok werkt.
Een recent voorbeeld:11a510d7adcde1ad5c8b33c35f5902f08cdb1d9800161f8af3874258f935ecea
- Huidige tijd. Een Unix-tijdstempel die het tijdstip aangeeft waarop de mijnwerker begon met het hashen van invoer voor het huidige blok. De miner stelt deze tijd in, zodat deze per miner verschillend zal zijn.
- Doel-nBits. Een gecodeerde versie van de criteria waaraan succesvolle hash-uitvoer moet voldoen (ofwel: begin met minimaal 19 nullen). De drempel wordt elke 2,016 blokken herzien, zodat de blockchain blijft groeien met de geplande snelheid van 1 blok per 10 minuten.
- Nonce (ook bekend als willekeurig positief geheel getal). Een willekeurig getal dat wordt verhoogd telkens wanneer invoer wordt gehasht. Een verandering van 1 geheel getal in dit getal verandert de hash-uitvoer volledig.
Hash-invoer wordt aaneengeschakeld en naar het hash-algoritme gevoerd.
#################
# Pseudocode #
#################block_header = versie + prevHash + curHash + tijd + diff + nonce
Omdat het veranderen van een enkele invoer de uitvoer volledig verandert, is het onwaarschijnlijk dat twee mijnwerkers dezelfde uitvoer genereren.
Welk hash-algoritme gebruikt Bitcoin?
Bitcoin gebruikt dubbele SHA-256.
Dat is slechts de uitvoer van SHA-256, opnieuw ingevoerd in SHA-256.
#################
# Pseudocode #
#################block_header = versie + prevHash + curHash + tijd + diff + noncesha_function( sha_function( blok_header ) )
Je kunt een proberen online SHA-256-rekenmachine hier.
Laten we proberen iets te hashen met hetzelfde algoritme dat Bitcoin gebruikt. We beginnen met een string en hashen deze twee keer.
Input:Big money
Uitgang 1: 5f5255f01f4d7196484869c824266fbe5c2fa0fad9485dd911d507d2812fab7f
Laten we die hasj nu opnieuw hasjen.
Uitgang 2:8aa2a47234e9c320bbe3248b6a03fb5c68546ad0988b3faa6d0731805b19ad16
Als je dit zelf hasht, krijg je precies dezelfde output. Dat is de aard van hashfuncties. Cool, niet?
Werken alle miners aan dezelfde transactieblokken?
We hebben dit eerder vermeld. Maar hier is wat meer uitleg.
Mijnwerkers kiezen welke transacties ze in hun blokken willen opnemen. Blokken hebben een maximale grootte van 1 MB en elke transactie is ongeveer 0.5 kb.
Terwijl mijnwerkers geld verdienen door Bitcoin te verdienen op succesvol gedolven blokken. Ze verdienen ook geld aan transactiekosten. Deze variëren per transactie.
Mijnwerkers hebben dus een prikkel om transacties met de hoogste kosten te kiezen.
- algoritme
- Alles
- Bitcoin
- Bitcoin mijnbouw
- blockchain
- uitdagen
- verandering
- code
- blijft
- Actueel
- CZ
- Fed
- vergoedingen
- Voornaam*
- volgen
- functie
- spel
- GitHub
- Groeiend
- hachee
- hashing
- hier
- HTTPS
- ia
- IP
- IT
- LEARN
- Grootboek
- LG
- LP
- maken
- Medium
- Mijnwerkers
- Mijnbouw
- ML
- geld
- MS
- MT
- bestellen
- Overige
- energie
- bewijs
- Realiteit
- Voorwaarden
- reglement
- reeks
- Eenvoudig
- Maat
- So
- Oplossingen
- OPLOSSEN
- begin
- gestart
- Strategie
- geslaagd
- system
- niet de tijd of
- transactie
- Transacties
- waarde
- winnen
- Mijn werk
- wereld