Invocie

Tech

Hash-Ketten für manipulationssichere Audit-Trails

ZATCA verlangt sie, EU-Prüfer lieben sie, und die Umsetzung ist günstig. So macht verkettetes SHA-256 aus einem Rechnungsregister etwas, dessen Integrität Sie beweisen können.

Invocie Team · 8. Januar 2026 · 5 Min. Lesezeit


Ein manipulationssicherer Audit-Trail ist einer, in dem jede Änderung historischer Daten erkennbar ist. Die klassische Technik — der Blockchain entlehnt, aber viel einfacher — ist die Hash-Kette: Jeder Datensatz enthält den kryptografischen Hash des vorangegangenen. Ändern Sie irgendeinen historischen Datensatz, ändern sich alle nachfolgenden Hashes.

Das Rezept

Für jede Rechnung berechnen Sie:

hash_n = SHA256(prev_hash || canonicalize(payload_n))

// wobei canonicalize() eine deterministische Byte-Folge erzeugt
// (sortierte Schlüssel, keine Whitespaces, stabile Zahlenformate).

Speichern Sie den Hash an der Rechnung selbst. Um die Integrität einer einzelnen Rechnung zu beweisen, müssen Sie nur prüfen, ob ihr Hash dem aus dem Hash der vorigen Rechnung und der canonicalisierten Payload neu berechneten Hash entspricht. ZATCA Phase 2 schreibt genau dieses Schema vor.

Warum Canonicalization alles ist

Zwei byte-unterschiedliche JSON-Serialisierungen desselben logischen Objekts erzeugen unterschiedliche Hashes. RFC 8785 (JCS — JSON Canonicalization Scheme) ist der Standard: Schlüssel lexikografisch sortiert, keine bedeutungslosen Whitespaces, Zahlen in der kürzesten eindeutigen Form, Strings entkommen nach RFC 8259.

Pro-Tenant-Ketten, nicht global

Führen Sie eine eigene Kette pro Tenant statt einer globalen. Zwei Gründe: (1) Sie können Speicher und Compute pro Tenant sharden, ohne Schreibzugriffe zu koordinieren, und (2) eine Korruption in der Kette eines Tenants vergiftet nicht den Audit-Trail aller anderen.

Nachträgliche Verifikation

Ein Prüfer (oder Sie zur Verteidigung) kann die Kette ab Genesis abspielen: Hashen Sie das Payload der ersten Rechnung ohne prev_hash, prüfen Sie die Übereinstimmung mit dem gespeicherten Hash und iterieren Sie. Jede Abweichung lokalisiert den manipulierten Datensatz. Web Cryptos subtle.digest liefert Ihnen SHA-256 in jedem modernen Runtime — Node, Deno oder Browser.

Invocie schreibt einen verketteten Hash an jede Rechnung und an jeden ComplianceLog-Eintrag. Die zwei Ketten sind unabhängig: Rechnungen für ZATCA-artigen Beweis, Logs für operatives Audit.


Verwandte Beiträge

Versenden Sie konforme Rechnungen in jedem Markt

ZATCA, FTA, Peppol und globales Post-Audit — eine API.

Mit unserem Team sprechen