Cos'è il peer-to-peer (P2P)?

In informatica, una rete peer-to-peer (P2P) è costituita da un gruppo di dispositivi che archiviano e condividono collettivamente file. Ogni partecipante (nodo) agisce come un peer individuale. In genere, tutti i nodi hanno la stessa potenza ed eseguono gli stessi compiti.

Nella tecnologia finanziaria, il termine peer-to-peer si riferisce solitamente allo scambio di criptovalute o risorse digitali tramite una rete distribuita. Una piattaforma P2P consente ad acquirenti e venditori di eseguire operazioni senza la necessità di intermediari. In alcuni casi, i siti Web possono anche fornire un ambiente P2P che collega finanziatori e mutuatari.

L’architettura P2P può essere adatta a vari casi d’uso, ma è diventata particolarmente popolare negli anni ’90 quando furono creati i primi programmi di condivisione file. Oggi, le reti P2P sono al centro della maggior parte delle criptovalute e costituiscono gran parte del settore blockchain. Tuttavia, vengono sfruttati anche in altre applicazioni informatiche distribuite, inclusi motori di ricerca web, piattaforme di streaming, mercati online e il protocollo web InterPlanetary File System (IPFS).


Come funziona il P2P?

In sostanza, un sistema P2P è mantenuto da una rete distribuita di utenti. Di solito, non hanno un amministratore o un server centrale perché ogni nodo conserva una copia dei file, agendo sia come client che come server per gli altri nodi. Pertanto, ciascun nodo può scaricare file da altri nodi o caricare file su di essi. Questo è ciò che differenzia le reti P2P dai più tradizionali sistemi client-server, in cui i dispositivi client scaricano file da un server centralizzato.

Nelle reti P2P, i dispositivi connessi condividono file archiviati sui loro dischi rigidi. Utilizzando applicazioni software progettate per mediare la condivisione dei dati, gli utenti possono interrogare altri dispositivi sulla rete per trovare e scaricare file. Una volta che un utente ha scaricato un determinato file, può fungere da fonte di quel file.

In altre parole, quando un nodo funge da client, scarica file da altri nodi della rete. Ma quando funzionano come server, sono la fonte da cui altri nodi possono scaricare file. In pratica, però, entrambe le funzioni possono essere eseguite contemporaneamente (ad esempio, download del file A e caricamento del file B).

Poiché ogni nodo memorizza, trasmette e riceve file, le reti P2P tendono ad essere più veloci ed efficienti man mano che la loro base di utenti cresce. Inoltre, la loro architettura distribuita rende i sistemi P2P molto resistenti agli attacchi informatici. A differenza dei modelli tradizionali, le reti P2P non hanno un singolo punto di guasto.

Possiamo classificare i sistemi peer-to-peer in base alla loro architettura. I tre tipi principali sono chiamati reti P2P non strutturate, strutturate e ibride.


Reti P2P non strutturate

Le reti P2P non strutturate non presentano alcuna organizzazione specifica dei nodi. I partecipanti comunicano in modo casuale tra loro. Questi sistemi sono considerati robusti contro un'elevata attività di abbandono (ovvero, diversi nodi che si uniscono e abbandonano frequentemente la rete).

Sebbene siano più facili da costruire, le reti P2P non strutturate potrebbero richiedere un utilizzo maggiore di CPU e memoria perché le query di ricerca vengono inviate al maggior numero possibile di peer. Ciò tende a inondare la rete di domande, soprattutto se un numero limitato di nodi offre il contenuto desiderato.


Reti P2P strutturate

Al contrario, le reti P2P strutturate presentano un’architettura organizzata, consentendo ai nodi di cercare in modo efficiente i file, anche se il contenuto non è ampiamente disponibile. Nella maggior parte dei casi, ciò si ottiene mediante l'uso di funzioni hash che facilitano le ricerche nel database.

Sebbene le reti strutturate possano essere più efficienti, tendono a presentare livelli più elevati di centralizzazione e solitamente richiedono costi di installazione e manutenzione più elevati. Oltre a ciò, le reti strutturate sono meno robuste di fronte a tassi di abbandono elevati.


Reti P2P ibride

Le reti ibride P2P combinano il modello client-server convenzionale con alcuni aspetti dell'architettura peer-to-peer. Ad esempio, il suo design potrebbe contenere un server centrale che facilita la connessione tra peer.

Rispetto agli altri due tipi, i modelli ibridi tendono a presentare prestazioni complessive migliori. Di solito combinano alcuni dei principali vantaggi di ciascun approccio, raggiungendo contemporaneamente livelli significativi di efficienza e decentralizzazione.


Distribuito vs. decentralizzato

Sebbene l’architettura P2P sia intrinsecamente distribuita, è importante notare che esistono vari gradi di decentralizzazione. Quindi, non tutte le reti P2P sono decentralizzate.

In effetti, molti sistemi si affidano ad un’autorità centrale per guidare l’attività della rete, rendendoli in qualche modo centralizzati. Ad esempio, alcuni sistemi di condivisione file P2P consentono agli utenti di cercare e scaricare file da altri utenti, ma non sono in grado di partecipare ad altri processi, come la gestione delle query di ricerca.

Inoltre, si potrebbe dire che anche le piccole reti controllate da una base di utenti limitata con obiettivi condivisi abbiano un grado di centralizzazione più elevato, nonostante la mancanza di un’infrastruttura di rete centralizzata.


Il ruolo del P2P nelle blockchain

Nelle fasi iniziali di Bitcoin, Satoshi Nakamoto lo definì un “sistema di cassa elettronico peer-to-peer”. Bitcoin è stato creato come forma di denaro digitale. Può essere trasferito da un utente a un altro attraverso una rete P2P, che gestisce un registro distribuito chiamato blockchain.

In questo contesto, l’architettura P2P inerente alla tecnologia blockchain è ciò che consente di trasferire bitcoin e altre criptovalute in tutto il mondo, senza bisogno di intermediari né di alcun server centrale. Inoltre, chiunque può creare un nodo Bitcoin se desidera partecipare al processo di verifica e convalida dei blocchi.

Pertanto, non ci sono banche che elaborano o registrano transazioni nella rete Bitcoin. Invece, la blockchain agisce come un registro digitale che registra pubblicamente tutte le attività. Fondamentalmente, ogni nodo conserva una copia della blockchain e la confronta con altri nodi per garantire che i dati siano accurati. La rete rifiuta rapidamente qualsiasi attività dannosa o inesattezza.

Nel contesto delle blockchain di criptovaluta, i nodi possono assumere una varietà di ruoli diversi. I nodi completi, ad esempio, sono quelli che forniscono sicurezza alla rete verificando le transazioni rispetto alle regole di consenso del sistema.

Ogni nodo completo mantiene una copia completa e aggiornata della blockchain, consentendo loro di partecipare al lavoro collettivo di verifica del vero stato del registro distribuito. Vale la pena notare, tuttavia, che non tutti i nodi di convalida completa sono minatori.


Vantaggi

L’architettura peer-to-peer delle blockchain offre molti vantaggi. Tra i più importanti c’è il fatto che le reti P2P offrono maggiore sicurezza rispetto ai tradizionali accordi client-server. La distribuzione delle blockchain su un gran numero di nodi le rende praticamente immuni agli attacchi Denial-of-Service (DoS) che affliggono numerosi sistemi.

Allo stesso modo, poiché la maggioranza dei nodi deve stabilire un consenso prima che i dati vengano aggiunti a una blockchain, è quasi impossibile per un utente malintenzionato alterare i dati. Ciò è particolarmente vero per le grandi reti come quella di Bitcoin. Le blockchain più piccole sono più suscettibili agli attacchi perché una persona o un gruppo potrebbe eventualmente ottenere il controllo sulla maggior parte dei nodi (questo è noto come attacco del 51%).

Di conseguenza, la rete peer-to-peer distribuita, abbinata al requisito del consenso della maggioranza, conferisce 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 P2P 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 prosciugati dai governi. Questa resistenza si estende anche agli sforzi di censura da parte delle piattaforme private di elaborazione dei pagamenti e di contenuti. Alcuni creatori di contenuti e commercianti online hanno adottato i pagamenti in criptovaluta come un modo per evitare che i loro pagamenti vengano bloccati da terze parti.


Limitazioni

Nonostante i numerosi vantaggi, l’uso delle reti P2P su blockchain presenta anche alcuni limiti.

Poiché i registri distribuiti devono essere aggiornati su ogni singolo nodo anziché su un server centrale, l’aggiunta di transazioni a una blockchain richiede un’enorme quantità di potenza di calcolo. Sebbene ciò offra maggiore sicurezza, riduce notevolmente l’efficienza e rappresenta uno dei principali ostacoli in termini di scalabilità e adozione diffusa. Tuttavia, crittografi e sviluppatori blockchain stanno studiando alternative che potrebbero essere utilizzate come soluzioni di scalabilità. Esempi importanti includono Lightning Network, Ethereum Plasma e il protocollo Mimblewimble.

Un'altra potenziale limitazione riguarda gli attacchi che potrebbero verificarsi durante gli eventi di hard fork. Poiché la maggior parte delle blockchain sono decentralizzate e open source, i gruppi di nodi sono liberi di copiare e modificare il codice e di separarsi dalla catena principale per formare una nuova rete parallela. Gli hard fork sono del tutto normali e non costituiscono di per sé una minaccia. Ma se alcuni metodi di sicurezza non vengono adottati correttamente, entrambe le catene potrebbero diventare vulnerabili agli attacchi di tipo replay.

Inoltre, la natura distribuita delle reti P2P le rende relativamente difficili da controllare e regolamentare, non solo nella nicchia blockchain. Diverse applicazioni e aziende P2P sono state coinvolte in attività illegali e violazioni del copyright.


Pensieri conclusivi

L’architettura peer-to-peer può essere sviluppata e utilizzata in molti modi diversi, ed è al centro delle blockchain che rendono possibili le criptovalute. Distribuendo i registri delle transazioni su grandi reti di nodi, l’architettura P2P offre sicurezza, decentralizzazione e resistenza alla censura.

Oltre alla loro utilità nella tecnologia blockchain, i sistemi P2P possono servire anche altre applicazioni informatiche distribuite, che vanno dalle reti di condivisione di file alle piattaforme di scambio energetico.