Blockchainbasierte Datenbank
Eine blockchainbasierte Datenbank ist eine Kombination aus der Blockchain-Technologie und einer zentralen NoSQL und/oder relationalen Datenbank.
Das Ziel des Einsatzes einer blockchainbasierten Datenbank ist die Datenintegrität.
NoSQL-Datenbanken setzen den Fokus auf Performance und simple Skalierbarbeit, jedoch nicht auf Security.
Mit den Standardmitteln einer relationalen Datenbank lässt sich zwar ein recht gutes Maß an Sicherheit erreichen, welches jedoch angreifbar ist und somit die Integrität der in der Datenbank vorhandenen Daten nicht garantieren kann. Es ist fraglich, ob dieses angreifbare Schutzniveau auch zukünftig ausreichend ist, behördliche Vorgaben umzusetzen. Zusätzlich sind hier auch rein betriebswirtschaftliche Interessen zu nennen, deren Anforderungen jede Firma für sich selber formulieren muss.
„Eine Blockchain ist eine kontinuierlich erweiterbare Liste von Datensätzen, „Blöcke“ genannt, die mittels kryptographischer Verfahren miteinander verkettet sind. Jeder Block enthält dabei typischerweise einen kryptographisch sicheren Hash des vorhergehenden Blocks, einen Zeitstempel und Transaktionsdaten.“ (Zitat Wikipedia)
Durch eine sogenannte blockchainbasierte Datenbank wird ein hohes Maß an Sicherheit gewonnen. Hieraus resultiert, dass innerhalb einer solchen Datenbank befindliche Daten nachträglich weder geändert noch gelöscht werden können, ohne die Datenbank komplett neu aufzubauen, was jedoch eher theoretischer Natur ist.
Ein Beispiel für die Anwendung einer blockchainbaiserten Datenbank:
Sicherheitsrelevante Informationen (z.B. finanzielle Transaktionsdaten, buchhaltungsrelevante Belege oder qualitätsbezogene Herstellungsdaten, Daten zur Rückverfolgung) werden (parallel zur SQL-Datenbank) von einer Anwendung regelmäßig in eine zentrale NoSQL-Datenbank abgelegt. Von der entsprechenden NoSQL-Datenbank werden regelmäßig Hashwerte gebildet, welche wiederrum (mit Zeitstempel und Verweis auf den vorherigen Hashwert versehen) in einer Blockchain gespeichert werden
Um die Gültigkeit eines in der SQL-Datenbank befindlichen Datensatzes zu validieren, können nun folgende, jeweils aufeinander aufbauende Schritte angewendet werden:
- Überprüfen des in der entsprechenden Tabelle der SQL-Datenbank befindlichen Hashwertes
- Überprüfen des Hashwertes des zugehörigen in der NoSQL-Datenbank befindlichen Dokuments. Kann ebenfalls eine Liste sämtlicher Veränderungen des jeweiligen Datensatzes abgefragt werden.
- Überprüfen des in der Blockchain abgelegten Hashwertes der zugehörige NoSQL-Datenbank.
Tritt nur bei einer der vorgenannten Überprüfungen ein Fehler auf, so ist das zugehörige Dokument bzw. der zugehörige Datensatz ungültig.
Zusätzliche Sicherheit kann gewonnen werden, indem die Blockhain-Datenbank auf mehreren, voneinander unabhängigen Systemen verwaltet wird (wie dies beispielsweise bei zahlreichen Krypto-Währungen der Fall ist). Verteilte Blockchain-Datenbanken bestehen aus mehreren dezentralen Instanzen der Datenbank (Knoten). Jeder Knoten bzw. jede Instanz nimmt an der Verwaltung teil: Alle Knoten sind in der Lage, neue Daten (in unserem Fall: Hashwerte mit Zeitstempel und Versionsinformation der verwendeten NoSQL-Datenbank) entgegenzunehmen und an die Datenbank anzufügen. Hierzu muss die Mehrheit der Knoten einen Konsens (= die Bestätigung der hinzugefügten Daten) erzielen. Dieser Konsensmechanismus garantiert die Sicherheit des Netzwerks und verhindert Manipulationen, da nachträgliche Änderungen auf Grund der verteilten Struktur so nicht mehr möglich sind.