Auteur Topic: Verhaal van de penningmeester  (gelezen 5637 keer)

Offline Nelis

  • e-Gulden, meer dan geld
  • Eindbaas
  • *****
  • Berichten: 1.331
  • Karma: +24/-10
  • Oprichter BRVC
    • Bekijk profiel
    • tBrabantsKWARTIERTJE
Verhaal van de penningmeester
« Gepost op: 15 juli 2014, 00:38:28 »
Bitwise-Shifted, ofwel Gerrit, is, zoals jullie eerder verteld is, de penningmeester van de stichting e-Gulden Foundation. Ik heb de eer gehad om hem een aantal keer te ontmoeten en zoals ik hem ken is het een echte liefhebber van de innovatie met veel kennis over het onderliggende protocol en de code waarin deze is vastgelegd. Gerrit heeft op dit moment, als penningmeester, alle EFL in beheer, maar heeft geprobeerd om deze zo goed als mogelijk te beveiligen door het toepassen van de multisig functionaliteit. Ik zal er eerlijk voor uitkomen dat Gerrit op dit moment alsnog zonder toestemming van derden over alle gelden kan beschikken, maar door het inbouwen van deze extra beveiliging is de kans dat een van de overige verantwoordelijken op een dag in een zatte bui alles verpest, teruggebracht naar nihil. Gerrit kan zoiets zelf veel beter vertellen, dus daarom wil hij het onderstaande verhaal graag met jullie delen. Ik heb ervoor gekozen dit verhaal nu te posten, door de aankondiging van Gerrit omtrent de beveiligingsupdate van de site.

Na het interview van deBitcoin.org hebben we de hoogste prioriteit gegeven aan het uitbrengen van onze eigen -qt wallet. Het commentaar van Job is terecht en om onszelf te bewijzen hebben we als soort van "proof-of-competence" besloten dat een nieuwe qt wallet de hoogste prioriteit geniet. Op dit moment is de alpha test aangevangen en met de aankondiging waar ik net naar verwees verwacht ik zeer binnenkort een nieuwe release.

Voor de duidelijkheid, de onderstaande post is geschreven door Bitwise, maar omdat ik meer tijd over heb om vragen te beantwoorden vraag ik aan iedereen om eerst mijn kennis te testen voordat ze Gerrit lastig vallen, aangezien hij momenteel druk bezig is met andere zaken. Eventuele vragen dus graag hieronder en dan zal ik mijn best doen iedereen te beantwoorden. Er mag ook gemaild worden, mijn mail adres is secretaris@egulden.org het adres van gerrit is penningmeester@e-gulden.org het adres van alle bestuursleden is foundation@efl.nl, alle input is welkom!
« Laatst bewerkt op: 15 juli 2014, 00:53:40 door Nelis »
Stop met leren:Start met denken
Donaties worden gewaardeerd
Leet9yr7pqvEJhvHBvmdDnFKSVT7q2GwiV

Offline Nelis

  • e-Gulden, meer dan geld
  • Eindbaas
  • *****
  • Berichten: 1.331
  • Karma: +24/-10
  • Oprichter BRVC
    • Bekijk profiel
    • tBrabantsKWARTIERTJE
De pre-mine in cold storage bij de Electronic Gulden Foundation
« Reactie #1 Gepost op: 15 juli 2014, 00:45:17 »
Het beheren van de pre-mine is letterlijk een miljoenen aangelegenheid en is daarom een grote verantwoordelijkheid. Momenteel staat iets meer dan 5 miljoen EFL, oftewel een kwart van het totale e-Gulden vermogen, dat ooit in omloop zal komen, onder het beheer van de Foundation. Hoewel op dit moment de relatieve waarde nog laag is, bij de huidige prijs in Bitcoin/euro, heeft de EFL een enorm potentieel in toekomstige waarde. We dienen hier dus zeer zorgvuldig mee om te gaan.

In de “Bitcoin wetenschap" is het een gegeven dat een groot vermogen, dat langere tijd niet aangesproken hoeft te worden of op korte termijn in omloop moet worden gebracht, het best bewaard kan worden op een plaats die niet via het internet toegankelijk is. Dit principe heet cold storage.

Cold storage kan op meerdere manieren worden toegepast. De meest eenvoudige is om een back-up van de wallet (waarop de coins staan die je buiten het bereik van het internet wilt houden) op te slaan op een medium dat je dan in een kluis bewaart (het beste zelfs twee keer en dan gescheiden van elkaar op twee verschillende plaatsen), waarna je de actuele wallet -die nog online staat- permanent wist.

Een andere, technisch meer gerichte manier, is dat je de private key waar de munten aan gekoppeld zijn in verzekerde bewaring stelt. Een private key (voor de techneuten onder ons; base 58 wallet format) bestaat voor de e-Gulden (en Bitcoin) uit 51 karakters. De private key bevat alle informatie die nodig is om toegang te krijgen tot de gekoppelde munten en kan op vele manieren worden opgeslagen.

De Foundation heeft ervoor gekozen om de pre-mine, voorlopig, in 10 grote cold storage blokken van 500.000 EFL op te slaan. Dit is veiliger en beheerstechnisch beter dan alles in een centrale wallet te laten zitten. Behalve veiligheid kleeft er namelijk nog een nadeel aan het distribueren van EFL's vanuit één centrale wallet. Iedere keer dat je een kleine of grote uitgave doet verdwijnt de volledige inhoud van het originele adres naar twee (!) andere adressen : De bestemming en een nieuw adres in de bestaande wallet (de zogenaamde change). Omdat de pre-mine daardoor telkens naar een nieuw adres verspringt wordt de controle hierop èn de verantwoording hiervan daardoor bijzonder moeilijk. Blokken van 500.000 zijn zelf ook nog vrij groot maar, als je dan zo'n blok een keer moet aanspreken, kun je kunt ervoor kiezen deze zelf ook weer in 10 (of meer) kleinere blokken op te delen. Op deze wijze kun je ervoor zorgen dat er telkens maar een beperkt aantal EFL, in een periode met een vaste tijdslengte, in een hot-wallet terecht komt. Deze wallet kan boekhoudkundig goed worden verantwoord, door middel van een correcte uitgavebalans, zonder dat je deze met veel moeite in de blockchain moet hoeft te volgen.


Beheer en beveiliging
Aangezien de pre-mine onder het beheer van de Electronic Gulden Foundation staat, met op dit moment drie bestuursleden, zou je kunnen kiezen voor opslag van kopieën van de wallets in drie kluizen. Dit is echter een vorm van schijnveiligheid. Deze manier van cold storage belet namelijk niet dat een bestuurslid van kwade wil er alsnog met alle e-Guldens in de wallet ervan door zou kunnen gaan.  Voor dit soort situaties is de Bitcoin-wallet recentelijk voorzien van een zogeheten multi-signature functie, waarmee de uitgave van munten verplicht door meerdere personen geaccordeerd moet worden. Deze functie is ook voor de e-Gulden beschikbaar, maar helaas niet met een gemakkelijk te gebruiken, eenvoudige, interface.

Hoe werkt de multi-signature functie eigenlijk?
Het principe is erg eenvoudig: de private key wordt in stukken geknipt en die stukken verdeel je over de deelnemers. Twee of meer deelnemers moeten gezamenlijk de key samenvoegen zodat transacties geautoriseerd kunnen worden. De penningmeester van de Foundation heeft voor dat doel een stukje software gemaakt.

Om het zelf eens te proberen ga je naar https://efl.nl/, daar type je "multisig" in de zoek box en voer je het aantal deelnemers, het aantal deelnemers dat nodig is om te autoriseren en je private-key in. Je kunt dit ook downloaden (https://efl.nl/multisig.htm) als je het lokaal (dus los van het internet) in jouw browser wilt draaien. De software is geschreven in pure javascript en je kunt een comma-delimited lijst van block numbers en public/private-key pairs hierin importeren.

Hoe kom je nu eigenlijk aan een key pair want dat vormt de bestemming van munten die in cold storage moeten worden opgeslagen?
Daarvoor zijn twee veel gebruikte manieren, welke wel aan verbetering toe zijn: de eerste is de Qt-wallet (de wallet die je gebruikt om je e-Guldens te beheren) zelf. Via de debug-commandline kun je met “getnewaddress” en “dumpprivkey” een key pair krijgen. Het zou erg prettig zijn als deze als functie in de wallet zelf zou worden ingebouwd, zonder dat je de command line moet gebruiken, wat voor veel mensen toch een stapje te ver is.

Eenvoudiger is het gebruik van liteaddress.org. In ons geval vragen we een bulk-wallet van 10 adressen aan en het resultaat daarvan stoppen we met een knip-plak beweging in multisig.htm. Simpel, toch?

Wat moest de penningmeester nou allemaal doen om veilige key-pairs te genereren?
Met het bovenstaande zou eigenlijk het verhaal klaar moeten zijn, maar de werkelijkheid is wat weerbarstiger. We slaan eerst een stap over om uit te kunnen leggen wat er moest gebeuren om de pre-mine van de initiatiefnemers naar de nieuwe "koude adressen" te kunnen transporteren.

De penningmeester van de Foundation had in zijn eigen HOT-wallet een pre-mine adres aangemaakt en waarop de pre-mine werd gestort. Om nu precies deze pre-mine als herkomst aan te geven moet je iets meer begrijpen van de block-chain. Het punt is dat een public key niet een grote pot met munten is, maar een verzameling van input-transacties die wijzen naar de public key. Die inputtransacties worden niet "leeggeschud" maar blijven in de blockchain bestaan en gaan bij een betaling in hun geheel over naar een nieuwe transactie. Dat krijg je in beeld als je in jouw wallet het menu "opties" aanklikt en daar "display coin control features” aanvinkt (experts only!). Als je dat doet krijg je bij het tabblad versturen de optie "Inputs" waarmee je kunt bepalen welke input transacties je wilt gebruiken om een betaling te doen. Als de penningmeester dat niet gedaan zou hebben dan zou de input van andere public keys van zijn eigen wallet (dus niet die van de pre-mine) gebruikt zijn voor de uitvoer. Het is maar dat je het weet.

Tenslotte het moeilijkste punt van het hele verhaal (de stap die eerst was overgeslagen): het genereren van 10 key pairs door middel van het gebruiken van de bulk wallet van liteaddress.org is wel makkelijk, maar niet erg veilig. Weliswaar heeft liteaddress.org een geverifieerde identiteit en is de verbinding gecodeerd (met AES_128_GCM encryptie) maar het uitvoeren van deze functie terwijl je verbonden bent met internet, wordt niet gezien als best-practice. Sterker nog, het is zaak dat private keys worden gegenereerd op een systeem dat nog nooit van zijn leven met internet in aanraking is geweest en dat dat ook nooit zal doen.
De oplossing hiervoor is gebruik te maken van een software tool genaamd Tails: je neemt twee schone (nieuwe) usb sticks van 8GB. Op de ene usb stick download je de homepage van liteaddress.org (pagina opslaan als). Vervolgens ga je naar tails.boum.org en daar download je het ISO bestand van Tails. Vervolgens ga je naar unetbootin.sourceforge.net en download je daar unetbootin (beschikbaar in de smaken Window, MacOS en Linux), dat je vervolgens opstart. Op dit punt moet je alle internetverbindingen, incl WIFI uitzetten. In unetbootin klik je op "diskimage" en wijs je naar het Tails ISO bestand en wijs je de tweede usb stick als bestemming aan. Vervolgens herstart je je computer met de twee USB sticks aangesloten en zorg je dat je in het bootmenu uitkomt. Mogelijk moet je eerst in je BIOS aangeven dat je van de (tweede) usb stick wilt booten. Via het bootmenu kies je voor Tails-Live. Je komt daarmee in een UNIX distributie met een Tor browser en dat soort zaken. Je bladert naar de eerste usb-stick en start daar de html pagina op die je van liteadddress.org had gedownload. Vervolgens maak je zoveel bulk wallets aan als je wilt. De resultaten sla je op in een tekstbestand op de eerste usb-stick en zo nodig maak je daar nog een kopie van op een derde. Bewaar deze goed!

Conclusie
De Foundation heeft er alles aan gedaan om de ons in het beheer gestelde pre-mine stuk van de e-Gulden zo veilig en beheersbaar mogelijk te maken.  Om malversaties te vermijden moeten meerdere bestuursleden uitgaves gezamenlijk autoriseren. Verantwoording over de uitgaves zal in de zeer nabije toekomst op het forum en op de nieuwe website worden gegeven. Elke geïnteresseerde kan gebruik maken van de tools op de speciale site. Mocht je nog vragen hebben na dit toch wel erg technische verhaal laat het ons dan weten. 

Leve de e-Gulden!
« Laatst bewerkt op: 16 juli 2014, 04:55:01 door Nelis »
Stop met leren:Start met denken
Donaties worden gewaardeerd
Leet9yr7pqvEJhvHBvmdDnFKSVT7q2GwiV

Offline bitwise-shifted

  • Administrator
  • Eindbaas
  • *****
  • Berichten: 866
  • Karma: +30/-1
    • Bekijk profiel
Re: Verhaal van de penningmeester
« Reactie #2 Gepost op: 15 juli 2014, 09:07:46 »
Ok Niels,  teveel eer. Deze akties vonden overigens plaats op 12 juni jl. Het werd daarom tijd om dit verhaal, opgepoetst door Henk, en dat alweer even lag, te delen met de community .
efl: LSt2u7BjW2H4C7bXmwpYdMby9iQc7ZvqAr