Gulden, blockchain zoals blockchain bedoeld is

Aat de Kwaasteniet
12 min readApr 27, 2019

--

bijgewerkt op 28 oktober 2019

english version here

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 blijkt dat het kennisniveau over dit systeem niet erg hoog is zodat een simpele uitleg van waarde kan zijn voor (potentiële) gebruikers. 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 samen te voegen in een datablok en toe te voegen aan de blockchain. Alle wachtende transacties worden in een datablok 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 nieuwe datablok 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 50 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 1 Megahashes per seconde (1Mh/s) betekent het dat de miner per seconde 1 miljoen gokjes doet en sommen berekent per seconde om de juist oplossing te vinden.
De rekenkracht die alle miners opgeteld totaal inzetten geeft de Totale Hashrate weer die op het Gulden netwerk losgelaten wordt. Op het moment van schrijven is de Gulden hashrate ongeveer 1100MH/s, 1.100.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.

Gulden minen

Vanaf het begin van de Gulden in 2014 was het scrypt-algoritme in gebruik voor het minen van Gulden, maar het kreeg zoveel nadelen dat er werd besloten om op zoek te gaan naar een geschikt alternatief voor scrypt. Het grootste nadeel van het scrypt algoritme was de aanwezigheid van scrypt jumppools. Jumppools zijn pools van miners die met een zeer grote hashrate Gulden gaan minen als de moeilijkheidsgraad laag is, zodat ze gemakkelijk en snel een aantal blokken kunnen minen. Zodra de moeilijkheidsgraad weer omhoog gaat “springen” ze naar een andere munt om dezelfde truc te doen. Het gedrag van deze poelen veroorzaakte een zeer wisselende hashrate en dus een wisselende bloktijd. Het gebeurde regelmatig dat er binnen een minuut 5–6 blokken werden gevonden en daarna 15 minuten niets. De Jumppools domineerden het Gulden Netwerk en dat was niet goed voor de stabiliteit en decentraliteit van het netwerk.

SIGMA

Sinds 17 oktober 2019 heeft het Gulden-team het Sigma-algoritme geïmplementeerd en sindsdien is het mogelijk om Gulden solo te minen zonder extra hardware.
Sigma is een door Gulden ontwikkeld algoritme gebaseerd op het Argon-algoritme. Sigma is ASIC- en GPU-resistent en kan alleen worden gebruikt voor CPU-mining. Sigma kan worden ingesteld, beheerd en geactiveerd via de desktop portemonnee van Gulden. Hiermee brengt Gulden het crypto mining terug naar de normale gebruiker en is de decentraliteit van Gulden weer verbeterd. De grote hoeveelheid van “kleine” miners zorgt ook voor een stabiel werkend netwerk. Op het moment van schrijven is het aantal miners ongeveer 300–400, waarvan de grootste miner ongeveer 4% marktaandeel heeft ten opzichte van de totale hashrate op het Gulden netwerk.

Het doel van een miner is om winst te maken. Als er veel winst te maken valt, zal dat een wervend effect hebben op de miners en zal de totale hashrate dus toenemen, maar als de winst teleurstellend is, zullen er miners zijn die de stekker eruit trekken of een andere munt gaan minen. Er zal dus altijd een balanspunt zijn waar de gemiddelde miner nog net winstgevend kan minen.

Om een voorbeeld te geven van winstgevendheid op basis van de elektriciteitskosten (Elektriciteit is de grootste kostenpost naast de afschrijving van de apparatuur) van een miner kunnen we de geboekte winst eenvoudig berekenen. We gebruiken hiervoor metingen en berekeningen van een beperkt aantal computers / processoren. Gebruik het dus niet als ultieme waarheid maar meer als vuistregel!

tabel 1

We kunnen zien dat het gemiddelde stroomverbruik ongeveer 92 Watt is met een gemiddelde hashrate van 2,5Mh/s. Op het moment van schrijven wordt de totale hashrate geschat op ongeveer 1100Mh/s. We weten ook dat er elke dag 28800 Gulden wordt gemined. (een vooraf bepaalde waarde uit het Gulden netwerk). Omdat de mining van Gulden een lineair proces is kunnen we zeggen dat de winst/dag 2,5/1100*28800=65 Gulden is. Met de huidige prijs van Gulden is dat ongeveer € 0,52 waard.
Om een hele dag in Nederland te minen (€0,20/kWh) kost 0,092kW * 24 uur * €0,20 = €0,43. De winst per dag is dus € 0,52 — € 0,43 = € 0,09 per dag.

Energieverbruik

Crypto, en Bitcoin in het bijzonder, wordt er vaak van beschuldigd dat het zo’n grote hoeveelheid energie verbruikt. Bij Gulden ligt dat iets anders. We kunnen eenvoudigweg berekenen hoeveel energie het Gulden netwerk verbruikt. Gemiddeld wordt een rendement van 42 Watt/Mh/s (zie tabel 1) bereikt. Bij de huidige totale hashrate van 1100Mh/s betekent dat het elektrisch vermogen van alle mininghardware samen 46kW bedraagt. Op jaarbasis verbruikt Gulden dus 46kW * 8760 uur = 402MWh. Dit staat in sterk contrast met Bitcoin met zijn 73,12 TWh, een factor 180.000 meer.
Ik weet het, het is niet eerlijk om te vergelijken vanwege het enorme prijsverschil tussen Bitcoin en Gulden. Maar toch verbruikt Gulden tegenwoordig niet veel stroom meer!

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 eigenlijk. Het lijkt op PoS (Proof of Stake) zoals bij andere munten gebruikt wordt maar werkt totaal anders.
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. Binnen kort wordt deze reward verhoogd naar 30 Gulden.
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 95 miljoen Gulden in witness gezet in 806 verschillende accounts met een totale witnessweight van 871.000.000.

Om dan een 71% meerderheid te krijgen in witnessweight zul je als aanvaller dus minstens een witnessweight van (1/0,71)*871.000.000= 1.226.000.000 moeten behalen en dat te verspreiden over (1/0,71)*806=1130 accounts. Dit kan bijvoorbeeld door 1200 accounts aan te maken waarin 260.000 Gulden worden vastgezet voor 1 maand. Dat is meer dan driekwart 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 1200 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 in Gulden altijd beveiligd in witness
• “Nothing at stake issue”: Omdat er altijd voldoende PoW hash power aanwezig is op de Gulden blockchain 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 op de Gulden blockchain. Witness en PoW zijn onlosmakelijk verbonden met elkaar.
• PoS “Old private keys”: Door de aanwezigheid van PoW mining activiteit 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 2,5–10%. Toch altijd nog fors meer dan u bij een bank kunt krijgen.

Ik hoop dat u aan deze uitleg wat hebt gehad en als u meer wilt weten over Gulden kunt u op de website terecht

Andere verhalen van mij zijn:

De onzin van Marketcap
De hype van transacties per seconde
Welke crypto wordt het nieuwe betaalmiddel
Crypto gerangschikt naar aantallen gebruikers
Fact check Gulden website
Security Token Offering, de nieuwe ICO?
The white hat ethical investor
Energieverbruik van Gulden en Bitcoin.

--

--