Gulden & Florin BIP39 tool

Inleiding

De afgelopen tijd heb ik me wat meer verdiept in de daadwerkelijke techniek achter Bitcoin, Gulden, Florin en wat er nu precies gebeurd met de herstelzin. Hoe dit precies werkt; wat er aan de achterkant gebeurd. De werking van een nieuw adres elke keer als er een transactie plaatsvindt en alle dingen die met deze techniek te maken hebben vind ik fascinerend.

Zo ook de website van Ian Coleman waar hij een tool gemaakt heeft om een herstelzin terug te kunnen herleiden en vanuit de herstelzin inzichtelijk te maken welke publieke adressen er aan deze herstelzin gekoppeld zijn.

Ik wilde deze website ook gebruiken voor Gulden; maar kwam helaas tot de conclusie dat als ik een herstelzin invoerde en de “coin” op NLG zette; het helaas niet werkte zoals ik wilde dat het werkt. En helaas deze site heeft Florin nog niet geïmplementeerd, maar ook voor Florin zou ik willen dat deze site werkt.

Voor deze post maak ik gebruik van een herstelzin precies zoals jullie zelf ook een herstelzin hebben; maar dit keer maak ik er een publiek om aan te tonen hoe bepaalde dingen werken. De herstelzin die ik in deze post gebruik (en die je zelf kan gebruiken om te checken of alles correct werkt) is:

“female piece crime balance clump option faint refuse innocent require art humble”

Doel

Het doel van dit alles is meervoudig. Ik wil zelf de techniek snappen; tevens ben ik bezig met een aantal projecten waar ik nog niet veel over wil delen, omdat ik niet weet of ik het technisch geprogrammeerd krijg. Wel zal het de Gulden en Florin community kunnen helpen en deze post zorgt hopelijk ook voor meer duidelijkheid hoe de techniek werkt.

Deze post kan op verschillende punten wat technisch zijn; maar ik heb het doel gehad om iets te maken waar elke Gulden en Florin gebruiker iets aan heeft. Ook de mensen die niets met techniek hebben, zouden bepaalde punten in deze post moeten kunnen gebruiken.

Mijn eerste doel is in ieder geval om een tool werkend te hebben zoals Ian Coleman deze gemaakt heeft, maar dat het dan werkt voor Gulden en voor Florin.

Uitwerking – zonder de technische mambo jambo

Dat doel is gelukt. Jullie kunnen die tools vinden op:

Gulden: Gulden – BIP39 – Mnemonic Code (paulwillen.nl)
Florin: Florin – BIP39 – Mnemonic Code (paulwillen.nl)

Ik heb er voor nu nog even twee aparte tools van gemaakt; wellicht ga ik in de toekomst ervoor zorgen dat het één tool wordt, maar vanwege de technische uitdaging was dit even het makkelijkste. Voor het vervolg van de uitleg gebruik ik de Gulden tool en de Gulden wallet; maar het werkt voor Florin exact hetzelfde.

// LET OP: Vertrouw alleen je zelf en ook mij niet! Ik raad je aan om op deze tools NOOIT je eigen 12 woorden in te geven (Daarom heb ik als demo-doeleinden een herstelzin aangegeven, zodat getest kan worden hoe het werkt). Het ingeven van 12 woorden die jijzelf beheert is gevaarlijk op zulk soort tools, en dus ook op mijn site. Als iemand kwaad wil; hackt hij mijn server, plaatst een script op deze pagina’s die de 12 woorden naar zijn email adres stuurt en zo krijgt de hacker een mailtje als iemand de 12 woorden ingeeft. Daarmee heeft hij jou herstelzin en kan je je Guldens/Florin verliezen.

Daar is echter een oplossing voor: Offline opslaan

Offline opslaan kan je in (bijna) elke browser door rechts te klikken en “save as” te kiezen of door te toetsencombinatie “Ctrl+S” te gebruiken. Zet het .html bestandje op een computer zonder internet verbinding (of verbreek de internetverbinding met je huidige computer) en je zult zien dat de tool nog steeds werkt.

Functionaliteiten: De tools bieden onder andere de volgende functionaliteiten:

  1. Het ingeven van een herstelzin (private key) en vervolgens herleiden welke publieke adressen daaraan gekoppeld zijn.
  2. Een eigen herstelzin genereren en daarmee dus publieke adressen genereren zonder dat je een nieuwe wallet hoeft te starten.
  3. Genereren van een groot aantal ontvangstadressen die allemaal herleid worden vanuit deze herstelzin.
  4. Offline opslag van deze tools (zoals eerder al aangegeven)

Omdat er vanuit een herstelzin een cryptografische berekening plaatsvindt om de publieke adressen uit te rekenen is geen internetverbinding nodig. Daarom zijn deze pagina’s ook te downloaden en kunnen ook gebruikt worden op een computer die geen internet verbinding heeft.

Laten we eens kijken wat de publieke adressen zijn op het moment dat ik de herstelzin die hierboven staat in geef in de Gulden App (via Restore wallet):

Eerste publieke adres in de Gulden App: GcAGK86vNcNMqoSQ3P9eAQEa1Esyhup8JN

Als ik nu in de tool dezelfde herstelzin gebruik krijg ik deze lijst met publieke adressen:

Eerste publieke adres die de tool teruggeeft: GcAGK86vNcNMqoSQ3P9eAQEa1Esyhup8JN

Deze adressen komen met elkaar overeen! Wat je dus kan verwachten is dat als je in de tool via de knop “Generate” 12 woorden genereert (iets wat de Gulden app, bij het starten van een nieuwe wallet ook doet) dat deze woorden ook op in de tool werken en dat je dus een mogelijkheid hebt om een wallet te maken, zonder dat je de Gulden App hoeft te gebruiken.

Waar komen de overige adressen vandaan?

Elke keer als er in de Gulden Wallet een transactie plaatsvindt wordt daarna een bepaald commando uitgevoerd om een nieuw adres te tonen. Dit kan ook handmatig gegenereerd worden door in de Gulden App te gaan naaar: Help-Debug Window – Tabblad Console en daar in te tikken: getnewaddress. Als ik dat in een wallet doe waar bovenstaande herstelzin is ingevoerd krijg ik de volgende output:

Het tweede adres welke ik terugkrijg is: GbZ7ZpnVzchJGiVxbCKiX2S2979eKHswbo

En als we kijken in de lijst in de tool zien we dat als tweede adres exact dit adres ook naar voren komt.

Accounts

Een belangrijke functie van de Gulden Wallet is het gebruik van accounts. Als ik een nieuw account aanmaak in de Gulden Wallet – krijg ik weer een nieuw ontvangstadres. Deze is ook in de tool te herleiden:


Het adres welke naar voren komt bij een nieuw account: GTUx4A5s1QqRBqcLFcyJEcgjNwowanUDRS

Als ik in de tool de waarde “account” ophoog van 0 naar 1, zal een compleet nieuwe lijst met adressen gegenereerd worden..

Aanpassing van account naar “1”

De nieuwe adressen die gegenereerd zijn.

En het eerste adres in deze lijst komt (uiteraard) weer overeen met het adres welke ook in de Gulden App getoond wordt als er een nieuw account gemaakt wordt.

Gebruikersscenario’s

Wat kan je nu zoal met deze tools?

Met deze tools kan je, zonder gebruik te maken van de Gulden software, zien welke adressen gekoppeld zijn aan een herstelzin. Dit is handig voor het geval je een complete cold-wallet wil maken, die nog nooit verbonden is aan het internet.

Ook is het mogelijk om een groot aantal ontvangstadressen voor je wallet te weten; voordat je ze daadwerkelijk in de app ziet. Hier zijn een hele hoop use-cases op te verzinnen die je kan gebruiken bij bijvoorbeeld betalingen.

Verder dient deze tool als basis om hier verder te kunnen bouwen naar leuke applicaties/services. De tool van Ian Coleman is echt geweldig om te kunnen gebruiken, en ik wilde gewoon graag deze ook voor Gulden en Florin werkend hebben om hier in de toekomst verder te kunnen bouwen.

Ik hoop dat deze tools helpen bij het beter begrijpen wat de Gulden software nu precies doet bij het uitgeven van een nieuw adres; ook hoop ik dat mensen er wat aan zullen hebben bij het maken van een cold-wallet en kan deze tool voor een hoop andere toepassingen (die ik nu niet kan bedenken) gebruikt worden.

Kopje Koffie

Uiteraard heb ik zoals ik in het begin aangaf veel geleerd van het proces hoe het principe van een HD-wallet werkt. Dit heeft me echter ook erg veel tijd gekost en ik hoop dat ik iets voor de community kan betekenen door deze tools publiekelijk openbaar te maken.

Mochten deze tools je geholpen hebben, dan zou ik het op prijs stellen als je me een kopje koffie over wil maken:

Gulden: GKki8GKC11YZXiJGGXrU3WynBpPMT9DsQ7
Florin: NZEdCNSDbB6uWqwY3T2sFix7JDeUHmybAu

GeenStijl kiest voor Gulden – Een alternatieve kijk

Gisteren werd het grootste Gulden nieuws van het jaar tot nu toe bekend: GeenStijl gaat donaties in de vorm van Guldens accepteren. Uiteraard zorgde dit voor een hoop emoties. Gulden fans zijn tevreden en blij: Er gebeurt “eindelijk” wat aan marketing. Fans van GeenStijl en Reaguurders zijn heel erg verdeeld in de commentaren van de aankondiging.

In deze blogpost wil ik graag ingaan op mijn visie met betrekking tot het feit dat GeenStijl nu Guldens accepteert als donatie.

Onafhankelijkheid

Allereerst wil ik even duidelijk maken dat het mij voornamelijk gaat om “Wat” en niet precies om “Wie”. Het gaat in principe niet om GeenStijl; dit artikel zou net zo goed kunnen gaan over een ander medium dat zo onafhankelijk mogelijk nieuws wil publiceren.

Dat onafhankelijke, daar is het mij om te doen. Journalistiek wordt beter naar mate de onafhankelijkheid groter wordt. Nu kan ik me voorstellen dat GeenStijl met publicaties die ze doen over misstanden bij ING, ABN AMRO, RABOBANK het niet al te makkelijk hebben om bij deze banken een rekening te openen. Iets wat toch redelijk belangrijk is, als bedrijf.

Maar moet GeenStijl dan niets meer publiceren over deze banken? Ik denk dat we dan in een situatie terecht komen waarbij banken veel meer macht krijgen dan we met zijn allen fijn zouden vinden.

Ik hoop en ga ervan uit dat dit een van de redenen is waarom GeenStijl donaties in de vorm van Guldens accepteert. Met Gulden is het onmogelijk om transacties naar GeenStijl te verhinderen (Iets dat de banken wel kunnen doen; ze zeggen de rekening op). Met het accepteren van donaties in Gulden kan GeenStijl op hún manier journalistiek bedrijven. Onafhankelijk van een bankrekening bij een bank waar ze morgen misschien iets kritisch over willen publiceren.

Daarnaast heeft GeenStijl een inkomstenbron uit advertenties. Als de inkomstenbron van GeenStijl verschoven kan worden van adverteerders naar lezers, leden of donateurs, zal ook de afhankelijkheid van adverteerders afnemen. Als er gevraagd wordt om een boycot op GeenStijl, betreffende advertenties, kan ik me voorstellen dat zo’n oproep financiele consequenties heeft voor GeenStijl.

Tegelijk zal natuurlijk de afhankelijkheid naar lezers, leden en donateurs groter worden, maar dat heet naar mijn mening marktwerking. Als de doelgroep waar GeenStijl voor schrijft niet genoeg doneert, is er blijkbaar niet genoeg vraag naar deze content.

Deur dicht? Of blijft de deur gewoon open?

Een ander punt waar ik een opmerking over wil maken is of dit wel “slim” is van Gulden.

Een van de eerste reacties die een vriend tegen me zei toen ik hem de link naar het artikel op GeenStijl stuurde was:

GeenStijl; Daar gaat je geloofwaardigheid naar een stel relschoppers.

Houdt dit in dat Gulden nu exclusief voor de rechtse media of voor relschoppers bedoelt is? Natuurlijk niet. Uiteraard kunnen ook linkse media, zoals Joop.nl of FrontaalNaakt.nl (Die ook een aantal flink controversiële uitspraken gedaan hebben) ervoor kiezen om donaties in Gulden te accepteren. Hiermee zullen deze websites ook onafhankelijker worden. Iets wat ik van harte zou aanmoedigen.

Maar niet alleen onafhankelijke media: Elk bedrijf kan Gulden als betaalmiddel kiezen en daarmee de onafhankelijkheid ten op zichte van andere partijen (zoals banken, adverteerder etc.) vergroten.

Het is voor mij dus ook duidelijk dat GeenStijl kiest voor de betaalmethode Gulden, dat hoeft natuurlijk niet te betekenen dat Gulden ook “per definitie” kiest voor de inhoud die op GeenStijl staat. Gulden en GeenStijl hebben gewoon beide een onafhankelijk karakter en dat matcht goed.

Gulden Advisory Board

I wasn’t able to write down my motivation in 269 characters, therefore I’ve written this blogpost. Why I’m a candidate for the Gulden Advisory Board.

I’m applying to be a board member for the Gulden Advisory Board for a couple of reasons.

  1. I’m a developer myself and have a vision where I want Gulden to be in 2, 5 and 10 years. I want to have a seat in the board because I know my knowledge is valuable for the Gulden project. I ‘m a challenger, am able to ask the right questions and feel whats best for Gulden.
  2. As the Community Member who started the Gulden Community Slack, I want everyone to have a voice concerning Gulden. I wanted a place where people respectfully communicate with each other but are also able to express their concerns. I didn’t stand there watching things happen I didn’t agree to, but acted and started the Community Slack. I’ll act in the Gulden Advisory Board too if I get elected.
  3. I’ve been a member of the Gulden Community since 2016. Have seen ups and downs in the price, but I can see beyond the price and distinguish value from price. The true value of Gulden lies within the possibilities of the Blockchain. Let’s make sure that the usage of the Gulden Blockchain will increase; In that case there will be always demand for Guldens. If I get elected I’ll always keep this in mind.

Im not going to make this post longer than needed ;-). I hope you’ll consider voting for me when you need to vote for your Gulden Advisory Board members.

Paul Willen

Calculate Gulden Witness yield

First of all – Pow2 isn’t released yet – So this post is hypothetical. The contents of this post will be valid once the Gulden PoW2 update rolls out and witnessing is enabled.

We get a lot of questions about how you can calculate the yield of your witness account. Basically you cannot calculate it; but there is a site which attempts to give you an estimate: https://projectify.me/witness/

To have the complete picture:

The yield of your witnessing is based on a variable witch is currently unknown AND changes every day/hour/minute That value is the “TotalNetworkWeight”
Every Witness account has a Weight – That weight can be calculated through a formula in the PoW2 Whitepaper (Page 34).
TotalNetworkWeight is the weight of all the witness accounts combined and can currently only be estimated.

When Witnessing is released TotalNetworkWeight is a value that can be retrieved from RPC (through the Gulden-app) and so that value is transparant. Thus you can calculate what your weight is compared to the total network weight. Based on that you can estimate how often your witness account is selected for witnessing and thus how often you should be able to witness. When your weight is more than 2% of the TotalNetworkWeight your weight will be reduced to 2% for the selection. If you’re account is selected to witness you’ll get in a “cool-of” period of 100 blocks.During that time you cannot witness with that specific Witness account. Based on an estimation of 576 blocks per day IF you have a super strong network weight theoretically you can only witness 5.76 times per day (or 115 Gulden per day; because each witness action gives you 20 Gulden).

Therefore I think your maximum yield is 126.144 Gulden in 3 years per witness account. And that is based on super positive values (like your account gets selected every time the first time you’re selected to witness).

I think the values on the website https://projectify.me/witness/ are WAY over-estimated and don’t represent anywhere near what’s able to witness in 3 years.

GuldenNodes.com – Help visualize all the Gulden nodes

What is cooler than knowing that Gulden is a growing network of nodes? Well seeing those nodes is way cooler than only knowing that they are there. A Slack user I’ve been chatting with, named Sebastiaan Pasma has such an overview and it looks totally great. His website GuldenNodes.com gives a visual overview of the nodes connected to each other for the Gulden Blockchain. Continue reading “GuldenNodes.com – Help visualize all the Gulden nodes”

Get started with (PHP) developing on the Gulden blockchain

The blockchain technology caught my attention a few months back when learning more about Gulden, which is a good alternative to Bitcoin. In my opinion the blockchain technology will be the next big thing in tech for the next few decades. It’s been around for almost 8 years now, and to my opinion hasn’t got enough traction it deserves. Therefore I decided I wanted to do more with this technology and learn more about it. But where to start? How to start? There’s so much to learn about the blockchain that it simply cannot be summarized in a simple blogpost like this. But this blogpost is a summary of what I’ve learned with the Gulden blockchain over the past few weeks.

Continue reading “Get started with (PHP) developing on the Gulden blockchain”