PPCoin - Dutch Translation

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

PPCoin: Peer-to-Peer Cryptomunteenheid met Proof-of-Stake

Sunny King, Scott Nadal (sunnyking9999@gmail.com, scott.nadal@gmail.com) 19 augustus, 2012 Nederlandse vertaling door: BTC: 1BCGCsQTEZmveDkbPuvwnCccXXauGSz7SN PPC: PGDAyaiCyBVHpeF6WoSw39fgK9tcmbUpUd Abstract Een ontwerp voor een peer-to-peer crypto-munteenheid afgeleid van Satoshi Nakamotos Bitcoin. Proof of stake (bewijs van aandeel) vervangt proof-of-work (bewijs van werk) om het grootste deel van de netwerkbeveiliging te garanderen. Onder dit hybride systeem zorgt proof-of-work voornamelijk voor de aanvankelijke muntslag en is het grotendeels niet essentieel over een langere termijn. Het niveau van veiligheid is op de lange duur niet afhankelijk van energieverbruik en levert zo een energie-efficinte en een meer op competitieve prijs gerichte peer-to-peer cryptomunteenheid. Proof-of-stake is gebaseerd op de leeftijd van een munt en wordt gegenereerd door elk netwerkknooppunt met een hashing concept gelijkaardig aan dat van Bitcoin maar dan over een beperktere zoekruimte. De geschiedenis van de blokketen en de verrekening van transacties zijn verder beschermd door een centraal uitgezonden controlepuntmechanisme. Introductie Sinds de creatie van Bitcoin (Nakamoto 2008), is proof-of-work het voornaamste ontwerp geweest voor peer-to-peer cryptomunten. Het concept van proof-of-work is de ruggengraat geweest voor de munterij en beveiligingsmodel van Nakamotos ontwerp. In oktober 2011, zijn we tot het besef gekomen dat, het concept van een muntleeftijd een alternatief concept mogelijk kan maken, dat we proof-of-stake noemen, ten opzichte van Bitcoins proof-of-work systeem. We hebben sindsdien een ontwerp opgesteld waarin proof-of-stake gebruikt wordt om een beveiligingsmodel te bouwen voor een peer-to-peer cryptomunt en onderdeel is van de muntslag, terwijl proof-of-work vooral het begin van de muntslag vergemakkelijkt en later aan belang verliest. Dit ontwerp probeert de levensvatbaarheid aan te tonen van toekomstige peer-to-peer cryptovaluta die niet afhankelijk zijn van energieverbruik. We hebben dit project ppcoin genoemd. Muntleeftijd Het concept van muntleeftijd was al minstens vanaf 2010 bekend bij Nakamoto en werd gebruikt in Bitcoin om de prioriteit te helpen geven aan transacties, bijvoorbeeld, hoewel dit niet echt een essentile rol speelde in Bitcoins beveiligingsmodel. Muntleeftijd is eenvoudig gedefinieerd als hoeveelheid valuta maal houdperiode. In een gemakkelijk te verstaan voorbeeld, als Bob 10 munten ontvangt van Alice en deze 90 dagen vasthoudt, dan stellen we dat Bob 900 muntdagen van muntleeftijd heeft verzameld.

Bovendien, wanneer Bob de 10 munten die hij van Alice heeft ontvangen, uitgeeft zeggen we dat de muntleeftijd die Bob had verworven, verbruikt (of vernietigd) is. Om de berekening van muntleeftijd eenvoudiger te maken, hebben we een tijdstempelveld gentroduceerd in elke transactie. Blok-tijdstempels en transactie-tijdstempels gerelateerde protocols zijn versterkt om de berekening van de muntleeftijd te beveiligen. Proof-of-Stake Proof-of-work hielp Nakamoto om tot zijn grote doorbraak te komen, hoewel de aard van proof-ofwork betekent dat crypto-valuta afhankelijk zijn van energieconsumptie, en zodoende een significante overheadkost aan de werking van het netwerk met zich mee brengt, die voor de rekening van de gebruikers komt in de vorm van inflatie en transactiekosten. Naarmate de snelheid van de muntaanmaak vertraagt in het Bitcoin netwerk, zou er uiteindelijk druk kunnen ontstaan om de transactiekosten te verhogen om het gewenste niveau van veiligheid te blijven garanderen. Iemand vraagt zich natuurlijk af of we het energieverbruik ook moeten blijven onderhouden om een gedecentraliseerde cryptomunt te hebben? Hierdoor is het zowel een belangrijke mijlpaal op theoretisch en technologisch vlak, om te demonstreren dat de veiligheid van peer-to-peer cryptomunteenheden niet noodzakelijk hoeft af te hangen van energieverbruik. Een concept met de naam proof-of-stake (bewijs van aandeel) werd zo vroeg als 2011 al in Bitcoin kringen besproken. Ruwweg, betekent proof-of-stake een vorm van eigendomsrecht van de munteenheid. Muntleeftijd verbruikt door een transactie kan beschouwd worden als een vorm van proof-of stake. Wij hebben zelfstandig het concept van proof of stake en muntleeftijd uitgevonden in oktober 2011, waarbij we ons realiseerden dat proof-of-stake inderdaad in staat is om het merendeel van de proof-of-work functies te vervangen met een zorgvuldig herontwerp van Bitcoins muntslag en beveiligingsmodel. Dit is hoofzakelijk omdat, gelijkaardig aan proof-of-work, proof-of-stake niet eenvoudig vervalst kan worden. Uiteraard, is dat een van de essentile vereisten van monetaire systemen de moeilijkheid om te vervalsen. Filosofisch gesproken, is geld een bewijs van geleverd werk, dus zou het mogelijk zijn proof-of-work hiermee te vervangen. Aanmaak van Blokken onder Proof-of-Stake In ons gemengde model, delen we blokken op in twee verschillende types; proof-of-work blokken en proof-of-stake blokken.

(betaling aan aandeelhouder zelf) Figuur: Stuctuur van Proof-of-Stake (Muntaandeel) Transactie

De proof-of-stake in dit nieuw type blokken is een speciale transactie genaamd de coinstake of muntaandeel, vernoemd naar Bitcoins speciale transactie coinbase. In het coinstake transactieblok betaalt de eigenaar zichzelf uit. Hij verbruikt daarbij zijn muntleeftijd, terwijl hij het recht verwerft om een nieuw blok aan te maken voor het netwerk en voor proof-of-stake te munten. De eerste input van een coinstake noemt men een kernel en deze is vereist om een zeker hashdoelwit protocol te bereiken. Op die manier wordt aanmaak van proof-of-stake blokken een stochastisch proces vergelijkbaar met proof-of-work blokken. Een belangrijk verschil is echter dat deze hashing bewerking gepleegd wordt binnen een beperkte zoekruimte (om precies te zijn een hash per onuitgegeven portefeuille-output per seconde) in plaats van binnen een oneindige zoekruimte zoals bij proof-of-work het geval is, waardoor er geen aanzienlijk energieverbruik bij komt kijken. Het hashdoelwit dat de stake kernel moet halen is een doelwit per eenheid muntleeftijd (munt-dag) verbruikt in de kernel (in tegenstelling tot Bitcoins proof-of-work target, welke een vaste waarde is, die geldt voor elk knooppunt). Bijgevolg is hoe meer muntleeftijd de kernel verbruikt, hoe gemakkelijker het hashdoelwit protocol is te halen. Bijvoorbeeld, als Bob een portefeuille-output heeft die samengeteld 100 munt-jaren heeft en hij verwacht dat die binnen twee dagen een kernel zal aanmaken, dan kan Alice van haar 200 munt-jaar portefeuille-output verwachten dat die op n dag tijd een kernel kan genereren. In ons ontwerp passen we het proof-of-work hashdoelwit en het proof-of-stake doelwit voortdurend aan, ten opzichte van Bitcoin zijn twee-weken de aanpassingsinterval, om een plotse sprong in het tempo van de netwerkaanmaak te voorkomen. Muntslag gebaseerd op Proof-of-Stake Een nieuwe manier van muntslag is ingevoerd voor proof-of-stake blokken naast Bitcoins proof-ofwork muntslag. Een proof-of-stake blok maakt munten aan op basis van de geconsumeerde muntleeftijd in de muntaandeel transactie. Een muntproductie van 1 cent per verbruikt munt-jaar is gekozen om een laag toekomstig inflatiepercentage in leven te roepen. Alhoewel hebben we proof-of-work als onderdeel van de muntslag hebben behouden om het munten in het begin te vergemakkelijken, is het denkbaar dat in een zuiver proof-of-stake deze eerste muntslag geseed kan worden in het genesis blok door middel van een proces dat lijkt op een initial public offer (IPO of beursintroductie) op de aandelenmarkt. Primaire ketenprototocol Het protocol dat beslist welke concurrerende blokketten wint als hoofdketen is veranderd om gebruik te maken van verbruikte muntleeftijd. Hier draagt elke transactie in een blok bij aan de verbruikte muntleeftijd bij tot de score van een blok. De blokketen met het hoogste totaal verbruikte muntleeftijd wordt gekozen als hoofdketen. Dit is in contrast met het gebruik van proof-of-work in Bitcoins primaire ketenprotocol, waarin het totaal geleverde werk gebruikt wordt om de hoofdketen te bepalen. Dit ontwerp verlicht sommige zorgen van Bitcoins 51% veronderstelling, die stelt dat het systeem slechts veilig beschouwd wordt als goedaardige knooppunten minstens 51% van de mining kracht controleren. Allereerst zouden de kost om een belangrijk aandeel te controleren hoger zijn dan de

kost om een belangrijk aandeel van de mining kracht te verwerven, waardoor de kostprijs van zon aanval voor krachtige entiteiten omhoog gaat. Verder is de aanvaller zijn muntleeftijd verbruikt tijdens de aanval, wat het een stuk moeilijker kan maken voor de aanvaller om transacties te blijven weren uit de hoofdketen. Checkpoint: Bescherming van Geschiedenis Een van de nadelen aan het gebruik van totale verbruikte muntleeftijd om over de primaire keten te beslissen is dat dit systeem de kostprijs van een aanval op de geschiedenis van de gehele blokketen verlaagt. Zelfs al heeft Bitcoin een relatief sterke geschiedenisbescherming heeft Nakamoto toch checkpoints ingebouwd in 2010 als mechanisme om de geschiedenis van de blokketen vast te leggen en elke mogelijke verandering van delen van de keten, vroeger dan het checkpoint, te voorkomen. Een andere bezorgdheid is dat de kostprijs van een dubbele uitgave aanval alsook verlaagd kan zijn, als de aanvaller mogelijk louter een zekere hoeveelheid muntleeftijd moet verzamelen om een reorganisatie van de blokketen te forceren. Om handel praktisch mogelijk te maken binnen zon systeem, hebben we gekozen om een aanvullende vorm van checkpoints te introduceren die centraal uitgezonden zijn, binnen veel kortere intervallen zoals enkele keren per dag. Deze dienen om de blokketen te bevriezen en transacties te voltooien. Dit nieuw type checkpoints wordt op een gelijkwaardige manier uitgezonden als Bitcoins alarmsysteem. Laurie (2011) heeft geargumenteerd dat Bitcoin het gedistribueerde consensus probleem niet volledig heeft opgelost omdat het mechanisme voor checkpointing niet verdeeld is. We hebben geprobeerd om een praktisch gedistribueerd checkpointing protocol te ontwerpen maar vonden het moeilijk om het te beveiligen tegen een netwerksplitsingsaanval. Hoewel het uitgezonden checkpointing mechanisme een vorm van centralisatie is, beschouwen we dat acceptabel tot er een gedistribueerde oplossing beschikbaar is. Nog een technische reden brengt het gebruik van centraal uitgezonden checkpointing met zich mee. Om zich te verdedigen tegen een type van denial-of-service aanvallen (dos-aanval) moet de kernel geverifieerd worden alvorens een proof-of-stake blok aanvaard kan worden in de lokale databank (blokboom/block tree) van elk knooppunt. Wegens Bitcoins knooppunt data model (de transactieindex in het bijzonder) is een deadline van checkpointing nodig om de capaciteit van alle knooppunten om verbindingen van elke kernel te verifiren, te verzekeren alvorens een blok te aanvaarden in de blokboom. Vanwege de bovenstaande praktische overwegingen, hebben we beslist om het knooppunt datamodel niet te veranderen maar om in de plaats daarvan centrale checkpointing te gebruiken. Onze oplossing is om de berekening van muntleeftijd aan te passen en een minimum leeftijd op te leggen, zoals een maand. Voor alles daaronder wordt de muntleeftijd berekend als nul. Vervolgens wordt het centrale checkpointing systeem gebruikt om te verzekeren dat alle knooppunten akkoord kunnen gaan over eerdere transacties die ouder zijn dan een maand . Op die manier is de verificatie van de coinstake kernelverbinding is mogelijk omdat een kernel een muntleeftijd boven de nul vereist en dus een output van meer dan een maand geleden moet gebruiken.

Blokhandtekeningen en Duplicaat Aandeel Protocol Elke blok moet ondertekend worden door zijn eigenaar om te verhinderen dat dezelfde proof-ofstake gekopieerd en gebruikt wordt door aanvallers. Een duplicaat-aandeel protocol is gemaakt om te verdedigen tegen aanvallers die een enkele proofof-stake om een veelvoud aan blokken aan te maken zoals een denial-of-service aanval. Elk knooppunt verzamelt het (kernel, tijdstempel) paar van alle coinstake transacties die het heeft gezien. Als een ontvangen blok een duplicaat paar bevat als dat van een andere eerder ontvangen blok, dan negeren we zo een dubbel-aandeel blok en bestempelen we dat blok als verweesd blok tot we een opvolgend blok ontvangen. Energie-efficintie Wanneer het tempo van het proof-of-work muntaanmaak nul benadert, is er minder en minder aansporing om proof-of-work blokken te produceren. Onder dit lange termijn scenario kan energieverbruik in het netwerk dalen tot een heel laag niveau wanneer gedesinteresseerde stoppen met delven naar proof-of-work blokken. Het Bitcoin netwerk trotseert zon risico tenzij transactievolume en vergoedingen stijgen naar niveaus die hoog genoeg zijn om het energieverbruik te onderhouden. Binnen ons ontwerp blijft het netwerk beschermd door proof-of-stake zelfs als het energieverbruik nul nadert. We noemen een crypto-valuta lange termijn energie-efficint wanneer het energieverbruik voor proof-of-work nul mag benaderen. Andere overwegingen We hebben het muntslagtempo van proof-of-work aangepast om niet af te hangen van blokhoogte (tijd) maar eerder door moeilijkheidsgraad. Wanneer de moeilijkheidsgraad van de mining omhoog gaat, wordt het muntslagtempo van proof-of-work verlaagd. Een relatief gladde curve is hiervoor gekozen ten opzichte van Bitcoins stappenfuncties, om kunstmatige schokken in de markt te vermijden. Meer in het bijzonder, een doorlopende curve is gekozen zodat elke verhoging van een factor 16 van de mining moeilijkheidsgraad het aantal munten per blok halveert. In de lange baan zou de proof-of-work munterijcurve niet zo verschillend lijken als die van Bitcoin, op het gebied van inflationair gedrag, als de Wet van Moore blijft gelden. We beschouwen het verstandig om de traditionele bedenking op te volgen die zegt dat de markt meer gunstig staat ten opzichte van een munt met lage inflatie ten opzichte van een met een hoge inflatie, ondanks de gewichtige kritieken van mainstream economische experts op Bitcoin die volgens ons ideologisch gemotiveerd zijn. Babaioff et al. (2011) bestudeerde het effect van een transactiekosten en argumenteert dat de transactiekost een aansporingsmiddel is voor miners om niet samen te werken. In ons systeem is dat type aanval erger, waardoor we geen opbrengsten van transactiekosten meer geven aan blokeigenaars. We hebben ervoor gekozen transactiekosten te vernietigen. Dit haalt de aansporing weg om de blokken van andere munters niet te erkennen. Het dient daarnaast ook als een deflationaire kracht om de inflationaire krachten van de proof-of-stake muntslag tegen te gaan. We kozen er ook voor om transactiekosten af te dwingen op protocolniveau om ons af te schermen tegen een block bloating aanval (opgezwollen blokken).

Tijdens onze research hebben we nog een derde optie ontdekt naast proof-of-work en proof-ofstake, die we proof-of-excellence genoemd hebben. In dit systeem wordt gewoonlijk om de zoveel tijd een toernooi te houden om munten aan te maken, gebaseerd op de prestatie van spelers tijdens het toernooi, als nabootsing van prijzen tijdens alledaagse toernooien. Hoewel dit systeem energie verbruikt, ook wanneer artificile intelligentie uitblinkt in het spel, vonden we het concept toch interessant, zelfs in zon toestand omdat het zorgt voor een ietwat intelligente vorm van energieconsumptie. Conclusie Na validatie van ons ontwerp in de markt, verwachten we dat proof-of-stake ontwerpen een mogelijks meer competitieve vorm van peer-to-peer crypto-valuta ten opzichte van proof-of-work systemen vanwege de uitschakeling van de afhankelijkheid aan energieconsumptie. Op die manier verwezenlijken we lagere inflatie/lagere transactiekosten bij gelijkwaardige niveaus van netwerkbeveiliging. Dankbetuigingen Veel dank aan Richard Smith voor hulp bij het testen en verschillende netwerk/vork-gerelateerde taken. Wij zouden ook graag Satoshi Nakamoto en de Bitcoin ontwikkelaars bedanken, wiens briljante baanbrekende werk onze geesten verruimd heeft en een project als dit mogelijk gemaakt heeft. Nederlandse vertaling door: BTC: 1BCGCsQTEZmveDkbPuvwnCccXXauGSz7SN PPC: PGDAyaiCyBVHpeF6WoSw39fgK9tcmbUpUd Bronvermelding Babaioff M. et al. (2011): On Bitcoin and red balloons. Laurie B. (2011): Decentralised currencies are probably impossible (but lets at least make them efficient). (http://www.links.org/files/decentralised-currencies.pdf) Nakamoto S. (2008): Bitcoin: A peer-to-peer electronic cash system. (http://www.bitcoin.org/bitcoin.pdf)

You might also like