Spark: een nieuwe lightning interface

Spark

Onlangs werd Spark aangekondigd: een losstaande gebruikersinterface voor het doen van lightningbetalingen. Spark zorgt ervoor dat je het lightning netwerk zo vertrouwensloos mogelijk kan gebruiken. Spark is afkomstig van onafhankelijke ontwikkelaar Nadav Ivgi. De interface is beschikbaar voor Linux, Windows, macOS, Android en binnenkort ook voor iOS. Zoals de meeste lightning apps en tools is ook Spark voornamelijk nog gericht op ontwikkelaars.

Spark is een simpele interface die alleen lightningbetalingen ondersteunt. Spark is zo ingericht dat deze te gebruiken is in combinatie met de full node en c-lightning node van de gebruiker zelf. Hierdoor kun je volledig vertrouwensloos betalingen doen op het lightning netwerk. In de aankondiging zijn meer instructies te lezen over het gebruik en de volledige informatie is op GitHub te vinden.

Demo

Hieronder is een demonstratie te zien van de Spark interface in combinatie met de Nanopos point-of-sale lightning app (lapp) voor een kijkje naar hoe de nabije toekomst van lightningbetalingen aan de kassa eruit kan zien. Nadav Ivgi geeft aan de interface in de toekomst eventueel uit te breiden zodat deze ook gewone bitcoinbetalingen kan uitvoeren, maar vooralsnog is gekozen voor optimalisatie voor het lightning netwerk.

Naarmate de ontwikkeling van het lightning netwerk vordert wordt het steeds toegankelijker voor webdevelopers en UI-developers om interessante use cases te implementeren en mooie ontwerpen voor gebruikersinterfaces neer te zetten. Zo wordt het lightning netwerk niet alleen langzaam toegankelijk voor reguliere gebruikers maar komen ook de tools die andere ontwikkelaars nodig hebben om lightningbetalingen in de praktijk te brengen langzaamaan beschikbaar.

Het ananasfonds is afgerond

Een half jaar geleden schreven we over het ananasfonds. Een fonds opgezet met als doel 5.100 bitcoins te verdelen over verschillende goede doelen. Inmiddels zijn alle bitcoins gedoneerd en heeft de initiatiefnemer een boodschap voor de gemeenschap achtergelaten.

Een inspirerend einde

De initiatiefnemer, bekend als Pine, is nog altijd anoniem. Pine geeft aan dat dit zo zal blijven omdat het fonds niet draaide om de persoon, maar om het bijdragen aan een betere wereld - met dank aan bitcoin. Pine zou tot de top 250 bitcoinbezitters behoren en heeft in totaal 5.104 bitcoins gedoneerd. De uiteindelijke waarde van de weggegeven bitcoins bedraagt zo’n €47,5 miljoen. Het zou om de meerderheid van de bitcoins gaan die Pine in bezit heeft.

Pineapple Fund was an experiment in philanthropy with cryptocurrency wealth. What happens when your 'play-money' becomes a treasure chest, and you're past the satiety point of money?

Het idee voor het fonds kwam voort uit de vraag wat je doet wanneer je ineens meer geld hebt dan je mogelijk kunt uitgeven. De goede doelen die een donatie ontvangen hebben van Pine variëren van een instelling die onderzoek doet naar het gebruiken van psychedelisch middelen in de strijd tegen PTSD tot projecten voor schoon drinkwater. De laatste post van Pine is hier te vinden. Pine probeert tot slot andere gelukkigen uit de bitcoin-wereld te stimuleren om dezelfde stap te zetten. De volledige lijst van donaties en de bijbehorende bedragen kun je hieronder en ook hier terugvinden.

I consider this project a success. If you're ever blessed with crypto fortune, consider supporting what you aspire our world to be :)

fullpine

Hoeveel wegen leiden naar Rome?

Kortgeleden schreven we over Atomic Multi-Path Payments (AMP) als oplossing voor het vinden van een route voor een betaling over het lightning netwerk wanneer er tussen betaler en ontvanger niet voldoende liquiditeit beschikbaar is via een enkele route. Maar hoe groot is de verbetering die AMP brengt?

Het is een te raden om eerst onze artikel die achtergrondkennis over het lightning netwerk bieden te lezen. Het betreft de volgende artikelen: introductie payment channels, van payment channels naar lightning netwerk, het bijvullen van lightning saldo's, het vinden van een route voor een betaling en privacy in het lightning netwerk.

Praktisch testen

Twitter-gebruiker @YeOldDoc heeft interessante grafieken geplaatst van de kans op succesvolle betaling met en zonder AMP. Er werd gekeken naar de kans op het vinden van tenminste één beschikbare route voor betalingen die geheel via een enkele route lopen en betalingen die opgedeeld worden en via meerdere routes het einddoel bereiken middels AMP. De resultaten zijn duidelijk: AMP biedt een aanzienlijke verbetering in de kans op een succesvolle betaling. Je kunt hier meer over de methodiek lezen.

Een aanzienlijke verbetering

In de eerste grafiek hieronder is te zien dat de kans op het vinden van een route minder snel zakt naarmate het te versturen bedrag groter wordt wanneer gebruik wordt gemaakt van AMP. Dit heeft deels te maken met de nog conservatieve saldo's die worden aangehouden op het lightning netwerk, omdat het nog niet aan te raden is zeer grote bedragen vast te zetten in een payment channel. Hierdoor zijn grote betalingen over het algemeen nog lastig te faciliteren. Dit zal in de toekomst echter niet veel anders zijn: de bedragen waarbij het lastig wordt een route te vinden zullen hoger zijn, maar de voordelen die AMP biedt zullen vergelijkbaar zijn.

dhcqecuwaavkn

AMP biedt dus een behoorlijk voordeel. De kans op succesvolle betaling van bedragen groter dan 0,001 BTC zonder AMP zakt snel naar lager dan 50%, waarbij dit met AMP pas bij bedragen ruim boven de 0,1 BTC het geval is - een bedrag dat via een enkele route nagenoeg niet mogelijk zou zijn. Zo wordt er wederom meer uit minder gehaald door slim om te gaan met de beperkte scripting functionaliteit van bitcoin.

dhcrolvaaizp

De afbeelding hierboven laat zien hoeveel routes er nodig zijn om de betaling succesvol af te leveren. Zoals te verwachten stijgt het aantal nodige routes naarmate de grote van het transactiebedrag stijgt; er moet gebruik gemaakt worden van veel verschillende kleine saldo's om de grote betaling door te voeren. Het is toch gaaf om te zien dat, wanneer een normale lightning-betaling zou falen, een betaling die gebruik maakt van 20 verschillende routes middels AMP wél kan slagen. Een echte verbetering in de robuustheid van het netwerk.

Hoeveel bitcoinadressen zijn er?

Er wordt altijd aangeraden om voor elke betaling een nieuw (vers) bitcoinadres te gebruiken. Dit bevordert namelijk de veiligheid en privacy. Maar wat is de kans dat twee verschillende personen hetzelfde bitcoinadres aanmaken?

Praktisch onmogelijk

Het korte antwoord op de vraag hoeveel bitcoinadressen er zijn is 2160. Een getal, genaamd een quindecillion, dat eigenlijk te groot is om uit te schrijven, maar we doen het toch!

1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976

De kans dat twee personen hetzelfde bitcoinadres aanmaken is dus enorm klein, maar wanneer we het getal zo uitgeschreven zien lijkt het voor sommigen toch alsof het wel mogelijk is. Laten we het getal daarom wat verder in perspectief zetten.

Er zijn, naar grove schatting, zo’n 7,5 triljoen zandkorrels op aarde: 7.500.000.000.000.000.000. De kans dat persoon A een willekeurige zandkorrel op aarde aanwijst en persoon B deze vervolgens vindt is dus nog steeds vele malen (!) groter dan de kans dat twee personen hetzelfde bitcoinadres aanmaken.

Wanneer we het totale aantal bitcoinadressen delen door de wereldpopulatie komen we uit op zo’n 190 undecillion bitcoinadressen per persoon:

190.230.285.000.000.000.000.000.000.000.000.000.000

Elke persoon op aarde kan dus een dermate grote hoeveelheid bitcoinadressen aanmaken dat het hoogst onwaarschijnlijk is dat er ooit hetzelfde bitcoinadres wordt aangemaakt door twee verschillende personen. Het is hierdoor ook niet rendabel om een supercomputer aan het rekenen te zetten en alsmaar nieuwe bitcoinadressen te laten aanmaken in de hoop wat bitcoins te kunnen bemachtigen. Dit zou simpelweg een verspilling van rekenkracht en energie zijn.

Zo, met deze kennis van getallen kunnen we weer rustig slapen.

Spam-vrije e-mail met yalls.org

yalls.org was een van de eerste websites waar men lightning-betalingen kon testen door voor het lezen van een online artikel een micro-betaling te doen. Nu heeft de website een simpele anti-spam e-mail functie toegevoegd, mogelijk gemaakt door lightning!

Van hashcash naar lightning

yalls.org is een initiatief van Alex Bosworth, een actieve bitcoin- en lightning-ontwikkelaar. Via de "Inbox" tab is het mogelijk om een inbox voor een specifieke (eigen) e-mail aan te maken die e-mails alleen doorstuurt wanneer de verzender een kleine betaling heeft gedaan. Hiermee wordt voorkomen dat reclamebedrijven massaal e-mails sturen naar elke e-mail die ze kunnen vinden - dit zou simpelweg te duur worden. Bosworth noemt de feature "Hashcash Inbox".

wwwtrujillonlspammen

Interessant om te weten is dat hashcash, van uitvinder Adam Back, in eerste instantie ook bedoeld was om e-mail spam tegen te gaan. Het idee van hashcash was om de verzender een kleine hoeveelheid proof-of-work uit te laten voeren en het bewijs hiervan mee te sturen, hiermee zou het voor verzenders ook te duur worden om massaal te spammen. Hashcash als middel tegen e-mail spam is nooit aangeslagen, maar wel is het idee geadopteerd door Nick Szabo in zijn concept voor Bitgold en later ook Satoshi Nakamoto als proof-of-work in bitcoin. In het originele bitcoin paper wordt Adam Back ook gerefereerd voor zijn uitvinding.

Het is waarschijnlijk dat we de toepassing van micro-betalingen voor het lezen van e-mails vaker zullen zien in de toekomst. Daarmee komen we full-circle en heeft hashcash, naast het mogelijk maken van bitcoin, toch ook nog bijgedragen aan het tegengaan van spam. Zie de video hieronder voor een demonstratie en zet meteen je eigen inbox op!

BetterHash: decentraler minen

Een van de problemen van mining is dat het voor kleine miners niet loont zelfstandig te minen; zij sluiten zich aan bij zogenaamde mining pools om samen een block te vinden en de beloning te verdelen. Het poolen van de rekenkracht komt de decentraliteit van mining echter niet ten goede.

Een soort loterij

Minen kan gezien worden als een soort loterij: hoe groter het percentage van de totale rekenkracht een miner bezit, hoe groter de kans dat die miner het volgende block vindt en de bijbehorende beloning (de block reward) mag claimen. Koop je 20% van de kaartjes van een loterij, dan heb je 20% kans op het winnen van de trekking. Hetzelfde geldt voor mining.

Het probleem ontstaat bij de investering die nodig is om enigszins mee te kunnen doen als miner. Een kleine zelfstandige miner heeft maar een klein percentage van de totale rekenkracht in handen. Met dit kleine percentage rekenkracht is de kans klein dat de zelfstandige miner een block vindt en de volledig block reward kan claimen.

Voor een miner met een zeer klein percentage rekenkracht is het praktisch onhaalbaar om winstgevend te minen. Statistisch gezien vindt ook een kleine miner uiteindelijk een block, maar dit zou jaren kunnen duren. Het is voor kleine miners dus eigenlijk niet de moeite waard om zelfstandig mee te doen, aangezien de miner wel de operationele kosten moet kunnen dragen.

De oplossing voor dit probleem kwam in de vorm van mining pools. Miners sluiten zich bij elkaar aan en poolen hun rekenkracht. Zo hebben zij samen controle over een groter percentage van de totale rekenkracht en dus een grotere kans op het vinden van een block. Het grote voordeel hiervan is dat, wanneer de pool een block heeft gevonden, de block reward verdeeld wordt over alle deelnemers naar proportie van de bijgedragen rekenkracht. Zo kan een kleine miner dus toch een deel van de block reward in ontvangst nemen én rekenen op regelmatige inkomsten.

Beter hashen

Het poolen van rekenkracht heeft echter ook een groot nadeel: de decentraliteit onder de miners gaat verloren. Wanneer kleine miners zich namelijk bij een pool voegen geven zij de controle over hun rekenkracht uit handen. In plaats van het draaien van zelfstandige mining-software draaien de miners die aangesloten zijn bij een pool specifieke software van de mining pool. Deze software draagt als het ware de rekenkracht over aan de beheerder van de mining pool.

Hierdoor is de beheerder van de pool theoretisch in staat om de rekenkracht voor kwaadaardige doeleinden in te zetten. In de praktijk is dit nog niet gebeurd, omdat een dergelijke actie niet winstgevend zou zijn voor de beheerder van de pool. Ook zouden de individuele miners in rap tempo de pool verlaten wanneer duidelijk wordt dat de pool niet meer goedaardig handelt. Toch blijven pools met een groot percentage rekenkracht een dreiging vormen.

poolsshot

De beheerder van een pool heeft namelijk ook de controle over het aanmaken van het gevonden block: de beheerder bepaalt welke transacties er wel of niet worden opgenomen in een block. Over het algemeen wordt dit simpelweg gedaan door te kijken welke transacties de grootste winst opleveren voor de miners: de transacties met de hoogste fee gaan voor. Het kan echter ook voorkomen dat de beheerder besluit bepaalde transacties uit te sluiten: censuur. Er wordt daarom actief gewerkt aan het bedenken van manieren en prikkels om de decentraliteit onder miners te stimuleren.

Werk en beloning gescheiden

BetterHash is een voorstel van Matt Corallo dat poogt om de decentraliteit van mining te bevorderen. Matt Corallo is al lange tijd bitcoin-ontwikkelaar en heeft al veel bijgedragen aan de verbetering van het bitcoinnetwerk. Het voorstel van Corallo scheidt het aanmaken van het nieuwgevonden block van de betaling van de beloning. Het voorstel wordt door velen aangehaald is zeer belangrijke innovatie, maar is tevens grotendeels onopgemerkt gegaan.

Het duidelijke voordeel dat behaald wordt met de constructie uit het voorstel van Corallo is dat een kleine zelfstandige miner zichzelf nog steeds kan aansluiten bij een pool, waardoor de miner kan rekenen op regelmatige inkomsten, zonder dat de miner het recht op het aanmaken van het volgende block opgeeft. Daarnaast kan de beheerder van een pool de individuele miners niet meer dwingen mee te doen met bepaalde upgrades wanneer zij dit niet wenselijk vinden.

De pool dient nog steeds als verdeler van de inkomsten, maar de miner die verantwoordelijk is voor het gevonden block behoudt het recht om te bepalen welke transacties er in het block worden opgenomen. Hiermee wordt voorkomen dat een beheerder, gedwongen of ongedwongen, censuur kan uitoefenen.

Volgens Corallo en velen anderen is het oplossen van de centralisering van mining een van de meest dringende onderwerpen. Het hopen is nu dat de verschillende mining pools hier hetzelfde over denken en het BetterHash voorstel in de praktijk gaan toepassen. Geheel verholpen zijn de centraliseringsproblemen met dit voorstel nog niet, maar het is een stap in de goede richting.