Als je ook maar een beetje het technologienieuws van het afgelopen jaar hebt gevolgd, dan ben je zeker al bekend met Bitcoin. Digitale valuta, ook wel cryptocurrencies genoemd, waren opeens het onderwerp van de dag: de waarde van een bitcoin was in één maand tijd meer dan vervijfvoudigd tot een piek van maar liefst 1.240,- dollar. Het is onduidelijk of Bitcoin ooit een volledig geaccepteerd betaalmiddel gaat worden, maar het wordt door veel mensen erg serieus genomen. Het heeft tevens de interesse gewekt van handelaren die niet alleen in Bitcoin speculeren, maar ook in andere cryptovaluta. Ook altijd al zelf je eigen digitale munten willen slaan?

Cryptografie
Op het eerste gezicht klinkt een digitale munteenheid onmogelijk: hoe zorgen we ervoor dat elke munt uniek is en maar één keer kan worden uitgegeven? En als we dat probleem hebben opgelost, hoe zorgen we dan ervoor dat niemand munten kan namaken of vervalsen? In het geval van cryptovaluta, zoals de naam al aangeeft, lossen we dit probleem op door middel van cryptografie. Je kan je afvragen waarom dat is. Bitcoin is toch een munteenheid en niet een manier om geheime boodschappen te versturen? Het punt is dat de problemen die we moeten oplossen voornamelijk te maken hebben met het beveiligen van transacties. Het voorkomen van diefstal, het verifiëren van authenticiteit, etcetera. In de echte wereld gebruiken we daarvoor sloten, kluizen en handtekeningen. In de digitale wereld gebruiken we cryptografie.

Transacties
In tegenstelling tot traditionele munteenheden heeft Bitcoin geen centrale bank. Het systeem is volledig afhankelijk van een peer-to-peer netwerk voor het afhandelen en valideren van transacties. Dit gaat via een algemeen gedeeld grootboek, de ‘blockchain’, die met het hele netwerk wordt gedeeld. Bitcoins zijn in feite niets meer dan een SHA-256 hash (een gigantisch getal), dat wordt opgeslagen in een speciaal bestand, de ‘wallet’. Elke wallet heeft een adres, de publieke sleutel in een public-private key paar, die je kunt zien als een soort rekeningnummer. Als Alice een transactie wil doen met Bob, dan ondertekent ze haar transactieverzoek met haar privé sleutel. Iedereen in het netwerk kan dan verifiëren dat het transactieverzoek van de rechtmatige eigenaar afkomstig is, door de publieke sleutel te gebruiken.

Mining
Een verzameling transacties, een ‘block’, wordt naar het peer-to-peer netwerk verzonden om gevalideerd te worden. Een block is gevalideerd als iemand een SHA-256 hash van het block heeft gevonden dat voldoet aan bepaalde eisen (het moet beginnen met een van tevoren vastgesteld aantal nullen), waarna het een uniek nummer krijgt toegewezen (een ‘nonce’) en aan de blockchain wordt toegevoegd. Met andere woorden, er is dan een consensus binnen het netwerk dat de transacties zijn goedgekeurd. De complete historie van alle transacties wordt dus in dat grootboek opgeslagen. Het zoeken naar een SHA-256 hash met de juiste eigenschappen is computationeel zeer intensief en als beloning voor het harde werk krijgt de vinder van de hash een aantal nieuw aangemaakte bitcoins en/of een vergoeding van de transactiekosten. Dit proces van het zoeken naar validatie hashes heet ‘mining’ en het is de enige manier waarop nieuwe bitcoins de economie binnenkomen. Als je dus nieuwe munten wilt slaan, moet je gaan minen.

Moeilijkheidsgraad
Een belangrijk aspect van het minen, is dat blocks worden gevalideerd met een gecontroleerde snelheid: ruwweg elke 10 minuten wordt een nieuwe block hash gevonden. Omdat de hoeveelheid rekenkracht fluctueert, moet de moeilijkheidsgraad van het vinden van een nieuwe hash worden aangepast om die snelheid ongeveer gelijk te houden. Dit gaat door de eisen aan gevonden hashes aan te passen: hoe meer aanwezige rekenkracht, hoe meer beginnende nullen een block hash moet hebben. Omdat het vinden van een geschikte hash neerkomt op ‘brute force’ -zoveel mogelijk mogelijkheden proberen en hopen dat je geluk hebt- vereist minen een gigantische hoeveelheid rekenkracht. En hoe meer rekenkracht beschikbaar is op het netwerk, hoe meer rekenkracht nodig is om een hash te vinden.

Waarom minen?
Als je zelf wilt minen, heb je dus niets meer dan brute rekenkracht nodig. Vanzelfsprekend is de grootste kostenpost elektriciteit: hoe meer rekenkracht je aan minen wijd, hoe meer elektriciteit je zal verbruiken. In het begin van Bitcoin deden miners hun werk vaak uit bijna altruïstische overwegingen: het voortbestaan van de digitale munt. Inmiddels is minen big business en mede dankzij de voordelige koers wordt hier goed geld aan verdiend. In de begindagen, toen de moeilijkheidsgraad nog erg laag was en de beloning nog hoog (de beloning halveert om de zoveel tijd), kon je in korte tijd heel veel bitcoins binnenhalen. Deze bitcoins waren toen nog niet zoveel waard, maar daar is inmiddels dus verandering in gekomen.

Wapenwedloop
Door de toenemende waarde en populariteit van Bitcoin is een ware wapenwedloop ontstaan. De benodigde hardware om winstgevend te zijn, is daarmee ook steeds gecompliceerder geworden. Eerst werden CPU’s gebruikt, maar die werden al snel vervangen door de meer energiezuinige en snellere GPU’s. GPU’s werden vervangen door de nog efficiëntere FPGA’s (field-programmable gate arrays), die vervolgens weer plaats moesten maken voor hardware die speciaal is ontworpen voor minen, zogenaamde ASICs (application-specific integrated circuits). Zoals gezegd, hoe meer aanwezige rekenkracht, hoe hoger de moeilijkheidsgraad, waardoor je met een CPU nu meer geld kwijt bent aan elektriciteit dan je ooit aan Bitcoins zult kunnen verdienen. Met andere woorden, om nog serieus bitcoins te minen, moet je flink in de buidel tasten.

 
ASIC’s

 

 Altcoins
De ontstane wapenwedloop toont een zwakte van Bitcoin: om minen winstgevend te houden moet je steeds weer in nieuwe hardware investeren om de moeilijkheidsgraad bij te houden. Bovendien is Bitcoin niet bepaald milieuvriendelijk: er wordt een hoop energie verbruikt met nutteloos zoeken naar een speld in een hooiberg. Daarom zijn recentelijk ook nieuwe spelers op de markt gekomen, die nieuwe alternatieve cryptovaluta hebben geïntroduceerd, de zogenoemde altcoins. Er zijn inmiddels meer dan 12 miljoen bitcoins in omloop, ter waarde van rond de 7,5 miljard euro (afhankelijk van de koers). Bitcoin is daarmee met gemak een veelvoud waard van alle altcoins samen genomen en duidelijk de belangrijkste speler, waar zelfs je grootouders inmiddels wel eens van hebben gehoord. Toch hebben de altcoins een zekere aantrekkingskracht: als je nu pas denkt aan minen, dan ben je al veel te laat voor de Bitcoin hype. Wanneer je daarentegen nu de juist voor altcoin kiest, dan kan je misschien goed geld verdienen. Een aantal altcoins heeft ook echt voordelen: ze zijn energiezuiniger, hebben een hoger plafond (er zullen nooit meer dan 21 miljoen bitcoins bestaan) en altcoins zijn niet zo kwetsbaar voor een wapenwedloop waarbij steeds gecompliceerdere hardware benodigd is.

Litecoin en alternatieven
Het belangrijkste alternatief is Litecoin. Litecoin lijkt erg op de illustere voorganger qua technisch ontwerp, maar bevat een aantal slimme aanpassingen. Zo is de snelheid waarbij block hashes worden gevonden vastgesteld op 2,5 minuut, waardoor transacties veel sneller kunnen plaatsvinden en de munteenheid sneller groeit. Het plafond is daarnaast een stuk hoger gelegd en het SHA-256 hash algoritme is vervangen door scrypt. Scrypt is minder geschikt voor specialistische hardware, omdat het meer geheugen nodig heeft. Waar Bitcoin qua waarde het equivalent van goud is, ziet Litecoin zichzelf als zilver. Ten tijde van het schrijven van dit artikel is een litecoin rond de 16 euro waard en is de moeilijkheidsgraad een stuk lager. Naast Litecoin bestaan nog een aantal serieuze alternatieven. Zo zijn er Peercoin en Nxt, die als doel hebben milieuvriendelijker te zijn. Een systeem dat is gebaseerd op domeinnamen, staat bekend onder de naam Namecoin. Tot slot is er een munt die helpt met het zoeken naar priemgetallen voor de wetenschap, genaamd Primecoin.

Memecoins
Bitcoin, Litecoin en de vergelijkbare alternatieven bestaan in eerste instantie vanuit een idealistisch principe. Er is minder overheidscontrole door het gebrek aan een centrale bank en er is meer anonimiteit en privacy in transacties. Het maken van een cryptocurrency hoeft echter niet om die redenen te bestaan. Er zijn de afgelopen tijd een aantal interessante digitale valuta ontstaan die in de eerste plaats eigenlijk waren bedoeld als een grap. Het bekendste voorbeeld hiervan is Dogecoin, dat als mascotte een Shiba Inus hond heeft. Dogecoin is gebaseerd op het ‘Doge’ meme, het populairste meme van vorig jaar (ja, er bestaan serieuze ranglijsten voor de populariteit van memes). In een paar weken tijd werd de totale Dogecoinmarkt meer dan zestig miljoen dollar waard en won het enorm veel aan populariteit door een campagne om het Jamaicaanse bobslee team te financieren voor de Olympische spelen. Een andere meme-gebaseerde munteenheid was Coinye West, dat een cartoonfiguur van Kanye West als mascotte had. Helaas voor de makers kon de rapper hier niet om lachen en een rechtszaak bracht een einde aan het kortstondige succes van deze munt. Mede dankzij deze twee satirische cryptovaluta kwamen altcoins echter wel goed in beeld in de media, waardoor nu veel meer interesse is in alternatieven voor Bitcoin. Een goed moment om in te stappen, zou je zeggen.


Mijngereedschap
Om zelf te beginnen met minen, is wel wat gereedschap nodig. Een redelijke GPU is een vereiste voor de meeste altcoins, dus als je nog een oude computer met een goede grafische kaart hebt, dan kan je meteen van start. Als je wat serieuzer wilt minen, dan kan je online ASICs voor Bitcoin aanschaffen. Zodra je de juiste hardware hebt, moet je de bijbehorende software downloaden. Er bestaan grafische programma’s, maar de grafische weergave kost alleen maar energie, dus is het beter om een command-line programma te gebruiken. Het cgminer programma is verreweg het meest populaire programma (tenzij je een Nvidia grafische kaart hebt, dan moet je cudaminer hebben) en heeft als groot voordeel dat het werkt voor Bitcoin, Litecoin, Dogecoin en een grote verzameling andere altcoins.

Voorbeeld cgminer

Cgminer
De nieuwste versie van cgminer ondersteunt geen GPU’s meer en is alleen gericht op ASICs, dus neem versie 3.7: git clone https://github.com/ckolivas/cgminer/tree/3.7

Zorg dat je de drivers van je grafische kaart(en) en bijbehorende software zoals AMD Catalyst hebt geïnstalleerd. Vervolgens installeer je cgminer met de juiste opties:

cd cgminer
./autogen.sh
./configure –enable-opencl –enable-scrypt
make
sudo make install

Je kunt nog extra opties meegeven via CFLAGS om de drivers van je grafische kaart optimaal te gebruiken en afhankelijk van je precieze hardware moet je misschien nog meer –enable opties toevoegen. Vervolgens kijken we of cgminer onze hardware succesvol detecteert, via “cgminer –n” zie je een lijst van de aanwezige grafische kaarten en ASICs. Je bent nu klaar om te beginnen met minen.

Pools
Om een block hash te vinden en daarmee te verdienen moet je, zeker als de moeilijkheidsgraad erg hoog ligt, behoorlijk wat geluk hebben. Om het risico te verdelen bestaan er pools, waarbij iedereen samenwerkt en de winsten eerlijk verdeeld worden door alle pool deelnemers. Er bestaat een groot aantal pools voor de grotere cryptocurrencies. Een bekende pool is bijvoorbeeld de Slush pool voor Bitcoin, WeMineLTC voor Litecoin en Dogepool voor Dogecoin. Je registreert je op de website van je gewenste pool en maakt zoveel ‘workers’ aan als je zelf wilt (één worker per computer). Vervolgens kan het minen beginnen, in dit voorbeeld op de Slush pool:

cgminer -o stratum+tcp://api.bitcoin.cz:8332 -u user.work
-p password -w 256 -v 2 -I 9

Als de miner goed werkt, zie je een steeds langer wordende lijst met ‘Accepted XXXX’, waarbij XXXX staat voor een transactienummer. Voor Litecoin en Dogecoin moeten we –scrypt als optie meegeven.

Tweaken en overclocken
We hebben het hier slechts over de standaardinstellingen gehad. Je kunt alles eindeloos tweaken om te zorgen dat cgminer perfect samenwerkt met je hardware en je kunt je hardware overclocken door de juiste instellingen mee te geven. Voor Litecoin kan je optimale instellingen en prestaties van een grote verzameling GPU’s bekijken op https://litecoin.info/Mining_hardware_comparison. Uiteindelijk kan je de opties het makkelijkste meegeven via een apart configuratiebestand en dat meegeven via de –config optie.

Kosten baten
Voordat je gaat minen, moet je wel goed nadenken waarom je het doet. Als het je gewoon interessant lijkt om over wat digitale valuta te beschikken, is het soms voordeliger om het gewoon online te kopen. De rekenkracht die je nodig hebt voor minen, betekent dat je een flinke energierekening op de mat krijgt. Als je dus gaat minen om geld te verdienen, moet je speculeren op de toekomstige waarde van je valuta en over geschikte hardware (AMD ATI grafische kaarten zijn bijvoorbeeld beter dan Nvidia) en goedkope energie beschikken (bijvoorbeeld als je inclusief woont). De winstgevendheid kan je uitrekenen door online te zoeken naar ‘profitability calculators’ voor je gewenste munteenheid. Hou rekening met het feit dat de moeilijkheidsgraad steeds omhoog gaat en winstgevende hardware over een paar maanden dus tot verliezen kan leiden. Maar als het mee zit, ben je misschien binnen de kortste keren een altcoin miljonair. Succes!

Links
Bitcoin – bitcoin.org

Litecoin – litecoin.org

Dogecoin – dogecoin.com

Slush pool – mining.bitcoin.cz

Cgminer – github.com/ckolivas/cgminer