Verifiable integrity. Private context.
הדף הזה מוכיח שהמערכת מעגנת proofs · בלי לחשוף מי / מה / מתי לגבי איזה לקוח · ובלי לאפשר חיזוי או enumeration של receipts עתידיים. רק aggregates + daily roots. אם יש לך proof_ref פרטי · גש ל- /proofs להסבר או ל-/verify/ref/[שלך] לאימות פרטי.
A four-layer cryptographic proof stack designed for independently verifiable outbound data workflows.
The stack combines Ed25519 digital signatures (NIST FIPS 186-5 aligned) per receipt, HMAC-SHA-256 tenant-bound chain linking, RFC-6962-style Merkle transparency witnessing published to a publicly accessible transparency repository, and OpenTimestamps Bitcoin anchoring for external time attestation. Together these layers provide independent proof of existence, proof of inclusion, externally anchored timing evidence, and full offline verifiability — all without disclosing customer content.
The architecture is designed to support privacy-preserving auditability requirements associated with frameworks such as the EU AI Act, GDPR Article 30, SOC 2 CC7.2, and ISO 27001 A.12.4. The proof survives even if NoData ceases to operate.
- Public artifacts contain commitments only —
event_hash,merkle_root,signed_root_hex. - NEVER published: payloads, receipt IDs, tenant IDs, prev-receipt pointers, chain indices, per-event timestamps.
- Holders identify their receipts privately via
proof_refhandles (rate-limited, enumeration-resistant). - If GitHub is breached, attackers gain zero customer data — they already had everything in that feed.
- Merkle leaves are lexicographically sorted before hashing · arrival-order is erased · attackers cannot infer "tenant X transacted at minute Y".
- Public stats are aggregate (daily roll-ups), not per-receipt — no timing correlation with observable events.
chain_indexis never exposed publicly · gap-counting and "predict next receipt" attacks are blocked.- Server-canonical UTC stamping (Postgres
now()· NTP-synced) + Bitcoin block time · two independent clocks confirm when.
Every receipt remains verifiable. The Ed25519 public key is at /api/chain/pubkey (mirrored), the Merkle roots are on GitHub at proofbydefault/witness-feed, the Bitcoin attestations are on the Bitcoin blockchain, and the open-source verifier in witness-feed/verify.mjs runs in any browser or Node.js with zero NoData dependency.
How the four criteria combine — and where they appear elsewhere.
Traditional workflow and e-signature platforms typically rely on vendor-controlled audit logs and centralized trust assumptions. Public blockchain notarization systems can provide external anchoring, but often do not preserve operational privacy, recipient-level governance, or revocable delivery control. NoData combines cryptographic proof, privacy-preserving delivery, recipient-bound workflows, and continuous outbound control into a unified verification architecture — the matrix below maps each criterion across named alternatives.
Epoch seals · the witness layer
כל שעה ה-receipts שנוצרו בשעה שלפניה נקיבצו לאפוק · נוצר Merkle root מעל כל ה-event_hashים שלהם · נחתם ב-Ed25519 · ופורסם לאחסון חיצוני (GitHub witness feed). מי שיש לו proof_ref יכול לאמת inclusion גם בלי הסכמתנו · גם אם נעלם.
Daily roots · last 14 days
ה-day root הוא SHA-256 על כל ה-event_hashים של אותו יום · ממוינים lexicographically לפני ה-hash. סדר ההכנסה לא משפיע · timing לא דולף · אבל הקיום של בדיוק N proofs באותו יום ניתן לאימות אם יש לך את ה-receipts המקוריים.
What we deliberately don't publish · threat model
הוצאנו 3 שדות מהדף הציבורי כדי לחסום וקטורי enumeration:
- chain_index רץ · אם פרסמנו
#47213· קל לנחש שיהיו 47214, 47215. לא פרסמנו אותם. - created_at ברזולוציית שנייה · אם מישהו רואה receipt חדש בדיוק כשהוא ביצע פעולה · יש קישור. עכשיו רק רזולוציית יום.
- per-receipt event_hash · גם חתוך · יכל לשמש fingerprint לעקיבה. עכשיו רק day root (sha256 על כל ה-hashים של היום ממוינים) · לא ניתן ל-reverse לערך יחיד.
חשוב · ה-truncation היא ל-UX בלבד. ה-SECURITY מגיע מ-Merkle proofs + signed inclusion paths · לא מהקיצור. בעתיד · אחרי Merkle epoch sealing · הדף הזה יחליף ימים ב-epochs · כל אחד עם BTC OTS anchor משלו.
Split-knowledge architecture · why this design
🌍 Public · here מראה רק counts + daily roots. ניתן לוודא שמערכת receipts פעילה · בלי ללמוד שום דבר על איזה event ספציפי או מי ביצע אותו או מתי בדיוק. אין enumeration vector.
🔒 Private · /verify/ref/[ref] נגיש רק למחזיק ה-proof_ref. שם רואים את ה-event_hash המלא · ה-Merkle inclusion proof · השרשרת · החתימה. בלי ה-ref · אין דרך להגיע למידע פרטי.
CISO מקבל את שני העולמות · "The integrity layer is public. The business context remains private."