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 singolo peer. Tutti i nodi hanno le stesse capacità e lavorano sulla stessa attività.

Nella tecnologia finanziaria, il termine peer-to-peer si riferisce solitamente allo scambio di criptovalute o risorse digitali su una rete distribuita. Una piattaforma P2P consente ad acquirenti e venditori di effettuare transazioni senza la necessità di un intermediario. In alcuni casi, le pagine dei siti web possono anche fornire un ambiente P2P che collega fornitori di fondi e mutuatari.

L'architettura P2P può essere utilizzata in molti modi, ma è stata particolarmente popolare negli anni '90, quando furono creati i primi programmi di condivisione file. Oggi, le reti P2P sono il nucleo delle criptovalute, governando la maggior parte delle aree del settore blockchain. Tuttavia, viene sfruttato 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, i sistemi P2P sono gestiti da una rete distribuita di utenti. In genere, questi sistemi 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 o caricare file da e verso altri nodi. Questo è ciò che differenzia le reti P2P dai più tradizionali sistemi client-server, in cui i dispositivi client scaricano file da un server centralizzato.

In una rete P2P, i dispositivi connessi condividono i file archiviati sull'hardware. Utilizzando applicazioni software progettate per mediare la condivisione dei dati, gli utenti possono chiedere ad altri dispositivi sulla rete di trovare e scaricare file. Quando un utente ha scaricato il file in questione, quell'utente può fungere da origine del file.

In altre parole, quando un nodo funge da client, scarica file da altri nodi della rete. Ma quando agiscono come server, questi nodi diventano fonti da cui altri nodi possono scaricare file. Ma in pratica, entrambe le funzioni possono essere eseguite contemporaneamente (ad esempio, scaricare il file A e caricare il file B).

Poiché ogni nodo memorizza, trasmette e riceve file, le reti P2P tendono ad essere più veloci ed efficienti man mano che la base utenti cresce. Inoltre, l’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 alla loro architettura. I tre tipi principali sono reti P2P non strutturate, strutturate e miste (ibride).


Le reti P2P non sono strutturate

Le reti P2P non strutturate non mostrano l'organizzazione specifica dei nodi. I partecipanti comunicano in modo casuale tra loro. Il sistema è considerato robusto contro un'attività altamente volatile (ad esempio: alcuni nodi si uniscono e lasciano 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 richieste di ricerca vengono inviate al maggior numero possibile di peer. Ciò tende a inondare la rete di richieste, soprattutto se un numero ridotto di nodi offre il contenuto desiderato.


Rete P2P strutturata

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

Sebbene le reti strutturate possano essere più efficienti, tendono a presentare un grado più elevato di centralizzazione e in genere richiedono anche costi di installazione e manutenzione più elevati. Inoltre, le reti strutturate sono meno robuste di fronte a livelli elevati di volatilità.


Rete P2P mista

Le reti miste P2P combinano il modello client-server convenzionale con alcuni aspetti di un'architettura peer-to-peer. Ad esempio, queste reti possono progettare un server centrale che faciliti le connessioni tra peer.

Rispetto agli altri due tipi, i modelli ibridi/misti tendono a mostrare prestazioni complessive migliori. Queste reti in genere combinano alcuni dei vantaggi chiave di ciascun approccio, raggiungendo contemporaneamente un livello di efficienza e decentralizzazione.


Distribuito vs. distribuito non centrato

Sebbene le architetture P2P siano intrinsecamente distribuite, è importante notare che esistono vari gradi di decentralizzazione. Quindi, non tutte le reti P2P sono decentralizzate. 

In effetti, molti sistemi si affidano a 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 possono partecipare ad altri processi, come la gestione delle query di ricerca.

Inoltre, si può dire che anche le piccole reti controllate da una base di utenti limitata con un obiettivo comune abbiano un grado di centralizzazione più elevato, nonostante la mancanza 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 è stato creato come una forma di moneta digitale. Può essere trasferito da un utente a un altro tramite una rete P2P, che mantiene 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 o server centrali. Inoltre, chiunque può configurare un nodo Bitcoin se desidera partecipare al processo di verifica e convalida dei blocchi.

Pertanto, non esistono 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 attività sospette o imprecise.

Nel contesto di una 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 memorizza una copia completa e aggiornata della blockchain, consentendogli di partecipare al lavoro collettivo di verifica del vero stato del registro distribuito. Va notato che non tutti i nodi che convalidano completamente sono minatori.


Profitto

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

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

Di conseguenza, le reti peer-to-peer distribuite, abbinate ai requisiti di consenso della maggioranza, fanno sì che le blockchain abbiano un livello relativamente elevato di resistenza alle attività dannose. Il modello P2P è uno dei motivi per cui Bitcoin (e altre blockchain) sono in grado 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 portafogli di criptovaluta non possono essere congelati o prosciugati dal governo. Questa resistenza si estende anche agli sforzi di censura con l’elaborazione dei pagamenti privati ​​e le piattaforme di contenuti. Alcuni creatori di contenuti e commercianti online stanno adottando i pagamenti in criptovaluta come un modo per evitare che i loro pagamenti vengano bloccati da terze parti.


Limitazioni

Anche se presenta molti vantaggi, l’uso delle reti P2P su blockchain presenta anche alcune limitazioni.

Poiché il registro distribuito deve essere aggiornato su ciascun nodo, non su un server centrale, l’aggiunta di transazioni alla blockchain richiede una grande 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 possano essere utilizzate come soluzioni di scalabilità. Esempi degni di nota includono Lightning Network, Ethereum Plasma e il protocollo Mimblewimble.

Un'altra potenziale limitazione riguarda gli attacchi che potrebbero verificarsi durante l'attività 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 nuove reti parallele. Gli hard fork sono del tutto normali e non rappresentano una minaccia. Ma se alcuni metodi di sicurezza non vengono adottati correttamente, entrambe le catene possono diventare vulnerabili agli attacchi di replay.

Inoltre, la natura distribuita delle reti P2P le rende relativamente difficili da controllare e regolamentare, non solo negli ambienti blockchain. Alcune app e aziende P2P sono coinvolte in attività illegali e violazioni del copyright.


Copertina

L’architettura peer-to-peer può essere sviluppata e utilizzata in vari modi ed è il nucleo della blockchain che rende possibili le criptovalute. Distribuendo un registro delle transazioni su un'ampia rete di nodi, l'architettura P2P offre sicurezza, decentralizzazione e resistenza alla censura.

Oltre al loro utilizzo 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.