Condividi

Protocollo del dovere: capire il protocollo Blockchain

Dove ci sono sistemi, ci sono protocolli

La tecnologia Blockchain è nata come soluzione innovativa per problemi che non sapevano di avere. Con essa è arrivata una pletora di termini e concetti che ancora oggi rimangono inspiegabili. Uno di questi termini è il protocollo blockchain, un termine spesso utilizzato in modo intercambiabile con le reti blockchain, anche se non è esattamente la stessa cosa.

In questo post analizzeremo il concetto di protocollo blockchain, le sue differenze rispetto alla blockchain in sé, nonché alcuni dei suoi principali meccanismi e applicazioni.

Cos’è una rete Blockchain?

La blockchain è il livello base di tutte le criptovalute. Si tratta di una rete decentralizzata che consente transazioni veloci, senza permessi, anonime e sicure con un asset digitale peer-to-peer in tutto il mondo. La rete funge da database distribuito: tutte le transazioni effettuate sulla blockchain sono aperte, anonime, memorizzate in blocchi e possono essere visualizzate da chiunque.

Una blockchain è alimentata da una rete distribuita di nodi, ovvero di computer in funzione per mantenere la rete in tutto il mondo. I nodi di solito lavorano come minatori (nelle reti Proof of Work come Bitcoin) o come stakers/delegatori (come nelle reti Proof of Stake come Ethereum o Cardano). Per il loro impegno, i minatori e gli staker ricevono una parte delle commissioni delle transazioni che aiutano a verificare.

I minatori nelle reti Proof-of-Work hanno il compito di decifrare l’hash - un identificatore crittografico unico - del prossimo blocco di transazioni. A tal fine, utilizzano la potenza di calcolo grezza e competono essenzialmente nella velocità di calcolo. Nelle reti Proof-of-Stake, questo non avviene tramite il calcolo, ma tramite il possesso di una grande quantità di valuta nativa della rete e quindi con la possibilità di decidere quali blocchi approvare successivamente.

La blockchain è stata pionieristicamente introdotta dal Bitcoin, così come il BTC, la prima criptovaluta esistente. Ideata dall’entità sconosciuta che fa capo a Satoshi Nakamoto, la blockchain Bitcoin è stata portata in vita in modo piuttosto simbolico da un gruppo decentralizzato di appassionati.

La criptovaluta Bitcoin funge da carburante per la rete, in quanto gli utenti pagano una quota delle loro transazioni come commissione di trasferimento.

La blockchain di Ethereum è stata costruita sulla base di Bitcoin e ha ampliato l’arsenale della blockchain con i contratti intelligenti. I contratti intelligenti sono algoritmi precodificati che si eseguono da soli quando viene soddisfatta una particolare serie di condizioni. Ad esempio, invia 200 ETH all’indirizzo (X) non appena il numero di token NFT (XYZ) viene ricevuto da tale indirizzo.

I contratti intelligenti consentono una flessibilità senza precedenti nell’implementazione di applicazioni blockchain e sono essenzialmente il tessuto di tutte le DeFi di oggi. Pionieri della rete Ethereum, i contratti intelligenti hanno preso piede e sono stati implementati dalla maggior parte dei protocolli blockchain oggi conosciuti.

Ora che abbiamo stabilito cos’è una rete blockchain, cerchiamo di capire cos’è un protocollo blockchain.

Un protocollo blockchain è essenzialmente il regolamento che disciplina il funzionamento della rete blockchain. NON si tratta della rete blockchain in sé, ma piuttosto di un insieme di regole inserite in tutti i suoi meccanismi. Definisce quando, come e in che misura i diversi elementi della rete possono o non possono fare determinate cose.

Protocolli Blockchain e loro funzionamento

La spina dorsale di ogni blockchain è l’insieme dei protocolli che ne regolano ogni movimento. Questi protocolli sono i pilastri che sostengono la sicurezza, la connettività e le procedure di consenso della rete, assicurando che tutto funzioni come un orologio. Senza un’autorità centrale che controlli le transazioni, questi protocolli sono gli attori principali nel mantenere una copia fidata del libro mastro e nel verificare le transazioni attraverso un metodo di consenso. Una volta convalidati, vengono registrati in blocchi inalterabili.

I principali protocolli che ci circondano

Dove ci sono sistemi, ci sono protocolli. Un protocollo è un livello fondamentale di codice che indica a qualcosa come funzionare. Naturalmente, i protocolli non sono un’esclusiva delle criptovalute. Sono fondamentali per il funzionamento di Internet e regolano la trasmissione dei dati da un computer all’altro.

Molte cose che oggi diamo per scontate sono state abilitate e regolate dai protocolli di rete. I più importanti sono il TCP/IP: Transmission Control Protocol/Internet Protocol, utilizzato per connettere i dispositivi sul web, e l’HTTP/HTTPS: Hypertext Transfer Protocol (HTTP), utilizzato per trasferire i dati tra i server web e i client.

Cosa rende diversi i protocolli Blockchain?

Tuttavia, c’è una differenza quando si parla di protocolli blockchain. La situazione si fa più interessante e complessa rispetto al tradizionale trasferimento di dati. Una rete blockchain è una struttura distribuita di organismi decisionali, ognuno dei quali deve fare di più che seguire gli algoritmi. Ciò implica che l’insieme di regole deve essere concordato, osservato e verificato da tutti i nodi che compongono la rete.

Qui le cose si fanno un po’ più complesse. Esistono tre tipi di protocolli blockchain:

  • Protocollo di rete
  • Protocollo di consenso
  • Funzione di transizione di stato

Ciascuna tipologia è importante quanto le altre e tutte e tre devono essere seguite alla lettera perché le cose vadano bene.

Protocollo di rete

Il protocollo di rete stabilisce le regole con cui i nodi della rete possono (e non possono) comunicare. Questo include il modo in cui i nodi si scoprono e si riconoscono a vicenda, scambiano informazioni sui blocchi, sulle transazioni e altre cose di ordinaria amministrazione. Contiene la sintassi che definisce come i nodi devono decifrare i messaggi reciproci.

Protocollo di consenso

Il protocollo di consenso indica come i nodi si accordano sulle transazioni da considerare valide o non valide. Come probabilmente saprai, ogni nodo conserva una copia completa dell’intera rete sui suoi dischi rigidi. La copia include ogni singolo bit di dati mai registrato sulla rete. Ogni copia viene aggiornata in tempo reale man mano che vengono forgiati nuovi blocchi e convalidate nuove transazioni.

Pertanto, quando un nodo invia un nuovo blocco da aggiungere alla rete, non invia solo quel blocco, ma invia l’intera copia della blockchain fino a quel momento. Ed è compito di ogni singolo nodo della rete scansionare, valutare e (in)validare ogni singola copia della rete inviata da tutti gli altri nodi. Nelle reti Proof-of-Work come Bitcoin, solo la catena di blocchi più lunga viene convalidata, il che significa che la maggior parte dei nodi concorda sulla sua validità. Come puoi immaginare, si tratta di un lavoro enorme e richiede altrettanta potenza di calcolo.

In una rete proof-of-stake, i validatori sono selezionati a caso dalle reti tra i nodi che detengono grandi quantità di monete native della rete nei loro portafogli. Alcuni potrebbero equiparare questo approccio al monopolio capitalista, ma la prospettiva di monopolizzare la rete è stata affrontata preventivamente. Questo include la limitazione dell’importo che ogni nodo può puntare, il numero di transazioni che può verificare, la frequenza di tali verifiche, ecc. In ogni caso, i limiti e le restrizioni sono tutti stabiliti nel protocollo.

Funzione di transizione di stato

Qui le cose si fanno davvero tecnologiche.

Lo stato è essenzialmente quello che la rete "pensa" sia in un determinato momento. Le attuali "posizioni", le relazioni e i movimenti di tutti i nodi, le transazioni e i blocchi costituiscono lo stato della rete.

Lo Stato della rete cambia nel tempo, così come l’insieme e l’equilibrio degli elementi al suo interno. La transizione di stato deve essere registrata in un modo particolare e il protocollo di rete si occupa anche di questo. Man mano che i nodi entrano ed escono dalla rete, scambiano informazioni e modificano il tessuto della blockchain, nascono nuove possibilità e nuove complicazioni.

Lo stato racchiude tutto ciò che la rete può o non può fare in un determinato momento. Se le condizioni A e B sono soddisfatte, allora la rete è in grado di fare X e Y e non più. Se lo stato è definito dalle condizioni C e D, allora le uniche azioni possibili sono W e Z. Questo cambiamento di logica è fondamentale per le operazioni della rete.

Un protocollo blockchain deve essere seguito da tutti i nodi della rete.

Ogni parte sopra descritta è un pezzo di un puzzle trino chiamato Stato Verificato. Quando le informazioni sulle transazioni entrano nel protocollo di rete, vengono convalidate o scartate. Se viene verificato, passa ai protocolli di consenso, che fungono da gatekeeper. Permette ai dati di entrare nello stato della rete se sono in accordo con quelli degli altri nodi.

Se vengono accettati, i dati vengono passati alla funzione di transizione di stato, dove diventano il nuovo stato verificato della rete. Lo Stato verificato è la frontiera pratica che definisce ciò che effettivamente "accade" dopo che il blocco viene aggiunto alla catena. Questo può includere la modifica del saldo di un determinato portafoglio o il lancio di uno smart contract.

Un nodo può allontanarsi dal protocollo?

Un nodo può disobbedire al protocollo e, in caso affermativo, cosa succede? Come detto in precedenza, la convalida dei blocchi richiede che tutti i nodi controllino tutti i dati inviati da tutti gli altri nodi online. Per farlo, il protocollo blockchain deve essere seguito alla lettera. Se un nodo non obbedisce, non sarà in grado di cooperare con gli altri nodi e quindi non potrà raccogliere i frutti. Questo significa che non c’è spazio per il disaccordo in una blockchain, rendendo il suo stato essenzialmente totalitario.

Tuttavia, a volte una blockchain viene forzatamente o deliberatamente divisa in due parti, il che viene chiamato fork. Il fork avviene proprio perché alcuni nodi inviano dati in conflitto con quelli del resto del libro mastro distribuito.

Una blockchain conserva solo i blocchi approvati da tutti i nodi della rete.

In condizioni di lavoro normali, la rete non si preoccuperà di capire perché i dati sono difettosi: si limiterà a tagliare il nodo dal resto della rete, lasciandolo a bocca asciutta. In questo modo, i nodi potenzialmente dannosi non possono avere un impatto sulla rete. È possibile che la maggior parte delle copie "sbagliate" di ogni blockchain sia ancora conservata da qualche parte mentre parliamo.

Tuttavia, le forchette possono anche essere una buona cosa. Una rete blockchain non può semplicemente "aggiornare" il suo stato attuale. Ogni nuovo stato verificato è una copia completamente nuova della rete.

Una rete blockchain può dividersi in due, a volte creando nuove reti lungo il percorso.

Forse hai sentito dire che ogni aggiornamento importante della blockchain viene chiamato "Fork". Pertanto, quando le blockchain devono essere aggiornate, vengono deliberatamente biforcate in una nuova copia dai loro sviluppatori. La versione precedente all’aggiornamento viene mantenuta come legacy, mentre quella appena aggiornata diventa il vero affare.

Capire il protocollo Bitcoin

Approfondiamo un po’ quali sono le cose che un protocollo blockchain regola. A titolo di esempio, prendiamo la rete Bitcoin.

I Bitcoin non vengono distribuiti come fossero pezzi d’oro. Ogni volta che invii e ricevi BTC, in realtà non stai "ricevendo" o "dando" bitcoin. In realtà, ogni nuova transazione registra una firma digitale. La firma contiene un hash - l’ID crittografico unico della transazione precedente - e la chiave pubblica del destinatario. In questo modo, ogni transazione è protetta da una prova crittografica che non può essere alterata o falsificata.

La struttura delle transazioni nella blockchain di Bitcoin

La preoccupazione principale di acquirenti e venditori online è che, a un certo punto, possano essere sfruttati e cadere vittime di frodi finanziarie. Questo può avvenire sotto forma di phishing o di vere e proprie transazioni false. C’è anche il problema della doppia spesa, oltre alla semplice manomissione del sistema alla ricerca di profitti sleali. Poiché una blockchain non è governata da un’entità centrale, tutti i problemi di sicurezza delle transazioni ricadono interamente sulle spalle del protocollo.

Gli sviluppatori di Bitcoin hanno affrontato questi problemi e hanno introdotto meccanismi come le firme digitali e la prova crittografica per mitigarli. Pertanto, il protocollo Bitcoin consente di convalidare solo i blocchi che hanno una prova crittografica che corrisponde a quella presente negli altri nodi.

Server di timestamp e sistema di proof-of-work

La doppia spesa è un problema enorme nella blockchain. Si tratta di uno scenario in cui un utente cerca di spendere la stessa valuta digitale due volte. Questo può accadere a causa della natura digitale della valuta, che potenzialmente rende più facile replicare o copiare la valuta senza essere scoperti.

Supponiamo che un utente abbia 1 BTC e cerchi di spenderlo due volte inviandolo a due indirizzi diversi. In un sistema di pagamento tradizionale, il sistema rileverebbe il tentativo di doppia spesa e rifiuterebbe la transazione. Tuttavia, in una rete blockchain decentralizzata, questo viene impedito dal sistema proof-of-work e dall’algoritmo di consenso, che garantisce che ogni transazione sia valida e non già spesa.

Ad ogni blocco è associato un timestamp

Per garantire ciò, il protocollo Bitcoin ha implementato un server di timestamp che appone un’etichetta temporale unica all’hash di ogni transazione. Il sistema proof-of-work prende nota di ogni timestamp e rifiuta qualsiasi transazione con un hash corrispondente a quelli già registrati nel sistema.

Ogni nuovo blocco creato in una rete Bitcoin è accompagnato da una prova di lavoro. La prova è anche chiamata Nonce o Number Only Generated Once. Serve come prova crittografica che un minatore ha impiegato una certa potenza di calcolo per verificare il blocco e ha avuto successo.

Tuttavia, ci sono blocchi sbagliati che contengono dati che contraddicono quelli estratti da altri nodi. Nel caso in cui venga rilevato un blocco difettoso, questo viene estratto e sottoposto a un’ulteriore valutazione per individuare eventuali incongruenze. Se viene ritenuto valido, il blocco verrà aggiunto alla rete come di consueto. In caso contrario, viene scartato.

I grandi del protocollo finora

Detto questo, ogni rete principale segue un proprio protocollo, creato appositamente per il suo meccanismo di consenso. La rete Bitcoin opera sul protocollo Bitcoin, Ethereum - sul protocollo Ethereum, ecc.

Di seguito sono elencati i protocolli blockchain più importanti ad oggi:

Nome
Polkadot (DOT)
Avalanche (AVAX)
Poligono (MATIC)
Solana (SOL)
Catena intelligente di Binance (BSC)

Polkadot (DOT)

Polkadot è un protocollo blockchain all’avanguardia che ha rivoluzionato l’interoperabilità tra diverse blockchain, consentendo la comunicazione e la condivisione dei dati senza soluzione di continuità con l’aiuto di contratti intelligenti. Il suo esclusivo meccanismo di consenso Nominated Proof of Stake (NPoS) offre una piattaforma altamente sicura e scalabile, con un tempo medio di blocco ultraveloce di soli 6 secondi e commissioni di transazione basse, in media 0,10-0,20 dollari.

Progetti degni di nota: Kusama, ChainX, Moonbeam, Chainlink, Reef Finance

Avalanche (AVAX)

Avalanche è una piattaforma open-source che è emersa come un faro di speranza per gli appassionati di finanza decentralizzata (DeFi) e gli sviluppatori di blockchain di tutto il mondo. Il suo meccanismo di consenso all’avanguardia Avalanche consente un elevato throughput e una rapida finalizzazione, rendendola una delle blockchain più scalabili e veloci sul mercato. Avalanche vanta un tempo medio di blocco di 2 secondi e commissioni di transazione mediamente inferiori a 1 dollaro.

Progetti degni di nota: Pangolin, Trader Joe, Benqi, Lydian Lion, SushiSwap

Poligono (MATIC)

Polygon è una soluzione di scalabilità Layer-2 di nuova generazione che sta trasformando i problemi di scalabilità e di commissioni delle transazioni di Ethereum. Il suo meccanismo di consenso Proof-of-Stake (PoS) convalida rapidamente le transazioni finanziarie, con un tempo medio di blocco di 2-3 secondi, molto più veloce di Ethereum. Con una commissione media di transazione di 0,002 dollari, Polygon è la scelta ideale per gli sviluppatori che vogliono creare applicazioni decentralizzate a costi contenuti.

Progetti degni di nota: Aave, Quickswap, Curve Finance, Polymarket, Zapper

Solana (SOL)

Solana è una piattaforma blockchain ad alte prestazioni che ha conquistato l’industria blockchain grazie al suo meccanismo di consenso Proof-of-History (PoH). L’elevato throughput e la rapida finalizzazione di Solana, con un tempo medio di blocco di 0,4-0,8 secondi e una commissione media di transazione di 0,00025 dollari, la rendono una piattaforma blockchain incredibilmente rapida e conveniente.

Progetti degni di nota: Raydium, Serum, Mango Markets, Audius, Bonfida

Catena intelligente di Binance (BSC)

Binance Smart Chain è una piattaforma blockchain che ha cambiato il gioco grazie alla sua compatibilità con Ethereum Virtual Machine (EVM) e alla sua capacità di eseguire applicazioni decentralizzate. La sua compatibilità la rende inoltre un’opzione interessante per gli sviluppatori che desiderano migrare le loro applicazioni da Ethereum a una piattaforma più efficiente ed economica.

Progetti degni di nota: PancakeSwap, Venus, Protocollo Spartan, BakerySwap, Autofarm

Dove cercare le soluzioni di sviluppo Blockchain

Noi di ICODA abbiamo un’esperienza pluriennale nei servizi di sviluppo della blockchain e nello sviluppo di prodotti blockchain che funzionano. Se hai un progetto di sviluppo software blockchain, siamo qui per aiutarti. Se hai bisogno di lanciare un token o una DApp, un DEX o un marketplace NFT, o se stai semplicemente cercando di capire come le soluzioni di sviluppo blockchain possano essere utili alla tua attività, sei nel posto giusto. Contattaci subito per ottenere un breve piano e iniziare subito a lavorare.