Zephyrnet-logo

Eclipse-aanvallen en het oomblokmechanisme van Ethereumum

Datum:

beeld

Kirobo Hacker Noon profielfoto

@KiroboKirobo

Vermindert de kans op het maken van fouten, waardoor Blockchain-transacties minder stressvol en eenvoudiger worden.

Wat is een eclipsaanval?

Een eclipsaanval is een manier om een ​​gedecentraliseerd netwerk aan te vallen, waarbij een aanvaller probeert een specifieke gebruiker of gebruikers te isoleren en aan te vallen in plaats van het hele netwerk aan te vallen.

In dit artikel zal ik uitleggen hoe sommige kenmerken van Ethereum, inclusief zijn oomblokkeermechanisme, zou het kwetsbaarder kunnen maken voor dit soort aanvallen.

Gegevensstructuur in Blockchain

Een blockchain is een gedecentraliseerd protocol dat een database verdeelt over een aantal knooppunten in zijn netwerk, waardoor een consensusmechanisme tot stand wordt gebracht voor transacties in het verleden, het heden en de toekomst. De gegevensstructuur in een blockchain wordt weergegeven als blokken.

In gedecentraliseerde blockchain-netwerken zijn deelnemers het eens over wat waar is in plaats van een centrale autoriteit. Blockchains zijn ook transparant en onveranderlijk, alle netwerkdeelnemers kunnen zien wat er op het netwerk gebeurt en transactiedata kunnen alleen worden gewijzigd door een overeengekomen mechanisme.

Soorten blokken in de Bitcoin-blockchain

Genesis blok

Het genesisblok is het eerste blok van elke blockchain, het blok is het fundamentele startpunt van het systeem en is gekoppeld aan alle toekomstige transacties. 'S Werelds eerste genesisblok is gemaakt door Satoshi Nakamoto en daarmee heeft hij Bitcoin gemaakt.

De aanwezigheid van een genesisblok stelt een blockchain in staat om zijn transactiegeschiedenis te genereren door toe te staan ​​dat nieuw gecreëerde blokken worden geassocieerd met eerdere blokken. Bovendien heeft het genesisblok een belangrijke functie bij het synchroniseren van de knooppunten van het netwerk - ze moeten allemaal hetzelfde genesisblok in hun databases hebben. Dit zorgt ervoor dat het gedistribueerde transactieboek van de blockchain voor iedereen hetzelfde is, wat zorgt voor veiligheid.

Hoofdketen blokken

Hoofdketenblokken zijn al die blokken die zijn geverifieerd en opgenomen in een blockchain. Om dit te bereiken, moet een blok toestemming krijgen van het netwerk door de toegewezen cryptografische puzzel op te lossen door een knooppunt. Zodra het netwerk consensus heeft bereikt, wordt het blok opgenomen in de blockchain en verspreid door alle knooppunten. Op deze manier heeft elk knooppunt van het netwerk het nieuwe blok en dient het als verificatiepunt ervoor.

Elk geldig blok bevat een reeks transacties die samen met dat blok worden gevalideerd. Bijvoorbeeld in Bitcoin, elk geldig blok voert gemiddeld 2100 transacties uit. Elke transactie in een geldig blok wordt bevestigd.

Alle geldige blokken blijven eerdere transacties bevestigen, waardoor alle blokken en transacties op het netwerk volledig worden beveiligd. Natuurlijk bevat elk geldig blok een gegevensstructuur die verificatie mogelijk maakt. De structuur omvat de hash van het blok, het tijdstempel, de nuntius en de transactiegegevens van het blok. Het proces van zoeken naar oplossingskandidaten wordt mijnbouw genoemd, waarbij naar de deelnemende knooppunten wordt verwezen als mijnwerkers. Elke mijnwerker die een geldige oplossing voor de cryptografische puzzel van een blok genereert, wordt de leider en mag de reeks onbevestigde transacties bepalen. Deze worden vervolgens toegevoegd aan de blockchain

Wees blokken

beeld

Wees- of verouderde blokken zijn geldige blokken die geen deel uitmaken van een blockchain. Deze kunnen worden gemaakt wanneer twee mijnwerkers bijna tegelijkertijd blokken authenticeren, of wanneer een aanvaller met voldoende hashkracht een transactie probeert terug te draaien. In deze gevallen komt het netwerkconsensusprotocol in beeld om te beslissen welk blok in de keten wordt opgenomen en welk blok verweesd wordt.

In werkelijkheid is een blockchain-netwerk geprogrammeerd om altijd de voorkeur te geven aan de langste blockchain. Dat wil zeggen, het zal het blok kiezen dat meer informatie of verwerkte transacties bevat. In de Bitcoin-blockchain wordt het weesblok weggegooid en is het werk van de mijnwerker nutteloos.

Bovendien is het vanwege dit type blokkade dat de meeste exchanges en sommige wallets automatisch wachten op aanvullende bevestigingen voordat geld beschikbaar wordt gesteld. Ze doen dit door te berekenen hoeveel blokken er zijn gedolven tussen de transactie die u ontvangt en het huidige blok.

>eth.getBlock(bloknummer)

}

>eth.syncing.highestBlock −eth.getTransaction(“ “).blockNumber

Hoe worden blokken geverifieerd?

beeld

Blockchain-systemen werken met een Merkle-boomgegevensstructuur, waardoor ze (in theorie) onveranderlijk zijn. Merkle-bomen werden gepatenteerd door Ralph Merkle in 1979, het jaar waarin ik werd geboren, en worden veel gebruikt in cryptografie. Een Merkle-boom is een basismanier om te verifiëren dat gedeelde gegevens niet zijn gewijzigd, beschadigd of gewijzigd, en is zeer geschikt voor blockchains omdat het licht van gewicht is. Dankzij de Merkle-boomstructuur van Bitcoin hoeft de mobiele portemonnee van een gebruiker bijvoorbeeld niet alle Bitcoin-transacties te downloaden om ze te valideren.

Elke transactie in een bepaald blok komt overeen met een blad in de Merkle-boom, en de Merkle-root wordt hieruit recursief opgebouwd door individuele transacties te hashen.

Transactieparen (leaves) worden gehasht om extra bladknooppunten te creëren die kunnen overeenkomen met transacties in het blockchain-netwerk. Hoewel een Merkle-boom kan worden gemaakt op basis van een groot aantal transacties, komt de Merkle-root altijd overeen met een string van 32 bytes of 256 bits (het SHA256-hashing-algoritme geeft bijvoorbeeld altijd een vaste lengte van 32 bytes af, ongeacht de de grootte in de invoer). Op deze manier kunnen we iets van slechts 32 bytes gebruiken om maar liefst duizenden transacties te verifiëren.

Elke wijziging, hoe minimaal ook, verhindert de verificatie van de Merkle-root en maakt een deel van of de hele geschiedenis van de blockchain ongeldig, afhankelijk van de zaak.

Soorten blokken in de Ethereum Blockchain

Een van de manieren waarop Ethereum verschilt van Bitcoin, is dat het een sneller mechanisme voor het maken van blokken heeft, ontworpen om het transactieproces te versnellen. Wanneer het tijdsinterval tussen het genereren van blokken echter erg kort is (ongeveer 15 seconden), kan een enorm aantal weesblokken worden gemaakt, omdat het inefficiënt is om al deze blokken in de blockchain op te nemen.

Dit veroorzaakte een probleem waarbij mijnwerkers tijd verspilden aan het werken aan blokken zonder beloning. Om dit op te lossen, lanceerden de ontwikkelaars van Ethereum het GHOST-protocol.

GHOST staat voor Greedy zwaarst waargenomen subboom, en het concept is eenvoudig. Het beloont mijnwerkers die weesblokken valideren, hoewel de beloning lager is dan voor standaard blokken. Om een ​​beloning vrij te geven, moet er naar het blok worden verwezen door een blok uit de hoofdketen - of een oomblok.

Een bijkomend voordeel van dit mechanisme is dat het probleem van netwerkcentralisatie wordt opgelost. Wanneer blokken snel worden gemaakt, is het gemakkelijk voor een grote mijnbouwpool om blokvalidatie te monopoliseren, waardoor kleinere concurrenten een eindeloze hoeveelheid nutteloze weesblokken creëren.

Soorten blokken in Ethereum Blockchain

Er zijn twee soorten blokken in de Ethereum-blockchain:

Een hoofdketenblok is een blok dat is opgenomen in de Ethereum-blockchain. Een mijnwerker die het vindt, wordt beloond.

Een oomblok is een blok dat is geverifieerd maar niet wordt opgenomen in de hoofdblokketen. De miner krijgt hiervoor een lagere beloning dan een geldig blok.

Stel je voor dat twee mijnwerkers in verschillende delen van de wereld tegelijkertijd hetzelfde blok ontginnen. Vervolgens verspreiden ze hun blokken over het netwerk. Dit creëert een mogelijke divergentie in de keten, dus er moet er één worden gekozen - en het grotere blok zal altijd winnen. Het niet-geselecteerde blok wordt een wees (in Bitcoin) of een oom (in Ethereum). In tegenstelling tot Bitcoin ontvangt een Ethereum-mijnwerker 1/8 van een volledige blokbeloning voor het minen van een oomblok.

Hoe oomblokbeloningen werken

Mijnwerkers van hoofdketenblokken kunnen naar oomblokken verwijzen, en wanneer ze dat doen, wordt een extra beloning uitgedeeld aan zowel de mijnwerker van het hoofdketenblok als de mijnwerker van het oomblok. Elk blok in de hoofdketen kan verwijzen naar maximaal twee oomblokken en geeft 1/32 van een volledige blokbeloning per oom waarnaar wordt verwezen. De beloning die aan de mijnwerker van het oomblok wordt betaald, neemt echter in de loop van de tijd af.

Door terugbetaling te garanderen voor wat anders verspilde rekenkracht zou zijn, en door die beloning in de loop van de tijd te verminderen, worden mijnwerkers op concurrerende ketens gemotiveerd om weer deel te nemen aan de hoofdketen. Deze oomblokken dragen bij aan de ketenbeveiliging en verminderen ook de kans op aanvallen met 51%.

In Ethereum-mijnbouwpools kunnen op een aantal manieren worden gedistribueerd:

Proportionele uitbetalingsregeling

In dit eenvoudige schema wordt een miner beloond in verhouding tot het aantal ingediende aandelen in het tijdsinterval tussen twee blokken gevonden door de pool. Bijgevolg wordt een blokbeloning B verdeeld over de N mijnwerkers in de pool op basis van hun respectievelijke aantal ingediende aandelen.

Pay-Per-Last-N-Aandelen (PPLNS)

De (PPLNS) regeling keert een beloning uit die evenredig is aan de laatste N aandelen die zijn ingediend.

Wachtrijgebaseerd uitbetalingsschema

Ethpool3 was de eerste Ethereum-mijnbouwpool die een op wachtrijen gebaseerd beloningsschema introduceerde. Volgens dit schema verzamelen mijnwerkers credits voor elk aandeel dat wordt ingediend bij de poolbeheerder. Elke keer dat een volledig blok wordt gedolven door de pool, wordt de blokbeloning toegewezen aan de miner in de pool met het hoogste opgebouwde creditsaldo. De beste mijnwerker laat vervolgens zijn creditsaldo resetten naar het verschil tussen zijn eigen en het op een na hoogste creditsaldo in de pool.

De relatie waarnaar wordt verwezen, creëert een extra muntbeloning, 1/32 van een volledige blokbeloning voor de reguliere blokeigenaar en (8 − ik)/8 voor de oom. De variabele i varieert van 1 tot 6 volgens de blokhoogte van de referentie.

Naast het verfijnen van de structuur van blockchain, heeft Ethereum nog twee beveiligingsverbeteringen. Een daarvan is de willekeurige tie-breaking-regel. In plaats van de eerste ontvangen keten te accepteren, selecteert een knooppunt willekeurig één keten binnen alle ontvangen ketens van dezelfde lengte. Het getal γ ligt niet meer vast en is gelijk aan de inverse van het concurrerende ketennummer. De andere heeft tot doel de mijnbouwstrategie van de oom over te dragen.

Oom blokkeert en verduistert aanvallen

Hoe werken eclipsaanvallen?

Een eclipsaanval vereist dat de aanvaller een botnet van hostknooppunten (elk met hun eigen IP-adres) en de naburige knooppunten van een slachtoffer uitwerken, in wezen door vallen en opstaan. De inspanning die nodig is om dit te bereiken, hangt af van de grootte en de aard van een netwerk, maar als dit lukt, heeft de aanvaller de controle over alle verbindingsknooppunten van het slachtoffer nadat het slachtoffer uitlogt en weer verbinding maakt met het netwerk.

In dit scenario zijn er drie actoren: de aanvaller, het slachtoffer en een eerlijk knooppunt. Als het slachtoffer een blokkade vindt, verspreidt een aanvaller dit blok niet naar het netwerk. Als de aanvaller een blok vindt, deelt hij deze met het slachtoffer. Op deze manier creëert de aanvaller een privé-blockchain voor zichzelf en de verduisterde node.

Door dit te doen kan de aanvaller tot 96.4% meer verkrijgen dan bij eerlijke mijnbouw. Eclipse-aanvallen zijn mogelijk omdat in een gedecentraliseerd netwerk een knooppunt niet gelijktijdig verbinding kan maken met alle andere knooppunten op het netwerk. In plaats daarvan zal een bepaald knooppunt voor efficiëntie verbinding maken met een selecte groep anderen, die op hun beurt zijn verbonden met een eigen selecte groep. Het is dus mogelijk om een ​​eclipsaanval uit te voeren met slechts twee machines met unieke IP-adressen.

Ethereum vertrouwt op een gestructureerd netwerk op basis van een protocol genaamd kademlia, dat is ontworpen om knooppunten in staat te stellen efficiënter verbinding te maken met andere knooppunten. Door een algoritme voor het genereren van sleutels te gebruiken, kan een aanvaller zeer snel een onbeperkt aantal knooppunt-ID's (identificatiegegevens op het peer-to-peer-netwerk) maken. Erger nog, een aanvaller zou zelfs knooppunt-ID's kunnen maken op een manier die ze aantrekkelijker maakt voor het slachtoffer dan een willekeurige knooppunt-ID, waardoor het slachtoffer er in feite naar toe wordt getrokken.

Ethereum heeft drie kenmerken die het vatbaar kunnen maken voor eclipsaanvallen. Ten eerste creëert het snel creëren van blokken eindeloze losse blokken, die indirect inbreuk maken op de belangen van eerlijke mijnwerkers door de voorraad Ether op te blazen. Ten tweede zorgt het Uncle Block-mechanisme ervoor dat knooppunten kunnen profiteren van deze blokken. En ten derde biedt Ethereum's verbeterde knooppuntconnectiviteit een motivatie voor aanvallers.

Ook gepubliceerd op: https://cryptofanalex.medium.com/

Tags

Doe mee met Hacker Noon

Maak uw gratis account aan om uw persoonlijke leeservaring te ontgrendelen.

Coinsmart. Beste Bitcoin-beurs in Europa
Bron: https://hackernoon.com/eclipse-attacks-and-ethereums-uncle-block-mechanism-fu1j37a4?source=rss

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?