Bitcoin har ingen sentral server. Noder snakker direkte med hverandre over en enkel peer-to-peer-protokoll, som standard på TCP-port 8333.
Meldingsrammen
I den opprinnelige (v1) protokollen starter hver melding med en header: 4 «magic»-byte som identifiserer nettverket (F9 BE B4 D9 på mainnet), et 12-byte kommandonavn, en nyttelastlengde og en 4-byte sjekksum. Trafikken er ukryptert.
v2: kryptert transport
BIP324 legger til en kryptert transport. Bitcoin Core støtter den og har slått den på som standard siden versjon 27.0. Den autentiserer ikke peere, men gjør passiv spionering og manipulasjon mye vanskeligere.
Håndtrykket
To noder utveksler version-meldinger (programvareversjon, tjenester tilbudt, beste høyde) og bekrefter med verack. Funksjonsmeldinger som sendheaders, sendcmpct, wtxidrelay og sendaddrv2 sendes rundt håndtrykket.
Å spre data
invkunngjør «jeg har denne transaksjonen eller blokken».getdataber om den, ogtxellerblockleverer den.headersoggetheadersutveksler blokkheadere, opptil 2 000 om gangen.cmpctblock,getblocktxnogblocktxnbærer kompakte blokker (BIP152).feefilterforteller en peer om ikke å sende transaksjoner under en gebyrsats.ping/pongsjekker at tilkoblingen er i live.
Å finne peere
En ny node spør først DNS-seeds, drevet av kjente fellesskapsmedlemmer, om adresser. Deretter lærer den mer gjennom addr- og addrv2-meldinger. BIP155s addrv2 kan bære Tor v3-, I2P- og CJDNS-adresser.
Å motstå angrep
Bitcoin Core gjør 8 full-relay utgående tilkoblinger og 2 block-relay-only-tilkoblinger som standard. Den plukker adresser fra ulike nettverksgrupper slik at én angriper ikke lett kan omringe en node (et «eclipse-angrep»). Peere som sender ugyldige data frakobles.
Takeaway
P2P-laget flytter bare data. Hver node sjekker fortsatt hver blokk og transaksjon mot konsensus-reglene selv.