Hoe werkt Bitcoin?

Ongeveer een jaar geleden, toen de Bitcoin-trein net stoom begon te winnen, wendde een vriend zich tot mij en vroeg: Waarom kan je niet gewoon een Bitcoin kopiëren?

Ongeveer een jaar geleden, toen de Bitcoin-trein net stoom begon te winnen, wendde een vriend zich tot mij en vroeg: Waarom kan je niet gewoon een Bitcoin kopiëren?
Advertentie

Ongeveer een jaar geleden, toen de Bitcoin-trein net stoom begon te winnen, wendde een vriend zich tot mij en vroeg: "Waarom kan je niet gewoon een Bitcoin kopiëren?"

Dit is een verwarring die veel mensen hebben, en een eerlijke verwarring: het idee van een digitale entiteit die niet gemakkelijk kan worden gekopieerd, is geheel onintuïtief. In feite is het Bitcoin-netwerk nu een van de coolste en minst begrepen technologie in het populaire bewustzijn. Dat is een schande, omdat de onderliggende mechanica van Bitcoin echt vrij eenvoudig is. Je hebt zelfs geen bijzonder moeilijke wiskunde nodig, als je bereid bent een paar dingen over geloof te doen.

In het verleden hebben we besproken wat Bitcoin is Bitcoin aan iedereen uitleggen hoe Bitcoin aan iemand kan uitleggen Het concept van cryptocurrency is niet gemakkelijk te begrijpen. Hoe kun je hun computer gebruiken om munten te 'delven'? Waar komt het geld vandaan? Wie controleert het? Lees meer, hoe veilig te gebruiken Hoe Bitcoins veilig en gemakkelijk te besteden en op te slaan Hoe Bitcoins veilig, gemakkelijk en gratis te besteden en op te slaan Lees hier zelfs een handleiding over het onderwerp, maar we hebben nooit echt gekregen hoe het werkt . Vandaag zullen we ons verdiepen in dat 'hoe' en praten over de tools die nodig zijn om het 'magische internetgeld' achter de schermen te houden.

Bitcoin voor poker

Dus waarom kan je geen Bitcoin kopiëren? Het antwoord, om een ​​lang verhaal kort te maken, is dat een Bitcoin niet echt een reeks gegevens is die moet worden gekopieerd: het is een vermelding in een gedistribueerd grootboek dat u vertelt hoeveel geld elke persoon heeft. De reden dat u het grootboek niet kunt wijzigen, is te wijten aan de slimme structuur van het Bitcoin-netwerk - er zijn veel kopieën van het grootboek en het grootboek zelf is zo ontworpen dat het moeilijk te manipuleren is.

Om het probleem beter te begrijpen, stel je voor dat je zou proberen om een ​​pen-en-papier Bitcoin ( WritCoin ) te implementeren voor een spelletje poker met je vrienden. Je bent allemaal te goedkoop om chips te kopen, maar je wilt nog steeds bijhouden hoeveel speelgeld iedereen heeft, en mensen het onderling laten verhuizen.

dogsplayingbitcoinpoker

Een oplossing is om iemand als betrouwbaar te kiezen als recordhouder voor het spel: ze noteren elke transactie terwijl het gebeurt, laten je weten of de transactie slaagde (dat wil zeggen, nam niemand mee naar een negatief saldo), en kunnen optellen alle succesvolle transacties om erachter te komen hoeveel geld iedereen op een bepaald moment heeft. Dit is vergelijkbaar met hoe PayPal en andere gecentraliseerde betalingssystemen werken. Zoals je kunt zien, is het idee om een ​​valuta-eenheid te kopiëren niet echt logisch in dit systeem - de recordhouder zou het niet toestaan. Merk op dat de recordwachter in een machtspositie staat in dit scenario en ervoor kan kiezen om zichzelf veel geld te geven, een klein deel van al het uitgegeven geld te stelen of anderszins zijn positie te misbruiken.

Stel je nu voor dat je in plaats van poker te spelen met je vrienden vast zit in een high-stakes pokerspel waarbij niemand aan tafel vertrouwt dat iemand anders een recordhouder is (maar je bent nog steeds te goedkoop om chips te kopen).

Dit is een metafoor voor internet.

Nu heb je een probleem: omdat er geen vertrouwen is, zal de gecentraliseerde autoriteit niet meer werken. Dus je bedenkt het slimme idee om iedereen aan tafel een onafhankelijke recordhouder te laten worden als ze dat willen. Elk van hen zal kennis nemen van alle transacties. Op die manier, wanneer het tijd is om erachter te komen hoeveel geld iemand heeft, als een minderheidsgroep van hen besluit te liegen over zijn of haar archief, zal de meerderheid hen betrappen. Om het eerlijk te houden, stemt u er allemaal mee in om een ​​kleine beloning uit te betalen aan de recordhouders in ruil voor hun diensten. Dit devalueert al uw geld een beetje, maar moedigt mensen aan recordhouders te worden en fraude te voorkomen - en, in tegenstelling tot een enkele recordhouder, kan de gelddevaluatie tot een beheersbaar niveau worden beheerst. Dit is in een notendop de kern van het Bitcoin-netwerk. Een netwerk van onafhankelijke computers met speciale software (Bitcoin-mijnwerkers 5 manieren waarop u mijn Bitcoin-valuta kunt maken en ontginnen 5 manieren waarop u mijn Bitcoin-valuta kunt maken en ontginnen De revolutionaire en controversiële betalingsmethode heeft de krantenkoppen gehaald. om transacties met Bitcoins uit te voeren, maar eerst moet u zelf wat verdienen .. Lees meer) volg onafhankelijk elke transactie die ooit in het netwerk heeft plaatsgevonden. In ruil daarvoor krijgen ze een kans om te worden beloond telkens wanneer ze een groep transacties bevestigen. Om geld te spenderen, praat je gewoon met het netwerk en laat je hen weten dat je dat wilt. Ze noteren de transactie in hun logs (als je genoeg geld hebt om het succesvol te maken) en gaan verder.

Bitcoin en cryptografie

Het is natuurlijk niet zo eenvoudig in de praktijk. Stel je de problemen voor van het proberen om WritCoin naar het internet te verplaatsen. Nu moet je opeens een manier hebben om te bewijzen dat je echt een transactie doet (in het echt kun je zien wie de transactieverzoeken doet - niet op het internet). Ook op internet, met een groot netwerk, is het moeilijk om elke afzonderlijke Bitcoin-mijnwerker te raadplegen om erachter te komen hoeveel geld iedereen heeft. Het zou leuk zijn als je maar met een paar van hen zou kunnen praten en nog steeds kunt vertellen wie van hen eerlijk waren. Er zijn twee cryptografische tools die deze dingen online mogelijk maken: digitale handtekeningen en bewijs van werk .

Ondertekende transacties

Een cryptografische handtekening is een slimme toepassing van asymmetrische codering, en het werkt als volgt: vanuit één geheime stuk informatie kunt u een reeks wiskundige bewerkingen uitvoeren die twee bijkomende stukjes informatie produceren (een publieke en een private sleutel genoemd). dat alles wat versleuteld is (gecodeerd in brabbeltaal) door de privésleutel alleen kan worden gedecodeerd (ontcijferd) door de publieke sleutel. Bovendien, wanneer deze toetsen correct worden geproduceerd, is er geen manier om uit te vinden wat de persoonlijke sleutel is, zelfs als u de openbare sleutel kent. Uitleg over hoe deze daadwerkelijk werken, is wiskundig gezien een abstracte algebra en gaat ver buiten de reikwijdte van dit artikel. Als je meer wilt weten, bekijk dan het Wikipedia-artikel over elliptische curve-cryptografie, het cryptosysteem dat door Bitcoin wordt gebruikt.

Stel je even voor dat je een privésleutel en openbare sleutel hebt die je regelmatig gebruikt. Je zou de publieke sleutel (die eruitziet als een willekeurige reeks wartaal) kunnen publiceren en deze met je identiteit kunnen verbinden. Telkens wanneer u iets online publiceert, kunt u uw bericht opnemen, versleutelen met uw geheime persoonlijke sleutel en zowel de gecodeerde versie als het originele bericht naast elkaar publiceren. Als iemand dan wilde zien of je het echt hebt geschreven, kunnen ze eenvoudig je openbare sleutel gebruiken om de gecodeerde versie te decoderen en te vergelijken met het bericht. Als ze niet overeenkomen, weet de lezer dat er met uw bericht is geknoeid. Met andere woorden, als een kwaadwillende partij uw bericht wilde vervangen door het eigen bericht, dan hadden ze geen manier om een ​​overeenkomende gecodeerde versie van de tekst te genereren, omdat ze uw privésleutel niet kennen. De gecodeerde versie van het bericht (of, meer typisch, een versleutelde hash van het bericht, die we in een ogenblik zullen bespreken), gekoppeld aan het bericht zelf, wordt een digitale handtekening genoemd .

asyymetricencryption

Digitale handtekeningen zijn hoe transacties worden geverifieerd in Bitcoin. Misschien heb je wel eens gehoord van een 'Bitcoin-portemonnee'. Een Bitcoin-portemonnee is gewoon een bepaald publiek / privaat sleutelpaar. Als je een Bitcoin-portemonnee wilt, kies je gewoon een geheim stukje informatie (je kunt een wachtwoordzin gebruiken, of je computer verzinnen een reeks onzin) en vervolgens gebruiken om je publieke en private sleutel te genereren. Uw publiek / privaat sleutelpaar is uw portemonnee - als mensen u geld willen sturen, geeft u ze uw publieke sleutel en zij vertellen het netwerk dat ze geld willen verzenden naar de portemonnee die overeenkomt met die openbare sleutel. Als u geld uit uw portemonnee wilt sturen, vertelt u dat aan het netwerk - en ondertekent u het met uw bijbehorende privésleutel. Dus, tenzij iemand uw persoonlijke sleutel of uw oorspronkelijke geheim in handen krijgt, is er geen mogelijkheid voor hen om transacties van u te vervalsen.

Proof-of-Work

In cryptografie is er ook een tool genaamd een hash-functie. Een hash-functie neemt eenvoudigweg een grote hoeveelheid informatie als een invoer en gooit het om tot een korte reeks onzin (de lengte van de uitvoer is altijd hetzelfde en hangt af van de functie die u gebruikt). Hash-functies zijn gevoelig, in die zin dat elke kleine wijziging in de originele data volledig is en onherkenbaar de reeks onzin (de 'hash') verandert. Als gevolg hiervan hebben hashfuncties de unieke eigenschap dat ze eenrichtingsverkeer zijn - een gegeven aan informatie gegeven, je kunt het eenvoudig hashen, maar gezien een bepaalde hash, is er geen manier om achteruit te werken om erachter te komen welk stukje informatie was gehasht om het te maken, behalve door willekeurig te raden. Raadpleeg voor meer informatie het Wikipedia-artikel over hashfuncties.

hash-functie

Hash-functies zijn erg handig! De toepassing die het meest relevant is voor Bitcoin wordt "proof-of-work" genoemd, wat een manier is om iemand anders te bewijzen dat een bepaald aantal rekenwerk is besteed. Als iemand willekeurig een woord kiest (bijvoorbeeld "dubbelganger"), en je reageert met een stukje informatie waarvan de hash toevallig "dubbelganger" is (of een string die er ongeveer hetzelfde uitziet) dan weten ze dat je veel hebt uitgegeven tijd raden voordat je eindelijk een stukje informatie vond die werkte. Ze hebben dus het bewijs dat je een bepaalde hoeveelheid computergestuurd werk hebt uitgevoerd. Dit kan worden gebruikt om e-mail spam te voorkomen, door iedereen die probeert u een e-mail te sturen, te dwingen een kleine proof-of-work in te vullen op basis van hun e-mailadres, uw e-mailadres en de tijd. Deze proof-of-work kan heel gemakkelijk zijn, zodat het geen ongemak is voor gewone mensen om een ​​paar e-mails per dag te verzenden, maar wordt het onpraktisch duur voor bulk-mailers.

In Bitcoin wordt proof-of-work gebruikt om te voorkomen dat mensen liegen. Het werkt als volgt: wanneer een mijnwerker een stuk transacties aan zijn grootboek wil toevoegen, nemen ze de hele blokketting (een lijst van alle transacties die tot nu toe hebben plaatsgevonden die de mijnwerker kon verifiëren waren geldig), en voeg de nieuwste groep transacties. Vervolgens hashen ze het allemaal samen en beginnen ze de proof-of-work voor die waarde te doen - waarden schatten naar hash om een ​​nieuwe waarde te vinden die voldoende dicht bij de doelwaarde ligt. Terwijl ze dit doen, doen mijnwerkers over de hele wereld precies hetzelfde, concurreren ze als de eersten om een ​​proof-of-work te vinden dat "goed genoeg" is (een standaard die automatisch toeneemt om de wet van Moore en de groei van het netwerk). De eerste die daar komt krijgt een meevaller (momenteel 25 Bitcoins of ongeveer $ 15, 600 op het moment van schrijven) in ruil voor hun service, en hun succesvolle blok wordt verdeeld onder alle andere mijnwerkers en wordt een permanente toevoeging aan de block-chain.

Het gevolg hiervan is dat, als je een nep-blockchain wilt genereren, je alle door het netwerk uitgevoerde proof-of-works moet reproduceren, wat duur is. Hoe verder terug u iets wilt bewerken, des te meer werkdrukken op basis van die informatie u opnieuw moet doen. Het is zeer onwaarschijnlijk dat iedereen betere, snellere proof-of-works kan produceren dan het hele legitieme Bitcoin-mijnnetwerk, wat betekent dat de block-chain waaraan het meeste bewijs van werk is besteed, over het algemeen de legitieme is. Een andere manier om dit te zeggen is dat liegen in het Bitcoin-netwerk moeilijk is, omdat het veel rekenkracht vergt om een ​​goed gestructureerde leugen te genereren. Dat betekent dat als je een nauwkeurige blockchain wilt, je niet met elke Bitcoin-mijnwerker hoeft te praten en ze hoeft te laten stemmen - je kunt gewoon praten met een paar willekeurige mijnwerkers, hun blockchains krijgen en, als er een conflict is, de versie met de meeste, sterkste proof-of-works, en de kans is groot dat deze de echte is.

Bitcoin in een notendop

Kort samengevat: Bitcoin-portefeuilles zijn openbare / private sleutelparen. Elke openbare sleutel kan geld naar elke andere openbare sleutel sturen door een verklaring af te leggen op het netwerk, ondertekend met de bijbehorende privésleutel. Die verklaring wordt peer-to-peer uitgezonden door alle mijnwerkers, die allemaal proberen bewijzen van werk te genereren voor alle transacties die ze tot nu toe hebben geregistreerd. Telkens wanneer een van hen een voldoende goede proof-of-work genereert, worden ze beloond met een aantal bitcoins en wordt hun blok onderdeel van het officiële, gedistribueerde grootboek. Door de transacties in alle blokken op te tellen, kunt u berekenen hoeveel geld u heeft - of wie dan ook. Het record is moeilijk te knoeien, vanwege de moeilijkheid om sneller een proof-of-work te maken dan de rest van het netwerk.

Dat is het eigenlijk wel. Zodra je de cryptografische primitieven in het spel begrijpt, is het idee eigenlijk vrij eenvoudig. Dat moet echter niet worden opgevat als te betekenen dat het niet opmerkelijk is. Het bouwen van een protocol dat duizenden mensen over de hele wereld dwingt om eerlijk met elkaar om te gaan, ondanks hun beste inspanningen om het tegendeel te bereiken, is een enorme overwinning voor cryptografie en een van de krachtigste ideeën van de laatste paar jaar.

Afbeeldingscredits: Waterloo Dogs Playing Poker, Asymmetric Cryptography, Hash Function, met dank aan Wikimedia, Reservoir Dogs, van EW.com

In this article