I Network Peer-to-Peer Spiegati
Home
Articoli
I Network Peer-to-Peer Spiegati

I Network Peer-to-Peer Spiegati

Intermedio
Pubblicato Sep 30, 2019Aggiornato Nov 16, 2022
7m

Cosa si intende con peer-to-peer (P2P)?

Nell'informatica, un network peer-to-peer (P2P) consiste in un gruppo di dispositivi che condividono e archiviano file collettivamente. Ciascun partecipante (nodo) agisce come un peer individuale. In genere, tutti i nodi hanno pari poteri ed eseguono le stesse attività.

Nella tecnologia finanziaria, il termine peer-to-peer si riferisce di solito allo scambio di criptovalute o asset digitali attraverso un network distribuito. Una piattaforma P2P consente ad acquirenti e venditori di eseguire operazioni senza necessità di intermediari. In alcuni casi, anche i siti web possono fornire un ambiente P2P che collega creditori e debitori.

L'architettura P2P può essere applicata a vari casi d'uso, ma è diventata particolarmente popolare negli anni '90 con la creazione dei primi programmi per la condivisione di file. Oggi, i network P2P sono alla base di gran parte delle criptovalute, occupando un'importante fetta del settore della blockchain. Tuttavia, vengono anche sfruttati in altre applicazioni informatiche distribuite, tra cui 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 un network distribuito di utenti. In genere, non presenta un amministratore o server centrale in quanto ogni nodo possiede una copia dei file - agendo sia da client che da server per altri nodi. Quindi, ciascun nodo può scaricare file da altri nodi o caricare file per loro. Questo è ciò che separa i network P2P dai più tradizionali sistemi client-server, in cui i dispositivi client scaricano file da un server centralizzato.

Nei network P2P, i dispositivi connessi condividono file che sono archiviati nei loro dischi rigidi. Usando applicazioni software progettate per mediare la condivisione di dati, gli utenti possono consultare altri dispositivi nel network per trovare e scaricare file. Una volta che un utente ha scaricato un determinato file, può agire da fonte per quel file.

In altre parole, quando un nodo agisce da client, scarica file da altri nodi nel network. Ma quando operano in veste di server, sono la fonte da cui gli altri nodi possono scaricare file. In pratica, però, entrambe le funzioni possono essere eseguite allo stesso tempo (ad es., scaricare il file A e caricare il file B).

Dato che ogni nodo archivia, trasmette e riceve file, i network P2P tendono ad essere più veloci ed efficienti man mano che la loro base di utenti si allarga. Inoltre, la loro architettura distribuita rende i sistemi P2P molto resistenti agli attacchi informatici. A differenza dei modelli tradizionali, i network P2P non hanno un singolo punto di vulnerabilità.

Possiamo categorizzare i sistemi peer-to-peer in base alla loro architettura. I tre tipi principali di network P2P sono chiamati non strutturati, strutturati e ibridi.


Network P2P non strutturati

I network P2P non strutturati non presentano nessuna organizzazione specifica dei nodi. I partecipanti comunicano tra di loro in modo casuale. Questi sistemi sono considerati resistenti contro attività di churn elevato (ovvero, diversi nodi si uniscono e lasciano il network frequentemente).

Anche se più facili da costruire, i network P2P non strutturati potrebbero richiedere un maggiore uso della CPU e della memoria in quanto le query di ricerca vengono trasmesse al più alto numero di peer possibile. Questo tende a inondare il network con query, soprattutto se il contenuto desiderato è offerto da un numero esiguo di nodi.


Network P2P strutturati

Al contrario, i network P2P strutturati presentano un'architettura organizzata, permettendo ai nodi di cercare file in modo efficiente, anche se il contenuto non è largamente disponibile. Nella maggior parte dei casi, questo è possibile grazie all'uso di funzioni di hash che facilitano le ricerche nel database.

Anche se i network strutturati possono essere più efficienti, tendono a presentare livelli di centralizzazione più elevati, e in genere comportano costi di setup e manutenzione più alti. Inoltre, i network strutturati sono meno resistenti ad attività di churn elevato.


Network P2P ibridi

I network P2P ibridi combinano il modello client-server convenzionale con alcuni aspetti dell'architettura peer-to-peer. Per esempio, potrebbero istituire un server centrale che facilita la connessione tra peer.

Rispetto agli altri due tipi, i modelli ibridi tendono a presentare prestazioni generali migliori. Solitamente combinano alcuni dei vantaggi centrali di ogni approccio, raggiungendo contemporaneamente livelli di efficienza e decentralizzazione significativi.


Distribuito vs. decentralizzato

Anche se l'architettura P2P è intrinsicamente distribuita, è importante notare che ci sono vari gradi di decentralizzazione. Quindi, non tutti i network P2P sono decentralizzati. 

Infatti, molti sistemi dipendono da un'autorità centrale che guida l'attività del network, cosa che li rende piuttosto centralizzati. Per esempio, alcuni sistemi P2P per la condivisione di file permettono agli utenti di cercare e scaricare file da altri utenti, ma non consentono di partecipare ad altri processi, come la gestione delle query di ricerca.

Inoltre, si potrebbe dire che anche i network piccoli controllati da una base utenti limitata con obiettivi condivisi abbiano un maggiore grado di centralizzazione, nonostante l'assenza di un'infrastruttura di rete centralizzata.


Il ruolo del P2P nelle blockchain

Nelle fasi iniziali di Bitcoin, Satoshi Nakamoto l'ha definito come un “Sistema di Moneta Elettronica Peer-to-Peer”. Bitcoin è stato creato come una forma di moneta digitale. Può essere trasferito da un utente all'altro attraverso un network P2P, che gestisce un registro distribuito chiamato blockchain.
In questo contesto, l'architettura P2P che è intrinseca alla tecnologia blockchain è ciò che permette a Bitcoin e ad altre criptovalute di essere trasferito in tutto il mondo, senza bisogno né di intermediari né di server centrali. Inoltre, chiunque può configurare un nodo Bitcoin se vuole partecipare al processo di verifica e convalida dei blocchi.

Quindi, non ci sono banche che elaborano o registrano transazioni nel network di Bitcoin. Invece, la blockchain agisce come un registro digitale che archivia pubblicamente tutte le attività. In sostanza, ogni nodo possiede una copia della blockchain e la confronta con gli altri nodi per garantire che i dati siano accurati. Il network respinge rapidamente qualsiasi inesattezza o attività disonesta.

Nel contesto delle blockchain di criptovalute, i nodi possono assumere una varietà di ruoli diversi. I full node, per esempio, sono quelli che forniscono sicurezza al network verificando le transazioni seguendo le regole di consenso del sistema.
Ciascun full node mantiene una copia della blockchain completa e aggiornata - consentendogli di partecipare al lavoro collettivo di verifica dello stato reale del registro distribuito. E' importante notare, però, che non tutti i nodi di convalida sono miner.


Vantaggi

L'architettura peer-to-peer delle blockchain fornisce molti benefici. Tra i più importanti è il fatto che i network P2P offrono una maggiore sicurezza delle configurazioni tradizionali client-server. La distribuzione delle blockchain su grandi numeri di nodi le rende virtualmente immuni agli attacchi Denial-of-Service (DoS) che colpiscono molti sistemi.
Allo stesso modo, dato che una maggioranza di nodi deve stabilire il consenso prima che i dati vengano aggiunti a una blockchain, è quasi impossibile per un attaccante alterare i dati. Questo vale in particolare per grandi network come quello di Bitcoin. Le blockchain più piccole sono più suscettibili ad attacchi in quanto una persona o gruppo potrebbe riuscire eventualmente a ottenere il controllo di una maggioranza dei nodi (questa situazione è conosciuta come un 51 percent attack).
Di conseguenza, il network peer-to-peer distribuito, abbinato a un requisito di consenso maggioritario, conferisce alle blockchain un grado di resistenza alle attività dannose relativamente alto. Il modello P2P è uno dei motivi per cui Bitcoin (e altre blockchain) è riuscito ad ottenere la cosidetta Byzantine fault tolerance.

Oltre alla sicurezza, l'utilizzo dell'architettura P2P nelle blockchain di criptovalute le rende anche resistenti alla censura da parte di autorità centrali. A differenza dei normali conti bancari, gli wallet di criptovalute non possono essere congelati o prosciugati dai governi. Questa resistenza si estende anche ai tentativi di censura da parte di piattaforme di contenuti e di pagamento private. Alcuni creatori di contenuti e venditori online hanno adottato i pagamenti in criptovalute come un modo per evitare che i propri pagamenti vengano bloccati da terze parti.


Limiti

Nonostante i numerosi vantaggi, l'uso di network P2P nelle blockchain ha anche alcuni limiti.

Dato che i registri distribuiti devono essere aggiornati su ogni singolo nodo invece di un server centrale, aggiungere transazioni a una blockchain richiede un enorme quantità di potenza di calcolo. Anche se questo fornisce una maggiore sicurezza, riduce notevolmente l'efficienza ed è uno dei principali ostacoli per quanto riguarda la scalabilità e l'adozione diffusa. Nonostante questo, i crittografi e gli sviluppatori blockchain stanno esaminando alternative che potrebbero essere utilizzate come soluzioni di scalabilità. Esempi importanti includono Lightning Network, Ethereum Plasma e il protocollo Mimblewimble.
Un altro potenziale limite riguada gli attacchi che potrebbero verificarsi durante gli eventi di hard fork. Dato che quasi tutte le blockchain sono decentralizzate e open source, gruppi di nodi sono liberi di copiare e modificare il codice per separarsi dalla catena principale per formare un nuovo network parallelo. Gli hard fork sono completamente normali e non costituiscono di per sé una minaccia. Tuttavia, se detemrinati metodi di sicurezza non vengono applicati correttamente, entrambe le catene potrebbero essere vulnerabili a replay attack.

Inoltre, la natura distribuita dei network P2P li rende relativamente difficili da controllare e regolare, non solo nel settore della blockchain. Diverse applicazioni e compagnie P2P sono state coinvolte con attività illegali e violazioni dei diritti d'autore.


In chiusura

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

Oltre alla loro utilità nella tecnologia blockchain, i sistemi P2P possono anche servire altre applicazioni informatiche distribuite, dai network per la condivisione di file alle piattaforme di scambio di energia.