Mining- en Witnessrewards, uitleg over de Gulden infrastructuur.
Artikel door Aat de Kwaatsteniet
Inleiding
In dit verhaal probeer ik de ins en outs van de blockrewards van het Gulden systeem uit te leggen. Er bestaan twee soorten rewards, de mining reward en de witness reward. Het niveau is bewust niet te technisch gemaakt zodat ook de meeste niet technische gebruikers de basis kunnen bevatten. Maar ik ga er wel vanuit dat sommige termen de meesten wel bekend in de oren zullen klinken, zoals Mining, Blockchain e.d.
De Gulden Blockchain
Eén van de doelstellingen van Gulden is om een betaalsysteem te worden waarbij de boekhouding van Gulden bijgehouden wordt in een zogenaamde blockchain. Er worden met het Gulden betaalsysteem uiteraard transacties gedaan welke dan in het boekhoudsysteem opgenomen moeten worden. Als u een Gulden betaling verricht wordt deze transactie niet direct opgenomen in de blockchain. Het Gulden netwerk krijgt wel een seintje dat er een transactie klaarstaat om opgenomen te worden in de blockchain en de transactie wordt opgenomen in de wachtrij ook wel Geheugenpoel genoemd.
U kunt in uw eigen desktopwallet zien hoeveel transacties er in de wachtrij staan om opgenomen te worden in de blockchain. Zie hiervoor onderstaande figuur waar te zien is dat 1 transactie klaar staat.
De miners van Gulden zijn eigenlijk de boekhouders. Zij hebben de mogelijkheid om transacties toe te voegen aan de blockchain. Alle wachtende transacties worden in een blok samengevoegd tezamen met een controle getal (hash) van het vorige blok. De miner controleert of de transacties kloppen en aan de regels voldoen. Daarna wordt het blok ter controle ook nog voorgelegd aan een “witness”, de functie van de witness wordt verderop beschreven, en als die de boel ook goedkeurt wordt het blok aan de Guldenchain toegevoegd. En omdat het blok via het controle getal gekoppeld is aan het vorige blok noemt men deze constructie de Blockchain.
Gemiddeld wordt 1 keer in de 150 seconden een blok toegevoegd aan de blockchain. Alle miners proberen een, door het Gulden netwerk opgegeven, som op te lossen en degene die de oplossing als eerste vindt wordt toegestaan om het blok aan de chain toe te voegen. Als beloning vangt de miner een “mining reward”. Bij Gulden bedraagt die beloning 80 Gulden. We noemen dit een zogenaamd PoW (Proof of Work) systeem. Veel crypto munten, zoals Bitcoin, Litecoin en Dogecoin gebruiken dit zelfde systeem maar allemaal met kleine variaties op het basissysteem.
Het als eerste vinden van de oplossing van de som is een kwestie van geluk hebben want het is voor de miners een beetje gokken naar de uitkomst. Simpel gesteld kan je zeggen dat ze een willekeurig getal moeten nemen, daar een berekening op loslaten en dan de uitkomst van die berekening vergelijken met het antwoord van het Guldennetwerk. Maar je kunt het geluk een handje helpen door heel veel pogingen te doen om de som op te lossen. Dus hoe sneller een miner werkt hoe meer kans hij heeft om te winnen. De snelheid van een miner wordt uitgedrukt in Hashes per seconde. Als we het hebben over een miner met een snelheid van 100 Megahashes per seconde (100Mh/s) betekent het dat de miner per seconde 100 miljoen gokjes doet en sommen berekent per seconde om de juist oplossing te vinden.
De rekenkracht die alle miners opgeteld totaal inzetten geeft de Hashrate weer die op het Gulden netwerk losgelaten wordt. Op het moment van schrijven is de Gulden hashrate ongeveer 200GH/s, 200.000.000.000 hashes per seconde. En als u nagaat dat elk block ongeveer 150 seconden op zich laat wachten kunt u nagaan hoeveel rekenkracht er tegenaan gegooid wordt om de Gulden blockchain draaiende te houden.
Difficulty
Omdat de snelheid van het oplossen van de som een combinatie is van snelheid van de miner, de moeilijkheid van de som, de hoeveelheid miners en een portie geluk, varieert de tijd die benodigd is om de som op te lossen. Soms lukt het binnen 20 seconden en soms duurt het 10 minuten. Gemiddeld wil Gulden echter uitkomen op 150 seconden per gevonden blok. Omdat te bewerkstelligen kan het Guldennetwerk autonoom beslissen om de som moeilijker of makkelijker te maken. Als er veel miners met snelle apparatuur aan het minen zijn en de som dus snel opgelost wordt besluit het netwerk dat de som bij het volgende blok moeilijker wordt gemaakt en andersom als veel miners er het bijltje bij neergooien zal het gemiddeld te lang duren voordat de som opgelost wordt en besluit het netwerk dat de sommen eenvoudiger kunnen worden gemaakt. In de formule om de som te genereren zit een parameter die “difficulty” heet en die parameter kan hoger of lager gezet worden. Dat is een continu proces. Dactual geeft daar een mooi plaatje van.
Mining equipment
Minen van Gulden wordt gedaan met specialistische mining apparatuur. Vroeger kon dat gedaan worden met je PC en later met je grafische kaart maar die tijden zijn voorbij. De snelheid van het minen moet nu erg hoog zijn om profijtelijk te kunnen gebeuren. Daarvoor zijn de “ASIC” miners ontwikkeld, geheel gespecialiseerde apparatuur waar je alleen mee kan minen. Alleen met dergelijke apparatuur kan men Gulden minen en daarbij winst maken. Want winst maken is toch de drijfveer voor de meeste miners.
Miners zijn nodig om de blockchain opgang te houden zoals we in de voorgaande tekst te lezen is. En het liefst heeft het Guldennetwerk zoveel mogelijk verschillende miners op verschillende plaatsen om bestand te zijn tegen uitval of aanvallen of frauderende miners.
De hoeveelheid miners die op dit moment op het Guldennetwerk is aangesloten is niet met zekerheid te zeggen. We kunnen wel het één en ander beredeneren. We weten dat de totale Hashrate van Gulden 200 GH/s bedraagt. We weten ook dat de modernste minerapparatuur voor Gulden 0,5 GH/s produceert. Er zijn dus minimaal 400 van die apparaten nodig om de totale hashrate te bereiken. Veel miners zullen wel met meerdere apparaten minen maar ook heel veel miners zullen met minder moderne miners minen waardoor er weer meer miners nodig zijn om de totale Hashrate te bereiken. En hoewel we geen direct bewijs hebben kunnen we best stellen dat ongeveer 100–400 miners actief Gulden minen. In het algemeen kan gezegd worden hoe meer miners actief zijn op het Gulden netwerk hoe stabieler het netwerk draait. Miners minen graag in een Pool. Dat wil zeggen dat ze hun rekenkracht bundelen zodat ze meer kans maken om een blok te vinden. Hier ziet u een plaatje met de mining pools die op het moment van schrijven actief waren.
Zoals eerder gezegd is de drijfveer voor een miner winst maken. Als er veel winst valt te halen zal dat een aanzuigende werking hebben op miners en zal de totale hashrate dus toenemen, maar als de winst tegenvalt zullen er miners zijn die de stekker eruit trekken of een ander muntje gaan minen.
De koers is nu €0,017 met een hashrate van 200 GH/s terwijl een maand geleden de koers rond €0,022 was en de Hashrate 280 GH/s bedroeg. Je kan stellen dat er via de hoeveelheid miners altijd automatisch een balans ontstaat in opbrengst en kosten. Als de koers dus een factor 3 omhoog gaat zal de hashrate dat ook ongeveer doen. Maar ook als de reward gehalveerd wordt zal de hashrate zakken naar 100 GH/s want dan is de balans weer in evenwicht. Er zal dus altijd een balanspunt ontstaan waarbij het voor de gemiddelde miner net profijtelijk genoeg blijft om Gulden te minen.
Om een voorbeeld van winst/verlies te geven aan de hand van de stroomkosten van het minen (wat de grootste kostenpost is naast afschrijving van de apparatuur)
Aan stroom kost het minen (gerekend met de modernste miners) 7,68 MWh per dag. Elke dag komen er door mining 46080 Gulden op de markt. Om één Gulden te minen wordt dus 7.680.000 Wattuur / 46080 = 167 Wattuur verbruikt. Bij een elektriciteitsprijs van €0,25 per kWh (particulier in Nederland) kost een gulden om te minen dus €0,0416. Maar als je stroom maar 5 cent kost (in Canada/China/India enz.) kost je Gulden aan stroom maar €0,008 terwijl een Gulden nu €0,017 opbrengt. Je kan uitrekenen dat in de huidige markt het omslagpunt ongeveer bij €0,10 per kWh ligt. Dus in Nederland minen levert voor particulieren verlies op maar als je een opstelling hebt waar de stroom goedkoper is kan je winst draaien.
Witness systeem
Witness is een systeem wat door Gulden zelf is ontwikkeld om de Gulden blockchain zo veilig mogelijk te maken en om betalingen te kunnen verrichten zonder dat men uren moet wachten op de zogenaamde confirmatietijd. Dat is de tijd die benodigd is om een transactie onveranderbaar op te nemen in de blockchain. Waar bijna alle crypto munten werken met 6 blokken confirmatietijd (dus 6 x een bloktijd moeten wachten tot je zeker bent van de transactie) is Gulden klaar na 1 confirmatieblok.
Maar hoe werkt het witness systeem. Zoals eerder verteld controleert de miner de transacties, maar wie controleert de miners? Dat zijn nu simpelweg gezegd de witnessen.
Transacties moeten goedgekeurd worden door de miners en het werk van de miners wordt weer door de Witness accounts verder verwerkt en gecontroleerd.
Witness accounts zijn accounts waarin Gulden voor kortere of langere tijd zijn vastgezet. De tijdspanne is minimaal 1 maand tot maximaal 3 jaar. Deze Gulden zijn gedurende die periode door de eigenaar niet meer te verplaatsen en zijn dus in feite buiten roulatie gebracht.
Alle witness accounts doen bij ieder blok mee met een loterij en de winnaar mag als “getuige” optreden bij het goedkeuren van de transacties in het betreffende blok. Hoe vaak een witnessaccount de loterij wint wordt bepaald door de “zwaarte” oftewel de witnessweight van het account. Hoe meer Gulden in het witness account geplaatst worden en hoe langer de duur van de vastzet periode is, hoe hoger de witnessweight van het account is. Voor dit werk ontvangt de witness, bij uitverkiezing dus, een beloning de zogenaamde witness reward die 20 Gulden bedraagt. Als een witness is uitverkozen dan kan hij de volgende 100 blokken niet weer gekozen worden. Dit is één van de mechanismen om te voorkomen dat zware accounts altijd aan de beurt komen en kleinere accounts bijna niet. Een ander mechanisme is de voorwaarde dat de witnessweight van een account nooit zwaarder mag zijn dan 1% van de totale ingelegde networkweight. De witnessweight van een zwaar account wordt gewoon afgetopt op 1% van de totale networkweight.
Dit gecombineerde werk van miners en witness accounts noemen we bij Gulden “Proof of Work and Witness” oftewel PoW2
De wisselwerking tussen miner en witness
- Er zijn twee verschillende klassen van blokgeneratoren op het netwerk; de PoW-miners en de witnessaccounts.
- Het minen van blokken wordt door PoW miners gedaan op de gebruikelijke manier die iedereen gewend is van PoW-systemen.
- Wanneer een miner een blok vindt, wordt die aan het netwerk voorgelegd.
- Nodes van het Gulden netwerk valideren, accepteren en geven het blok door zoals gewoonlijk, maar het wordt nog niet toegevoegd aan het uiteinde van de blockchain.
Dit blok bevindt zich op dit punt in wat we een “pre witness state” noemen.
- Bij ontvangst van een pre-witnessed blok zal een uitgekozen witness het blok ondertekenen met behulp van zijn private-key die het omzet in een witness blok.
- De eerste stap van de witness werkzaamheden bestaat uit het toevoegen van extra gegevens aan het blok, dit omvat een tijdstempel van de witness, eventuele extra transacties (met inachtneming van de bestaande limiet voor de grootte van het blok) en een transactie om de witnessfee uit te betalen.
- De witness probeert vervolgens het blok te ondertekenen.
- Zodra een geldig witnessblok is aangemaakt, wordt het opnieuw uitgezonden naar het netwerk.
- Zodra de nodes een geldig witnessblok ontvangen, voegen ze het toe aan het top van de blockchain en alles verloopt zoals gewoonlijk vanaf hier opnieuw, PoW miners te proberen om een nieuw blok te minen, en de cyclus…herhaalt zich.
>50% attack
Dit PoW2 systeem levert een zeer veilig werkende blockchain op die bestand is tegen de grootste aanvallen.
De bekendste vorm van een blockchain aanval is de zogenaamde “doublespend via >50% attack”. Hierbij zal een kwaadwillende persoon of groep van personen proberen om meer dan 50% van transactiegoedkeuringscapaciteit in handen te krijgen waarbij er dus een kans van 1 op 2 ontstaat dat de aanvallers een Gulden tweemaal kunnen uitgeven (na 1 bevestiging) zonder dat de andere transactiegoedkeurders daar wat aan kunnen doen of zelfs maar iets van merken.
Het goedkeuren van een transactie wordt dus door twee mechanismen bepaald, zowel door de miners alsook de Witness. Om dan een >50% attack te kunnen uitvoeren op de Gulden blockchain is het nodig om beide systemen aan te vallen. En om evenveel kans op succes te krijgen voor een double spend als bij de enkel transactiegoedkeuring systemen is het dus nodig om niet >50% van de miningpower te controleren of >50% van het aantal munten in witness accounts te bezitten maar van beide systemen meer dan 71%. (0,71 * 0,71 = 0,5 dus 50% kans).
Bij Gulden is de miningcapaciteit op dit moment niet erg groot. Met een betrekkelijk laag bedrag is voldoende miningcapaciteit te huren om meer dan 71% van de miningcapaciteit te bewerkstelligen gedurende één uur of langere tijd. Maar het witness systeem is een ander verhaal. Er zijn op het moment van dit schrijven ongeveer 80 miljoen Gulden in witness gezet in 768 verschillende accounts met een totale witnessweight van 660.000.000.
Om dan een 71% meerderheid te krijgen in witnessweight zul je als aanvaller dus minstens een witnessweight van (1/0,71)*660.000.000=930.000.000 moeten behalen en dat te verspreiden over (1/0,71)*768=1081 accounts. Dit kan bijvoorbeeld door 1100 accounts aan te maken waarin 250.000 Gulden worden vastgezet voor 1 maand. Dat is meer dan de helft van alle Gulden die in omloop zijn.
Het kan ook met minder Gulden maar dan moet de aanvaller de Gulden langer vastzetten in witness. Bijvoorbeeld 1100 accounts met 120.000 Gulden vastzetten voor 3 jaar. Dat geeft dezelfde totale witnessweight. Naast dat dit schier onmogelijk is zou de koers van de Gulden sky high gaan als er zoveel Gulden gekocht moeten worden door de aanvaller. Een dergelijke aanval is dus theoretisch wel, maar in werkelijkheid niet mogelijk.
Andere “aanvallen” en onvolkomenheden
De >50% attack is de grootste boosdoener wat een blockchain project kan treffen maar er zijn meer ontwrichtende “aanvallen” waar de witness methode van Gulden korten metten mee maakt. Het voert te ver om ze allemaal te behandelen maar ik noem ze hier en dan kan de geïnteresseerde lezer op internet verder lezen.
• “>50% attacks”: Netwerkbestendigheid tegen >50% aanvallen is sterk toegenomen, tot het punt dat 1-confirmatie transacties veilig genoeg zijn voor de meeste doeleinden.
• “Selfish mining”: Mogelijkheid van selfish mining is aanzienlijk verminderd,
in principe zelfs niet mogelijk.
• DoS via mining van lege blokken: De mogelijkheid om dit te realiseren is praktisch uitgesloten
• Foutieve/onnauwkeurige bloktijden: Nauwkeurigheid van de bloktijden is sterk toegenomen omdat de tijd nu wordt gecontroleerd door de witness werkers en niet door de PoW mijnwerkers, die op hun beurt zorgen voor een betere werking van het difficulty algoritme.
PoS gerelateerde onvolkomenheden
Omdat Witness essentieel anders is dan PoS (Proof of Stake) worden ook typische PoS onvolkomenheden bestreden.
• PoS onbeveiligde private keys: Private keys zijn altijd beveiligd in witness
• “Nothing at stake issue”: Omdat er altijd voldoende PoW hash power aanwezig is kan deze “Nothing at stake issue” niet ontstaan.
• PoS “Stake buildup”: De leeftijd van de munt is niet gebruikt in Witness Daarom is het Witness systeem immuun voor deze fout.
• PoS “Stake grinding”: Dit effect kan alleen optreden als er geen PoW activiteit zou zijn. Witness en PoW zijn onlosmakelijk verbonden met elkaar.
• PoS “Old private keys”: Door de aanwezigheid van PoW is het alleen mogelijk om met heel veel hashpower dit voor elkaar te krijgen.
Waarom zouden mensen mee willen doen aan witness? We hebben natuurlijk de Gulden enthousiastelingen die Gulden op alle manieren willen steunen en en hun Gulden dus best voor langere tijd willen vastzetten.Daarnaast heb je mensen die er gewoon een voordeel in zien dat ze “rente” vangen op hun kapitaal in Gulden. In het begin van het systeem was dat een fantastisch rendement van wel 6–15% op jaarbasis. Maar doordat er ontstellend veel geld in gelegd werd is dat rendement nu gedaald tot 1,5–7,5%. Toch altijd nog fors meer dan u bij een bank kunt krijgen.
Inflatie
Er komen door mining 46080 Gulden per dag bij en ook nog 11520 Gulden door witnessen. Net zo lang totdat het maximum van 1,68 miljard Gulden is bereikt (~in het jaar 2075). Nu zijn er ongeveer 488 miljoen Gulden op de markt. We kunnen zeggen dat de inflatie van Gulden ongeveer 4,3% bedraagt. We spreken hier over inflatie maar dat is eigenlijk niet juist. Inflatie(letterlijk ‘opblazen’) of geldontwaarding is een stijging van het algemene prijspeil in een economie. De hier genoemde inflatie heeft echter niet veel te maken met de waarde van de Gulden of prijspeil in de Gulden economie. De prijs van Gulden wordt uiteraard wel beïnvloed door de hoeveelheid Gulden die iedere dag op de markt komt maar de prijs van Gulden wordt grotendeels bepaald door vraag en aanbod op de Gulden markt. En te zien is dat de omzet op deze markten dusdanig groot is dat de toevloed van nieuwe Gulden normaal door de markt geabsorbeerd kan worden.
Is de inflatie bij Gulden eigenlijk groot? Als we naar andere munten kijken dan zien we dat dat wel meevalt. Een succesvolle munt als Dash heeft een inflatie van 8%. Litecoin 8,9%, Dogecoin 4,5%, Bitcoin 3,8%.
Hierboven een lijst met inflatiepercentages van verschillende muntjes die ook een betaalsysteem willen vormen. Het inflatiepercentage is berekend ten opzichte van de hoeveelheid munten die nu verhandelbaar zijn. Hierdoor treedt procentueel gezien ieder jaar een verdunning van de inflatie op. Over 10 jaar is de inflatie van Gulden nog 2,9%.
Waarom is bij de ontwikkeling van Gulden voor dit systeem van inflatie gekozen? Dat is eenvoudig om Gulden zoveel mogelijk te verspreiden onder de gebruikers. Het is de bedoeling dat Gulden een betaalsysteem wordt en dat is gebaat bij zoveel mogelijk gebruikers. Om de Early adopters niet te veel te bevoordelen is gekozen voor deze vorm van distributie. Langzaam maar zeker worden er meer gebruikers actief en wordt de markt gevuld met Gulden.
Dit systeem van mining rewards zorgt voor een gelijkwaardige en eerlijke distributie van de munt en wordt gebruikt door veel serieuze munten zoals Bitcoin, Litecoin, Dash, Dogecoin enz. Dit in tegenstelling tot 90% van de coins die via een ICO op de markt gekomen zijn. Deze munten zijn in één keer maximaal gemined en de “founders” hebben ze dus allemaal in bezit en verkopen ze aan gegadigden. We zien dus een enorme hoeveelheid van deze munten in bezit zijn van een paar founders die ermee kunnen doen wat ze willen. In de meeste gevallen zijn dit soort munten alleen ontworpen om de founders in één klap schatrijk te maken en zodra de ICO achter de rug is zie je dan ook vaak dat de ontwikkel activiteit rond de munt stil valt want het doel is al bereikt.
Ik hoop dat u aan deze uitleg wat hebt gehad en als u meer wilt weten over Gulden kunt u op de website terecht of hier op GuldenBites verder lezen.