Oltre a fornire del denaro magico attraverso internet, le blockchain sono spesso viste come una tecnologia di banca dati che è tremendamente costosa e che semplicemente non è scalabile.
Questo è un classico punto di vista di quando si prova a “blockchainizzare” un qualche modello di business o idea per una applicazione.
Una considerazione fondamentale che viene esaminata è quella di comprendere quali dati si devono trovare sulla blockchain e quali decisamente non dovrebbero trovarsi su una blockchain pubblica.
Prima di addentrarci in questo caso, bisogna valutare qui il perché la blockchain di Ethereum è costosa e cosa si può fare oggi realisticamente con gli smart contract.
Le basi
La blockchain di Ethereum rappresenta al momento un network di più di 20,000 computer. I computer che partecipano al network di Ethereum sono chiamati nodi e la maggior parte di essi verificano la sicurezza e l’integrità di ogni singola transazione ed archiviano tutte le transazioni che avvengono.
Questo avviene ad un costo e limiterà i casi d’uso specifici ed i dettagli di realizzazione in maniera considerevole.
Il network di Ethereum non solo fornisce i binari per il vostro nuovo progetto, ma in parallelo gestisce un sistema finanziario di svariati miliardi sotto forma della sua valuta originaria, chiamata Ether.
Inoltre rende possibile una nuova economia mondiale “tokenizzata” che oggi è già in uso da parte di centinaia di compagnie e che ha raggiunto una stima totale di diversi miliardi di dollari.
Per prevenire attacchi spam e denial of service (DoS) su questo network di computer alimentato da incentivi economici che per lo più promettono niente di meno che la fine di molti modelli di business aziendale, dobbiamo pagare delle tariffe.
Queste tariffe vengono pagate ai miner che proteggono il network con il loro hardware. Così abbiamo un network che è protetto dai partecipanti ed incentivato (pagato) dai suoi utenti.
I costi
Le tariffe su Ethereum sono applicate sia per mandare dati che per l’esecuzione di calcoli computazionali, pertanto mandare grandi quantità di dati o eseguire calcoli complessi è molto costoso.
Limiti nei dati
Al momento (inizio 2018) costa più o meno 1.6 centesimi [1] depositare 32 byte di dati. Depositare un messaggio di 1000 caratteri costerebbe 1000/32*0.016 = $ 0.50, aggiungere solo un’immagine di 1 MB costerebbe altri $ 500 ed allo stesso modo manderebbe spam sugli hard-drive di tutti all’interno del network.
Le cose si fanno davvero costose nel momento in cui vogliamo operare su larga scala, così questo non ha senso per la maggior parte delle applicazioni.
In aggiunta, anche se foste disposti a pagare queste tariffe o anche di più, il network impone un massimale in volume di produzione chiamato block gas limit.
Se dovessimo solamente mandare dati alla blockchain di Ethereum senza utilizzarla per qualsiasi calcolo, si potrebbe raggiungere un volume di produzione di dati di all’incirca 1kB/s (vedi nota [2]) – una velocità che i commutatori telefonici avevano negli anni ‘70.
La cosa interessante è che sembra che questo sia il limite del volume di produzione dei dati che ha reso possibile chat, email, forum, giochi ed altre prime applicazioni che hanno costruito le fondamenta dell’internet di oggi.
Alcune di queste applicazioni sembrano abbastanza simili alle prime applicazioni decentralizzate (dApps) che vediamo oggi su Ethereum.
C’è però una differenza importante: stiamo tutti condividendo questo computer e siamo in costante competizione per chi può usarlo per cosa, così da battere altri utenti/investitori che devono aspettare fino a quando la loro transazione viene incorporata all’interno di un block.
Realisticamente al momento abbiamo tempi d’attesa di pochi minuti fino a quando una transazione viene depositata sulla blockchain di Ethereum nel momento in cui paghiamo pochi centesimi come tariffa. Possiamo diminuire questo periodo di tempo se siamo disposti a pagare di più.
Limiti di calcolo
La performance del calcolo è di solito misurata in operazioni a virgola mobile per secondo (FLOPS). Sfortunatamente la macchina virtuale di Ethereum non supporta ancora numeri a virgola mobile ma solo numeri interi.
Dunque considereremo la seguente metrica migliore – istruzioni per secondo (IPs): se dovessimo effettuare solamente semplici istruzioni aritmetiche (addizione e sottrazione) ed anche leggere e depositare dati all’interno della memoria, potremmo così raggiungere un volume di produzione di 0.19 MIPS (million instructions per second [3] ).
Questo si trova a metà fra il potere di calcolo dei processori Intel 4004 e 4040, introdotti rispettivamente nel 1971 e nel 1974. Ethereum è la prima blockchain pubblica che ha permesso calcoli generici (anche conosciuti come Turing complete) per permettere ad applicazioni, come registri di condivisione (o di token), o giochi (come ad esempio Crypto Kitties) di diventare virali.
Allo stesso modo l’Intel 4004 è stato il primo CPU monolitico disponibile in commercio ed ha reso possibili tutta una serie di applicazioni, cominciando da calcolatrici e flipper.
In conclusione
Le blockchain oggi sono limitate nella potenza di calcolo, costose ed è scomodo lavorarci. Tuttavia potrebbero benissimo fornire l’infrastruttura tecnologica che scatenerà un ciclo di innovazione nei prossimi trent’anni, così come abbiamo visto con internet negli ultimi trent’anni.
Al momento siamo al livello dei commutatori telefonici ed Intel 4040; andando al livello successivo: modem dial-up e Commodore64 per tutti!
A proposito: potrete vedere i primi dial-up modem promettere velocità più alte e costi più bassi in costruzione già da adesso, a porte aperte 365 giorni l’anno (oggi lo chiamano open-source).
Nonostante le limitazioni possiamo già vedere i primi sviluppi di modelli di incentivi che trasformeranno intere industrie domani. Il futuro è incerto, ma le ricompense per i primi a farlo saranno enormi.
Note
[1] depositare una parola (32 byte) costa 20’000 di gas; al momento le transazioni con un prezzo di 1GWei in gas impiegano sotto i due minuti per essere confermate, che va bene per il nostro esempio; se il prezzo di Ether è intorno agli 800 dollari americani dobbiamo pagare 20’000 di gas *800 dollari /ETH (1e18 Wei/ETH) = 0.016 USD.
[2] L’attuale limite di gas di 8 milioni, combinato con un tempo dei blocchi di 14s ed il costo del depositare una parola (32 byte) di 20’000 di gas produce un volume di produzione dati (supponendo che non ci siano calcoli) di 8e6/(20’000 gas) / 14s * 32 byte = 914 kB/s.
[3] ADD, SUB MLOAD e MSTORE costano tutti 3 gas, tuttavia con l’attuale limite block gas di 8 milioni potremmo raggiungere 8e6/ 3 / 14 = 0.19 MIPS.
Di: medium
Commenti