Cosa significa peer-to-peer (P2P)?
Nel campo dell'informatica, una rete peer-to-peer o peer-to-peer (P2P) è costituita da un gruppo di dispositivi interconnessi che scambiano file tra loro e memorizzano lo stesso insieme di dati. Ogni partecipante (nodo) agisce come un singolo peer. In genere, tutti i nodi hanno la stessa potenza ed eseguono gli stessi compiti.
In termini finanziari, il termine si riferisce spesso allo scambio di criptovalute o risorse digitali su una rete distribuita. La piattaforma P2P consente ad acquirenti e venditori di completare transazioni senza intermediari. In alcuni casi, i siti Web possono anche fornire un ambiente peer-to-peer che collega finanziatori e mutuatari.
L'architettura P2P è adatta a una varietà di casi d'uso e la tecnologia è diventata popolare negli anni '90 quando sono stati creati i primi programmi di condivisione file. Oggi, le reti peer-to-peer sono la base della maggior parte delle criptovalute e costituiscono gran parte del settore blockchain. Tuttavia, viene utilizzato anche in altre applicazioni informatiche distribuite, inclusi motori di ricerca, piattaforme di streaming, mercati online e il protocollo web InterPlanetary File System (IPFS).
Come funziona?
Il sistema P2P è supportato da una rete distribuita di utenti. Di solito non hanno un amministratore o un server principale, poiché ogni nodo contiene una copia di tutti i file, fungendo da client e server per gli altri nodi. Pertanto, ciascun nodo può scaricare file da altri nodi e anche in ordine inverso. Questa è una caratteristica distintiva di una rete P2P rispetto ai suoi client più tradizionali, in cui i dispositivi scaricano file da un server centralizzato.
Nelle reti peer-to-peer, i dispositivi connessi si scambiano file che vengono archiviati sui loro dischi rigidi. Utilizzando applicazioni software progettate per condividere dati, gli utenti possono richiedere e scaricare file su altri dispositivi sulla rete. Una volta che l'utente ha scaricato questo file, può fungere da fonte.
In altre parole, quando un nodo funge da client, scarica file da altri nodi della rete. Ma quando tutti i nodi fungono da server, diventano una fonte da cui altri nodi possono scaricare dati. Tuttavia, in pratica, entrambe le funzioni possono essere eseguite contemporaneamente (ad esempio, scaricare il file A e scaricare il file B).
Poiché ogni nodo memorizza, trasmette e riceve file, le reti P2P tendono a funzionare più velocemente e in modo più efficiente man mano che la loro base di utenti aumenta. Inoltre, l’architettura distribuita rende tali sistemi molto resistenti ai vari attacchi informatici. A differenza dei modelli tradizionali, le reti P2P non presentano un singolo punto di guasto.
Possiamo classificare i sistemi peer-to-peer in base alla loro architettura. Esistono tre tipologie principali: rete P2P non strutturata, strutturata e ibrida.
Reti P2P non strutturate
Le reti non strutturate non rappresentano alcuna particolare organizzazione di nodi. Tutti i partecipanti entrano in contatto casuale tra loro. E a questo proposito, tali sistemi sono considerati resistenti all’elevata attività di turnover dei nodi (vale a dire, alcuni nodi si uniscono alla rete, mentre altri la lasciano).
Sebbene siano semplici da costruire, le reti P2P non strutturate possono richiedere un utilizzo maggiore di CPU e RAM poiché le richieste di ricerca vengono inviate al maggior numero possibile di peer. Questa architettura tende a inondare la rete di richieste, soprattutto se un numero ridotto di nodi offre le informazioni desiderate.
Reti P2P strutturate
Rispetto alla forma precedente, le reti strutturate sono un'architettura organizzata che consente ai nodi di cercare file in modo più efficiente, anche se il contenuto non è ampiamente disponibile. Nella maggior parte dei casi, ciò si ottiene mediante l'uso di funzioni hash, che semplificano la ricerca nel database.
Sebbene le reti strutturate offrano elevata disponibilità e produttività, tendono ad essere più centralizzate ed esigenti in termini di installazione e manutenzione. Inoltre, questa architettura è meno resiliente quando si tratta di tassi di abbandono elevati dei nodi.
Reti P2P ibride
Le reti ibride P2P combinano il modello tradizionale con alcuni aspetti dell'architettura peer-to-peer. Grazie a questo, ad esempio, si potrà sviluppare un server centrale che semplificherà la connessione tra i nodi.
Rispetto alle altre due tipologie, i modelli ibridi tendono ad avere prestazioni complessive più elevate. Di solito combinano alcuni dei principali vantaggi di ciascun approccio e quindi raggiungono allo stesso tempo elevati livelli di efficienza e decentralizzazione.
Distribuzione o decentralizzazione?
L'architettura P2P è distribuita per natura, ma vale la pena notare che, se implementata, la rete potrebbe avere diversi livelli di decentralizzazione. Per questo motivo non tutte le reti peer-to-peer sono decentralizzate.
Poiché molti sistemi si affidano a un’autorità centrale per gestire la rete, ciò li rende in qualche modo centralizzati. Ad esempio, alcuni servizi di file hosting peer-to-peer consentono agli utenti di cercare e scaricare file a spese di altri utenti, ma non possono partecipare ad altri processi, come la gestione delle richieste di ricerca.
Oltre a ciò, si può dire che le piccole reti controllate da una base di utenti limitata con obiettivi comuni hanno un livello di centralizzazione più elevato, nonostante la mancanza di un’infrastruttura di rete centralizzata.
Impatto del P2P sulla Blockchain
Nelle prime fasi di sviluppo, Satoshi Nakamoto definì Bitcoin come un "sistema di pagamento elettronico in contanti peer-to-peer". Bitcoin è stato creato come una forma digitale di denaro che può essere trasferita da un utente a un altro attraverso una rete peer-to-peer e gestita da un registro distribuito, noto anche come blockchain.
In questo contesto, l’architettura P2P, caratteristica della tecnologia blockchain, consente lo scambio di bitcoin e altre criptovalute in tutto il mondo senza intermediari e server centralizzati. Inoltre, chiunque può unirsi e diventare un nodo della rete Bitcoin se desidera partecipare al processo di controllo e convalida dei blocchi.
Pertanto, non ci sono banche sulla rete Bitcoin che elaborano o registrano tutte le transazioni. Invece, la blockchain funziona come un registro digitale che registra pubblicamente tutte le attività. In pratica ogni nodo memorizza una copia della blockchain e la confronta con copie di altri nodi per garantire l’accuratezza dei dati. In questo modo, la rete risponde rapidamente a qualsiasi attività dannosa o inesattezza.
All'interno delle blockchain di criptovaluta, i nodi possono assumere diverse responsabilità. Ad esempio, i full node (nodi completi) garantiscono la sicurezza della rete convalidando le transazioni rispetto alle regole di consenso stabilite del sistema.
Ogni nodo completo mantiene una copia aggiornata della blockchain, consentendogli di partecipare a uno sforzo collettivo per verificare il vero stato del registro distribuito. Tuttavia, vale la pena notare che non tutti i full node sono minatori.
Vantaggi
L’architettura peer-to-peer delle blockchain offre molti vantaggi agli utenti. Uno dei più importanti è che tali reti forniscono una maggiore sicurezza rispetto a un tradizionale dispositivo client-server. La distribuzione dei dati sulla blockchain tra un gran numero di nodi rende la rete praticamente immune agli attacchi Denial of Service (DoS) che affliggono la maggior parte dei sistemi.
Poiché la maggior parte dei nodi deve raggiungere il consenso prima che i dati vengano aggiunti alla blockchain, è praticamente impossibile per un utente malintenzionato apportare modifiche. E questo è effettivamente vero quando si tratta di una rete di grandi dimensioni come Bitcoin. Le blockchain più piccole sono più suscettibili agli attacchi perché un’entità o un gruppo di individui può eventualmente ottenere il controllo della maggior parte dei nodi (noto anche come attacco del 51%).
Di conseguenza, una rete peer-to-peer distribuita, combinata con il consenso obbligatorio della maggior parte dei partecipanti, fornisce alle blockchain un grado relativamente elevato di resistenza alle attività dannose. Il modello P2P è uno dei motivi per cui Bitcoin (e altre blockchain) sono riusciti a raggiungere la cosiddetta tolleranza agli errori bizantina.
Oltre alla sicurezza, l’uso dell’architettura peer-to-peer nelle blockchain di criptovalute le rende anche resistenti alla censura da parte delle autorità centrali. A differenza dei conti bancari standard, i portafogli di criptovaluta non possono essere congelati o cancellati dal governo. Questa resilienza si estende anche alla censura delle piattaforme private di elaborazione dei pagamenti e di pubblicazione di contenuti. Alcuni creatori di media e venditori online hanno iniziato a utilizzare la criptovaluta per evitare che i loro pagamenti vengano bloccati da terze parti.
Screpolatura
Nonostante i numerosi vantaggi, le reti peer-to-peer presentano anche alcuni svantaggi.
Poiché i registri distribuiti devono essere aggiornati su ciascun nodo anziché su un server centrale, l’aggiunta di transazioni alla blockchain richiede una grande quantità di risorse di calcolo. Sebbene ciò garantisca una maggiore sicurezza, a sua volta riduce significativamente l’agilità operativa, che rappresenta uno dei principali ostacoli quando si tratta di scalabilità e adattamento su larga scala. Tuttavia, crittografi e sviluppatori blockchain stanno esplorando alternative che possano essere utilizzate come soluzione per aumentare la scalabilità. Esempi degni di nota includono Lightning Network, Ethereum Plasma e il protocollo Mimblewimble.
Un altro potenziale svantaggio riguarda gli attacchi che possono verificarsi durante un hard fork. Poiché la maggior parte delle blockchain sono decentralizzate e open source, gruppi di nodi possono copiare e modificare liberamente il codice e quindi separarsi dalla catena principale per formare una nuova rete parallela. Gli hard fork sono un evento del tutto normale, che di per sé non rappresenta alcuna minaccia. Tuttavia, se alcune misure di sicurezza non vengono seguite correttamente, entrambe le catene potrebbero diventare vulnerabili a un attacco di tipo replay.
Inoltre, la natura distribuita delle reti P2P le rende relativamente difficili da monitorare e regolamentare, non solo nello spazio blockchain. Per questo motivo, diverse applicazioni e aziende P2P sono state collegate ad attività illegali e violazione del copyright.
Conclusione
L’architettura peer-to-peer può essere sviluppata e utilizzata in diversi modi, ma è la base di tutte le blockchain, rendendo possibile la criptovaluta. Distribuendo i registri delle transazioni tra grandi nodi di rete, la tecnologia P2P garantisce sicurezza, decentralizzazione e resistenza alla censura.
Oltre alla loro utilità per la tecnologia blockchain, i sistemi P2P possono servire anche altre applicazioni informatiche distribuite, dalle reti di condivisione di file alle piattaforme di scambio energetico.

