'Working in a bitcoin mine on Iceland is' absolutely terrible and
fascinating'.
(English)
Ethereum bitcoin blockchain
workshop
Bitcoin
Bitcoins minen
Kanttekeningen
bij de bitcoin
Waarom
de bitcoin de valse euro meer bedreigt dan de dollar
Het Bitcoinprotocol
Bitcoin is een ingewikkelde nieuwe techniek: om het helemaal te begrijpen zul je het een tijd moeten bestuderen. Maar hoeveel mensen begrijpen hoe de techniek achter het internet werkt? Het belangrijkste is dat je het kunt gebruiken: je hoeft geen expert te zijn om veilig bitcoins te bewaren of te versturen.
Voor wie toch net iets meer wil weten hebben wij onderstaande technische uitleg geschreven. Niet genoeg om jezelf bitcoinexpert te noemen, maar misschien wel om indruk mee te maken in de kroeg ߘ?. Het veelvuldig gebruik van Engelse termen is volgens ons onvermijdelijk gezien het internationale karakter van bitcoin. (En ook omdat vertalingen als 'delversbeloning', 'blokketen' en 'geheugenplas' nou niet echt lekker klinken...)
De Blockchain & Mining
Bitcoins worden sinds het begin 'aangemaakt' door
gebruikers die ze kunnen verdienen door met rekenkracht bij te dragen
aan het netwerk en het opslaan/goedkeuren van bitcointransacties. Dit
wordt mining genoemd. Iedereen kan hier aan meedoen, echter
moet je tegenwoordig flink investeren in hardware wil je er aan kunnen
verdienen.
Bitcointransacties worden digitaal opgeslagen in stukken data, zogeheten blocks die aan elkaar gekoppeld zijn als een ketting. Het transactielogboek wordt daarom blockchain genoemd. Deze blocks moeten aan strenge cryptografische voorwaarden voldoen, waaraan slechts kan worden voldaan door heel veel berekeningen uit te voeren. Het vinden van een block wordt steeds moeilijker naarmate er meer computers meerekenen. Daardoor blijft de snelheid waarop ze ontdekt worden ongeveer constant. Er wordt sinds het begin ongeveer iedere 10 minuten een block ontdekt die aan de voorwaarden voldoet. Je zou het kunnen zien als het zoeken naar een naald in een hooiberg, waarbij je de naald in gemiddeld 10 minuten kunt vinden. Komen er meer zoekers dan wordt de hooiberg na verloop van tijd groter gemaakt.
De miner die een block ontdekt (de naald vindt)
bepaalt welke transacties er in het block worden opgenomen en krijgt als
beloning nieuwe bitcoins, die dus vanuit het niets naar zijn
bitcoinadres(sen) worden gestuurd. Dit wordt de block reward
genoemd. In het begin waren dit 50 bitcoins per block, momenteel 12,5.
Dit neemt stapsgewijs af met de tijd: de beloning halveert iedere vier
jaar. Hierdoor is de totale hoeveelheid bitcoins die ooit wordt gecreëerd
beperkt tot 21 miljoen. Daarnaast krijgt de miner ook de vrijwillige
fees van alle bitcoin-transacties die hij in het block plaatst. Op de
lange termijn zullen de transactie-fees de block-reward geheel gaan
vervangen.
________________________
Enige kanttekeningen van mijzelf bij die Bitcoin
In tegenstelling tot "gewone"" valuta
en edelmetalen vertoont de waarde van de bitcoin tot nog toe geen
dalende momenten.
Wanneer zou de bitcoin kunnen devalueren?
Omdat het minen van Bitcoins veel energie vergt zou de waarde van de
bitcoin kunnen dalen als die energie veel goedkoper zou worden.
Het komt een beetje neer op de wet van behoud van energie.
Arme landen met veel zonuren zouden theoretisch schatrijk kunnen worden
als ze daar zonne-energie voor in zouden zetten. Omdat de totale energie
van alle in omloop zijnde bitcoins daarmee daalt, zou er inflatie op
kunnen treden.
Als dat daadwerkelijk het geval zou zijn dan komt de waardevermindering
ten goede aan die arme zonnige landen.
Dan zouden we net zo ver zijn als nu. Omdat het beleid van de ECB er
voor zorgt dat er een onzichtbare geldstroom gaat van Noord naar
Zuid.
Meer over die valse
euro, die niet is wat het lijkt.
In de praktijk zal het wel meevallen omdat de waarde niet direct zal
zakken maar de voortdurende stijging slechts wordt afgeremd.
________________________
Verder met de workshop:
Naast de creatie van bitcoins is mining essentieel
voor de veiligheid van het netwerk. Het verschijnen van een block
(bevestiging) betekent namelijk dat er een bepaalde, grote hoeveelheid
rekenkracht is besteed. Dit principe wordt proof of work
genoemd. Hiermee wordt voorkomen dat bitcoins dubbel kunnen worden
uitgegeven en het werpt een grote drempel op voor kwaadwillenden, omdat
zij heel veel geld zullen moeten investeren om meer rekenkracht te
hebben dan de rest.
Transacties en fees
Zoals eerder gezegd is het Bitcoin-netwerk decentraal: er is geen centrale instantie of server die de macht heeft. Iedereen die zich wil aansluiten kan dat doen. Elke computer die meedoet, maakt verbinding met een aantal andere computers. Transacties worden door iedere computer gecontroleerd en als deze voldoet aan de voorwaarden, doorgestuurd aan een aantal andere. Zo verspreiden transacties zich binnen seconden over de hele wereld. Elke computer houdt een kopie bij van het transactiegrootboek (de blockchain) en de transacties die nog opgenomen moeten worden (de mempool). Om je transactie opgenomen te krijgen in de blockchain je een kleine bitcoinhoeveelheid (bijvoorbeeld 0,0002 bitcoin) aan de miner. Je transactie concurreert met andere transacties in de mempool: over het algemeen worden de transacties met de hoogste fee in verhouding tot de transactiegrootte als eerste opgenomen in een block. Als het druk is op het netwerk kan het raadzaam zijn om een wat hogere fee te gebruiken dan normaal, omdat je transactie anders lange tijd onbevestigd kan blijven.
Bitcoinadressen
Bitcoinadressen bestaan uit een combinatie van meestal 34 cijfers en letters, beginnend met een 1. In tegenstelling tot wat veel mensen denken, komen bitcoinadressen niet voor in de blockchain. Een bitcoinadres is eigenlijk slechts een afgesproken notatievorm om mee aan te geven dat bepaalde bitcoins met een bepaalde toegangscode (de private key) uitgegeven kunnen worden. Ook een 3 komt voor als eerste teken, dit zijn meestal geavanceerde transacties: de manier waarop deze bitcoins uitgegeven kunnen worden is veelzijdig en moet bekend zijn bij de ontvanger.
De private key (en daarmee het bijbehorende bitcoinadres) wordt willekeurig gegenereerd. Dit kan omdat er zo veel mogelijke bitcoinadressen zijn, dat de kans dat er ooit een dubbele gegenereerd wordt verwaarloosbaar klein is. Door cryptografische technieken, waar we verderop meer over vertellen, kun je met een bitcoinadres controleren of deze bij een digitale handtekening hoort waarmee (bijvoorbeeld) bitcoins worden overgemaakt.
Inputs en outputs
Bitcoin bevat een eigen scripttaal waarmee veel meer mogelijk is dan alleen bitcoins overmaken. Een bitcointransactie bestaat uit een aantal in- en uitgangen (inputs en outputs), waar een bitcoinwaarde aan gekoppeld is. Je hoeft niet per se een hele bitcoin of veelvoud ervan over te maken: je kan bitcoins splitsen in eenheden tot 8 cijfers achter de komma. Nog niet uitgegeven bitcoins staan verdeeld over zogeheten unspent outputs. Wanneer je een bitcoinbetaling doet, gebruik je één of meerdere unspent outputs als inputs in jouw transactie en creëer je één of meerdere nieuwe unspent outputs met bijbehorende scripts.
Een unspent output kun je zien als een stapeltje digitale bankbiljetten in een digitale kluis, waarbij je aan de juiste voorwaarden moet voldoen (het script oplossen) om de kluis te mogen openen en de output te mogen besteden. Bij een standaard bitcointransactie (waarbij je bitcoinadressen beginnend met een 1 gebruikt) zijn deze voorwaarden vrij eenvoudig: je hebt de private key nodig om de kluis te openen door middel van een digitale handtekening. Vervolgens heb je het ontvangende bitcoinadres nodig om de voorwaarden waaronder de ontvanger de bitcoins kan uitgeven te specificeren. Wanneer je een input gebruikt in een transactie, moet je de digitale kluis helemaal leeghalen. Je kan vervolgens het totaal van de inputs splitsen naar zoveel outputs (nieuwe kluizen) als je wilt. Meestal stop je een deel van de bitcoins terug in een eigen kluis, omdat je niet precies de bitcoinhoeveelheid op de gebruikte unspent outputs wilt overmaken naar iemand anders.
Het is echter ook mogelijk om compleet andere voowaarden te stellen. Bijvoorbeeld een kluis waar twee private keys voor nodig zijn, of twee van drie; dit kan en gebeurt ook al, we noemen het multisignature transactions. Deze geavanceerdere 'kluizen' kun je over het algemeen herkennen in block explorers aan het bitcoinadres dat met een 3 begint. Je kan bitcoins in theorie ook in een kluis stoppen die iedereen kan openen, in een kluis beveiligd met een extra wachtwoord, een kluis die helemaal niet geopend kan worden (als je bitcoins aantoonbaar wilt vernietigen), of in een kluis met een tijdsslot. Ook kun je transacties maken waarin geen bitcoins verplaatst worden, maar waarmee je bijvoorbeeld een contract vastlegd in de blockchain. De mogelijkheden zijn eindeloos.
Beveiliging
De beveiliging van Bitcoin(transacties) is gebaseerd op het cryptografische principe van publieke en privé-sleutels (public-key cryptography). De private key is gekoppeld aan de public key, maar is niet te achterhalen door iemand die de public key heeft. Je kunt met de private key aantonen dat de public key van jou is. Beveiligd internetverkeer -te herkennen aan een slotje en https in het adres - maakt gebruik van een soortgelijk principe. Bij Bitcoin is echter geen sprake van encryptie en decryptie, alle versleuteling gaat één kant op: er is niets te ontsleutelen, alleen te controleren.
Maar eigenlijk is deze weergave al weer te simplistisch. Het bitcoinadres is namelijk gebaseerd op de hash van een public key. Bij het versturen van bitcoins hoef je dus zelfs niet de public key van de ontvanger te weten. Wanneer de ontvanger de bitcoins uitgeeft, zal deze zijn public key wel prijs moeten geven. Dit is één van de redenen (naast privacyoverwegingen) dat sterk afgeraden wordt om bitcoinadressen te hergebruiken: je haalt hiermee een deel van de beveiliging weg.
Van private key naar (P2PKH-)adres:
private key -> (ECDSA)
-> public key -> (hashing)
-> pubkeyhash -> (base58check)
-> bitcoinadres.
Tot slot
Pffff... Al met al behoorlijk complex, maar je hoeft dus geen expert te zijn om veilig bitcoins te bewaren of versturen. Door de werking van Bitcoin kun je een bitcoinadres genereren, de private key uitprinten en op een veilige plek bewaren. Vervolgens kan je bitcoins op je adres laten storten en over 10 jaar waar ook ter wereld met behulp van je geprinte key jouw bitcoins alsnog anoniem uitgeven. En er is dus nog veel meer mee mogelijk!
Meer weten over de techniek of over de mogelijkheden? Wellicht is Bitonic Academie interessant voor u of uw organisatie.