La seguretat de les dades implica tres propietats conegudes com la tria
de CIA.
La C és de Confidencialitat i en realitat s'estudia en un altre mòdul,
però bàsicament el que pretén és que persones no autoritzades no puguin
accedir a les dades.
La I és d'Integritat i pretén evitar que les dades puguin ser modificades
per persones no autoritzades o per accident.
Finalment tenim la D, de Disponibilitat, que significa que les
dades estaran disponibles quan es necessitin.
Cal destacar que per garantir la disponibilitat això implica prevenir
els atacs de negació de servei o DOS per les seves sigles en anglès,
en els quals els atacants el que busquen és inutilitzar els sistemes
on s'emmagatzemen les dades.
Com a escenari d'exemple, imaginem un intercanvi de vents entre dues
empreses.
En aquest cas, sorgeix la pregunta què passa si cada empresa té en el
seu sistema d'informació una dada diferent sobre una quantitat de
producte intercanviat.
Això pot succeir per diferents motius, per exemple, per errors a
l'hora d'enregistrar la informació o per modificacions posteriors en algun
dels sistemes.
En aquest cas, tindríem un problema d'integritat de les dades, on cada
empresa té una dada diferent i haurien de reconciliar aquestes dades
d'alguna manera.
Per evitar aquests processos de reconciliació de dades, que són
complexos i costosos, una solució és implementar una base de dades
compartida entre les dues empreses
i operada per algú en el qual les dues empreses hi confiïn.
Cal tenir en compte que, amb aquesta solució de base de dades única,
podríem tenir problemes de disponibilitat perquè el sistema, si
cau per algun motiu, no tindríem les dades disponibles.
La següent evolució a la solució seria implementar un sistema d'alta
disponibilitat, on no només el sistema està en una base de dades
única sinó que el tenim distribuït en diferents sistemes
i això ens dona alta disponibilitat.
Tot i això, i tenir una solució de alta disponibilitat, això pot ser no
suficient en certs escenaris.
Per exemple, en el cas de la traçabilitat, què succeeix si volem
auditar el procés?
És a dir, volem que un auditor auditi tot el procés, llavors l'auditor
hauria de confiar en l'entitat o entitats que operen el sistema de
base de dades,
ja sigui únic o en alta disponibilitat, i això inclou confiar
en que no s'han alterat les dades tot just abans de l'auditoria.
En aquest cas, el següent pas a la solució seria implementar un sistema
amb operativa distribuïda i transparent.
És a dir, transparent volem dir públic, on tota la història del
sistema és compartida i pública entre tots els participants.
Aquest tipus de sistema es coneixen com llibres de registres distribuïts
o tecnologies blockchain, perquè la majoria s'implementen en una cadena
de blocs.
La idea és que el sistema evoluciona el seu estat a través de
transaccions, i aquestes es processen de manera seqüencial i immutable.
Com a exemple simplificat, imaginem que el nostre sistema és una ciutat.
L'estat inicial seria un descampat.
Llavors, els participants han de decidir quines transaccions seran
registrades i ordenades de manera immutable.
Per exemple, la primera transacció podria indicar que el primer que es
va construir a la ciutat va ser una casseta.
Un cop ordenada aquesta primera transacció, s'executa i l'estat
inicial, o estat 0, canvia a estat 1, on ara tenim una casseta.
El sistema continuarà evolucionant amb noves transaccions ordenades de
manera immutable.
Aquestes transaccions poden afegir informació a l'estat actual del
sistema o eliminar-la.
L'estat actual del sistema és mutable, és a dir, es va col·litzant,
va canviant, però la seqüència de transaccions és immutable.
Un cop una transacció es registra, no es podrà modificar aquest fet.
El procés de consensuar les transaccions és costós, de manera que
en aquests sistemes no es consensua transacció a transacció,
sinó que es consensua un bloc de transaccions. Aquests blocs
s'encadenen donant lloc a la denominació de cadena de blocs o
blockchain.
En aquest punt podem donar una definició tècnica de què és un llibre
de registre distribuït i la seva relació amb la denominació cadena de
blocs o blockchain.
Podríem dir que una blockchain és una forma de construir un llibre de
registre distribuït on les transaccions que modifiquen l'estat
del llibre de registre (ledger),
són enviades pels usuaris i ordenades de manera seqüencial i immutable pels
nodes de la xarxa utilitzant un algoritme que es coneix com algoritme
de consens.
En el cas de la xarxa bitcoin, els nodes que ordenen les transaccions
creant els blocs es diuen miners,
i cal destacar que les criptomonedes en aquest tipus de sistemes de llibre
distribuït públic apareixen com a mecanisme
per recompensar els participants que realitzen la tasca d'ordenar aquestes
transaccions de forma correcta.