Merkle-Baum-Zeitstempel: Funktionsweise und Nachteile
Von BlockchainSignVeröffentlicht am

Wenn Sie sich gefragt haben, wie ein Dienst Dateien kostenlos auf Bitcoin zeitstempeln kann, obwohl eine Bitcoin-Transaktion Geld kostet, lautet die Antwort: ein Merkle-Baum. Es lohnt sich, dies zu verstehen, denn der Kompromiss, den er eingeht, ist der Hauptunterschied zwischen den verfügbaren Zeitstempeldiensten.
Das Problem, das er löst
Das Schreiben eines Hashwerts in eine Blockchain kostet Geld — eine Transaktionsgebühr, die in der Währung der Chain gezahlt wird. Wenn jede Datei ihre eigene Transaktion benötigt, hat jeder Zeitstempel eine feste Mindestkostenbasis.
Das Bündeln vieler Hashwerte in einer einzigen Transaktion hebt diese Mindestgrenze auf. Die Schwierigkeit besteht darin, dies zu tun, ohne dabei die Möglichkeit zu verlieren, dass jeder beweisen kann, dass sein spezifischer Hashwert im Bündel enthalten war, ohne das gesamte Bündel zu veröffentlichen.
Wie ein Merkle-Baum funktioniert
Nehmen Sie eine Menge von Hashwerten. Paaren Sie sie und hashen Sie jedes Paar zusammen. Paaren Sie die Ergebnisse und hashen Sie auch diese. Wiederholen Sie dies, bis nur noch ein Hashwert übrig bleibt.
h(A) h(B) h(C) h(D)
\ / \ /
h(AB) h(CD)
\ /
h(ABCD) ← der Merkle-Wurzelhash
Dieser letzte Wert ist der Merkle-Wurzelhash (Merkle Root) und garantiert für alle Eingaben. Ändern Sie einen der ursprünglichen Hashwerte, ändert sich der Wurzelhash vollständig.
Nur der Wurzelhash kommt in die Chain. Eine Transaktion, egal wie viele Dateien im Bündel waren.
Nachweis, dass Ihre Datei enthalten ist
Um zu zeigen, dass h(A) unter dem Wurzelhash liegt, benötigen Sie nicht den gesamten Baum. Sie benötigen nur die Geschwisterknoten entlang des Pfades von Ihrem Blatt zur Spitze — hier h(B) und h(CD). Jeder kann neu berechnen:
h( h( h(A), h(B) ), h(CD) ) == der Wurzelhash in der Chain?
Diese kurze Liste von Geschwisterknoten ist der Merkle-Beweis oder Inklusionsnachweis. Bei einem Bündel aus einer Million Dateien umfasst er etwa zwanzig Hashwerte, da die Pfadlänge mit dem Logarithmus der Bündelgröße wächst, nicht mit der Bündelgröße selbst.
Dies ist wirklich elegant. Es ist der Mechanismus hinter OpenTimestamps und hinter den meisten kostenlosen Zeitstempeldiensten.
Was Sie dabei opfern
Drei Dinge, allesamt operativer Natur und nicht kryptografischer Art.
Sie müssen die Beweisdatei aufbewahren. Die Chain enthält nur den Wurzelhash, nicht Ihren Hashwert. Ohne den Pfad der Geschwisterknoten gibt es keine Möglichkeit, Ihre Datei mit der Transaktion zu verbinden. Verlieren Sie den Beweis, ist der Zeitstempel weg — die Transaktion allein hilft Ihnen nicht weiter.
Es gibt meist eine Verzögerung und einen zusätzlichen Schritt. Bündel werden nach einem Zeitplan geschlossen. Bis das Bündel festgeschrieben und bestätigt ist, ist Ihr Beweis unvollständig, und bei einigen Designs müssen Sie später zurückkehren, um ihn zu „aktualisieren“. Viele Menschen tun dies nie und finden es Jahre später heraus.
Die Überprüfung erfordert Erklärung. Das Neuberechnen eines Merkle-Pfades ist für Entwickler eine einfache Operation, für andere jedoch eine unerfreuliche Überraschung. Ein Nachweis, dessen Überprüfung ein Tutorial erfordert, wirkt vor einem nichttechnischen Publikum schwächer.
Die Alternative: eine Transaktion pro Datei
Der andere Ansatz besteht darin, jeden Hashwert in seine eigene Transaktion zu schreiben. Das tun wir: Ihr Payload-Hashwert geht in die Eingabedaten einer dedizierten Ethereum-Transaktion, wo ihn jeder mit „Als UTF-8 anzeigen“ auf Etherscan lesen kann.
| Merkle-Bündelung | Eine Transaktion pro Datei | |
|---|---|---|
| Kosten pro Zeitstempel | Nahezu null | Die volle Transaktionsgebühr |
| Was Sie aufbewahren müssen | Eine Beweisdatei | Nichts — der Hashwert ist on-chain |
| Wenn Sie das Artefakt verlieren | Zeitstempel nicht wiederherstellbar | Aus öffentlichen Daten wiederherstellbar |
| Zusätzlicher Schritt nach Einreichung | Oft ja | Nein |
| Überprüfung | Merkle-Pfad neu berechnen | Transaktion lesen |
| Erklärung gegenüber einem Anwalt | Erfordert ein Tutorial | Link öffnen |
Keine der Methoden ist kryptografisch stärker. Ein Merkle-Beweis ist genau so solide wie ein direkter Schreibvorgang. Der Unterschied betrifft ausschließlich das, was später passiert: eine Person, die nicht Sie ist, hält ein Artefakt in der Hand, das sie nicht versteht.
Welche Methode wählen?
Wenn Sie im großen Maßstab zeitstempeln, technisch versiert sind und zuverlässig Dateien aufbewahren, ist die Bündelung hervorragend und der Preis unschlagbar.
Wenn Sie eine kleine Anzahl wichtiger Dokumente zeitstempeln und das spätere Publikum ein Kunde, eine Versicherung oder ein Gericht ist, kaufen Sie mit der Bezahlung für einen direkten Schreibvorgang einen Beweis, bei dem Sie nichts verlieren und nichts erklären müssen.
Die Bündelung ist auch der sinnvolle Weg, um eine kostenlose Stufe anzubieten, was beim Preisvergleich wichtig ist: Ein Dienst, der Cent-Beträge pro Zertifikat berechnet, verwendet fast sicher Bündelung, während ein Dienst, der Dollar-Beträge verlangt, dies wahrscheinlich nicht tut.