Knowledge Center / Evidence architecture / evidence architecture · 2026·04
Signal / verdict separation — the substrate observes, the operator decides
The architectural separation that distinguishes EEI from a fraud-scoring system or a RASP product is the cut between signal and verdict. The substrate signs what was observed — overlay active, debugger attached, boot integrity failed. The operator decides what to do about it — block, step up, allow with alert. The same signed signal stream is replayable into many policy regimes without re-signing.
1. Signal and verdict
A signal is a typed, signed observation: a fact about the device’s runtime at a specific moment, recorded by the TRP and committed to the ledger. A verdict is a policy output: the operator’s decision, computed from a signal stream, about whether to permit, challenge, decline, or queue a specific transaction.
EEI signs signals and only signals. It does not sign verdicts. The operator computes verdicts inside the operator’s perimeter, against the operator’s policy, with the operator’s accountability. The substrate stays out of the decision.
2. Why the cut sits where it sits
The placement is not stylistic. Three pressures push the boundary to this exact line:
- Legal accountability. Under GDPR Article 22 [3] and analogous jurisdictional rules, the operator is accountable for automated decisions about a data subject. If the substrate were producing verdicts, the operator would be either passing accountability to a vendor (regulators discourage this) or layering policy on top of vendor policy (which is fragile). Signal-only separation keeps decision accountability cleanly with the operator.
- Policy heterogeneity. A wallet operator running across
multiple jurisdictions sees the same signal class
(
overlay.detected) trigger different verdicts in different regimes — under the PSD2 SCA RTS [1] in the EU, an overlay during SCA may be the trigger an operator policy uses to step up authentication; under a South African operator’s own conduct policy (the operator’s design, informed by its own Prudential Authority and SARB obligations rather than by any named directive), it may be a flag for manual review; under a different operator’s product context, it may be allowed with alert. One signal stream, multiple verdicts, no re-signing. - Auditability. A regulator auditing a refused transaction wants to ask two questions independently: was the signal observation correct, and was the policy decision lawful. Signal / verdict separation lets them be answered independently. The signal is signed and replayable; the policy is the operator’s document.
3. What signals look like
The taxonomy of signal classes is fixed by the YEI-001 spec — operators do not invent new signal classes; they read what the TRP emits. The classes covered by Standard profile include:
device.integrity— verified-boot state, security-patch level, attestation chainruntime.environment— root, debugger, hook framework, emulatorcode.integrity— page-hash invariants, runtime patchingbinding.status— registered-device match, install-id continuitynetwork.identity— carrier and connectivity-state observations the platform exposes to the host app (AndroidTelephonyManagerfields under the permissions the host app holds; iOSCTCarrier/network-info APIs subject to platform deprecation — ICCID enumeration is unavailable on iOS 16+ and gated on Android, so the field set is platform-and-permission-bounded)overlay.detected— surfaces fromMotionEvent.FLAG_WINDOW_IS_OBSCURED/FLAG_WINDOW_IS_PARTIALLY_OBSCURED[4] on touches received on a sensitive surface (per-touch flags, not a continuous “overlay active” query — Android’s package-visibility rules do not expose other apps’ active overlay windows to a host app)accessibility.active— surfaces fromSettings.Secure.ENABLED_ACCESSIBILITY_SERVICES[5] (Android, world-readable to the host app); iOS exposes only the host app’s own accessibility state (UIAccessibilityqueries) and cannot enumerate third-party assistive features from another app — the iOS surface is correspondingly narrower
Each signal is a typed observation with a documented schema. The spec fixes the wire format; operators read it; regulators audit against it.
4. What verdicts look like
Verdicts are not a YEI-001 concept. The spec does not define them. Operators design verdict policies appropriate to their product, their jurisdictions, and their risk appetite. Some operators compute verdicts inside an existing fraud-scoring engine (EEI signals enter as features); some compute them in a rules engine; some combine the two.
What the substrate does is hold a signed record of what the
device observed at the moment the operator made the decision. If
the operator declined a transaction citing overlay risk, the
substrate-signed evidence shows whether overlay.detected was
actually true at the moment of decline. If it was not, the
operator’s decision was operator-policy-error, not
substrate-evidence-error. The cut between the two is what makes
the audit clean.
5. One stream, many regimes
The same signed evidence stream produced for one transaction can be re-policed against multiple regimes. An operator running a multi-country wallet receives signals from a device in Lagos and applies one policy regime; the same signal record can be presented to an NDPA 2023 audit, to the operator’s internal audit, to a card-scheme investigator, to a regulator in a transit jurisdiction — without re-signing. The signature commits to the signal, not to the verdict. Re-signing would be required only if the underlying observation changed, which it cannot.
6. What this is not
The separation is not “the substrate is dumb on purpose.” The TRP is sophisticated about what to observe and how to record it accurately under adversarial runtime conditions. It is deliberately silent about what to decide. Execution Evidence Infrastructure (EEI) — the device-identity infrastructure layer for banking and payments — keeps observation sophistication where the substrate has the right vantage point, and decision authority where the operator has the right accountability.
7. Cross-references
- Sibling articles:
host-side-correlation,local-key-custody - Architecture:
/architecture/threat-model,/architecture/runtime-coherence - Comparison:
/eei-vs-rasp,/eei-vs-fingerprinting
8. External references
[1] European Commission. Commission Delegated Regulation (EU) 2018/389 — RTS on Strong Customer Authentication. EUR-Lex CELEX:32018R0389. eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32018R0389. Cited 2026-04-03.
[2] Republic of South Africa. Protection of Personal Information Act (POPIA). popia.co.za. Cited 2026-04-03.
[3] EU. GDPR Article 22 — Automated individual decision-making. gdpr-info.eu/art-22-gdpr. Cited 2026-04-03.
[4] Android Developers. MotionEvent — FLAG_WINDOW_IS_OBSCURED / FLAG_WINDOW_IS_PARTIALLY_OBSCURED. developer.android.com/reference/android/view/MotionEvent. Cited 2026-04-03.
[5] Android Developers. Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES. developer.android.com/reference/android/provider/Settings.Secure. Cited 2026-04-03.