Cos'è Internet Computer?

Internet Computer (IC) è l'unica general-purpose blockchain che esegue applicazioni decentralizzate alla velocità del web.
È il computer mondiale che può sostituire l'IT tradizionale dando vita ad una nuova generazione di applicazioni e servizi Web3 sviluppati e funzionanti interamente on-chain.

L'architettura di IC

Il software di Internet Computer Protocol viene eseguito su server hardware standardizzati che chiamiamo nodi.

I nodi sono sparsi in tutto il mondo, ospitati in numerosi centri dati indipendenti, al fine di garantire un elevato grado di tolleranza agli errori e di decentralizzazione. I nodi sono raggruppati in subnet, ogni subnet costituisce la propria blockchain che si sviluppa indipendentemente dalle altre subnet.

Tutte le subnet sono quindi collegate e dirette dall’ Internet Computer Protocol per formare l’Internet Computer.

Gli aggiornamenti software vengono distribuiti ininterrottamente per aumentare le prestazioni, eliminare i bug o introdurre funzionalità completamente nuove, consentendo ad IC di migliorare ed evolvere rapidamente.

Gli aggiornamenti sono possibili anche a livello hardware, tramite l’aggiunta e la rimozione di nodi o subnet, consentendo ad IC di scalare virtualmente senza limiti poiché la scalabilità è limitata solo dal numero di nodi messi a disposizione di IC.

Per una Overview più approfondita visita la IC Wiki

Il Network Nervous System governa IC

Il software di Internet Computer Protocol viene eseguito su server hardware standardizzati che chiamiamo nodi.

I nodi sono sparsi in tutto il mondo, ospitati in numerosi centri dati indipendenti, al fine di garantire un elevato grado di tolleranza agli errori e di decentralizzazione. I nodi sono raggruppati in subnet, ogni subnet costituisce la propria blockchain che si sviluppa indipendentemente dalle altre subnet.

Tutte le subnet sono quindi collegate e dirette dall’ Internet Computer Protocol per formare l’Internet Computer.

Gli aggiornamenti software vengono distribuiti ininterrottamente per aumentare le prestazioni, eliminare i bug o introdurre funzionalità completamente nuove, consentendo ad IC di migliorare ed evolvere rapidamente.

Gli aggiornamenti sono possibili anche a livello hardware, tramite l’aggiunta e la rimozione di nodi o subnet, consentendo ad IC di scalare virtualmente senza limiti poiché la scalabilità è limitata solo dal numero di nodi messi a disposizione di IC.

I Canisters, l'evoluzione degli smart contracts

Uno smart contract è un programma eseguito su una blockchain. Un canister, o canister smart contract, è un pacchetto che comprende un programma ed i suoi relativi dati. Ogni canister è ospitato su una subnet di IC.

I canister su diverse subnet possono essere eseguiti contemporaneamente e più canister sulla stessa subnet possono essere eseguiti in parallelo, aumentando ulteriormente il throughput. I canister comunicano all’interno e attraverso le subnet inviando messaggi asincroni in modo non bloccante. Queste proprietà consentono una scalabilità essenzialmente illimitata.

I Canister di IC hanno proprietà uniche che gli consentono di:

  • Servire interfacce utente direttamente dalla blockchain
  • immagazzinare gigabyte di memoria a basso costo, eseguire importanti quantità di calcoli a basso costo e pagare per i propri calcoli.

I developer possono implementare i canister in qualsiasi linguaggio che compili WebAssembly.

Gli SDK sono attualmente disponibili per RustMotoko.

Scopri i Canister nella IC Wiki

Low-latency high-throughput consensus

Internet Computer Protocol garantisce che i nodi di una qualsiasi subnet mantengano sempre lo stesso stato dei canister, anche se più nodi di una sottorete (fino a meno di un terzo) sono difettosi o mal funzionati.

Internet Computer non è né una rete proof-of-work, né una proof-of-stake, ma una rete chiamata DAO-Controlled, in cui la DAO NNS  gestisce la node membership delle subnet.
Il consensus protocol ha le seguenti caratteristiche:

  • Low latency (Bassa latenza) – Per raggiungere l’accordo è sufficiente un numero ridotto di cicli di scambio. Normalmente il consenso viene raggiunto entro 1 o 2 secondi.
  • High throughput (Alto Rendimento) – Ogni esecuzione del consenso può gestire carichi di lavoro dell’ordine di megabyte.
  • Finalità crittografica – Il consenso di IC raggiunge una finalità garantita crittograficamente, ovvero i cambiamenti di stato finalizzati non possono essere annullati.
  • Byzantine fault tolerance (BFT) – La capacità di tollerare fino a (ma meno di) un terzo di nodi mal funzionanti è teoricamente ottimale nel modello di comunicazione parzialmente sincrono considerato.

Chain-key cryptography - La base dell 'architettura di sicurezza di IC

Il corretto funzionamento delle subnet, e della comunicazione tra subnet, si basa su una serie di protocolli crittografici innovativi chiamati chain-key cryptography. Chain-key cryptography genera in modo sicuro private key per lo schema BLS signature come parte della creazione di una subnet utilizzando un protocollo di generazione delle chiavi distribuito e non-interattivo (NIDKG).

Le sottoreti utilizzano la firma di BLS per autenticare in modo decentralizzato:

  • le risposte alle richieste degli utenti,
  • lo stato della sottorete,
  • messaggi intersubnet e pacchetti di recupero per consentire ai nodi di unirsi a una sottorete senza la necessità di riconvalidare l’intera cronologia della sottorete.

L’NNS approva le chiavi pubbliche delle sottoreti, come un’autorità di certificazione decentralizzata.
Gli utenti hanno bisogno solo della chiave pubblica BLS a 48 byte dell’NNS per convalidare l’interazione con qualsiasi canister.

La Chain-key cryptography viene utilizzata per garantire:

  • Modifiche dell’appartenenza alla subnet – Una “replica” può unirsi a una subnet, partendo dal checkpoint valido più recente, o uscirne in qualsiasi momento.
  • Proactive security – Le chiavi di threshold della sottorete vengono periodicamente ricondivise tra i nodi correnti della sottorete.
  • Chiavi pubbliche permanenti – I cambiamenti di membership e la condivisione delle chiavi non influiscono sulla chiave pubblica di nessuna sottorete.
  • Garbage collection – Periodicamente, i blocchi precedenti vengono eliminati da ogni blockchain della sottorete per evitare che lo storage cresca all’infinito.

Fonti ed ulteriori informazioni

  • Per capire meglio come funzionano e si integrano tutti i componenti dell’IC, consigliamo di consultare la pagina How it Works ed il white paper.
  • Tutte il codice sorgente di IC è disponibile nella  IC repo.
  • Puoi trovare le informazioni su subnet, nodi, node providers, canister, NNS proposals, voto, transazioni ICP e tanto altro nella dashboard.
  • Motoko è un nuovo linguaggio di programmazione sviluppato appositamente per gli smart contracts di IC.
    Scopri Motoko.