Hoofd- » bedrijf » Hoe voorkomt een blockchain dubbele uitgaven van Bitcoins?

Hoe voorkomt een blockchain dubbele uitgaven van Bitcoins?

bedrijf : Hoe voorkomt een blockchain dubbele uitgaven van Bitcoins?

Een van de belangrijkste zorgen van elke ontwikkelaar van cryptocurrency is het probleem van dubbele uitgaven. Dit verwijst naar de incidentie van een individu die meer dan eens een saldo van die cryptocurrency uitgeeft, waardoor een verschil wordt gecreëerd tussen het bestedingsrecord en de hoeveelheid beschikbare cryptocurrency, evenals de manier waarop het wordt gedistribueerd.

De kwestie van dubbele uitgaven is een probleem dat contant geld niet heeft; als u betaalt voor een broodje met een rekening van $ 10, die die rekening overhandigt aan de maker van de sandwich, kunt u zich niet omdraaien en diezelfde $ 10 elders uitgeven. Een transactie die een digitale valuta zoals bitcoin gebruikt, vindt echter volledig digitaal plaats. Dit betekent dat het mogelijk is om de transactiegegevens te kopiëren en opnieuw uit te zenden zodat dezelfde BTC meerdere keren door één eigenaar kan worden uitgegeven. Hieronder zullen we onderzoeken hoe ontwikkelaars van cryptocurrency hebben verzekerd dat dubbele uitgaven niet kunnen gebeuren.

Belangrijkste leerpunten

  • Een technisch probleem dat zich voordoet met het idee van een digitale valuta is de mogelijkheid voor iemand om het digitale geld te dupliceren en tegelijkertijd op twee of meer plaatsen uit te geven.
  • Dit 'dubbele bestedings'-probleem wordt voorkomen in op blockchain gebaseerde cryptocurrencies zoals Bitcoin door een consensusmechanisme te gebruiken dat bekend staat als proof-of-work (PoW).
  • Deze PoW wordt uitgevoerd door een gedecentraliseerd netwerk van 'mijnwerkers' die niet alleen de trouw van eerdere transacties op het grootboek van de blockchain beveiligen, maar ook dubbele uitgaven detecteren en voorkomen.

Inzicht in de Blockchain

De blockchain die ten grondslag ligt aan een digitale valuta zoals bitcoin, kan op zichzelf niet dubbele uitgaven voorkomen. In plaats daarvan worden alle verschillende transacties waarbij de relevante cryptocurrency betrokken is, naar de blockchain gepost, waar ze afzonderlijk worden geverifieerd en beschermd door een bevestigingsproces. In het geval van bitcoin en vele andere cryptocurrencies worden transacties die op deze manier zijn bevestigd onomkeerbaar; ze worden openbaar geplaatst en voor altijd bewaard.

Bitcoin was de eerste grote digitale valuta die het probleem van dubbele uitgaven oploste. Dit gebeurde door dit bevestigingsmechanisme te implementeren en een gemeenschappelijk, universeel grootboeksysteem te handhaven. Op deze manier houdt de bitcoin-blockchain records bij van tijdgestempelde transacties die teruggaan naar de oprichting van de cryptocurrency in 2009.

In Bitcoin-termen is een "blok" een bestand met permanent geregistreerde gegevens. Alle recente transacties worden in blokken geschreven, net als een grootboek op een beurs. Informatie uit blokken wordt om de paar minuten aan het grootboek toegevoegd; alle knooppunten op het netwerk bewaren een kopie van het blockchain-grootboek. Gebruikers kunnen door de blockchain navigeren voor bitcoin en transacties alleen in kwantiteit bekijken. Details over de identiteit van de koper en verkoper in elke transactie worden beschermd door codering op hoog niveau, die ook het grootboek beschermt tegen manipulatie door externe bronnen. Wanneer het blockchain-grootboek wordt bijgewerkt, zijn alle bitcoin-portefeuilles dat ook.

Omgaan met dubbele uitgaven

Stel je voor dat je 1 BTC hebt en je probeert het twee keer uit te geven in twee afzonderlijke transacties. U kunt proberen dit te doen door dezelfde BTC naar twee afzonderlijke bitcoin-portemonnee-adressen te sturen. Beide transacties gaan dan naar de pool van niet-bevestigde transacties. De eerste transactie zou worden goedgekeurd via het bevestigingsmechanisme en vervolgens worden geverifieerd in het volgende blok. De tweede transactie zou echter als ongeldig worden herkend door het bevestigingsproces en zou niet worden geverifieerd. Als beide transacties gelijktijdig uit de pool worden getrokken voor bevestiging, wordt de transactie met het hoogste aantal bevestigingen opgenomen in de blockchain, terwijl de andere wordt genegeerd.

Hoewel dit effectief het probleem van dubbele uitgaven aanpakt, is het niet zonder problemen. De beoogde ontvanger van de tweede (mislukte) transactie zou bijvoorbeeld geen deel hebben aan het mislukken van de transactie zelf, en toch zou die persoon niet de bitcoin ontvangen die hij of zij had verwacht. Veel verkopers wachten op ten minste 6 bevestigingen van een transactie (wat betekent dat 6 opeenvolgende blokken met transacties zijn toegevoegd aan de blockchain na de transactie in kwestie). Op dit punt kan de handelaar er veilig van uitgaan dat de transactie geldig is.

Er zijn nog andere kwetsbaarheden in dit systeem waardoor dubbele uitgaven kunnen plaatsvinden. Als een aanvaller bijvoorbeeld op de een of andere manier ten minste 51% van de macht van het netwerk kan controleren, kan hij of zij dubbele uitgaven plegen. Als een aanvaller op de een of andere manier controle zou krijgen over zoveel rekenkracht, zou hij of zij transacties kunnen terugdraaien en een afzonderlijke, private blockchain kunnen maken. De snelle groei van bitcoin heeft echter vrijwel verzekerd dat dit soort aanvallen onmogelijk is. (Zie voor meer informatie Pas op voor deze vijf Bitcoin-oplichting)

Bewijs van werk & 'Mijnbouw' verklaard

Laten we nu een beetje technischer worden. De manier waarop gebruikers manipulatie detecteren, zoals een poging om in de praktijk dubbel te spenderen, is door hashes, lange reeksen getallen die dienen als bewijs van het werk (PoW). Zet een gegeven set gegevens door een hashfunctie (bitcoin gebruikt SHA-256), en het zal slechts één hash genereren. Vanwege het 'lawine-effect' zal zelfs een kleine wijziging in een deel van de oorspronkelijke gegevens resulteren in een volledig onherkenbare hash. Ongeacht de grootte van de oorspronkelijke gegevensset, de hash die door een bepaalde functie wordt gegenereerd, heeft dezelfde lengte. De hash is een eenrichtingsfunctie: deze kan niet worden gebruikt om de oorspronkelijke gegevens te verkrijgen, alleen om te controleren of de gegevens die de hash hebben gegenereerd, overeenkomen met de oorspronkelijke gegevens.

Het genereren van elke willekeurige hash voor een set bitcoin-transacties zou voor een moderne computer triviaal zijn, dus om het proces in "werk" te veranderen, stelt het bitcoin-netwerk een bepaald "moeilijkheidsniveau" in. Deze instelling wordt aangepast zodat een nieuw blok wordt "gedolven" - toegevoegd aan de blockchain door een geldige hash te genereren - ongeveer elke 10 minuten. Het instellen van de moeilijkheid wordt bereikt door een "doel" voor de hash in te stellen: hoe lager het doel, hoe kleiner de set geldige hashes en hoe moeilijker het is om er een te genereren. In de praktijk betekent dit een hash die begint met een lange reeks nullen: de hash voor blok # 429818 is bijvoorbeeld 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Dat blok bevat 2.012 transacties met iets meer dan 1.000 bitcoin, evenals de kop van het vorige blok. Als een gebruiker één transactiebedrag zou wijzigen met 0, 0001 bitcoin, zou de resulterende hash onherkenbaar zijn en zou het netwerk de fraude afwijzen.

Aangezien een gegeven set gegevens slechts één hash kan genereren, hoe zorgen mijnwerkers ervoor dat ze een hash onder het doel genereren? Ze veranderen de invoer door een geheel getal toe te voegen, een nonce genoemd ("nummer één keer gebruikt"). Zodra een geldige hash is gevonden, wordt deze naar het netwerk uitgezonden en wordt het blok aan de blockchain toegevoegd.

Mijnbouw is een competitief proces, maar het is meer een loterij dan een race. Gemiddeld genereert iemand om de tien minuten een acceptabel werkbewijs, maar wie het is, is een gok. Mijnwerkers bundelen samen om hun kansen op mijnbouwblokken te vergroten, wat transactiekosten genereert en, voor een beperkte tijd, een beloning voor nieuw gecreëerde bitcoins.

Bewijs van werk maakt het uiterst moeilijk om elk aspect van de blockchain te wijzigen, omdat een dergelijke wijziging zou vereisen dat alle volgende blokken opnieuw worden geminimaliseerd. Het maakt het ook moeilijk voor een gebruiker of een groep gebruikers om de rekenkracht van het netwerk te monopoliseren, omdat de machines en het vermogen die nodig zijn om de hash-functies te voltooien, duur zijn.

Vergelijk beleggingsrekeningen Aanbieder Naam Beschrijving Adverteerder Openbaarmaking × De aanbiedingen die in deze tabel worden weergegeven, zijn afkomstig van samenwerkingsverbanden waarvan Investopedia een vergoeding ontvangt.
Aanbevolen
Laat Een Reactie Achter