Ethash:Sådan fungerer det, når du miner Ethereum

Ethash:hvordan det fungerer, når man miner Ethereum

I dag er Ethereum-minedrift på videokort normen, og indtil videre har minearbejderne ikke taget et stærkt spring for at lancere Ethash-minealgoritmen på specialiserede hardwareløsninger (for eksempel FPGA og ASIC). Der er Asiks på netværket, men de giver ikke så stor en fordel som på Bitcoin.

Mange artikler og fora forklarer dette ved at sige, at udviklingen af ​​ASIC'er til Ethash er et hukommelsesproblem).

Her taler vi om, hvor Ethereums stramme hukommelsesbinding kommer fra, og hvordan den næste generation af brugerdefinerede mineenheder til ETH-minedrift kan se ud.

Her taler vi om, hvor Ethereums stramme hukommelsesbinding kommer fra, og hvordan den næste generation af brugerdefinerede mineenheder til ETH-minedrift kan se ud.

For en mere teknisk, programmør-orienteret forklaring af Ethereum-minealgoritmen kaldet Ethash, se venligst Ethash-siden i Ethereum GitHub-lageret...

En hurtig forklaring af Proof-of-Work

Ved minedrift med Proof-of-Work, leder minearbejdere efter en løsning (kaldet et engangsnummer – "nonce"), som når hash giver en outputværdi, der er mindre end en foruddefineret måltærskel.

På grund af den kryptografiske karakter af hashfunktionen for hver valuta, er der ingen måde at omvendt manipulere eller omvendt beregne et engangstal ("nonce"), der opfylder måltærskelgrænsen.

I stedet bør minearbejdere "gætte og verificere" hashes så hurtigt som muligt og håbe på, at de er de første minearbejdere i hele kryptovaluta-netværket, der finder et gyldigt engangsnummer. Således vil de finde en ny blok.

Sådan fungerer Ethash-algoritmen

DAG-fil

Ethash-algoritmen er afhængig af en pseudo-tilfældig datasæt initialiseret med den aktuelle længde af blokkæden.

Dette kaldes en DAG-fil og gendannes hver 30.000 blokke (eller hver ~ 5. dag). Fra september 2019 er DAG ~ 3,22 GB, og DAG vil fortsætte med at vokse i størrelse, efterhånden som blockchain vokser.

Funktionerne ved oprettelse af DAG'er er ikke så relevante for denne artikel, men du kan læse mere om DAG-generering her .

Fremskridtene for Ethash-hash-algoritmen kan opsummeres som følger:

Ethereum hash-algoritmens arbejdsprincip

  1. Den forbehandlede header – den forbehandlede header (hentet fra den sidste blok) og Current Nonce (det nuværende engangsnummer ), kombineret med brugen af ​​den SHA-3-lignende algoritme til at skabe vores første 128 bytes af blandingen, kaldes her Mix-0.
  2. Mix bruges til at beregne, hvilken 128-byte side fra DAG'en, der skal udtrækkes, repræsenteret ved "Hent DAG-side"-blokken.
  3. Bland kombineres med den resulterende DAG-side. Dette gøres ved at bruge den "Ethereum-specifikke" blandingsfunktion til at generere den næste blanding, kaldet Mix 1 her.
  4. Trin 2 og 3 gentages 64 gange, hvilket resulterer i en blanding af 64.
  5. Mix 64 efterbehandles for at producere en kortere 32-byte Mix Digest.
  6. Mix Digest sammenlignes med en foruddefineret 32-byte måltærskel (måltærskel). Hvis Mix Digest er mindre end eller lig med Target Threshold, så anses det aktuelle ikke-aktuelle nummer (Current Nonce) som vellykket og vil blive udsendt til Ethereum-netværket. Ellers betragtes det aktuelle engangsnummer som ugyldigt, og algoritmen genstartes med et andet engangsnummer (enten ved at øge det aktuelle engangstal eller ved at vælge et nyt tilfældigt).

Hvorfor er Ethash bundet til hukommelsen?

Hver blandeoperation kræver en 128-byte-læsning fra DAG'en (se figur 1, trin 2).

Hashing af et engangsnummer kræver 64 blandinger, hvilket resulterer i (128 bytes x 64) =8 KB hukommelseslæsning. Random access-læsning (hver 128-byte side vælges pseudo-tilfældigt baseret på blandingsfunktionen), så det hjælper ikke meget at sætte et lille DAG-fragment i L1- eller L2-cachen, da den næste DAG-hentning med stor sandsynlighed vil føre til en mangel på cache.

Da hentning af DAG-sider fra hukommelsen er meget langsommere end computerblanding, vil vi næppe se nogen forbedring af ydeevnen ved at fremskynde mix-beregningen.

Den bedste måde at fremskynde Ethashs hash-algoritme på er at fremskynde hentning af en 128-byte DAG-side fra hukommelsen.

Derfor anser vi Ethash-algoritmen for at være tæt knyttet til hukommelsen eller relateret til hukommelse , da systemets hukommelses båndbredde begrænser vores ydeevne.

Når hukommelsesbåndbreddegrænsen i rigtig hardware

Som et eksempel på, hvordan hukommelsesbåndbreddebegrænsninger påvirker rigtig hardware, lad os se nærmere på minedriften for et almindeligt brugt videokort:RX 590.

Hvis Ethash-hashing virkelig kræver meget hukommelse, forventer vi, at den faktiske minehastighed for dette udstyr vil være meget tæt på den maksimale teoretiske hashhastighed, forudsat at sampling af DAG-siderne er det eneste trin, der udføres.

Vi kan beregne denne maksimale teoretiske hashrate som følger:

(Hukommelsesbåndbredde) / (DAG-hukommelse udtrukket til hashing) =maksimal teoretisk hashrate

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

Den empiriske hash af RX 490 under faktisk drift er ~ 31 mega/s.

Denne lille forsinkelse kan nemt forklares med hukommelsesforsinkelse eller andre hurtige operationer på systemet. Ydeevnen for dette videokort er således den samme som forventet, forudsat at datahashing er svært for hukommelsen, og valget af DAG-sider er et hastighedsbegrænsende trin.

Sejr over videokort:den næste generation af mineenheder til minedrift ETH

Den eneste måde, hvorpå Ethereum-bruger-mineudstyr kan komme til nytte, er, hvis det er mere økonomisk eller energieffektivt med hukommelsesbåndbredde (mindre end $ / (GB / s) eller mindre W / (GB / s)).

Mulighed 1:High Memory Bandwidth FPGA/ASIC'er

Ser vi på RX 590, kan vi beregne en smule ($245 pr. kort/(256 GB/s)) for at se hash-raten er $0,95/GB/s.

Sammenlignet med en enkelt GDDR5-chip (f.eks. Micron EDW4032BABG ), som koster $6,83 og har en båndbredde på 24 GB/s, vi kan gøre det bedre – $0,28/GB/s.

Så hvis vi kan skabe vores egen chip (enten ASIC eller FPGA) end grænsefladen med 9 GDDR5-chips, vil vi have 216 GB/s hukommelsesbåndbredde til en pris på $ 61,47.

Dette vil dog ikke være en komplet enhed, da vi har brug for en FPGA- eller ASIC-hukommelsescontroller, et printkort og hjælpeelektronik.

Hvis den afsendte endelige samling (tilføjelse af yderligere dele, processer, test og logistik) koster mindre end RX 590 (kun $ 245), så vil brugerkortet overgå videokortet.

Altså indtil et hurtigere, mere effektivt og billigere grafikkort dukker op på markedet.

For eksempel HBM-grafikkort er allerede tilgængelige. Men hvis du finder billige FPGA- eller ASIC-chips med 5-10 DDR- eller HBM-hukommelsescontrollere, eller din virksomhed har erfaring med at skabe specialiserede ASIC-enheder med høj hukommelsesbåndbredde, kan du undvære hardware.

Men i denne situation bør du nok ændre oprette din egen forretningsmodel og i stedet oprette videokort, da dette allerede er et kæmpe marked.

Mulighed 2:Brug næste generations mobile chipsæt

Efterhånden som brugen af ​​smartphones og mobil 3D-grafik vokser, vil vi se mere mobilvenlig og høj hukommelsesbåndbredde.

Det kan være løsninger til mobile systemer på en chip med integreret grafikprocessor (f.eks. NVidia Tegra X1 ) eller en selvstændig mobil grafikprocessor (f.eks. PowerVR Series 8XE ), eller specialiserede processorer med høj båndbredde eller fokuseret på neurale netværk med integreret hukommelse (f.eks. Movidius Myriad 2 ).

Disse klasser af enheder vil fortsætte med at udvikle sig, og hvis omkostningerne, strømstyrken og hukommelsesbåndbredden kommer til det rigtige sted, kan vi meget vel se Ethereum custom miners med 10-20 mobile grafikprocessorer eller VPU'er placeret på samme kort.

Konklusioner

Sekventielle DAG-sideeksempler i Ethash-hash-algoritmen når hukommelsesbåndbreddegrænserne for moderne hardware.

Deres teoretiske maksimale hashrate er i øjeblikket begrænset.

Hvordan vil vi se fremtidige Ethereum-minere? De vil sandsynligvis ikke være baseret på ASIC eller FPGA. Mest sandsynligt vil de være baseret på færdige chips (mobile GPU'er eller VPU'er), og ikke på formfaktoren af ​​et traditionelt grafikkort, som vi er så vant til at se i moderne computere, fordi mobile GPU'er eller VPU'er er mere tunet til hukommelsesbåndbredde.

Denne artikel handler om Ethash-protokollen, baseret på Proof-of-Work, som bruges til at mine Ethereum. I systemer baseret på Proof-of-Work, som dette, udfører minearbejdere betydelige mængder beregninger for at finde nye blokke og modtage kontante belønninger.

Så snart Ethereum-netværket skifter til Proof-of-Stake system (formodentlig efter 2020 med Ethereum 2.0 eller Serenity-fasen ), vil kontante belønninger blive givet til Ethereum-valutaholdere, ikke minearbejdere, hvilket sandsynligvis vil gøre Ethereum-minedrift forældet.

Når denne overgang sker, er det endnu ikke klart, at det forventes, at den første fase vil blive lanceret den 3. januar 2020.

Anbefalede relaterede artikler:

  • NoDevFee (NoFee) – Sådan deaktiveres provision i minearbejderen
  • ATIFlash / ATI WinFlash (BIOS-editor) – Download
  • OhGodAnETHlargementPill (EthlargementPill) – øget hashrate i minedrift GPU NVIDIA
  • OverdriveNTool (GPU Overclocking Software) – Download og konfigurer
  • Sådan miner du Monero (XMR) på RandomX-algoritmen

Minedrift
  1. Blockchain
  2. Bitcoin
  3. Ethereum
  4. Digital valutaveksling
  5. Minedrift