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

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

Nella tecnologia finanziaria, il termine peer-to-peer viene spesso utilizzato per descrivere il processo di scambio di criptovalute o risorse digitali su una rete distribuita. Le piattaforme P2P consentono ad acquirenti e venditori di effettuare transazioni senza la necessità di intermediari. In alcuni casi, i siti web possono anche fornire un ambiente P2P per connettere i finanziatori con i mutuatari.

L’architettura P2P può essere adatta a molti casi d’uso diversi, ma è diventata particolarmente popolare negli anni ’90 quando furono creati i primi programmi di condivisione di file. Oggi, le reti P2P sono l’elemento centrale 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 una rete peer-to-peer?

In sostanza, un sistema peer-to-peer è mantenuto da una rete distribuita di utenti. Questa rete in genere non ha un amministratore o un server centrale perché ogni nodo memorizza una copia dei file e ogni nodo funge da client e server per gli altri nodi. Pertanto, ciascun nodo può scaricare file da altri nodi o caricare file su altri nodi. Questo è ciò che differenzia le reti peer-to-peer dai più tradizionali sistemi server-client, in cui i dispositivi client scaricano file da un server centralizzato.

Su una rete peer-to-peer, i dispositivi connessi condividono i file archiviati sui propri 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 file, può fungere da origine di quel file.

In altre parole, quando un nodo funge da client, scarica file da altri nodi sulla rete. Ma quando fungono da server, sono la fonte da cui altri nodi possono scaricare file. In realtà, però, i pulsanti possono svolgere due funzioni contemporaneamente (ad esempio, scaricare il file A e caricare il file B).

Poiché ogni nodo ha funzioni per archiviare, trasmettere e ricevere file, le reti peer-to-peer tendono a funzionare più velocemente e in modo più efficiente man mano che le comunità di utenti crescono. Inoltre, la loro architettura distribuita rende i sistemi P2P altamente resistenti agli 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 a tre stili architettonici principali: reti peer-to-peer non strutturate, strutturate e ibride.


Le reti peer-to-peer (P2P) non sono strutturate

I nodi su una rete P2P non strutturata non sono organizzati secondo alcuna struttura particolare. I partecipanti comunicano in modo casuale tra loro. Questi sistemi sono considerati robusti contro l'abbandono degli utenti (dove alcuni nodi si uniscono e lasciano frequentemente la rete).

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


Rete strutturata peer-to-peer (P2P).

Al contrario, i nodi su una rete P2P hanno un’architettura organizzata, che consente ai nodi di cercare file in modo efficiente, anche quando il contenuto non è ampiamente disponibile. Nella maggior parte dei casi, ciò si ottiene tramite l'uso di funzioni hash che consentono ricerche nel database.

Sebbene le reti strutturate possano essere più efficienti, in genere presentano un grado più elevato di centralizzazione e spesso richiedono costi di installazione e manutenzione più elevati. Inoltre, le reti sono strutturalmente meno robuste di fronte a un elevato tasso di abbandono degli utenti.


Rete ibrida peer-to-peer (P2P).

Le reti ibride P2P combinano un'architettura client-server tradizionale con alcuni aspetti di un'architettura peer-to-peer. Ad esempio, questa rete può progettare un server centrale per creare connessioni tra computer peer nella rete.

Rispetto alle altre due architetture, i modelli ibridi spesso dimostrano prestazioni operative più elevate. Combinano i principali vantaggi di ciascun metodo, fornendo un significativo grado di efficienza e decentralizzazione.


Distribuito contro decentralizzato

Sebbene l’architettura P2P sia per sua natura distribuita, è importante notare che esistono diversi livelli di decentralizzazione. Quindi non tutte le reti P2P sono decentralizzate.

In effetti, molti sistemi si affidano a un sistema centrale per eseguire le operazioni di rete, rendendoli in qualche modo centralizzati. Ad esempio, alcuni sistemi di condivisione file peer-to-peer consentono agli utenti di cercare e scaricare file da altri utenti, ma tale utente non può partecipare ad altri processi, come la gestione delle query di ricerca.

Inoltre, si può dire che anche le piccole reti controllate da una piccola comunità di utenti con obiettivi comuni abbiano un grado di centralizzazione più elevato, nonostante non dispongano di un'infrastruttura di rete centralizzata.


Il ruolo del P2P nella blockchain

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

In questo contesto, è l’architettura peer-to-peer, una tecnologia al centro della blockchain, che consente agli utenti di scambiare Bitcoin e altre criptovalute in tutto il mondo senza bisogno di intermediari o server. Quale centro? Inoltre, chiunque può diventare un nodo della rete Bitcoin se desidera partecipare al processo di verifica e convalida dei blocchi.

Pertanto, non esiste alcuna banca che elabori o registri le transazioni sulla rete Bitcoin. Invece, la blockchain agisce come un registro digitale che registra pubblicamente tutte le attività. In sostanza, ogni nodo conserva una copia della blockchain e la confronta con altri nodi per garantire che i dati siano accurati. La rete nega rapidamente qualsiasi attività dannosa o errata.

Nel contesto delle blockchain di criptovaluta, i nodi possono assumere ruoli diversi. Ad esempio, i full node sono nodi che aiutano a mantenere la sicurezza della rete verificando le transazioni secondo le regole di consenso del sistema.

Ogni nodo completo mantiene una copia completa e aggiornata della blockchain, consentendo loro di partecipare al lavoro congiunto per verificare lo stato effettivo del registro distribuito. Tuttavia, vale la pena notare che non tutti i nodi che convalidano completamente sono minatori.


Vantaggi delle reti peer-to-peer

L'architettura peer-to-peer di Blockchain offre molti vantaggi. Il vantaggio più importante è che le reti peer-to-peer sono più sicure delle tradizionali architetture client-server. La distribuzione delle blockchain su un gran numero di nodi le rende praticamente resistenti agli attacchi Denial of Service (DoS) utilizzati per attaccare molti sistemi.

Allo stesso modo, poiché la maggior parte dei nodi deve raggiungere il consenso prima che nuovi dati vengano aggiunti alla blockchain, è quasi impossibile per un utente malintenzionato modificare i dati. Ciò è particolarmente vero per le reti di grandi dimensioni come la rete Bitcoin. Le blockchain più piccole sono più vulnerabili agli attacchi perché una persona o un gruppo può ottenere il controllo sulla maggior parte dei nodi (questo è noto come attacco del 51%).

Pertanto, le reti peer-to-peer distribuite, se combinate con il requisito del consenso della maggioranza, rendono le blockchain altamente resistenti alle attività dannose. È il modello P2P che consente a Bitcoin (e ad altre blockchain) di 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 governi non possono congelare o svuotare i portafogli di criptovaluta. Inoltre, l’architettura P2P aiuta anche le blockchain a resistere alla censura da parte di piattaforme di contenuti privati ​​e piattaforme di elaborazione dei pagamenti. Alcuni creatori di contenuti e commercianti online hanno adottato i pagamenti in criptovaluta come un modo per evitare il blocco dei pagamenti da parte di terzi.


Limitazioni delle reti peer-to-peer

Nonostante molti vantaggi, l’utilizzo delle reti P2P su blockchain presenta anche alcune limitazioni.

Poiché il registro distribuito deve essere aggiornato su ciascun nodo anziché su un server centrale, l’aggiunta di transazioni alla blockchain richiede una grande quantità di potenza di calcolo. Sebbene ciò aumenti la sicurezza, riduce significativamente le prestazioni e rappresenta uno dei principali ostacoli alla scalabilità e all’adozione diffusa della rete. Tuttavia, crittografi e sviluppatori blockchain stanno lavorando su alternative che possano essere utilizzate come soluzioni di scalabilità. Esempi importanti includono i protocolli Lightning Network, Ethereum Plasma e Mimblewimble.

Un'altra possibile limitazione riguarda gli attacchi che possono verificarsi durante eventi di chain split (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. Le rotture della catena (hard fork) sono del tutto normali e non rappresentano una minaccia in sé. Tuttavia, se alcuni metodi di sicurezza non vengono applicati correttamente, entrambe le catene possono facilmente diventare obiettivi di attacchi di tipo replay.

Inoltre, la natura distribuita delle reti P2P le rende relativamente difficili da controllare e regolamentare, soprattutto nel segmento blockchain. Alcune app e aziende P2P sono coinvolte in attività illegali e pirateria.


Concludere

L'architettura peer-to-peer è l'elemento centrale della tecnologia blockchain, il fondamento della criptovaluta. Esistono molti modi per sviluppare e utilizzare l'architettura peer-to-peer. Disperdendo i registri delle transazioni su un’ampia rete di nodi, l’architettura P2P fornisce sicurezza, decentralizzazione e resistenza alla censura.

Oltre ai vantaggi offerti dalla tecnologia blockchain, i sistemi P2P possono essere applicati anche ad altre applicazioni informatiche distribuite, dalle reti di condivisione di file alle piattaforme di scambio energetico.