lunedì, dicembre 03, 2018

blockchain



La cosa triste del fatto che oggi tutto sia sostanzialmente spinto dal marketing e che qualunque cosa nuova deve essere necessariamente la migliore.

Il motivo è molto semplice, non solo esiste una questione di novità, cosa che di per sé tende, purtroppo, alla nomea che ciò che è nuovo viene visto necessariamente come migliore, ma esiste un'aggravante mostruosa: la necessità di nuovi termini da utilizzare.

I venditori di fumo non potendo spingere sulla tecnologia, un argomento difficilmente spiegabile in un claim, soprattutto all'uomo della strada, necessitano di potenti esemplificazioni per contrabbandare il prodotto come nuovo in quella che è una pioggia lenta incessante di innovazione tecnologica complessa e noiosa.

La storia dell'alta definizione è quanto mai emblematica visto che a forza di utilizzare il termine è divenuta “tecnologia vecchia” pur non essendo ancora, di fatto, entrata nelle nostre case.

Quest'abitudine odierna al concentrarsi sul mito degli ultimi cinque minuti fa si che esiste una un rafforzamento del trasporto tra novità e mitologia. In pratica quando arriva una nuova tecnologia che ha un nome nuovo e che promette automaticamente deve essere applicata ad ogni singolo prodotto possibile conferendo quest'ultimo una magica e mistica aura. Apple insegna.

Ancora una volta che viene in soccorso l'alta definizione che, per ragioni poco chiare, è stata applicata non solo a televisori dello schermo enorme, ma anche a telefoni cellulari, webcam dalla qualità impropria, giocattoli, citofoni e autoradio in un crescendo nell'utilizzo della sola parola fino ad essere applicata anche ad un gelato.
Bird is the word. Bird Bird, Bird is the word!

E non parliamo neppure della parolacciaCLOUD.

Ogni nuovo trend che cresce, quando diviene un hit, esplode improvvisamente, fragorosamente e senza limiti.
Capisco molto bene i produttori che devono assecondare gli utenti, capisco molto meno gli utenti che chiedono caratteristiche incompatibili con il prodotto stesso.

L'esplosione del bitCoin ha portato alla ribalta la tecnologia sottostante, la blockchain .
È una tecnologia intrigante perché permetterebbe, sotto alcune premesse, la validazione di un dato senza possibilità di cancellazione rendendolo immodificabile.
Nel dominio del digitale dove tutto e' incancellabile, cancellabile e modificabile al tempo stesso, sembra l'araba fenice.

Nella realtà delle cose metà di coloro i quali ne parlano stracciandosi le vesti non hanno la benché minima idea di cosa cavolo sia questa roba.
Ormai si sente parlare di blockchain più della posta elettronica. Sembra quando si parla dell'energia: nessuno sa parlare della caldaia presente nel proprio appartamento, pero', si sentono in grado di progettare una centrale atomica da 40TWh.

Per parlare di questa tecnologia bisogna parlare di che cosa sia la tecnologia sottostante e cosa risolverebbe.

Uno dei problemi dei dati e' la fiducia. Chi conserva cosa?

I dati digitali vengono contenuti normalmente in una struttura chiamata database e in apposite tabelle contiene quello che vogliamo conservare ovvero i nostri dati. Come un registro cartaceo, dopotutto. Ovvio che chi HA il database POSSIEDE l'integrità o e' in grado di manometterla


Se io pago un'azienda e quella non riceve i soldi per controllare la questione chiediamo a un ente terzo che si chiama banca, di cui ci fidiamo, di verificare la cosa. La Banca ha un suo database e controlla nei record chi ha dato a chi i soldi, visto che soldi alla fine sono bit. Lo stato dovrebbe sapere di chi e' quella casa (in realta' siccome delega ai notai che sono fattualmente impunibili e spesso idioti il database e' farlocco generando cause a nastro)

Quando due entità si scambiano dati esiste sempre il problema della fiducia, soprattutto se uno dei due è anche il possessore del database. Per esempio: le società musicali si devono fidare di APPLE quando dichiara di aver venduto 100 dischi. Apple potrebbe sempre dire di aver venduto 10 dischi in meno intascandosi i danari. Ad apple non conviene violare il trust, in caso di manomissione accertata costerebbe piu' della furbata: le aziende non sono cosi' stupide come gli utenti che continuano ad usare FB, WA e compagnia bella. Pero' la fiducia mancava quando market piu' piccoli di itunes hanno cercato di vendere su internet roba digitale.

Non parliamo poi di quando si parla del passato, più volte ho visto dati del passato manipolati a scopo pubblicitario, per esempio telefoni o televisori che oggi si dichiarano messi in vendita più di un anno (alle volte un lustro) prima rispetto quando sono stati lanciati sul mercato per davvero.

Il database non modificabile si chiama “riviste cartacee” che per anni non hanno parlato di quel prodotto. Un database scomodo, non usabile per altre verifiche e poco digitale. Una verifica del genere costerebbe tempo e soldi.

Nei casi più particolari si tende ad avere una copia del database di riferimento presso la propria struttura così da poter verificare l'integrità dei dati. Non puoi alterare ciò che conosco benissimo. Poi se litighiamo come si fa a definire qual'è la versione alterata?
Anche delegassimo ad un terzo come facciamo a dire che il terzo non ha interessi o bustarelle per manipolare il dato?


La blockchain evita il “doversi fidare”
Il non fidarsi delle banche ha portato al bitcoin.
Il sistema prevede che il database venga mantenuto da una serie di soggetti terzi, detti minatori, e questi ultimi utilizzino un sistema di verifica incrementale distribuito. Perche' alla fine e' questo una BC: un database decentralizzato inalterabile.

In pratica abbiamo delegato a dei soggetti terzi la gestione della nostra base dati.

Il sistema funziona solo se:
i soggetti terzi sono una quantità elevata e non in accordo fra loro (in competizione e' meglio).
i soggetti terzi vengono ben retribuiti, altrimenti perché dovrebbero farlo?
soggetti terzi devono persistere nel tempo in quantita' significativa.

In pratica la blockchain si configura dal punto di vista dell'utente come un qualsiasi hosting con la differenza che qualunque aggiunta al database essa sia:
pubblica
costosa
immutabile
eterna
in crescita
Ognuna di queste parole e' un problema, come vedremo.

Non è un caso che della maggior parte di monete elettroniche io posso sapere non solo quanto un portafoglio possiede ma anche quella moneta dove e' stata prima in tutta la storia della moneta stessa. Di conseguenza sono anche a conoscenza del transito, istante per istante, di quel portafoglio. Chi ha comprato, cosa e quando.
Forse l'inventore del bitcoin era uno a cui non fregava niente delle privacy, un idiota, insomma.

Capiamo che ci sono un pochetto di limitazioni rispetto ad un banale server SQL ben gestito:
I dati sono esposti solo se richiesto
Il costo e' gestibile
Posso spegnere il server
e' un asset di proprieta' che posso sviluppare a piacimento e integrandolo con altre risorse.
Soprattutto posso modificarlo in caso di problemi.

Ultimamente sento parlare molto spesso di blockchain in ambito agroalimentare come risoluzione di problemi.
In pratica si tratterebbe di definire se la bottiglia di vino è vera o falsa oppure della storia del pollo, che l'ha allevato, chi l'ha macellato e eccetera eccetera.

In realtà questo insieme di problemi sono questioni facilmente risolvibili con un banale database: l'eventuale associazione produttori di vino basta che tiri su un bel database e che i vari produttori abbiano una password verificata e il sistema è abbastanza sicuro.
Dopotutto l'associazione avrebbe poco interesse ad alterare il database, una politica di accesso “dura”, criptata e giornalata, preserverebbe azioni moleste del tipo che si vorrebbe evitare nel mercato della tracciabilita'. 
Anzi un'agenzia unica agroalimentare sul territorio nazionale sarebbe sufficiente con costi molto bassi.
Il fatto che il DB sia privato e interrogabile solo singolarmente per “consumatore” non esporrebbe i dati ad esempio alla concorrenza, per esempio, francese.
In compenso permetterebbe la rettifica di errori potenzialmente costosi.

Ricordate il “pubblico” della BC? La blockchain esporrebbe alla possibilita' che io posso conoscere TUTTI i clienti della vineria “sun cioco sverrso”, i suoi fornitori e tutto l'annesso.
In pratica l'azienda che volesse far fuori la “sun cioco sverrso” potrebbe far pressing sulla sua catena integrata o i suoi clienti.
Meglio un banale database. Non trovate?

Non solo.
Spesso la blockchain non e' distribuita.
Per mantenere la non scalabilita' nessun minatore dovrebbe possedere piu' di 1/3 del minare, meglio se sono decine o centinaia di minatori “equivalenti”.
La domanda e': chi ha interesse a minare?
La risposta corretta e' che tutti i nodi (coltivatori, vinerie, GDO e consumatori) dovrebbero avere computer accesi per minare.
Capite che e' poco probabile.
Cosi' alcuni si appoggiano a catene gia' esistenti, tipicamente ETH, ma generalmente sono poco flessibili e costose. Fare un programmillo che con un click scopra di che lotto e' la bottiglia non e' semplice ed e' costoso per ogni registrazione.
Cosi', spesso, si alza un serverino linux con un SW di blockchain dove, in pratica, il 100% della catena e' su una singola macchina. Di fatto abbiamo un server di database, senza i vantaggi della chain, ma piu' lento, scomodo e strambo. Assolutamente alterabile come un qualsivoglia server.
Pero' e' 4k turbo, HDR o qualsiasi etichetta di M che volete.
Se poi il contenuto e' quello che e'...

la cosa ridicola.
Nelle varie bottiglie il riferimento alla blockchain e' il barcode.
Di carta.
Stampabile con 30E di stampante e un pezzo di carta.
Anzi posso farlo con una fotocopiatrice.
Se metto il bar code del crystal sul cartone da 20 di tavernello la blockchain mi dice che ho certamente del vino che posso vendere per comprarmi una ford mustang.
Il fatto di avere un RFID non cambia la sostanza: vendo la bottiglia senza il chippo (la bevo, la servo) e riapplico il chip sul tavernello. Penso che i ristoranti potrebbero innescare un mercato di chip usati di brunello.
E' il problema che in AV si chiama il analog hole.

Inoltre nulla vieta di introdurre dati errati: produco 10 bottiglie ma ne vendo 20.
Anche il viceversa. Produco poco nel 2018 per grandine, nel 2025 avendo conservato i barcode-chip vendo l'invecchiato al triplo del prezzo mettendoci dentro l'odierno.
Un secondo digital hole.

La blockchain ha un fascino innegabile, un coding sopraffino e un uso molto limitato.
Serve per transazioni in cui noi non ci fidiamo dell'altro e ci stiamo scambiando beni che non desideriamo che siano modificabili e che siano digitali.
In pratica, nel mondo reale, nulla.

Nel mondo digitale e' la stessa cosa.
Non ci crediamo? Prendiamo una canzone (video, quadro gattini ETH...)

Se io assegnassi il possesso di una canzone occorrerebbe che il player da usarsi obbligatoriamente legga la BC. 
Ascoltare in treno e' impossibile.
Stesso se io consento l'uso slegato dalla BC, cosi' posso ascoltare musica anche al polo dove staro' 6 mesi, sono fregato: se opero in questa maniera in realta' sono svincolato dalla BC.
Il problema e' infatti che la blockchain nasce per conservare contratti e “timbrarli”. In effetti io potrei possedere un bitcoin ma non posso spenderlo 2 volte perche il BTC su QUEL blockchain e' timbrato come in possesso altrui.

Appoggiarsi ad una rete gia' esistente, come ETH, vuol dire massacrare la stessa. I gattini digitali, un classico programmino che assomiglia a tanti altri, ma non in BC, solo per memorizzare il cambio di possesso di un centinaio di caratteri (il “gatto”) richiede fee che arrivano a un euro e questo programmillo ha rallentato il sistema e fatto esplodere il database ETH.

Immaginiamo se per ogni spedizione di vino, ogni split da grossisti&c ogni compravendita di bottiglie e ogni fornitura d'uva avesse un input in BC.
Produciamo 300 milioni di litri.
Vuol dire che ogni vendita d'uva destinata al vino prodotta da migliaia di contadini deve avere un input.
Ogni produttore, trasformatore e venditore deve essere un attore (ovvero un record della chain). Parliamo di centinaia di migliaia di record. Milioni se visti in un'orizzonte decennale.
Ammettiamo di identificare una bottiglia e o una fornitura con una word a 64bit contenete anche un CRC per evitare errori di digitazione. Lo stesso per la cassa, la fornitura eccetera.
Solo per la tabella contenete le chiavi stiamo parlando di 4GB di dati, almeno altrettanti per memorizzare il nome dei vini, altri per memorizzare i produttori con la loro ragione sociale...
Parliamo facile che per il solo vino riversiamo 200GB al volo e almeno 50 annui. In 10 anni sono meno di un tera. 
Sono cifre che per un banale server con uno SCSI da 10K giri e tanta ram sono una passeggiata. E' piu' il frontend che il database vero e proprio. Per le interrogazioni una macchina o due dal prezzo ragionevole possono sopportare tutto il traffico. E' piu' una questione di connessione che di dati.

Per la blockchain e' un massacro. Certo uno puo' solo tener memorizzato il “timbro” e non il resto, ma ha poco senso. A quel punto e' meglio usare una firma digitale sulle transazioni e un bel SQL.
Viene la domanda: quanti nodi hanno la replica totale?
In quanto tempo puoi avere una risposta ad una query?
Ma soprattutto la bottiglia di vino potrebbe costare piu' di “gas” ETH (il costo della transazione) che di vino.

Mettiamo che tutto l'agroalimentare vada in ETH, dopotutto e' l'unica blockchain che io sappia indipendente, diffusa e ben documentata. 
Abbiamo visto che non e' possibile fare una chain con chi non vuole minare, no? Usiamone una diffusa: cosa succederebbe se arrivassero tonnellate di dati?
Sono dimensioni che non impensieriscono un armadio con qualche blade, costi praticamente da operaio, ma, di fatto, paralizzerebbero qualsiasi chain attuale.
Ricordiamo, vero, che la blockchain organizza i dati in blocchi e aggiorna le voci usando una struttura di sola aggiunta?
Quando la bottiglia e' stata bevuta, l'azienda che produce e' fallita eccetera i record, le righe, resteranno li per sempre. Vi lascio solo immaginare la dimensione di una chain di 50 anni...

Sempre per via dell'immutabilita' del dato, solo aggiunte e mai modifiche, cosa succederebbe se nella chain immettiamo un errore?
Mettiamo che per una serie di accidenti un pollo marcio, perche e' stato alterato a posteriori o assegnato erroneamente alla "Pollibuoni inc" produca un bubbone alla grillina. 
In un database normale si va a modificare la voce, in una chain rimarra' li per infangare in eterno la pollibuoni che non nulla ha fatto di male ma fallira' per un errore. O addirittura, non per un errore ma per un dipendente disonesto che ha immesso in chain un dato volutamente errato.

Non parliamo poi della Privacy. Lo ricordiamo che gia' con la 196/03, e il GDPR poi, il dato e' di proprieta' non del database ma di chi e' rappresentato dal dato? Ovvero se io chiudo l'azienda per vari motivi e come persona fisica (ricordiamo cosa e' una SAS, SNC...) non voglio piu' comparire perche' non voglio piu' essere associato con i miei soci che hanno prodotto pollo alle anfetamine?

Il tribunale puo' richiedere la cancellazione del dato dai registri pubblici.
Idem se il mio dipendente cogxione (tipico caso) ha voluto fare delle etichette per polli che riportano nomi come caxxo, fixa, bernar... alternati con nomi e cognomi delle altre impiegate. Se avete avuto dipendenti sapete che non e' poco probabile.
Bene, la blockchain e' inalterabile.
E' inalterabile anche se come stemma della linea kids il mio operaio di merda ha caricato un bimbo nudo (aka pedopornografia), tanto poi si puo' cambiare, ma con un'aggiuta! Non si puo' cancellare quella temporanea.
Per legge, in tutti questi casi, giustamente direi, la chain deve essere cambiata altrimenti il responsabile va in galera.
Ok, chi e' il responsabile?
Non semplicemente chi, fisicamente, ha fatto l'errore, dopotutto non puo' porvi rimedio alcuno.
Non la Pollibuoni, potra' essere la multinazionale cattiva che osannano i poveretti di spirito, ma pure lei nulla puo'.
I responsabili possono essere unicamente tutti i nodi esistenti che non cambiano questi dati che contengono un problema che e' persino penale.
L'unica soluzione e' identificare i nodi uno per uno e diffidarli di mantenere il dato e se non lo fai (ovvero se non convinci a rendere bolsa tutta la chain gli altri nodi) vai in galera.
Di fatto un nodo o un minatore (che non sono esattamente la stessa cosa) sono illegali nel territorio EU il giorno dopo un'incidente di questo tipo, con multe che arrivano a 6 zeri e carcere se provi a farne parte.

Siamo proprio sicuri che la blockchain sia la soluzione per il tarocco del pollo?
Il voler usare la blockchain a tutti gli stramaledetti costi e' come il televisore 4k in casa a tutti i costi: da imbecilli.
Oltretutto sono sicuro che un domani si troveranno ottime cosa da fare con questa tecnologia ma se viene impiegata in malo modo diverra' come altre tecnologie troppo strombazzate: dopo un primo momento in cui sembra che se non possiedi lo snocciola piselli o i 600Hz nei tv sei “out”, verra' il momento in cui non ci si rircordera' piu' neppure del nome.

Alla fine la blockchain non ha ancora trovato una dimensione.
E come al solito l'imbecille che si eccita per la blockchain e' semplicemente un'imbecille. Come i grillini che la citano un giorno si e l'altro pure' di patate.

Se ti ecciti per la blockchain cosa dovresti fare nei confronti di qualsiasi altra tecnologia?
Ti ecciti per i bulloni o gli scolapasta?
Ma forse, vedendo i selfisti, tutto e' possibile.

6 commenti:

ijk ha detto...

In questi giorni ho letto che ci saranno mercatin internazionali di idrogarburi regolati con tecnologia blockchain. Ho chiesto spiegazioni a persone del settore e non hanno saputo spiegarmi cosa significhi
Non so se a suo tempo hai letto il famoso "contatto di governo" ma io l'ho fatto quasi per intero ed ho trovata citata la blockchain come soluzione a non so quale problema.
E' la consacrazione.

ijk ha detto...

Ma la storia del vino via blockchain te la sei inventata o l'hai vista da qualche parte? Comincio a preoccuparmi.

Anonimo ha detto...

parlando di blockchain a vanvera (e pure di fattura digitale) http://www.ilgiornale.it/news/politica/fattura-elettronica-rischio-hacker-stato-faccia-pi-1610478.html

blu-flame ha detto...

ijk il vino dovrebbe arrivare, il pollo (che e' peggio) esiste gia' ed e' presente in italia da auchan. E' quello della foto.

Giuspi ha detto...

"La blockchain ha un fascino innegabile, un coding sopraffino e un uso molto limitato. "

A me, onestamente, sembra fuffa pura

https://github.com/lhartikk/naivechain/
https://github.com/dvf/blockchain/


Sono 200/300 righe di codice in ogni linguaggio, con operazioni banali.
Quando ti studi la crittografia a chiave pubblica vedi algebra avanzata applicata al mondo reale. Quando ti studi la blockchain cosa vedi di così innovativo? Per non parlare delle operazioni di calcolo che crescono quadraticamente nel tempo

blu-flame ha detto...

Giuspi hai ragione e torto.
2 righe alla kandisky le sanno fare tutti, tanto che oggi mezzo design le usa, persino l'imbianchino di provincia.
Pero' nessuno ci aveva pensato prima.
L'innovazione e' stata di inanellare la chiave, niente di strano, ma un nuovo punto di vista.
Nulla vieta che partendo da qui si possa avere un'altra idea, magari con usi piu' concreti, oppure se ne faccia nulla.

poi i fanboy eche si straccino le vesti sono un altro problema di selfismo conclamato che genera i mostri descritti.