BIP 324 (Version 2 P2P Encrypted Transport Protocol)

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

La BIP 324 (Version 2 P2P Encrypted Transport Protocol) è una proposta di miglioramento di Bitcoin che mira a migliorare la privacy dei nodi Bitcoin crittografando la loro comunicazione. Questa proposta introduce un nuovo protocollo di trasporto dei messaggi che crittografa e autentica i messaggi tra i nodi. Inoltre, costringe gli aggressori che ascoltano le comunicazioni tra i nodi a diventare attivi e rivelarsi.

La BIP-324 introduce un nuovo protocollo di trasporto P2P Bitcoin, che presenta crittografia opportunistica, una leggera riduzione della larghezza di banda e la possibilità di negoziare gli aggiornamenti prima dello scambio di messaggi applicativi.

Precedentemente i dati trasmessi nella rete P2P Bitcoin sono intrinsecamente pubblici e il protocollo non aveva una nozione di identità crittografiche, i peer comunicavano tra loro attraverso connessioni non crittografate e non autenticate. Tuttavia, questa natura in chiaro dell'attuale protocollo P2P (chiamato v1 in questo contesto) presenta gravi inconvenienti in presenza di attaccanti. La BIP 324 che introducendo una nuova versione del protocollo P2P (v2) mira a migliorare questo aspetto aumentando notevolmente i costi per eseguire questi attacchi, principalmente attraverso l'uso di crittografia di trasporto opportunistica non autenticata. Inoltre, il flusso di byte sul wire è reso pseudo-casuale (cioè indistinguibile da byte casuali uniformi) a un eavesdropper passivo.

Attualmente, i messaggi P2P di Bitcoin vengono trasmessi in testo chiaro, il che li rende vulnerabili all'intercettazione da parte di entità infrastrutturali come gli ISP, Internet Service Provider o fornitori di connessioni internet. Tali entità possono manomettere, eliminare o ritardare i messaggi tra peer anonimi. Un'entità infrastrutturale malintenzionata (o anche semplicemente costretta) potrebbe utilizzare questo per influenzare la topologia della rete, determinare l'origine delle transazioni o eseguire attacchi contro protocolli off-chain.

La BIP 324 crittografa i messaggi P2P utilizzando la codifica a flusso ChaCha20 con un codice di autenticazione dei messaggi Poly1305. Una sessione BIP 324 inizia con uno scambio di chiavi Diffie Hellman a curva ellittica per stabilire una chiave di sessione condivisa tra i peer. Da questa chiave di sessione condivisa, vengono derivate 2 chiavi, K_1 e K_2. K_1 viene utilizzato per crittografare la lunghezza del pacchetto di 3 byte. K_2 viene utilizzato per crittografare e autenticare il resto del pacchetto. Utilizzando le chiavi simmetriche K_1 e K_2, il ricevitore decripta prima il numero di lunghezza e da questo offset autentica il pacchetto. Se l'autenticazione ha esito positivo, il ricevitore decripta il payload del messaggio e lo consegna allo strato di elaborazione.

La BIP 324 è stata implementata (merged) su Bitcoin Core a ottobre 2023.

Ecco alcuni dei vantaggi della BIP 324:

  • Migliora la privacy degli utenti proteggendo i loro messaggi P2P dall'intercettazione.
  • Rende più difficile per gli attaccanti manomettere o ritardare i messaggi P2P.
  • Protegge la rete Bitcoin da attacchi che sfruttano la visibilità dei messaggi P2P.
  • La BIP 324 è un passo importante verso una rete Bitcoin più sicura e privata.

Con il rilascio della versione Bitcoin Core 26.0 a dicembre 2023 viene incluso il supporto sperimentale a BIP324.

  • Vedi anche
  • BIP (Bitcoin Improvement Proposal)

aggiornato il 2022-10-14