Ethash:hur det fungerar när man bryter Ethereum

Ethash:hur det fungerar när man bryter Ethereum

Idag är Ethereum-brytning på grafikkort normen, och hittills har gruvarbetarna inte tagit ett starkt steg för att lansera Ethash-gruvalgoritmen på specialiserade hårdvarulösningar (till exempel FPGA och ASIC). Det finns Asiks på nätverket, men de ger inte så stora fördelar som på Bitcoin.

Många artiklar och forum förklarar detta med att utvecklingen av ASIC för Ethash är ett minnesproblem).

Här pratar vi om var Ethereums snäva minnesbindning kommer ifrån och hur nästa generation av anpassade gruvenheter för ETH-brytning kan se ut.

Här pratar vi om var Ethereums snäva minnesbindning kommer ifrån och hur nästa generation av anpassade gruvenheter för ETH-brytning kan se ut.

För en mer teknisk, programmerarorienterad förklaring av Ethereums gruvalgoritm som heter Ethash, se Ethash-sidan i Ethereum GitHub-förvaret...

En snabb förklaring av Proof-of-Work

Vid gruvdrift med Proof-of-Work letar gruvarbetare efter en lösning (kallas ett engångsnummer – "nonce") som när hashat ger ett utdatavärde som är mindre än en fördefinierad måltröskel.

På grund av den kryptografiska karaktären hos hashfunktionen för varje valuta, finns det inget sätt att reverse engineering eller reverse-beräkna ett engångstal ("nonce") som uppfyller måltröskelgränsen.

Istället bör gruvarbetare "gissa och verifiera" hash så snabbt som möjligt och hoppas att de är de första gruvarbetarna i hela kryptovalutanätverket som hittar ett giltigt engångsnummer. Således kommer de att hitta ett nytt block.

Så fungerar Ethash-algoritmen

DAG-fil

Ethash-algoritmen förlitar sig på en pseudo-slumpmässig datauppsättning initierad med den aktuella längden på blockkedjan.

Detta kallas en DAG-fil och återställs vart 30 000:e block (eller var 5:e dag). Från och med september 2019 är DAG ~ 3,22 GB, och DAG kommer att fortsätta att växa i storlek när blockkedjan växer.

Funktionerna för att skapa DAG:er är inte så relevanta för den här artikeln, men du kan läsa mer om DAG-generering här .

Framstegen för Ethash-hashalgoritmen kan sammanfattas enligt följande:

Ethereums hashalgoritms arbetsprincip

  1. Den förbearbetade rubriken – den förbearbetade rubriken (erhållen från det sista blocket) och Current Nonce (det nuvarande engångsnumret ), kombinerat med användningen av den SHA-3-liknande algoritmen för att skapa våra initiala 128 byte av mixen, kallas här Mix-0.
  2. Mix används för att beräkna vilken 128-byte-sida från DAG som behöver extraheras, representerad av "Hämta DAG-sida"-blocket.
  3. Blanda kombineras med den resulterande DAG-sidan. Detta görs med hjälp av den "Ethereum-specifika" blandningsfunktionen för att generera nästa mix, här kallad Mix 1.
  4. Steg 2 och 3 upprepas 64 gånger, vilket resulterar i en blandning av 64.
  5. Mix 64 efterbehandlas för att producera en kortare 32-byte Mix Digest.
  6. Mix Digest jämförs med en fördefinierad 32-byte måltröskel (måltröskel). Om blandningssammandraget är mindre än eller lika med måltröskeln, anses det aktuella icke-aktuella numret (Current Nonce) vara framgångsrikt och kommer att sändas till Ethereum-nätverket. Annars anses det aktuella engångsnumret vara ogiltigt och algoritmen startas om med ett annat engångsnummer (antingen genom att öka det nuvarande engångsnumret eller genom att välja ett nytt slumpmässigt).

Varför är Ethash knuten till minnet?

Varje blandningsoperation kräver en 128-byte avläsning från DAG (se figur 1, steg 2).

Att hasha ett engångsnummer kräver 64 mixningar, vilket resulterar i (128 byte x 64) =8 KB minnesläsning. Random access-läsning (varje 128-byte sida väljs pseudo-slumpmässigt baserat på mixningsfunktionen), så att lägga ett litet DAG-fragment i L1- eller L2-cachen kommer inte att hjälpa mycket, eftersom nästa DAG-hämtning med stor sannolikhet leder till en brist på cache.

Eftersom att hämta DAG-sidor från minnet är mycket långsammare än datorblandning, kommer vi knappast att se någon prestandaförbättring genom att påskynda mixberäkningen.

Det bästa sättet att snabba upp Ethashs hashalgoritm är att snabba upp hämtningen av en 128-byte DAG-sida från minnet.

Därför anser vi att Ethash-algoritmen är tätt knuten till minnet eller relaterad till minne , eftersom systemminnets bandbredd begränsar vår prestanda.

Nå gränsen för minnesbandbredd i riktig hårdvara

Som ett exempel på hur begränsningar av minnesbandbredd påverkar verklig hårdvara, låt oss ta en närmare titt på gruvprestanda för ett vanligt använda grafikkort:RX 590.

Om Ethash-hashing verkligen kräver mycket minne, förväntar vi oss att den faktiska gruvhastigheten för denna utrustning kommer att vara mycket nära den maximala teoretiska hashhastigheten, förutsatt att sampling av DAG-sidorna är det enda steget som utförs.

Vi kan beräkna denna maximala teoretiska hashrate enligt följande:

(Minnesbandbredd) / (DAG-minne extraherat för hashning) =maximal teoretisk hashrate

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

Den empiriska hashen för RX 490 under faktisk drift är ~ 31 mega/s.

Denna lilla fördröjning kan enkelt förklaras av minneslatens eller andra snabba operationer på systemet. Prestandan för detta grafikkort är alltså densamma som förväntat, förutsatt att datahashing är svårt för minnet och valet av DAG-sidor är ett hastighetsbegränsande steg.

Seger över grafikkort:nästa generations gruvenheter för gruvdrift ETH

Det enda sättet som Ethereum-användares gruvutrustning kan komma väl till pass är om den är mer ekonomisk eller energieffektiv med minnesbandbredd (mindre än $ / (GB / s) eller mindre W / (GB / s)).

Alternativ 1:FPGA/ASIC med hög minnesbandbredd

Om vi ​​tittar på RX 590 kan vi beräkna lite ($245 per kort/(256 GB/s)) för att se hashhastigheten är $0,95/GB/s.

Jämfört med ett enda GDDR5-chip (t.ex. Micron EDW4032BABG ), som kostar $6,83 och har en bandbredd på 24 GB/s, vi kan göra bättre – $0,28/GB/s.

Således, om vi kan skapa vårt eget chip (antingen ASIC eller FPGA) än gränssnittet med 9 GDDR5-chips, kommer vi att ha 216 GB/s minnesbandbredd till ett pris av $ 61,47.

Detta kommer dock inte att vara en komplett enhet, eftersom vi behöver en FPGA- eller ASIC-minneskontroller, ett kretskort och extra elektronik.

Om den levererade slutmonteringen (att lägga till ytterligare delar, processer, tester och logistik) kostar mindre än RX 590 (endast $ 245), kommer användarkortet att överträffa grafikkortet.

Det vill säga tills ett snabbare, effektivare och billigare grafikkort dyker upp på marknaden.

Till exempel HBM-grafikkort finns redan tillgängliga. Men om du hittar billiga FPGA- eller ASIC-chips med 5-10 DDR- eller HBM-minneskontroller eller om ditt företag har erfarenhet av att skapa specialiserade ASIC-enheter med hög minnesbandbredd kan du klara dig utan hårdvara.

Men i den här situationen bör du förmodligen ändra skapa din egen affärsmodell och istället skapa grafikkort, eftersom detta redan är en enorm marknad.

Alternativ 2:Använd nästa generations mobila chipset

När användningen av smartphones och mobil 3D-grafik växer kommer vi att se mer mobilvänligt och hög minnesbandbredd.

Det kan vara lösningar för mobila system på ett chip med en integrerad grafikprocessor (till exempel NVidia Tegra X1 ) eller en fristående mobil grafikprocessor (till exempel PowerVR Series 8XE ), eller specialiserade processorer med hög bandbredd eller fokuserade på neurala nätverk med integrerat minne (till exempel Movidius Myriad 2 ).

Dessa klasser av enheter kommer att fortsätta att utvecklas, och om kostnaden, kraften och minnesbandbredden hamnar på rätt plats, kan vi mycket väl se Ethereum anpassade gruvarbetare med 10-20 mobila grafikprocessorer eller VPU:er på samma kort.

Slutsatser

Sekventiella DAG-sidprov i Ethash-hashalgoritmen når minnesbandbreddsgränserna för modern hårdvara.

Deras teoretiska maximala hashrate är för närvarande begränsad.

Hur kommer vi att se framtida Ethereum-gruvarbetare? De kommer förmodligen inte att baseras på ASIC eller FPGA. Troligtvis kommer de att baseras på färdiga chips (mobila GPU eller VPU), och inte på formfaktorn av ett traditionellt grafikkort, vilket vi är så vana vid att se i moderna datorer eftersom mobila GPU:er eller VPU:er är mer inställda på minnesbandbredd.

Den här artikeln handlar om Ethash-protokollet, baserat på Proof-of-Work, som används för att bryta Ethereum. I system baserade på Proof-of-Work, som det här, utför gruvarbetare betydande mängder beräkningar för att hitta nya block och få kontanta belöningar.

Så snart Ethereum-nätverket byter till Proof-of-Stake system (förmodligen efter 2020 med Ethereum 2.0 eller Serenity-fasen ), kommer kontantbelöningar att ges till Ethereum-valutainnehavare, inte gruvarbetare, vilket sannolikt kommer att göra Ethereums gruvdrift föråldrad.

När denna övergång sker är det ännu inte klart att det förväntas att den första fasen kommer att lanseras den 3 januari 2020.

Rekommenderade relaterade artiklar:

  • NoDevFee (NoFee) – Hur man inaktiverar provision i miner
  • ATIFlash / ATI WinFlash (BIOS-redigerare) – Ladda ner
  • OhGodAnETHlargementPill (EthlargementPill) – ökat hashrate i gruv-GPU NVIDIA
  • OverdriveNTool (GPU-överklockningsprogram) – Ladda ner och konfigurera
  • Hur man bryter Monero (XMR) på RandomX-algoritmen

Brytning
  1. Blockchain
  2. Bitcoin
  3. Ethereum
  4. Digital valutaväxling
  5. Brytning