, 2 jaar geleden
Bitcoin wordt beschouwd als de meest veilige cryptocurrency ter wereld. In bijna 12 jaar van zijn bestaan is niemand erin geslaagd om het netwerk met succes aan te vallen of zelfs maar een enkele transactie te verstoren of te manipuleren. Daarom is het vertrouwen extreem hoog, wat ook erg belangrijk is, omdat er in een decentraal netwerk geen centrale instelling is die aansprakelijk kan worden gesteld voor fouten.
Iedereen die Bitcoin al heeft geprobeerd en zijn eerste kleine transacties heeft gedaan, heeft al gemerkt dat de crypto heel snel, uiterst handig en heel gemakkelijk kan worden verzonden. Veel gebruikers die dit doen, weten echter niet eens hoe een transactie werkelijk werkt en wat Bitcoin transacties vertegenwoordigen in het gedecentraliseerd grootboek van Bitcoin.
In dit artikel willen we de zaak tot op de bodem uitzoeken en bespreken hoe transacties in het Bitcoin netwerk plaatsvinden en welke betekenis ze hebben.
Veel beginners zijn vatbaar voor het misverstand dat ze Bitcoin verzenden en ontvangen. Dit is natuurlijk het geval, maar eigenlijk heeft niemand zijn Bitcoin in zijn wallet. In plaats daarvan is elke wallet verbonden met een kopie van de Bitcoin blockchain. Deze blockchain is een speciale database waarvan de eigenschappen garanderen dat het door niemand kan worden gemanipuleerd.
Bitcoin wordt dus niet als fysiek of digitaal goed verzonden, maar ingangen worden in de blockchain gewijzigd die bepalen wie welke som bezit. De ontvangende en verzendadressen staan bekend als openbare sleutels. Bij elke openbare sleutel hoort een privésleutel, waarmee de tegenhanger ervan kan worden beheerd. Dus als je Bitcoin overschrijft, verander je in feite een item in de database, en om dit te kunnen, heb je een cryptografische sleutel om de transactie te ondertekenen en te laten gebeuren.
In die zin zijn er helemaal geen Bitcoins, alleen bijbehorende inzendingen. Het bijzondere is dat deze inzendingen niet worden opgeslagen op de Bitcoin adressen. Als je wilt weten hoeveel Bitcoins er zijn overgebracht naar een adres, het rekeningsaldo van een adres resulteert van de overboekingen die op de blockchain zijn gemaakt.
Zo'n overdracht op de blockchain bestaat uit drie hoofdcomponenten. Eerst begint de transactie met de input. Het is dit bedrag dat zal worden overgemaakt en dat wordt bepaald door wie het heeft overgemaakt naar een bepaald adres of eerder als output heeft ontvangen.
Het tweede aspect is de hoeveelheid, want zelfs als een adres eerder 1 BTC heeft ontvangen, kan slechts een fractie ervan worden uitgevoerd. De hoeveelheid is dus duidelijk beperkt tot het totale saldo, maar kan worden teruggebracht tot fracties van een Bitcoin.
De derde en laatste stap is de zogenaamde output. Dit is gewoon het adres van de ontvanger, wat een bepaalde hoeveelheid zal krijgen van een eerdere gecrediteerde input.
De Bitcoin die je ontvangt en opslaat is in principe de output van een eerdere transactie die je nog niet hebt uitgegeven. Dit concept wordt UTXO (Unspent Transaction Output) of "Nog niet uitgegeven output" genoemd. Het is in principe anders dan andere crypto of klassieke transacties met banken, omdat ze zijn gebaseerd op een rekeningsaldo.
Je verzamelt in je wallet alle transactie-outputs die je nog niet hebt uitgegeven. De wallet software telt de bedragen op en geeft een rekeningsaldo in BTC. Dit wordt simpelweg gedaan om gebruikers een beter overzicht te geven en het idee om een account te hebben is gewoonweg intuïtiever.
Aangenomen dat een wallet in totaal 3 Bitcoin heeft, die uit 8 verschillende outputs komen, en iemand wil ook 2 BTC verzenden in een nieuwe transactie, waarna de wallet de nieuwe transactie op de achtergrond automatisch voedt uit de 8 ontvangen transacties en/of outputs en vormt daarmee de input voor de nieuwe transactie.
Dit is een zeer complex systeem en schaalt relatief slecht. Waarom Satoshi Nakamoto op dat moment besloot gebruik te maken van dit systeem, kan niet duidelijk worden bewezen.
Er zijn natuurlijk ook transactiekosten, die op verschillende niveaus kunnen worden ingesteld. Je betaalt in principe een prijs voor het feit dat de miners een prikkel hebben om de transactie sneller dan iedereen te bevestigen in het netwerk. Zodra de miners de transactie hebben bevestigd, worden de overeenkomstige vermeldingen op de blockchain bindend en onherroepelijk gewijzigd.
Dit betekent dat gebruikers van het netwerk strijden om de aandacht van de miners. Transacties die een hoge vergoeding betalen, worden verkozen boven transacties met lagere vergoedingen. Maar het heeft geen zin om te veel te betalen.
In plaats daarvan ontstaat op basis van de daadwerkelijke biedingen voor de transactiekosten een drempelwaarde die overschreden moet zijn om een bepaalde snelheid te bereiken. Om het in een voorbeeld uit te leggen: Stel dat je wilt rijden van het ene deel van de stad naar het andere en vergelijk twee vervoermiddelen met verschillende snelheden. De bus is er, het is traag omdat het naar veel stations gaat en het kost €3 voor de reis. Als alternatief kan je kiezen voor de taxi, die direct naar je bestemming gaat en dus veel sneller is. Maar de taxi kost €15. Je zou de taxichauffeur €30 kunnen aanbieden en hij zal het bedrag dankbaar accepteren, maar je zult er niet sneller komen. Hetzelfde geldt voor de bus. Terwijl met taxi's en bussen de prijzen transparant zijn, met Bitcoin moeten de transactiekosten worden bepaald.
Veel wallets bepalen automatisch de benodigde drempelwaarde en geven de gebruiker niet alleen de prijs voor de transactie, maar ook een geschatte bevestigingstijd voor de transactie. Op deze manier biedt iemand - om binnen het voorbeeld te blijven - altijd het passende bedrag aan, aan zijn taxichauffeur, om de hoogste snelheid tegen de laagste prijs te krijgen.
Als alternatief kan je zelf het bedrag van de vergoeding instellen en onderzoeken welke vergoeding het beste bij je past. De meeste tijd kan je echter geen betere verhouding bereiken als je niet de aanbevelingen van de software opvolgt.
Het UTXO-model, dat we nu hebben leren kennen, heeft nog een bijzonderheid. Om de invoer van een transactie te vormen, moet het beschikbare bedrag volledig worden verbruikt. Dus als je 2 BTC hebt ontvangen op één adres en nu slechts 1,5 BTC wilt verzenden, dan is 0,5 BTC aan verandering nodig.
Deze wijziging wordt automatisch naar een nieuw adres gestuurd, waarover de afzender controle heeft. De wallet houdt deze wijzigingsadressen automatisch op de achtergrond bij. Gebruikers merken het niet eens dat ze deze wijzigingsadressen überhaupt hebben.
Toch is het belangrijk om te weten dat deze adressen worden aangemaakt. Dit komt omdat deze omstandigheid vooral een rol speelt bij de zelfbewaring van Bitcoin. Als je individuele privésleutels opslaat, kan je fatale fouten maken bij het herstellen van individuele adressen. Daarom, in plaats van individuele privésleutels te redden, moet je altijd het wallet bestand of de zogenaamde seed redden. Dit herstelt alle sleutels, ook die van adreswijzigingen.
TIP: Je kan de LiteBit wallet ook rechtstreeks gebruiken. Op deze manier krijgt je BTC professionele bescherming en hoef je je nergens meer zorgen over te maken.
Als je de snelheid van een Bitcoin transactie wilt evalueren, moet je onderscheid maken tussen twee dingen. De transactie is in principe direct zichtbaar op het netwerk. Het bevindt zich in de mempool onmiddellijk na verzending en wacht op bevestiging. In die zin zijn Bitcoin transacties onmiddellijk geldig.
Het probleem is dat iemand pas zeker kan zijn van geldigheid als je tenminste een bevestiging hebt ontvangen van het netwerk. Een transactie wordt als absoluut veilig beschouwd als deze 6 bevestigingen heeft.
Om een bevestiging te krijgen, moet er een nieuw blok aan de blockchain worden toegevoegd. Het creëren van een nieuw blok duurt ongeveer 10 minuten, maar kan ook minimaal variëren. Daarom duurt het minstens deze 10 minuten om de transactie te bevestigen. De transacties zijn dus onmiddellijk, maar kunnen alleen door de ontvanger worden gebruikt op zijn vroegst na 10 minuten.
Als de ontvanger bijzonder belang hecht aan beveiliging, dan is er meer dan één bevestiging door het netwerk vereist totdat hij de transactie geldig acht. Dit is vooral vaak het geval bij het gebruik van Bitcoin als betalingsmiddel, omdat verkopers absoluut zeker willen zijn.
Een Bitcoin transactie kan je direct in je eigen wallet als afzender of ontvanger controleren. Als je de transacties van andere deelnemers wilt controleren, is het eenvoudigste middel een zogenaamde block explorer.
Dit zijn vaak webpagina's die het mogelijk maken om transacties van Bitcoin adressen of de zogenaamde TXID te controleren via een eenvoudig invoerveld. De TXID is een unieke identificator die aan elke transactie wordt toegewezen en de details onthult. Op deze manier kan elke Bitcoin transactie op elk moment worden gecontroleerd.
Deze transparantie is een kenmerk van Bitcoin. Het stelt de deelnemers in staat om alle feiten te controleren met betrekking tot de transacties die op het netwerk zijn gemaakt. Dit is bedoeld om ervoor te zorgen dat alle deelnemers kunnen vertrouwen op het netwerkprotocol omdat ze niet alleen kunnen vertrouwen op de nodes en miners, maar in geval van twijfel is en blijft alles verifieerbaar. Deze transparantie roept echter opnieuw privacy problemen op, omdat de deelnemers niet anoniem zijn en de blockchain openbaar is.