Costruire Ergo: sicurezza SPV
1 maggio 2020

C'è spesso una tensione nel mondo delle criptovalute tra sicurezza e convenienza. Questo compromesso è inaccettabile se vogliamo che queste tecnologie siano ampiamente utilizzate. Ecco come Ergo affronta un problema comune e molto importante.
Sappiamo tutti che il modo più sicuro per utilizzare Bitcoin, o qualsiasi criptovaluta, è scaricare una copia della blockchain e gestire un nodo completo da soli. In questo modo, ogni volta che tu o chiunque altro effettua una transazione, il tuo client controlla la blockchain per assicurarsi che sia valida. Non devi fidarti di nessun altro.
Un nodo completo di Bitcoin controlla tutti i blocchi nella blockchain (utilizzando gli header) e si assicura che non ci siano transazioni fraudolente. È un modo molto sicuro di utilizzare le criptovalute, ma c'è un problema. Richiede una larghezza di banda, spazio di archiviazione e potenza di elaborazione significativi. Quel tipo di hardware commerciale è costoso e utilizzare un nodo completo per convalidare e effettuare transazioni non è comunque adatto per i dispositivi mobili. Questo è particolarmente vero per Bitcoin, dove la blockchain supera i 270 GB e continua a crescere.
SPV
La Verifica dei Pagamenti Semplificata (SPV) è progettata per affrontare questo problema, come descritto nel white paper di Bitcoin:
- È possibile verificare i pagamenti senza gestire un nodo di rete completo. Un utente deve solo mantenere una copia degli header dei blocchi della catena di proof-of-work più lunga, che può ottenere interrogando i nodi di rete fino a quando non è convinto di avere la catena più lunga, e ottenere il ramo Merkle che collega la transazione al blocco in cui è timestampata. Non può controllare la transazione da solo, ma collegandola a un punto nella catena, può vedere che un nodo di rete l'ha accettata, e i blocchi aggiunti dopo confermano ulteriormente che la rete l'ha accettata.
Satoshi osserva che questa non è una soluzione perfetta ed è vulnerabile a un attaccante che sovrasta la rete e inganna gli utenti SPV.
Inoltre, mentre la modalità SPV è destinata a dispositivi con risorse limitate, anche questo approccio 'lite' non è sempre fattibile. Gli header di Ethereum da soli totalizzano circa 5 GB da scaricare. Pertanto, i client mobili di Ethereum non convalidano la validità della catena e devono quindi fidarsi ciecamente di terze parti.
Ci sono proposte per ridurre i requisiti per la modalità SPV controllando solo alcuni header casuali, invece di tutti. Ma è difficile farlo in modo sicuro.
SPV Efficiente
Sono stati spesi diversi anni per ricercare e sviluppare protocolli sicuri che consentano client SPV efficienti. I due protocolli più noti e affidabili sono NiPoPoWs e FlyClient.
Ergo implementa NiPoPoWs, o Non-interactive Proof-of-Proof-of-Work. Questa tecnologia può essere esplorata completamente su questo sito web dedicato: https://nipopows.com:
-
Le Prove Non Interattive di Proof-of-Work (NIPoPoWs) sono brevi stringhe autonome che un programma informatico può ispezionare per verificare che un evento sia avvenuto su una blockchain basata su proof-of-work senza connettersi alla rete blockchain e senza scaricare tutti gli header dei blocchi. Ad esempio, queste prove possono illustrare che è stato effettuato un pagamento in criptovaluta.
-
Le NIPoPoWs consentono di creare portafogli mobili molto efficienti. I portafogli SPV sono già molto leggeri rispetto ai nodi completi perché richiedono solo il download degli header dei blocchi, non dell'intera blockchain. I portafogli NIPoPoW devono scaricare solo un piccolo campione di header dei blocchi, circa 250, quando i client SPV devono scaricare mezzo milione di header dei blocchi. Il campione necessario cambia ma non cresce molto in dimensione man mano che la blockchain cresce nel tempo, anche dopo decenni di dati accumulati.
Questo ci consente di costruire un client SPV mobile che richiede circa solo 100KB di header dei blocchi da scaricare.
Un portafoglio Ergo super-efficiente con sicurezza SPV è in fase di sviluppo, quindi resta sintonizzato per ulteriori aggiornamenti!
Share post
13 agosto 2025
9 luglio 2025
12 maggio 2025
7 agosto 2022




















