﻿---
title: "Accumulatori crittografici"
description: "Una guida incentrata sulla verifica degli accumulatori crittografici, che tratta le costruzioni RSA e basate su hash, i testimoni di appartenenza e non appartenenza, gli aggiornamenti dinamici, gli impieghi nelle blockchain e i rischi operativi."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accumulatori crittografici

> Solo a scopo didattico; non costituisce consulenza in materia di investimenti né di implementazione crittografica. Una prova di accumulatore autentica un'affermazione rispetto a un singolo impegno, non i dati sottostanti, lo stato del consenso o la disponibilità dei dati.

<a id="answer"></a>

## Risposta diretta

Un accumulatore crittografico vincola un insieme a un valore breve e consente a un verificatore di controllare, tramite un testimone conciso, che un elemento appartenga all'insieme vincolato. Alcuni schemi dimostrano anche la non appartenenza. Il verificatore ha bisogno del valore dell'accumulatore, dell'elemento, del testimone e dei parametri pubblici dello schema, ma non di tutti gli altri elementi dell'insieme.

Un accumulatore è **statico** se deve essere ricostruito dopo una modifica dell'insieme, **dinamico** se aggiunte o eliminazioni consentono di aggiornare in modo efficiente l'accumulatore e i testimoni, e **universale** se supporta sia prove di appartenenza sia prove di non appartenenza. Queste etichette descrivono capacità distinte; uno schema dinamico non è automaticamente universale.

Le blockchain possono vincolare transazioni, output non spesi, conti, validatori o registri di revoca. Un impegno più piccolo può ridurre lo stato conservato da alcuni partecipanti, ma il sistema deve comunque distribuire i dati sottostanti e i testimoni correnti, autenticare gli aggiornamenti, gestire le riorganizzazioni della catena e definire chi può modificare l'insieme.

<a id="mechanism"></a>

## Come funziona

1. **Specificare con precisione l'insieme.** Definire la codifica canonica degli elementi, la gestione dei duplicati, le regole di ordinamento ove pertinenti, la separazione dei domini e la versione esatta dell'impegno. Una prova relativa a una codifica o a una radice di stato non dice nulla su un'altra.
2. **Eseguire la configurazione dello schema.** Un accumulatore basato su hash può utilizzare soltanto parametri hash pubblici. Un accumulatore RSA usa un gruppo di ordine sconosciuto, comunemente derivato da un modulo RSA `N`; la sicurezza richiede che soggetti non autorizzati non possano sfruttarne la fattorizzazione. Altri schemi possono usare pairing, gruppi di classi, reticoli o parametri pubblici aggiuntivi con presupposti di fiducia differenti.
3. **Mappare gli elementi nell'algebra.** In una costruzione RSA semplificata, ogni elemento `x_i` viene mappato in modo deterministico a un rappresentante primo distinto `p_i`. Con base `g`, l'accumulatore è:

   `A = g^(p_1 * p_2 * ... * p_n) mod N`

4. **Creare un testimone di appartenenza.** Per l'elemento rappresentato da `p_i`, si omette il relativo fattore dall'esponente:

   `w_i = g^(product of p_j for all j != i) mod N`

5. **Verificare rispetto all'accumulatore esatto.** Il verificatore controlla gli input canonici e calcola:

   `w_i^(p_i) mod N = A`

   In base all'ipotesi di sicurezza dello schema, produrre questa uguaglianza per un elemento esterno all'insieme accumulato dovrebbe essere computazionalmente impraticabile. L'uguaglianza non stabilisce che l'elemento stesso sia veritiero o autorizzato.
6. **Gestire separatamente aggiornamenti e non appartenenza.** Gli schemi dinamici definiscono come aggiunte ed eliminazioni modificano `A` e come vengono aggiornati i testimoni interessati. Gli schemi universali aggiungono un testimone distinto di non appartenenza e un apposito algoritmo di verifica. Le implementazioni devono rifiutare testimoni obsoleti e aggiornamenti associati a uno stato diverso.
7. **Confrontare le strutture basate su hash in base ai costi effettivi.** Un albero di Merkle è un accumulatore basato su hash in senso ampio: la sua radice è breve, mentre una prova di appartenenza contiene gli hash fratelli lungo un percorso e cresce quindi in modo logaritmico con il numero di foglie. Gli schemi di tipo RSA possono offrire singoli testimoni di dimensione costante, ma la generazione delle prove, la manutenzione dei testimoni, la configurazione e il calcolo hanno costi diversi.

<a id="example"></a>

## Esempi svolti

- **Dimensione di una prova di Merkle.** Un albero di Merkle binario bilanciato con `1,048,576 = 2^20` foglie richiede `20` hash fratelli per un percorso di inclusione. Con hash da 32 byte, si ottengono `20 * 32 = 640 bytes` prima dei dati della foglia, dei bit di posizione e dell'overhead di serializzazione. La radice rimane di 32 byte.
- **Dimensione costante non significa lavoro costante.** Nella costruzione RSA semplificata, `A` e un singolo `w_i` restano ciascuno un elemento del gruppo mentre l'insieme cresce. Il prodotto nell'esponente, la generazione dei rappresentanti primi, gli aggiornamenti in batch e la distribuzione dei testimoni aggiornati possono comunque richiedere calcolo o dati ausiliari considerevoli.
- **Un accumulatore UTXO cambia chi conserva cosa.** Un nodo a stato compatto può conservare un accumulatore degli output non spesi e convalidare una spesa soltanto quando riceve l'output insieme a una prova di appartenenza corrente. Altri partecipanti conservano comunque uno stato sufficiente a produrre tali prove, mentre gli aggiornamenti devono rimuovere gli output spesi e aggiungere quelli appena creati.
- **La revoca presenta lo stesso limite.** Il titolare di una credenziale può dimostrare che un identificatore è ancora presente in un accumulatore dei membri attivi, oppure usare una costruzione universale per dimostrare che è assente da un insieme di revoche. La prova autentica l'insieme vincolato dall'emittente; non dimostra che quest'ultimo abbia applicato una politica di revoca equa o corretta.

<a id="risks"></a>

## Rischi

- Usare codifiche degli elementi ambigue o non canoniche, consentendo allo stesso elemento logico di essere mappato in modi diversi.
- Mappare gli elementi a rappresentanti primi in modo errato o senza i controlli delle collisioni richiesti dallo schema.
- Fidarsi di un modulo RSA la cui fattorizzazione potrebbe essere nota al soggetto che ha eseguito la configurazione o a un aggressore.
- Considerare sicura una cerimonia di configurazione multipartitica senza verificarne la trascrizione, i presupposti sui partecipanti e il legame con i parametri.
- Consentire a un amministratore di sostituire i parametri pubblici o le versioni dell'accumulatore senza regole di migrazione autenticate.
- Verificare un testimone rispetto a un valore dell'accumulatore obsoleto, non finalizzato o scelto da un aggressore.
- Applicare un'aggiunta, un'eliminazione o un aggiornamento del testimone proveniente dal blocco, dal fork, dall'epoca o dalla versione dell'insieme sbagliati.
- Presumere che un testimone di appartenenza dimostri anche validità, proprietà, autorizzazione o valore economico dell'elemento.
- Presumere che un impegno breve renda disponibile o recuperabile l'insieme sottostante.
- Perdere i dati o il servizio necessari a costruire testimoni correnti, rendendo inutilizzabile uno stato valido.
- Omettere il supporto alla non appartenenza quando un'applicazione dipende tacitamente da prove di assenza.
- Confondere un percorso di Merkle, un testimone RSA, un'apertura polinomiale e una prova di validità come oggetti intercambiabili.
- Ignorare i costi delle eliminazioni, il traffico per l'aggiornamento dei testimoni, la latenza di generazione delle prove o gli input per attacchi denial-of-service.
- Non vincolare le prove a un protocollo, una catena, un contratto, una radice di stato, un dominio e una versione di serializzazione.
- Affidarsi a un'unica implementazione non sottoposta ad audit o ad aritmetica personalizzata senza vettori di test indipendenti.
- Presumere che la sicurezza classica di RSA, pairing o logaritmi discreti resista a un computer quantistico di rilevanza crittografica.

<a id="misconceptions"></a>

## Idee errate comuni

- **L'accumulatore contiene una copia compressa dell'insieme.** È un impegno vincolante, non un archivio reversibile.
- **Ogni accumulatore dimostra l'assenza.** La non appartenenza richiede uno schema progettato e verificato per tale capacità.
- **Un testimone di dimensione costante comporta un costo totale costante.** Configurazione, generazione delle prove, aggiornamenti, archiviazione e distribuzione dei testimoni restano costi distinti.
- **Senza stato significa che nessuno conserva lo stato.** Alcuni attori devono conservare o ricostruire dati sufficienti a creare elementi, aggiornamenti e testimoni.
- **Una prova valida rende vero l'elemento vincolato.** Collega soltanto l'elemento a un impegno autenticato, in base ai presupposti specificati.
- **Gli alberi di Merkle e gli accumulatori RSA hanno lo stesso profilo di fiducia e prestazioni.** Condividono lo scopo di vincolare un insieme, ma utilizzano presupposti, dimensioni delle prove, procedure di aggiornamento e modalità di guasto differenti.

<a id="related"></a>

## Argomenti correlati

- [ERC-721](/it/crypto/erc721/)
- [Albero di Merkle](/it/crypto/merkle-tree/)
- [Sidechain](/it/crypto/sidechain/)
- [Modello UTXO](/it/crypto/utxo-model/)
- [Prova di validità](/it/crypto/validity-proof/)

<a id="sources"></a>

## Fonti

- [Revisiting Cryptographic Accumulators, Additional Properties and Relations to Other Primitives](https://eprint.iacr.org/2015/087) - IACR Cryptology ePrint Archive (consultato: 2026-08-20)
- [Efficient Revocation of Anonymous Group Membership](https://eprint.iacr.org/2001/113) - IACR Cryptology ePrint Archive (consultato: 2026-08-20)
- [Batching Techniques for Accumulators with Applications to IOPs and Stateless Blockchains](https://eprint.iacr.org/2018/1188) - IACR Cryptology ePrint Archive (consultato: 2026-08-20)
- [Utreexo: A Dynamic Hash-Based Accumulator Optimized for the Bitcoin UTXO Set](https://eprint.iacr.org/2019/611) - IACR Cryptology ePrint Archive (consultato: 2026-08-20)

Source: https://wiki.fcontext.com/it/crypto/cryptographic-accumulator/index.mdx
