Je wallet maakt al voor elke betaling een nieuw bitcoinadres aan. Dat doet hij al meer dan tien jaar, en het is precies wat hoort.
Het probleem is wat er gebeurt wanneer jij er niet bij bent. Een vers adres bezorgen aan wie jou betaalt, betekent dat je er elke keer opnieuw bij moet zijn: een bericht, een QR-code, een kopieer- en plakactie die goed moet aankomen. Dus voor alles wat je één keer publiceert en dan laat staan, een donatiepagina, een factuurvoettekst, een profiel, doen mensen één van twee andere dingen. Ze hergebruiken één adres, en gooien de rotatie zo weg. Of ze geven een xpub af, en dat is erger, want de betaler ziet dan elk adres dat je ooit nog zult gebruiken, en het saldo erachter.
Adressen laten roteren is opgelost. Ze uitdelen niet.
Dat is het echte gat, en het is smaller dan de versie die je meestal hoort. Dat bitcoin publiek is, is niet het probleem. Het probleem is dat de oplossing ervoor vraagt dat jij komt opdagen.
Kort samengevat. Je wallet laat adressen roteren; er eentje bezorgen aan een betaler is wat nog altijd jouw tussenkomst vraagt. Silent payments halen die vereiste weg, en dat doen ze al twee jaar. Niemand gebruikt ze, omdat het adres 116 tekens lang is. Een naam lost dat laatste op, en je eigen scanner draaien lost het stuk op waar niemand het over heeft.
Silent payments haalden de tussenkomst weg in 2024
Een silent payment-adres ziet eruit als een gewoon adres en gedraagt zich volledig anders. Wanneer iemand het betaalt, rekent zijn wallet iets uit en leidt daaruit een gloednieuw adres af dat alleen jij kan uitgeven. Niemand hoeft online te zijn. Er wordt niets aangekondigd.
Twee mensen die je allebei betaalden kunnen niet zien dat ze dezelfde persoon betaalden. Wie de chain bekijkt evenmin, want niets verbindt die betalingen met elkaar of met het adres dat je publiceerde.
Je kan dus één adres publiceren, één keer, en het je leven lang houden. Dat is BIP 352, en het is al twee jaar af.
Bijna niemand gebruikt het. Dit is waarom:
sp1qqg94rylj0uklf6lkyc5n92jp3p392g0rpvh0f74qphufxcx9zya97qh8w4z290qym8ve33a02ejfc3lanvw9aljfz6upuc2gfnulepd75ccrhdql
Honderdzestien tekens. Dat zeg je niet tegen iemand. Dat zet je niet op een visitekaartje. Het privacyprobleem was opgelost. Het resultaat was onbruikbaar, dus gebruikte niemand het.
Een naam die een adres betekent
Er bestaat een standaard voor het ontbrekende stuk. BIP 353 publiceert een naam in DNS, hetzelfde systeem dat bepaalt waar je e-mail heen gaat, zodat dit:
rob@bitsaga.be
dat adres betekent. Iemand typt de naam in een wallet, de wallet zoekt hem op, en de betaling gebeurt. Niets kopiëren, mij niet om een vers adres vragen, niet wachten tot ik online ben.
Het record is ondertekend, en de wallet controleert die handtekening zelf in plaats van te vertrouwen op wie hem aanleverde. Sparrow doet dit vandaag. Cake Wallet ook.
Je kan rob@bitsaga.be nu meteen betalen. Het staat sinds gisteren live.
Gratis, geen account, ongeveer dertig seconden
Neem een betaalnaam
Eén naam die mensen echt kunnen typen, die verwijst naar een adres dat hun niets vertelt over wat je verder ontving.
silentpayments.net →Wat silent payments je kosten
Silent payments hebben een prijs, en die is pas zichtbaar als je goed kijkt.
Waarom iemand moet scannen
Omdat elke betaling op een vers afgeleid adres landt, kan je wallet niet gewoon zijn eigen adressen opzoeken om je geld te vinden. Iemand moet de hele chain doorzoeken en met jouw sleutel rekenen tegen elke transactie in, om uit te maken welke outputs van jou zijn.
Die iemand ziet heel veel.
Wat die sleutel kan zien
Het protocol geeft je private scansleutel aan welke server je wallet ook aanwijst. Die kan je munten niet uitgeven. Die onthult wel elke betaling die je ooit zal ontvangen, zolang je dat adres gebruikt.
De sleutel blijft eeuwig werken
Een silent payment-adres roteert nooit. Dat is precies de bedoeling ervan, en het betekent dat de sleutel die je afgaf blijft werken zolang je dat adres gebruikt.
De standaardervaring is vandaag dus deze: je zet een privacyfunctie aan, en een server waar je nog nooit van hoorde krijgt de sleutel die hem alles toont wat jij ontvangt. Sparrow komt met een publieke server die automatisch geselecteerd is. Daar wordt niets over verzwegen. Het is simpelweg een vreemde prijs voor privacy.
Hoe ik het merkte
Ik publiceerde mijn eigen naam, iemand betaalde die, en de betaling verscheen binnen enkele seconden in mijn wallet. Dat was het moment waarop het probleem ophield theoretisch te zijn.
Mijn eigen scanserver was op dat moment nog zijn index aan het bouwen. De betaling werd dus niet gevonden door mijn machine. Ze werd gevonden door een publieke server die ik nooit gekozen had, met de sleutel die mijn wallet hem gaf zonder het mij te vragen. Het werkte perfect, en een vreemde keek mee.
Draai de scanner zelf
De oplossing is simpel. Draai de scanserver op een machine die van jou is. Dan is de enige computer die je binnenkomende betalingen kan zien die bij jou thuis.
Frigate, van de maker van Sparrow Wallet, doet het scannen. Het draait nu op StartOS naast je eigen bitcoinnode, bereikbaar via je eigen Tor-adres, zonder dat er iets op je router openstaat.
De eerste index duurt een dag of twee en kost ongeveer 18 GB. Daarna kost bijblijven met nieuwe blokken zo goed als niets.
Wat we bouwden
Twee dingen, allebei open source, allebei gratis.
- Een StartOS-pakket dat je betaalnaam publiceert. Plak het adres uit je wallet, kies een naam, en het geeft je exact het DNS-record om te publiceren op een domein dat van jou is. Niemand behalve jij kan daarna nog veranderen waar die naam heen wijst. Het blijft het record ook hercontroleren, en kleurt rood als het ooit niet meer naar jou wijst.
- Een plek om een naam te krijgen als je geen eigen domein hebt. Gratis, geen account, geen e-mailadres, ongeveer dertig seconden.
Waarop je ons moet vertrouwen
Op één ding. We vertellen het je liever dan dat je het later zelf ontdekt.
Wat we jou niet kunnen aandoen
We houden je geld nooit vast. Er is hier geen saldo en geen account. Betalingen gaan rechtstreeks naar adressen die alleen jouw wallet kan uitgeven. Als deze dienst vannacht verdween, zou elke munt die je ontving nog steeds van jou zijn.
We zien je sleutels ook nooit. Je geeft ons een publiek adres, en verder niets.
Wat we jou wel zouden kunnen aandoen
Maar wij beheren het domein, dus wij bepalen waarnaar je naam verwijst.
Een oneerlijke beheerder zou die naar zijn eigen adres kunnen laten wijzen. Elke betaling daarna zou naar hem gaan, met geldige handtekeningen, zonder dat één wallet klaagt, onzichtbaar. En omdat silent payment-outputs niet aan elkaar te koppelen zijn, zou je het geld niet eens kunnen volgen om te zien waar het heen ging.
Niets verhindert dat. DNSSEC niet, want dat bewijst dat de domeineigenaar iets zei, niet dat jij ermee akkoord ging. De specificatie ook niet, want die heeft helemaal geen hoofdstuk over veiligheidsoverwegingen. De naamgevingsstandaard van Nostr heeft wel de regel die het zou verhinderen: die zegt clients om de sleutel te volgen in plaats van de naam. BIP 353 heeft daar geen equivalent van.
Waarom we het niet stil kunnen doen
Niets houdt ons ronduit tegen. Wat we wel kunnen doen, is het onmogelijk maken om het stil te doen. Elke naam die uitgegeven, gewijzigd of verwijderd wordt, wordt weggeschreven naar een openbaar wijzigingslogboek, waarbij elk item de hash van het vorige bevat, zodat geschiedenis verwijderen of aanpassen elk item erna breekt. En het StartOS-pakket hercontroleert je record uit zichzelf en kleurt rood als het niet meer naar jou wijst.
Ons kunnen betrappen is zwakker dan ons niet eens kunnen laten proberen. Het is de sterkste belofte die hier eerlijk te maken valt, en het is meer dan wie dan ook in deze categorie vandaag biedt. De grootste bestaande aanbieder heeft geen enkele manier om een naam nog te wijzigen nadat die opgeëist is, en daarom draagt één van zijn bekendste namen vijf tegenstrijdige records en kan die helemaal niet betaald worden.
Wat dit niet oplost
Vier dingen die je moet weten voor je hierop bouwt.
- Een naam op ons domein is maar zo duurzaam als ons domein. Als het ooit zou vervallen, zou wie het daarna registreert elke naam erven die wij uitgaven. We verlengen het lang en zetten het op slot, en je moet die belofte wegen voor wat ze is.
- Je eigen domein is ronduit beter dan het onze, en het pakket toont exact wat je moet toevoegen. We zien liever dat je dat doet.
- Namen korter dan vijf tekens houden we voorlopig achter. Een naam teruggeven kan niet, en wie het eerst komt op de korte namen is hoe elke naamdienst begint met spijt te krijgen.
- Je domein heeft DNSSEC nodig, anders weigeren wallets de naam ronduit. Er is geen onveilige terugvaloptie, en dat is met opzet.
Probeer het
Draai je al een node, installeer dan het pakket, plak je adres, en publiceer het record op je eigen domein. Dat is beter dan wat wij je kunnen bieden.
Wil je gewoon een naam die werkt, neem er dan één bij ons.
Gratis, geen account, ongeveer dertig seconden
Neem een betaalnaam
Eén naam die mensen echt kunnen typen, die verwijst naar een adres dat hun niets vertelt over wat je verder ontving.
silentpayments.net →En als je iets wil betalen en het wil zien werken, rob@bitsaga.be staat live.
Noch jij noch iemand anders kan zien wat daar verder heen gestuurd is. Wat precies de bedoeling was.