Proof
Zeigen Sie Zeile für Zeile, was daraus folgte.
Für gesteuerte Interaktionen ist im Produkt eine Compliance-Quittung sichtbar. Sie hält fest, was das System empfangen, entschieden und freigegeben hat – als Hashes, verkettet mit der vorhergehenden Quittung und zu einer Merkle-Wurzel zusammengefasst. Drei dieser Bestandteile kann heute jede Person nachrechnen, die die Quittung hat: ohne Schlüssel, ohne Konto, ohne Zugriff auf unsere Datenbank. Der fünfte, der Authentifizierungscode, wird mit dem Schlüssel geprüft, den wir Ihrem Mandanten ausstellen.
Compliance-Quittung
Durchgerechnetes Beispiel- Eingabe-Hash
0x92f2242f4701ee89…83b61ceaKein Schlüssel nötig- Ausgabe-Hash
0x8a09586162b314e2…d79c6b92Kein Schlüssel nötig- Evidence-Hash
0xa8154f5f53e495a5…af2231baKein Schlüssel nötig- Signatur
0xed8c2d6ef474c9e5…1433dd3cSchlüssel von Audact nötig
Durchgerechnetes Beispiel. Acme GmbH und Nova Industries sind erfunden; hier stehen keine Kundendaten. Dies sind Werte aus der Beispielquittung unter /sample-receipt.json. /receipt-explorer rechnet die drei schlüsselfreien Werte in Ihrem eigenen Browser nach: Eingabe-Hash, Ausgabe-Hash und Evidence-Hash. Der Authentifizierungscode wird unter einem symmetrischen Schlüssel berechnet, den Audact verwahrt, und kann ohne ihn nicht geprüft werden.
Aktueller Nachweisstand
- Quittung im ProduktSichtbar
- Produktivexport (gemessen an Browser-Anrufen statt über eine Telefonleitung)Läuft heute · am 26. August 2026 nach dem Deploy nachgeprüft
- Drei Hash-PrüfungenÖffentlich
- Externe Wurzel-VeröffentlichungLäuft heute
- Öffentliche Prüfung des AusstellersNicht verfügbar
Fünf Stände, nicht einer. Jeder steht unten, mit dem, worauf er beruht.
Feld für Feld
Was in einer Quittung steht
Eine Quittung ist ein Objekt je reguliertem Vorgang. Das meiste darin ist eine Aufzeichnung: Sie können es ablesen, und das Ablesen sagt Ihnen, wovon das System zu diesem Zeitpunkt ausging. Drei Felder lassen sich von jeder Person nachrechnen, die die Quittung hat: ohne Schlüssel, ohne Konto, ohne Zugriff auf unsere Systeme. Der Authentifizierungscode wird unter einem symmetrischen Schlüssel berechnet, den Audact verwahrt: Er authentifiziert die Quittung, kann aber ohne den Schlüssel nicht geprüft werden.
- Feld
- receipt_format_version
- Was es festhält
- Die Version des Quittungsschemas. In diesem Beispiel '1.0.0'.
- Prüfung
- Ablesen
- Feld
- call_id
- Was es festhält
- Die eindeutige Kennung der Interaktion.
- Prüfung
- Ablesen
- Feld
- timestamp
- Was es festhält
- Wann die Quittung geschrieben wurde, nach der Plattform-Uhr.
- Prüfung
- Ablesen
- Feld
- input_hash
- Was es festhält
- SHA-256 des Eingabetexts, wie das System ihn empfangen hat.
- Prüfung
- Nachrechnen
- Feld
- output_hash
- Was es festhält
- SHA-256 des Ausgabetexts, wie das System ihn freigegeben hat. MODIFY-Urteil: weicht von input_hash ab.
- Prüfung
- Nachrechnen
- Feld
- verdict
- Was es festhält
- Die Gate-Entscheidung: ALLOW, BLOCK oder MODIFY.
- Prüfung
- Ablesen
- Feld
- config_version
- Was es festhält
- Die zum Zeitpunkt der Interaktion aktive Konfigurationsversion.
- Prüfung
- Ablesen
- Feld
- config_seal_hash
- Was es festhält
- SHA-256 der Konfiguration in dieser Version.
- Prüfung
- Ablesen
- Feld
- policy_version
- Was es festhält
- Die auf diesen Vorgang angewendete Richtlinienversion.
- Prüfung
- Ablesen
- Feld
- evidence_hash
- Was es festhält
- SHA-256 des vorangegangenen Nachweis-Ereignisses in der Nachweis-Kette des Anrufs.
- Prüfung
- Nachrechnen
- Feld
- auth_mechanism
- Was es festhält
- Der Authentifizierungsalgorithmus: 'hmac-sha256'.
- Prüfung
- Ablesen
- Feld
- signature
- Was es festhält
- HMAC-SHA256 über den Signierinhalt unter einem symmetrischen Schlüssel, den Audact verwahrt.
- Prüfung
- Schlüssel nötig
Jeder Name in dieser Spalte ist ein Feld der Beispielquittung unter /sample-receipt.json, geschrieben wie die Datei es schreibt: Öffnen Sie die Datei, und jedes davon steht darin.
Die Kette
Jede Quittung nennt die vorhergehende.
Eine Quittung steht nicht für sich. Bevor sie geschrieben wird, geht der Hash der vorhergehenden Quittung in sie ein; die Quittungen eines Mandanten bilden so eine einzige geordnete Kette.
Genau dadurch wird eine Änderung sichtbar. Ändern Sie einen Wert in einer Quittung, ändert sich ihr Hash; die nächste Quittung trägt weiterhin den alten, und die beiden passen nicht mehr zusammen. Nichts daran verhindert eine Änderung; es macht eine Änderung für jede Person sichtbar, die die Kette durchgeht.
Quittung RCP-899
- Trägt den Hash von
0xc15f…df07- Eigener Hash
0xe48f…5a07
Quittung RCP-900
- Trägt den Hash von
0xe48f…5a07- Eigener Hash
0x627d…9389
Quittung RCP-901
- Trägt den Hash von
0x627d…9389- Eigener Hash
0xfb45…4fd2
Wenn sich eine ändert
Jede folgende Quittung passt nicht mehr, und die erste Abweichung benennt die Stelle, an der die Kette gebrochen ist. Geschrieben wird bei uns ausschließlich anhängend. Erkennbar ist das, was Sie prüfen können.
Prüfprotokoll
Ereigniskette, an die nur angehängt wird. Eine spätere Änderung oder Umsortierung ist erkennbar, indem die Kette gegen das aufbewahrte Commitment neu berechnet wird.
Einschluss
Rechnen Sie die Wurzel selbst nach.
Quittungen werden pro Mandant in Merkle-Wurzeln zusammengefasst; die Wurzeln sind unter api.audact.ai/v1/metachain veröffentlicht. Die vier Schritte unten zeigen die Pfadnachrechnung an einem älteren illustrativen Beispiel, das die Pfadfelder trägt.
- Weg von dieser Quittung
- Verwendete Geschwister-Hashes
- Übrige Quittungen im Stapel
Vier Schritte
- 1
Die fünf Kernfelder hashen
receipt_id, issued_at, input_hash, output_hash und previous_receipt_hash nehmen, in eine feste Form bringen (Schlüssel alphabetisch, keine Leerzeichen) und den SHA-256 bilden. Dieser Wert ist das Blatt, und die Quittung trägt ihn als receipt_hash. Es ist kein Hash über die ganze Quittung.
- 2
Den ersten Geschwister-Hash einrechnen
Das Blatt und den ersten Hash aus merkle.path in Bytes zurückwandeln, den Geschwister-Hash auf die Seite setzen, die sein Feld side nennt, beide aneinanderhängen und den SHA-256 des Paares bilden.
- 3
Nach oben gehen
Für jeden weiteren Eintrag in merkle.path wiederholen, Ebene für Ebene, bis ein einziger Wert übrig ist.
- 4
Vergleichen
Diesen Wert gegen merkle.root halten. Gleich heißt: Diese Quittung passt zu der Wurzel, die die Datei selbst trägt. Um den Einschluss zu bestätigen, wird diese Wurzel mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs gegen die veröffentlichte Wurzel unter api.audact.ai/v1/metachain geprüft.
Keiner dieser vier Schritte braucht einen Schlüssel: die Quittung und ihr Pfad genügen. Was sie belegen, ist, dass die Quittung zu der Wurzel passt, die sie selbst trägt. Der Einschluss in die veröffentlichte Wurzel wird mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs geprüft; die Wurzeln stehen unter api.audact.ai/v1/metachain.
Aus dem älteren illustrativen Beispiel
- Feld
- receipt_hash
- Wie veröffentlicht
- 0xfb45e410edb4a3aa…ecb14fd2
- Feld
- merkle.leaf_index
- Wie veröffentlicht
- 2
- Feld
- merkle.path
- Wie veröffentlicht
- right · left · right
- Feld
- merkle.root
- Wie veröffentlicht
- 0x8a11d892e1e07458…e1141396
Prüfung für Prüfung
Sieben Prüfungen, und sie sind nicht gleich verfügbar.
Den Merkle-Pfad bis zu der Wurzel nachzurechnen, die eine Quittung selbst trägt, ist nicht dieselbe Prüfung wie diese Wurzel mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs gegen die veröffentlichte Wurzel unter api.audact.ai/v1/metachain zu prüfen. Die erste können Sie heute durchführen, im ausgearbeiteten Beispiel. Die zweite verwendet den Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs. Jede Zeile nennt, worauf die Prüfung beruht und wo sie steht.
- Prüfung
- Den Eingabe-Hash nachrechnen
- Worauf sie beruht
- SHA-256 über den input-Block der Quittung, die Sie in der Hand halten. Mehr braucht es nicht.
- Stand
- Verfügbar
- Prüfung
- Den Ausgabe-Hash nachrechnen
- Worauf sie beruht
- SHA-256 über den output-Block derselben Datei.
- Stand
- Verfügbar
- Prüfung
- Den Hash des vorangegangenen Nachweis-Ereignisses nachrechnen
- Worauf sie beruht
- SHA-256 des vorangegangenen Nachweis-Ereignisses in der Nachweis-Kette des Anrufs. Die Felder des Ereignisses werden in fester Reihenfolge mit Pipe getrennt, und die Quittung trägt den Hash als evidence_hash.
- Stand
- Verfügbar
- Prüfung
- Den Merkle-Pfad bis zu der Wurzel nachrechnen, die die Quittung selbst trägt
- Worauf sie beruht
- Das Blatt über merkle.path nach oben falten und gegen merkle.root in derselben Datei halten. Quittungen werden pro Mandant in Merkle-Wurzeln zusammengefasst; die Wurzeln sind unter api.audact.ai/v1/metachain veröffentlicht, und der Einschluss wird mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs geprüft. Die Schritte laufen auf /sample-receipt.json; der Produktivexport funktionierte bei der Nachprüfung am 26. August 2026 nach dem Deploy, gemessen an Browser-Anrufen statt über eine Telefonleitung.
- Stand
- Im ausgearbeiteten Beispiel verfügbar
- Prüfung
- Diese Wurzel gegen ein außerhalb unserer Systeme veröffentlichtes Commitment halten
- Worauf sie beruht
- Eine vierte, der Einschluss in der Merkle-Wurzel, wird mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs geprüft: der Kunde exportiert den Bericht und kann ihn einem Prüfer übergeben, der den Nachweis gegen die veröffentlichte Wurzel stellt.
- Stand
- Läuft heute
- Prüfung
- Allein mit öffentlich zugänglicher Kryptografie feststellen, wer die Quittung ausgestellt hat
- Worauf sie beruht
- Die Quittung trägt HMAC-SHA256 unter einem symmetrischen Schlüssel, den Audact verwahrt. Einen frei zugänglichen Schlüssel zum Prüfen gibt es nicht, also gibt es für Dritte nichts, wogegen sie prüfen könnten.
- Stand
- Nicht verfügbar
- Prüfung
- Den Aussteller darauf festlegen, wenn er bestreitet, sie geschrieben zu haben
- Worauf sie beruht
- Ein Authentifizierungscode unter einem geteilten Schlüssel leistet das nicht: Wer ihn prüfen kann, kann ihn auch erzeugen, und wir halten denselben Schlüssel. Er ist keine Unterschrift.
- Stand
- Vom heutigen HMAC-Verfahren nicht geleistet
/receipt-explorer führt die ersten drei davon am ausgearbeiteten Beispiel in Ihrem Browser aus. Kein öffentlicher Dienst prüft heute eine Quittung stellvertretend für Dritte.
Selbst nachrechnen
Drei Werte, von jeder Person nachrechenbar.
Beginnen Sie links: drei Werte, die jede Person nachrechnen kann, die eine Quittung hat, ohne Schlüssel und ohne uns. Die vierte, der Einschluss in der Merkle-Wurzel, wird mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs gegen die veröffentlichte Wurzel geprüft. Daneben steht, wofür der Schlüssel da ist und worüber eine Quittung eine Aufzeichnung ist. So lässt sich die erste Spalte wörtlich nehmen und nicht auf Vertrauen.
Drei Werte, von jeder Person nachrechenbar
Der Eingabe-Hash, der Ausgabe-Hash, die Verknüpfung zur vorhergehenden Quittung. Der Einschluss in der Merkle-Wurzel ist die vierte Prüfung; er wird mit dem Einschlussnachweis aus dem Artikel-50-Bericht des Anrufs gegen die veröffentlichte Wurzel geprüft.
Kein Schlüssel, kein Konto und kein Zugriff auf unsere Datenbank: Die Rechnung läuft auf der Quittung, die Sie in der Hand halten.
Wofür der Mandantenschlüssel da ist
Der Code ist HMAC-SHA256 über die kanonische Quittung, unter einem symmetrischen Schlüssel, den Audact verwahrt. Es ist ein Authentifizierungscode und kein Verfahren mit öffentlichem Schlüssel; einen frei zugänglichen Schlüssel zum Prüfen gibt es nicht.
Wer den Code prüfen kann, kann ihn auch erzeugen, und wir halten denselben Schlüssel. Er belegt, dass der Datensatz unversehrt ist, nicht, wer ihn geschrieben hat.
Worüber eine Quittung etwas sagt, und worüber nicht
Eine Quittung ist eine getreue Aufzeichnung dessen, was das System empfangen, entschieden und freigegeben hat. Genau das belegt sie, nicht, ob die Wirklichkeit dazu passte.
Hat ein Anrufer einen falschen Namen genannt, hält die Quittung den falschen Namen getreu fest. Nachweis über den Ablauf ist kein Nachweis über die Tatsache, und keine Kryptografie schließt diese Lücke.
Selbst ausprobieren
Nehmen Sie eine Quittung auseinander.
Der Explorer geht das ausgearbeitete Beispiel Feld für Feld durch, mit den Beispieldateien daneben. Nichts davon braucht ein Konto.
- Receipt Explorer
Das ausgearbeitete Beispiel Feld für Feld durchgehen.
- Beispielquittung (JSON)
Erfundene Beteiligte, echte Rechnung: Drei Werte rechnen sich aus der Datei allein nach, und der vierte faltet sich bis zu der Merkle-Wurzel hoch, die in derselben Datei steht.
- Beispielquittung (PDF)
Derselbe Datensatz in einer Form, die ein Datenschutzbeauftragter lesen kann.
- Evidence-Vault-API
Wie Quittungen geschrieben und abgerufen werden.
- Wie man sie nachrechnet – die genaue Form
Die kanonische Form, welcher Block in welchen Wert geht, und vier Testvektoren zum Abgleichen. Kein Code von uns.
Nachweiskette
Drei dieser Bestandteile kann heute jede Person nachrechnen, die die Quittung hat: ohne Schlüssel, ohne Konto, ohne Zugriff auf unsere Datenbank.
Für die Prüfung des Authentifizierungscodes dient der symmetrische Schlüssel, den wir Ihrem Mandanten ausstellen.
Control what AI can cause. Prove what follows.
Woher eine Quittung kommt
Eine Quittung ist das, was ein gesteuertes Gespräch hinterlässt.
Voice ist die Anwendung, aus der sie stammt: Telefonie, die Offenlegung nach Artikel 50 und die Länderrichtlinie an einer Stelle, mit einer Quittung, die für gesteuerte Interaktionen im Produkt sichtbar ist.
