2008 pubblicazione paper di Sathosi Nakamoto
Alice -> Bob : synchronous call!
Alice ->> Bob : asynchronous call YHEA!
2009 pubblicazione protocollo BitCoin
Prova [@poon2016bitcoin] test
Throughput teorico massimo di BitCoin
Soluzioni al problema della scalabilità
Analisi dello stato dell’arte relativa a soluzioni di scalabilità OffChain
Design e implementazione di un IPC
Analisi, progettazione e sviluppo di un FulgurHub
Prove sperimentali di Fulgur Hub
Distributed Ledger Technologies
Il problema che risolvono le DLT
Transazioni trustless in un sistema distribuito
DLT permissionless vs DLT permissioned
Caso d’uso: scambio di asset
La transazione, rappresentazione dello scambio di valore
Il ledger, registro pubblico degli scambi di valore
Blockchain e smart contract
Meccanismo di consenso e Proof of Work
Descrizione generale della PoW
Problema del double spending
Controllo della generazione di asset
Aggiornare lo stato della blockchain con operazioni complesse basate su smart contract
Finalizzazione della chiusura
L’operazione “`withdraw“`
Inextinguishable payment channel
Estensione delle struttura dati di una propose
Detach di un token OffChain
Attach di un token OnChain
Transazioni tra più di due entità
Transazioni tra diversi hub
FulgurHub e stato dell’arte
Topologia di rete a confronto e censura
Superamento del problema di ricerca del percorso ottimo
Conferma di una transazione non immediata
Dimostrazione di fattibilità
Transazioni OffChain-OffChain
Transazioni OnChain-OnChain
Transazioni OffChain-OnChain
Transazioni OnChain-OffChain
Dimostrare la scalabilità architetturale
Descrizione generale dell’architettura
Descrizione delle interazioni
Pagamento OnChain-OnChain
Descrizione delle interazioni
Credito insufficiente del client OnChain
Pagamento OffChain-OffChain
Descrizione delle interazioni
B non invia la ricevuta di pagamento ad A
Generazione di una miriade di token
L’hub non permette di attaccare un token
L’hub non permette di staccare un token
A si rifiuta di regolare un trasferimento nei confronti dell’hub
Tentativo di pagamento con un token scaduto
Mancanza di cooperazione nel ricevere un pagamento
Pagamento OffChain-OnChain
Descrizione delle interazioni
Pagamento OnChain-OffChain
Descrizione delle interazioni
Descrizione delle interazioni
Descrizione delle interazioni
Descrizione delle interazioni
Riscossione dei pending token
Descrizione delle interazioni
Tentativo di ritirare un pending token già usato
Le motivazioni tecnologiche
Supporto degli smart contract
Ambiente di sviluppo maturo
Il linguaggio di programmazione: TypeScript
Il database lato server: Redis
Throughput considerevole in scrittura
Customizzazione delle qualità nei limiti del teorema CAP
Il database lato client: LevelDB
Implementazione in Solidity
Interfaccia in TypeScript
Trasferimento OnChain-OnChain
Detach di un token OffChain-OffChain
Detach di un token OnChain-OffChain
Redimere un pending token
Attach di un token OnChain
Regolazione di un pagamento OffChain
Invio della ricevuta di pagamento
Ricezione di una ricevuta di pagamento
Gestione degli eventi asincroni
Detach di un token OnChain
Ricezione di una ricevuta di pagamento
Gestione degli eventi asincroni
Ritiro di un pending token
Verifica delle performance delle transazioni OffChain
Verifica della scalabilità delle transazioni OffChain
Deploy dell’ambiente di collaudo basato su Docker Swarm
Simulazione della latenza di rete
Il throughput lato client
Considerazioni sulle performance
Considerazioni sulla scalabilità
Conclusioni e sviluppi futuri
Autogestione finanziaria dell’hub
Denominazione degli endpoint sulla base della valuta