# Ewige Logdatei

Eine ewige Logdatei ist ein Verfahren der Informatik und dient dazu, Manipulation von Informationen nahezu unmöglich zu machen bzw. etwaige Manipulationen aufzudecken.

## Nutzen und Funktionsweise

Zum Nachweis, dass Daten (ein Text) zu einem bestimmten Zeitpunkt bereits in einer gewissen Form existiert haben, können die Daten (bzw. ihre Prüfsumme) in die ewige Logdatei eingetragen werden und der resultierende Hashwert der Logdatei in einem hinreichend schwer manipulierbarem anderen Medium (z. B. in der Tagespresse) veröffentlicht werden. Zu einem späteren Zeitpunkt kann man die dann aktuelle digital gespeicherte Logdatei durch die veröffentlichten (und somit einer breiten Öffentlichkeit bekannten) Hashwerte als korrekt nachweisen, und damit auch die eigene Eintragung aus der Vergangenheit, wobei der Nachweis der Existenz der Daten zu einem bereits vergangenen Zeitpunkt erbracht ist.
Beispiel: Es soll beweiskräftig festgehalten werden, dass ein Text bereits heute existiert hat, bspw. um in der Zukunft die Urheberschaft des Texts nachzuweisen. Man berechnet also eine Prüfsumme (beispielsweise SHA) des Textes und speichert diese Prüfsumme zusammen mit dem aktuellen Zeitstempel in der Logdatei. Der Betreiber einer solchen Logdatei sollte dafür Sorge tragen, dass mindestens einmal täglich der aktuelle Hash-Wert in der Tagespresse erscheint; man kann dies allerdings auch selber tun.
Das besondere Prinzip ist dabei, dass das ewige Logfile den Hashwert des neuen Logeintrags mit dem Hashwert des Logfiles selber verknüpft, sodass es nicht möglich ist, einzelne Einträge aus dem Logfile zu löschen, ohne dabei den Hashwert des Logfiles zu verändern. Dadurch lässt sich ein Manipulationsversuch entdecken.

## Beispiel

Mit einem Beispiel lässt sich das Prinzip verdeutlichen:
* ein beliebiger Eintrag ($m$) des Logfiles laute z. B. "Peter Müller schuldet Hans Huber 10.000 EUR" und habe den Hashwert $H(m)$.
* der aktuelle $n$-te Eintrag laute "Heute scheint die Sonne" und habe den Hashwert $H(n)$, der sich aus dem Hashwert $H(n-1)$ sowie aus dem aktuellen Eintrag "Heute scheint die Sonne" errechnet.
* da der Hashwert $H(n-1)$ sich wiederum rekursiv aus allen vorhergehenden Hashwerten (zusammen mit dem jeweiligen Inhalt) errechnet, fließt auch der Hashwert des Eintrags $m$ in den aktuellen Hashwert ein.
* immer wenn ein Hashwert sich ändert (d. h. ein neuer Eintrag hinzugekommen ist), wird der aktuelle Hashwert $H(x)$ in einer Tageszeitung o. ä. veröffentlicht.
* würde ein Angreifer das Logfile fälschen wollen und im Eintrag $m$ statt des Betrages "10.000" den Betrag "100.000" einsetzen, würde sich dadurch der aktuelle Hashwert des Logfiles zu $H(n')$ verändern, was über einen Vergleich mit den früher veröffentlichten Hashwerten $H(m),H(m+1),...,H(n-1),H(n)$ einfach entdeckt werden kann.
Insbesondere wenn die Hashwerte von ewigen Logfiles gegenseitig verknüpft werden (d. h. der aktuelle Hashwert des Logfiles A wird regelmäßig in die Logfiles B und C eingetragen und umgekehrt), ist eine Manipulation der Einträge praktisch nicht mehr möglich.

## Anwendung

Eine der prominentesten Anwendungen des ewigen Logfiles sind die Blockchains, die die Grundlage für Kryptowährungen wie z. B. Bitcoin, Ethereum etc. bilden.