Bijna 15 jaar lang werd alle communicatie tussen knooppunten in de Bitcoin-gemeenschap volledig transparant verzonden, zonder enige codering. Dat veranderde in 2024 met de adoptie van BIP 324, waarmee de “v2” werd gelanceerd transportprotocol voor communicatie tussen knooppunten. Dit nieuwe protocol maakt gebruik van opportunistische encryptie, waardoor bezoekers van de site onleesbaar worden voor passieve tegenstanders die berichten tussen knooppunten kunnen monitoren. Sinds het is opgenomen in Bitcoin Core 26.0 en standaard in 27.0, wordt het nu gebruikt door bijna alle bezoekers van de Bitcoin P2P-site wereldwijd.
Nog een stap verder: de belangrijkste taak van een Bitcoin-knooppunt is het uitwisselen van gegevens die in principe openbaar kunnen zijn: blokken binnen de blockchain, transacties binnen de mempool en IP-adressen van verschillende Bitcoin-knooppunten. Omdat dit geen geheime informatie is, is het niet meteen duidelijk waarom het op de beste manier versleutelen nuttig zou kunnen zijn. Bij nadere inspectie kunnen er echter heel veel zijn metagegevens gerelateerd aan bezoekers van de Bitcoin-site, dat is prijsverdediging. Als een grootschalige tegenstander kan zien welke transactie wanneer wordt doorgegeven en via welke IP-handle, zal hij daaruit afleiden welk knooppunt de schijnbaar initiator (en dus de schepper) van een transactie was. Daarnaast zou het zien van de verbindingen tussen knooppunten zelf kunnen onthullen tot wie bepaalde knooppunten behoren, waardoor knooppunten van bepaalde bedrijven of mijnwerkers zich kunnen concentreren op aanvallen. En voor sommige klanten die knooppunten exploiteren in onderdrukkende regimes, kan het onwenselijk zijn om te onthullen dat ze in welk opzicht dan ook een Bitcoin-knooppunt exploiteren.
Binnen het P2P-protocol, zoals ontworpen door Satoshi, verbinden knooppunten zich met elkaar en verzenden via deze verbindingen berichten zoals inv (“Ik heb nieuwe blokken/transacties voor je”), gegevens ophalen (“geef mij dat blok/transactie”), adres (“hier is een IP-adres van een ander knooppunt”), en tal van andere. De reeks berichten en opties die ze ondersteunen is in de loop van de tijd aanzienlijk veranderd, samen met hulp voor vroege SPV-shoppers met BIP 37, compact block relay met BIP 152, hulp voor Tor v3-adressen met BIP 155 en tientallen andere. De beste manier waarop deze berichten worden gecodeerd in bytes die via de draad kunnen worden verzonden – wat wij het transportprotocol noemen – is sinds 2009 vrijwel niet veranderd. De enige uitzondering hierop was de introductie van checksums in het protocol in mei 2010. BIP 324 was de belangrijkste wijziging van deze aard sindsdien.
Houd er rekening mee dat, ook al is het een enigszins elementaire verandering in wat zal worden beschreven als onderdeel van het “Bitcoin-protocol”, het volledig keuzevak is. Het is geen consensusverandering en er was geen coördinatie- of activeringsmechanisme nodig. Het wordt alleen maar gebruikt tussen specifieke persoonsknooppunten die daarbij assisteren, maar wanneer een BIP 324-ondersteunend knooppunt praat met een ander knooppunt dat dat niet doet, vallen ze weer terug op het verouderde (“v1”) transportprotocol. Dat is hoe, zonder veel tamtam, niet twee jaar na de lancering van een consumentensoftwareprogramma dat dit standaard toestaat, de overgrote meerderheid van de communicatie tussen Bitcoin-knooppunten eindigde met behulp van het gecodeerde v2-transportprotocol.
Het concept van het coderen van bezoekers van de Bitcoin-site was niet nieuw. In 2016 stelde Bitcoin Core-ontwikkelaar Jonas Schnelli opnieuw BIP 151 voor, waarmee het mogelijk zou kunnen zijn verbindingen te upgraden om ze naar een gecodeerde modus te wijzigen. Het voorstel kwam niet ver, en aangezien die strategie de voorlopige handdruk tussen twee knooppunten niet voor nieuwsgierige blikken kon verbergen, werd in 2019 BIP 324 voorgesteld om als vervanging het transportprotocol volledig te vernieuwen. Deze extra trendy strategie als vervanging lanceerde een geheel nieuwe klasse verbindingen die vanaf het begin gecodeerd konden zijn. De voortgang ervan versnelde toen het in 2021 werd opgepikt door Dhruv Mehta, en samen met Tim Ruffing en mijzelf veranderde in een volledig voorstel dat een aantal nieuwe opties omvatte, zoals een volledig pseudowillekeurige bytestream, mogelijkheden voor vormgeving van sitebezoekers en keuzevakken. We hebben het in 2022 op de bitcoin-dev-mailingrecord geïntroduceerd en na het ontvangen van een aantal feedback in de loop van 2022 en 2023 toegepast. De totale functie is in 2023 samengevoegd in Bitcoin Core. Na aanvullende tests werd deze in 2024 standaard ingeschakeld voor alle verbindingen (met ondersteunende vrienden).
De absoluut pseudowillekeurige bytestream-functie van het gloednieuwe protocol betekent dat het geen herkenbare patronen weergeeft binnen de bytes die over de draad worden verzonden. TLS, dat wordt gebruikt voor communicatie met veilige websites (“https://” URL’s), codeert bijvoorbeeld de inhoud van internetsites, maar niet de waarheid dat TLS steeds meer wordt gebruikt, of (tot 2020 met Encrypted Consumer Good Day, “ECH”) van welke hostnaam de positionering werd opgevraagd. Het v1-transport dat eerder dan BIP 324 werd gebruikt, stuurde een echt herkenbare gemonteerde eerste 16 bytes over elke verbinding, waardoor het voor censurerende firewalls eenvoudig werd om elke verwijzing naar dat voorbeeld te blokkeren. Ter onderscheiding: het v2-transport heeft in geen enkel opzicht een dergelijk monster; elke byte is uniform willekeurig vanuit de hoek van een derde sociale bijeenkomst, en dus volkomen onvoorspelbaar. Elke entiteit die van plan is bezoekers van Bitcoin-sites te blokkeren die er gebruik van maken, wil misschien iets indammen dat willekeurig lijkt, wat waarschijnlijk politiek moeilijker zal zijn dan simpelweg bezoekers van Bitcoin-achtige sites ternauwernood te blokkeren. Het moeilijkste onderdeel van het pseudowillekeurig maken van alle protocollen was de waarheid dat tijdens de handshake – voordat de encryptie bijna klaar is – de knooppunten publieke sleutels moeten veranderen, en publieke sleutels mogen niet zomaar willekeurige bytes zijn. Alleen dankzij een redelijk trendy cryptografische benadering, Elligator (2013) genoemd, en in het bijzonder een variant genaamd ElligatorSwift (2022) die het coderen van openbare sleutels met een elliptische curve in willekeurig ogende bytes mogelijk maakt, was het mogelijk om zelfs dit voorbeeld te vermijden.
Het is duidelijk dat er, als gevolg van het publieke karakter van de Bitcoin-gemeenschap, essentiële beperkingen zijn aan de privacybescherming die een gecodeerde transportlaag tussen knooppunten kan bieden. Bitcoin-knooppunten plaatsen het geloof van hun vrienden niet, en het maakt dus waarschijnlijk niet uit met wie ze praten. Bitcoin-nodes zouden geen publieke sleutels moeten hebben herkend. Daarom is de encryptie die door het v2-transport wordt geboden opportunistisch en niet-geauthenticeerd; aan beide kanten vormt u voor elke verbinding eenvoudigweg een gloednieuwe tijdelijke sleutel. Dit houdt in dat levendige tegenstanders (bijvoorbeeld uw ISP) een man-in-the-middle-aanval kunnen uitvoeren: bespreek v2 aan beide kanten van de verbinding, decodeer en hercodeer echter alle communicatie die tussen hen stroomt, maar laat spionage toe en vermoedelijk knoeien of censureren terwijl u dit doet. Het doel is echter dat het aanzienlijk duurder is om dit op grote schaal te doen, in vergelijking met alleen het inspecteren van niet-gecodeerde berichten van bepaalde personen, zoals mogelijk is binnen het v1-transport. En aangezien de meeste Bitcoin-verbindingen willekeurig tot stand worden gebracht met willekeurige, niet-vertrouwde knooppunten, heeft een tegenstander die te allen tijde op grote schaal verschillende knooppunten moet bespioneren, uiteraard de keuze om eenvoudigweg zelf een aanzienlijk aantal knooppunten op te starten en een groot deel van de gemeenschap zover te krijgen dat ze zich ermee verbinden. Net als man-in-the-middle-aanvallen is dat duurder om op schaal uit te voeren dan alleen het inspecteren van v1-pakketten.
BIP 324 kan dus het beste worden gezien, niet als een verbetering van de privacy op zichzelf, maar als de helft van een grotere inspanning om de prijzen voor grootschalige surveillance van de Bitcoin-gemeenschap te verhogen, zonder te rekenen op alternatieve netwerken zoals Tor of I2P, die hun eigen afwegingen hebben, zoals verhoogde latentie en denial-of-service-gevaar, die misschien niet acceptabel zijn voor alle knooppunten in de gemeenschap. BIP 324 biedt bovendien een flink aantal opties die misschien al bestaan, maar nog niet zijn geïmplementeerd, zoals sitebezoekers die proberen te voorkomen dat ze details onthullen over transacties die worden doorgegeven door simpelweg de grootte van gecodeerde pakketten te observeren. Hopelijk zullen deze de komende jaren nog verder worden benut.
Mis uw kans niet om eigenaar te worden Het kernprobleem – inclusief artikelen geschreven door veel Core Builders waarin de initiatieven worden uitgelegd waar ze zelf aan werken!
Dit stuk is de brief van de redacteur die in de nieuwste versie voorkomt Afdrukken versie van Bitcoin Journal, The Core Difficulty. We delen het hier als een eerste blik op de concepten die door het hele onderwerp heen worden onderzocht.
“DagelijksCrypto is niet verantwoordelijk voor activiteiten die u buiten DagelijksCrypto uitvoert.”

