Ethash:hoe het werkt bij het minen van Ethereum

Ethash:hoe het werkt bij het minen van Ethereum

Tegenwoordig is Ethereum-mining op videokaarten de norm, en tot nu toe hebben de miners geen grote sprong gemaakt om het Ethash-miningalgoritme te lanceren op gespecialiseerde hardware-oplossingen (bijvoorbeeld FPGA en ASIC). Er zijn Asiks op het netwerk, maar die geven niet zo'n groot voordeel als op Bitcoin.

Veel artikelen en forums leggen dit uit door te zeggen dat de ontwikkeling van ASIC's voor Ethash een geheugenprobleem is).

Hier praten we over waar de strakke geheugenbinding van Ethereum vandaan komt en hoe de volgende generatie aangepaste mijnbouwapparaten voor ETH-mijnbouw eruit zou kunnen zien.

Hier praten we over waar de strakke geheugenbinding van Ethereum vandaan komt en hoe de volgende generatie aangepaste mijnbouwapparaten voor ETH-mijnbouw eruit zou kunnen zien.

Raadpleeg de Ethash-pagina in de Ethereum GitHub-repository voor een meer technische, programmeurgerichte uitleg van het Ethereum-mijnalgoritme genaamd Ethash.

Een korte uitleg van Proof-of-Work

Bij het minen met Proof-of-Work zoeken miners naar een oplossing (een eenmalig getal genoemd - "nonce"), die wanneer gehasht een uitvoerwaarde geeft die lager is dan een vooraf gedefinieerde doeldrempel.

Vanwege de cryptografische aard van de hash-functie van elke valuta, is er geen manier om een ​​eenmalig getal ("nonce") te reverse-engineeren of omgekeerd te berekenen dat voldoet aan de doeldrempellimiet.

In plaats daarvan moeten miners hashes zo snel mogelijk "raden en verifiëren" en hopen dat zij de eerste miners in het hele cryptocurrency-netwerk zijn die een geldig eenmalig nummer vinden. Zo zullen ze een nieuw blok vinden.

Hoe het Ethash-algoritme werkt

DAG-bestand

Het Ethash-algoritme vertrouwt op een pseudo-willekeurig dataset geïnitialiseerd met de huidige lengte van de blokketen.

Dit wordt een DAG-bestand genoemd en wordt elke 30.000 blokken (of elke ~ 5 dagen) hersteld. Vanaf september 2019 is de DAG ~ 3,22 GB en de DAG zal in omvang blijven groeien naarmate de blockchain groeit.

De functies van het maken van DAG's zijn niet zo relevant voor dit artikel, maar u kunt hier meer lezen over het genereren van DAG's .

De voortgang van het Ethash hash-algoritme kan als volgt worden samengevat:

Werkingsprincipe van Ethereum hash-algoritme

  1. De voorverwerkte kop – de voorverwerkte kop (verkregen uit het laatste blok) en Huidige Nonce (het huidige eenmalige nummer ), gecombineerd met het gebruik van het SHA-3-achtige algoritme om onze eerste 128 bytes van de mix te maken, worden hier Mix-0 genoemd.
  2. Mix wordt gebruikt om te berekenen welke 128-byte pagina uit de DAG moet worden geëxtraheerd, weergegeven door het blok 'Get DAG Page'.
  3. Mix wordt gecombineerd met de resulterende DAG-pagina. Dit wordt gedaan met behulp van de "Ethereum-specifieke" mengfunctie om de volgende mix te genereren, hier Mix 1 genoemd.
  4. Stap 2 en 3 worden 64 keer herhaald, wat resulteert in een mix van 64.
  5. Mix 64 wordt nabewerkt om een ​​kortere 32-byte Mix Digest te produceren.
  6. Samenvatting mengen wordt vergeleken met een vooraf gedefinieerde 32-byte Target Threshold (doeldrempel). Als de Mix Digest kleiner is dan of gelijk is aan de Target Threshold, wordt het huidige niet-huidige nummer (Current Nonce) als succesvol beschouwd en wordt het uitgezonden naar het Ethereum-netwerk. Anders wordt het huidige eenmalige getal als ongeldig beschouwd en wordt het algoritme opnieuw gestart met een ander eenmalig getal (ofwel door het huidige eenmalige getal te verhogen, ofwel door willekeurig een nieuw getal te kiezen).

Waarom is Ethash aan het geheugen gebonden?

Elke mengbewerking vereist een uitlezing van 128 bytes van de DAG (zie afbeelding 1, stap 2).

Voor het hashen van één eenmalig nummer zijn 64 mixen nodig, wat resulteert in (128 bytes x 64) =8 KB geheugenuitlezing. Random access lezen (elke 128-byte pagina wordt pseudo-willekeurig geselecteerd op basis van de mengfunctie), dus het plaatsen van een klein DAG-fragment in de L1- of L2-cache zal niet veel helpen, aangezien de volgende DAG-fetch zeer waarschijnlijk zal leiden tot een gebrek aan cache.

Aangezien het ophalen van DAG-pagina's uit het geheugen veel langzamer is dan het mengen van computers, zullen we nauwelijks prestatieverbetering zien door het versnellen van de mixcomputing.

De beste manier om het hash-algoritme van Ethash te versnellen, is door het ophalen van een 128-byte DAG-pagina uit het geheugen te versnellen.

We beschouwen het Ethash-algoritme dus als nauw verbonden met het geheugen of gerelateerd aan geheugen , omdat de bandbreedte van het systeemgeheugen onze prestaties beperkt.

Het bereiken van de geheugenbandbreedtelimiet in echte hardware

Als voorbeeld van hoe geheugenbandbreedtebeperkingen van invloed zijn op echte hardware, laten we eens kijken naar de mining-prestaties van een veelgebruikte videokaart:RX 590.

Als Ethash-hashing echt veel geheugen vereist, verwachten we dat de werkelijke mining-snelheid voor deze apparatuur zeer dicht bij de maximale theoretische hash-snelheid zal liggen, op voorwaarde dat het samplen van de DAG-pagina's de enige stap is die wordt uitgevoerd.

We kunnen deze maximale theoretische hashrate als volgt berekenen:

(Geheugenbandbreedte) / (DAG-geheugen geëxtraheerd voor hashing) =maximale theoretische hashrate

(256 gigabyte / sec) / (8 kilobyte / hash) =32 megabyte / sec.

De empirische hash van de RX 490 tijdens daadwerkelijk gebruik is ~ 31 mega / s.

Deze kleine vertraging kan gemakkelijk worden verklaard door geheugenlatentie of andere snelle bewerkingen op het systeem. De prestaties van deze videokaart zijn dus hetzelfde als verwacht, op voorwaarde dat het hashen van gegevens moeilijk is voor het geheugen en de keuze van DAG-pagina's een snelheidsbeperkende stap is.

Overwinning op videokaarten:de volgende generatie mining-apparaten voor het delven van ETH

De enige manier waarop Ethereum-miningapparatuur voor gebruikers van pas kan komen, is als deze zuiniger of energiezuiniger is met geheugenbandbreedte (minder dan $ / (GB / s) of minder W / (GB / s)).

Optie 1:FPGA/ASIC's met hoge geheugenbandbreedte

Als we naar de RX 590 kijken, kunnen we een beetje berekenen ($ 245 per kaart / (256 GB / s)) om te zien dat de hash-snelheid $ 0,95 / GB / s is.

Vergeleken met een enkele GDDR5-chip (bijv. Micron EDW4032BABG ), die $ 6,83 kost en een bandbreedte van 24 GB / s heeft, kunnen we beter doen - $ 0,28 / GB / s.

Dus als we onze eigen chip (ASIC of FPGA) kunnen maken dan de interface met 9 GDDR5-chips, hebben we 216 GB / s geheugenbandbreedte tegen een prijs van $ 61,47.

Dit zal echter geen compleet apparaat zijn, aangezien we een FPGA- of ASIC-geheugencontroller, een printplaat en hulpelektronica nodig hebben.

Als de verzonden eindmontage (toevoegen van extra onderdelen, processen, tests en logistiek) minder kost dan de RX 590 (slechts $ 245), dan zal het gebruikersbord de videokaart overtreffen.

Tenminste, totdat er een snellere, efficiëntere en goedkopere videokaart op de markt verschijnt.

Bijvoorbeeld HBM grafische kaarten zijn al beschikbaar. Maar als u goedkope kant-en-klare FPGA- of ASIC-chips met 5-10 DDR- of HBM-geheugencontrollers vindt of als uw bedrijf ervaring heeft met het maken van gespecialiseerde ASIC-apparaten met een hoge geheugenbandbreedte, dan kunt u zonder hardware.

In deze situatie moet u echter waarschijnlijk uw eigen bedrijfsmodel maken en in plaats daarvan videokaarten maken, aangezien dit al een enorme markt is.

Optie 2:gebruik mobiele chipsets van de volgende generatie

Naarmate het gebruik van smartphones en mobiele 3D-graphics toeneemt, zullen we mobielvriendelijker en grotere geheugenbandbreedte zien.

Het kunnen oplossingen zijn voor mobiele systemen op een chip met een geïntegreerde grafische processor (bijvoorbeeld NVidia Tegra X1 ) of een zelfstandige mobiele grafische processor (bijvoorbeeld PowerVR Series 8XE ), of gespecialiseerde processors met hoge bandbreedte of gericht op neurale netwerken met geïntegreerd geheugen (bijvoorbeeld Movidius Myriad 2 ).

Deze soorten apparaten zullen blijven evolueren, en als de kosten, het vermogen en de geheugenbandbreedte op de juiste plaats komen, kunnen we Ethereum-aangepaste mijnwerkers met 10-20 mobiele grafische processors of VPU's op hetzelfde bord zien.

Conclusies

Sequentiële DAG-paginavoorbeelden in het Ethash-hash-algoritme bereiken de geheugenbandbreedtelimieten van moderne hardware.

Hun theoretische maximale hashrate is momenteel beperkt.

Hoe zullen we toekomstige Ethereum-mijnwerkers zien? Ze zullen waarschijnlijk niet gebaseerd zijn op ASIC of FPGA. Hoogstwaarschijnlijk zullen ze gebaseerd zijn op kant-en-klare chips (mobiele GPU's of VPU's), en niet op de vormfactor van een traditionele videokaart, die we zo gewend zijn te zien in moderne computers omdat mobiele GPU's of VPU's meer zijn afgestemd op geheugenbandbreedte.

Dit artikel gaat over het Ethash-protocol, gebaseerd op Proof-of-Work, dat wordt gebruikt om Ethereum te minen. In systemen op basis van Proof-of-Work, zoals deze, voeren miners aanzienlijke hoeveelheden berekeningen uit om nieuwe blokken te vinden en geldbeloningen te ontvangen.

Zodra het Ethereum-netwerk overschakelt naar de Proof-of-Stake systeem (vermoedelijk na 2020 met deEthereum 2.0- of Serenity-fase ), zullen contante beloningen worden gegeven aan houders van Ethereum-valuta's, niet aan mijnwerkers, waardoor Ethereum-mijnbouw waarschijnlijk overbodig wordt.

Wanneer deze transitie plaatsvindt, is het nog niet duidelijk dat de verwachting is dat de eerste fase op 3 januari 2020 van start gaat.

Aanbevolen gerelateerde artikelen:

  • NoDevFee (NoFee) – Hoe commissie in de miner uit te schakelen
  • ATIFlash / ATI WinFlash (BIOS-editor) – Downloaden
  • OhGodAnETHlargementPill (EthlargementPill) – verhoogde hashrate in mijnbouw GPU NVIDIA
  • OverdriveNTool (GPU-overkloksoftware) – downloaden en configureren
  • Hoe Monero (XMR) te minen op het RandomX-algoritme

Mijnbouw
  1. Blockchain
  2. Bitcoin
  3. Ethereum
  4. Digitale valuta wisselen
  5. Mijnbouw