xoonya 3.1.17 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -74
- package/RELEASE_NOTES.md +7 -1
- package/START_HERE.md +38 -134
- package/bin/xoonya-first-run.js +22 -10
- package/bin/xoonya.js +61 -29
- package/lib/native_verify.js +1918 -0
- package/package.json +19 -42
- package/scripts/verify_release_candidate.js +243 -116
- package/scripts/verify_vectors.js +351 -104
- package/verify.js +95 -0
- package/.env.example +0 -10
- package/CARRIED_HANDOFF_DEMO.md +0 -60
- package/COMPATIBILITY_NOTE.md +0 -27
- package/CROSS_RUNTIME_POSTURE.md +0 -77
- package/EXAMPLE_PATHS.md +0 -53
- package/FINAL_CONTRACT.md +0 -445
- package/PARTNER_READY_PATH.md +0 -67
- package/PUBLIC_DEMO_SCRIPT.md +0 -79
- package/SERVICE_CONTRACT.md +0 -207
- package/TERMINOLOGY.md +0 -55
- package/WHY_XYTARA_XOONYA.md +0 -43
- package/XNYA_CONFORMANCE_MARK.md +0 -78
- package/XNYA_REFERENCE_IMPLEMENTATIONS.md +0 -157
- package/XOONYA_DEFAULT_PATH_MODEL.md +0 -63
- package/XOONYA_FOLLOWTHROUGH_TRUTH_MODEL.md +0 -63
- package/XOONYA_NATIVE_ATOM_SPEC.md +0 -184
- package/XOONYA_NATIVE_PROOF_FORMAT.md +0 -570
- package/XOONYA_NATIVE_STANDARD_GOVERNANCE.md +0 -119
- package/XOONYA_PROOF_TRUTH_MODEL.md +0 -58
- package/bin/xoonya-release.js +0 -1367
- package/bin/xoonya-review.js +0 -70
- package/examples/integration_boundary_walkthrough.js +0 -37
- package/examples/package_quickstart.js +0 -1007
- package/examples/partner_proof_walkthrough.js +0 -68
- package/examples/proof_review_walkthrough.js +0 -66
- package/examples/review_carried_handoff.js +0 -72
- package/index.js +0 -31
- package/integrations/PROOF_INTEGRATION_PROCESS.md +0 -45
- package/integrations/examples/example-third-party-verifier-registration.record.json +0 -22
- package/integrations/registration-record.schema.json +0 -99
- package/integrations/registry-snapshot.schema.json +0 -36
- package/integrations/registry.js +0 -636
- package/integrations/views.js +0 -36
- package/lib/adapter_certification_contract.js +0 -90
- package/lib/announcement_pack.js +0 -61
- package/lib/artifact_distribution_lane_contract.js +0 -54
- package/lib/asyncapi_contract.js +0 -135
- package/lib/auth_interop_contract.js +0 -69
- package/lib/authority_binding_lifecycle_contract.js +0 -182
- package/lib/bridge_intelligence.js +0 -102
- package/lib/cloudevents_contract.js +0 -79
- package/lib/crypto_agility_matrix.js +0 -131
- package/lib/default_path_contract.js +0 -380
- package/lib/ecosystem_entry.js +0 -64
- package/lib/erc8004_proof_lane_contract.js +0 -64
- package/lib/event_system_lane_contract.js +0 -76
- package/lib/external_proof_import_lane_contract.js +0 -87
- package/lib/feature_control_lane_contract.js +0 -54
- package/lib/followthrough_truth_contract.js +0 -214
- package/lib/framework_lane_contract.js +0 -76
- package/lib/governance_disputes_summary.js +0 -36
- package/lib/governance_intelligence.js +0 -108
- package/lib/identity_interop_contract.js +0 -83
- package/lib/integration_matrix_contract.js +0 -81
- package/lib/launch_narrative.js +0 -53
- package/lib/machine_identity_registry_contract.js +0 -199
- package/lib/major_rails_proof_lane_contract.js +0 -87
- package/lib/offline_verifiability_recovery_contract.js +0 -155
- package/lib/openapi_contract.js +0 -227
- package/lib/operational_receipt_contract.js +0 -165
- package/lib/outreach_proof.js +0 -71
- package/lib/phase_10_closeout_pack.js +0 -45
- package/lib/phase_10_completion_pack.js +0 -76
- package/lib/phase_10_decision_record_pack.js +0 -54
- package/lib/phase_10_decision_resolution_pack.js +0 -53
- package/lib/phase_10_demand_signal_adapters_proof_pack.js +0 -74
- package/lib/phase_10_ecosystem_backlog_triage_proof_pack.js +0 -74
- package/lib/phase_10_freeze_baseline_pack.js +0 -67
- package/lib/phase_10_freeze_review_pack.js +0 -64
- package/lib/phase_10_gate_pack.js +0 -57
- package/lib/phase_10_long_tail_continuity_pack.js +0 -80
- package/lib/phase_10_long_tail_ecosystem_pack.js +0 -68
- package/lib/phase_10_niche_extension_registry_proof_pack.js +0 -74
- package/lib/phase_1_claude_mcp_pack.js +0 -60
- package/lib/phase_1_claude_mcp_proof_pack.js +0 -57
- package/lib/phase_1_ecosystem_pack.js +0 -51
- package/lib/phase_1_openai_codex_pack.js +0 -60
- package/lib/phase_1_openai_codex_proof_pack.js +0 -57
- package/lib/phase_2_base_proof_pack.js +0 -71
- package/lib/phase_2_base_usdc_proof_pack.js +0 -72
- package/lib/phase_2_closeout_pack.js +0 -65
- package/lib/phase_2_completion_pack.js +0 -113
- package/lib/phase_2_decision_record_pack.js +0 -66
- package/lib/phase_2_decision_resolution_pack.js +0 -69
- package/lib/phase_2_eth_proof_pack.js +0 -70
- package/lib/phase_2_evm_base_proof_pack.js +0 -73
- package/lib/phase_2_evm_proof_pack.js +0 -71
- package/lib/phase_2_flip_preview_pack.js +0 -60
- package/lib/phase_2_freeze_review_pack.js +0 -99
- package/lib/phase_2_gate_pack.js +0 -77
- package/lib/phase_2_payment_rails_pack.js +0 -71
- package/lib/phase_2_usdc_proof_pack.js +0 -71
- package/lib/phase_3_brc_proof_pack.js +0 -81
- package/lib/phase_3_bsv_teranode_proof_pack.js +0 -81
- package/lib/phase_3_closeout_pack.js +0 -62
- package/lib/phase_3_completion_pack.js +0 -92
- package/lib/phase_3_decision_record_pack.js +0 -64
- package/lib/phase_3_decision_resolution_pack.js +0 -69
- package/lib/phase_3_freeze_baseline_pack.js +0 -67
- package/lib/phase_3_freeze_review_pack.js +0 -80
- package/lib/phase_3_gate_pack.js +0 -76
- package/lib/phase_3_metanet_proof_pack.js +0 -81
- package/lib/phase_3_native_bsv_pack.js +0 -89
- package/lib/phase_3_native_continuity_pack.js +0 -82
- package/lib/phase_4_attestation_proof_pack.js +0 -75
- package/lib/phase_4_closeout_pack.js +0 -45
- package/lib/phase_4_completion_pack.js +0 -82
- package/lib/phase_4_decision_record_pack.js +0 -54
- package/lib/phase_4_decision_resolution_pack.js +0 -45
- package/lib/phase_4_erc8004_proof_pack.js +0 -76
- package/lib/phase_4_freeze_baseline_pack.js +0 -67
- package/lib/phase_4_freeze_review_pack.js +0 -68
- package/lib/phase_4_gate_pack.js +0 -58
- package/lib/phase_4_identity_registry_proof_pack.js +0 -75
- package/lib/phase_4_identity_trust_pack.js +0 -73
- package/lib/phase_4_trust_continuity_pack.js +0 -86
- package/lib/phase_5_antelope_proof_pack.js +0 -76
- package/lib/phase_5_closeout_pack.js +0 -44
- package/lib/phase_5_completion_pack.js +0 -82
- package/lib/phase_5_decision_record_pack.js +0 -54
- package/lib/phase_5_decision_resolution_pack.js +0 -45
- package/lib/phase_5_freeze_baseline_pack.js +0 -67
- package/lib/phase_5_freeze_review_pack.js +0 -68
- package/lib/phase_5_gate_pack.js +0 -58
- package/lib/phase_5_major_rails_continuity_pack.js +0 -86
- package/lib/phase_5_major_rails_pack.js +0 -74
- package/lib/phase_5_proton_xpr_proof_pack.js +0 -76
- package/lib/phase_5_solana_proof_pack.js +0 -76
- package/lib/phase_6_autogen_proof_pack.js +0 -74
- package/lib/phase_6_closeout_pack.js +0 -46
- package/lib/phase_6_completion_pack.js +0 -77
- package/lib/phase_6_decision_record_pack.js +0 -54
- package/lib/phase_6_decision_resolution_pack.js +0 -53
- package/lib/phase_6_framework_continuity_pack.js +0 -81
- package/lib/phase_6_framework_runtime_pack.js +0 -68
- package/lib/phase_6_freeze_baseline_pack.js +0 -68
- package/lib/phase_6_freeze_review_pack.js +0 -65
- package/lib/phase_6_gate_pack.js +0 -59
- package/lib/phase_6_langchain_proof_pack.js +0 -74
- package/lib/phase_6_langgraph_proof_pack.js +0 -74
- package/lib/phase_6_semantic_kernel_proof_pack.js +0 -74
- package/lib/phase_7_closeout_pack.js +0 -45
- package/lib/phase_7_completion_pack.js +0 -85
- package/lib/phase_7_decision_record_pack.js +0 -53
- package/lib/phase_7_decision_resolution_pack.js +0 -53
- package/lib/phase_7_event_system_continuity_pack.js +0 -89
- package/lib/phase_7_event_system_pack.js +0 -76
- package/lib/phase_7_freeze_baseline_pack.js +0 -74
- package/lib/phase_7_freeze_review_pack.js +0 -65
- package/lib/phase_7_gate_pack.js +0 -58
- package/lib/phase_7_kafka_proof_pack.js +0 -76
- package/lib/phase_7_mqtt_proof_pack.js +0 -76
- package/lib/phase_7_nats_proof_pack.js +0 -76
- package/lib/phase_7_webhook_event_bus_proof_pack.js +0 -76
- package/lib/phase_8_closeout_pack.js +0 -46
- package/lib/phase_8_completion_pack.js +0 -82
- package/lib/phase_8_decision_record_pack.js +0 -54
- package/lib/phase_8_decision_resolution_pack.js +0 -53
- package/lib/phase_8_external_receipt_import_proof_pack.js +0 -74
- package/lib/phase_8_external_result_import_proof_pack.js +0 -74
- package/lib/phase_8_freeze_baseline_pack.js +0 -71
- package/lib/phase_8_freeze_review_pack.js +0 -64
- package/lib/phase_8_gate_pack.js +0 -58
- package/lib/phase_8_proof_bridge_continuity_pack.js +0 -86
- package/lib/phase_8_proof_bridges_pack.js +0 -72
- package/lib/phase_8_proof_bundle_normalization_proof_pack.js +0 -74
- package/lib/phase_9_closeout_pack.js +0 -46
- package/lib/phase_9_completion_pack.js +0 -82
- package/lib/phase_9_custody_refs_proof_pack.js +0 -74
- package/lib/phase_9_decision_record_pack.js +0 -54
- package/lib/phase_9_decision_resolution_pack.js +0 -53
- package/lib/phase_9_freeze_baseline_pack.js +0 -71
- package/lib/phase_9_freeze_review_pack.js +0 -64
- package/lib/phase_9_gate_pack.js +0 -58
- package/lib/phase_9_operator_accounting_bridges_proof_pack.js +0 -74
- package/lib/phase_9_treasury_connectivity_pack.js +0 -72
- package/lib/phase_9_treasury_continuity_pack.js +0 -86
- package/lib/phase_9_treasury_destinations_proof_pack.js +0 -74
- package/lib/phase_program_pack.js +0 -47
- package/lib/proof_bridge_lane_contract.js +0 -82
- package/lib/proof_truth_contract.js +0 -224
- package/lib/provenance_lane_contract.js +0 -54
- package/lib/provider_lane_contract.js +0 -67
- package/lib/public_surface_policy_contract.js +0 -111
- package/lib/publish_plan.js +0 -51
- package/lib/release_candidate.js +0 -50
- package/lib/release_center.js +0 -1037
- package/lib/release_history.js +0 -206
- package/lib/release_manifest.js +0 -114
- package/lib/release_pack.js +0 -391
- package/lib/result_package_trust_lane_contract.js +0 -74
- package/lib/review_intelligence.js +0 -100
- package/lib/role_freeze.js +0 -436
- package/lib/shared_signals_lane_contract.js +0 -54
- package/lib/signed_audit_provenance_contract.js +0 -93
- package/lib/telemetry_lane_contract.js +0 -54
- package/lib/treasury_proof_lane_contract.js +0 -83
- package/lib/trust_intelligence.js +0 -106
- package/lib/trust_portability_boundary_contract.js +0 -66
- package/lib/trust_portability_pack.js +0 -224
- package/lib/verification_service_pack.js +0 -149
- package/proof_sdk.js +0 -6692
- package/reference/python/README.md +0 -35
- package/reference/python/requirements-optional.txt +0 -1
- package/reference/python/verify_vectors.py +0 -223
- package/reference/python/xnya_reference.py +0 -810
- package/reference/rust/Cargo.toml +0 -11
- package/reference/rust/README.md +0 -28
- package/reference/rust/src/lib.rs +0 -87
- package/scripts/registry_cli.js +0 -157
- package/scripts/verify_all.js +0 -603
- package/scripts/verify_control_plane_contracts.js +0 -34
- package/scripts/verify_control_plane_routes.js +0 -70
- package/scripts/verify_examples.js +0 -19
- package/scripts/verify_external_proof_import_gate.js +0 -84
- package/scripts/verify_external_proof_signature.js +0 -142
- package/scripts/verify_forgery_resistance.js +0 -281
- package/scripts/verify_integrations.js +0 -170
- package/scripts/verify_native_hybrid_design_gate.js +0 -114
- package/scripts/verify_paid_execute.js +0 -133
- package/scripts/verify_paywall_flag.js +0 -86
- package/scripts/verify_reference_promotion_gate.js +0 -74
- package/scripts/verify_reference_python.js +0 -49
- package/scripts/verify_reference_python_crypto.js +0 -87
- package/scripts/verify_reference_rust_scaffold.js +0 -50
- package/scripts/verify_service.js +0 -3038
- package/scripts/verify_tooling.js +0 -1251
- package/scripts/verify_trust_portability.js +0 -56
- package/scripts/verify_verification_services.js +0 -56
- package/server.js +0 -4430
|
@@ -1,570 +0,0 @@
|
|
|
1
|
-
# xoonya Native Proof Format
|
|
2
|
-
|
|
3
|
-
Status: design contract active
|
|
4
|
-
|
|
5
|
-
Version: `xoonya-native-proof/v1`
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
xoonya Native is the optional native proof format for xoonya proof, result, attestation, and handoff artifacts.
|
|
10
|
-
|
|
11
|
-
It is not a generic login token, bearer token, wallet credential, or replacement for JWT, OAuth, OIDC, DID/VC, or SD-JWT VC. Those remain useful interoperability lanes.
|
|
12
|
-
|
|
13
|
-
xoonya Native exists for a different job:
|
|
14
|
-
|
|
15
|
-
- preserve machine evidence without runtime lock-in
|
|
16
|
-
- preserve deterministic replay truth
|
|
17
|
-
- preserve proof integrity across runtimes
|
|
18
|
-
- carry result-package and handoff integrity without forcing one identity, chain, wallet, or credential ecosystem
|
|
19
|
-
- give agents a native machine-proof format that is smaller, stricter, and easier to replay than human/web credential containers
|
|
20
|
-
|
|
21
|
-
## Native Design Carry-In
|
|
22
|
-
|
|
23
|
-
xoonya Native keeps the useful design substance and expresses it directly as xoonya. The durable invention is the split between:
|
|
24
|
-
|
|
25
|
-
- a fixed-size hot-path commitment atom
|
|
26
|
-
- a variable-size cold-path proof envelope
|
|
27
|
-
- deterministic validation and error behavior
|
|
28
|
-
- semantic-free core bytes
|
|
29
|
-
- optional profiles above the core for economics, registry lifecycle, anchors, and proof material
|
|
30
|
-
|
|
31
|
-
That is substantial. It does not compete with JWT, DID, VC, SD-JWT VC, WebAuthn, COSE, JWS, or future PQC systems for their own jobs. It competes in a narrower and more machine-native category: deterministic, replayable machine evidence that can be verified without accepting JSON ambiguity, runtime-specific state, or a single identity ecosystem.
|
|
32
|
-
|
|
33
|
-
The strongest long-term posture is:
|
|
34
|
-
|
|
35
|
-
- keep the native core as a commitment primitive, not a signature or credential container
|
|
36
|
-
- put signatures, credentials, attestations, anchors, settlement refs, and ZK artifacts in envelopes or profiles
|
|
37
|
-
- keep external formats as interop lanes
|
|
38
|
-
- let xoonya Native be the format agents choose when they want byte-stable proof rather than broad web credential compatibility
|
|
39
|
-
|
|
40
|
-
## Doctrine
|
|
41
|
-
|
|
42
|
-
- xoonya remains method-agnostic.
|
|
43
|
-
- Native proof is first-class but optional.
|
|
44
|
-
- External proof and credential formats stay supported as registry methods or integration lanes.
|
|
45
|
-
- The native format optimizes for deterministic machine proof, not human web sessions.
|
|
46
|
-
- No single algorithm, chain, wallet, identity system, or credential ecosystem is mandatory.
|
|
47
|
-
- Signature, encryption, ZK, settlement, and governance semantics do not enter the hot-path atom.
|
|
48
|
-
- Version lines are frozen when published; no silent soft forks.
|
|
49
|
-
|
|
50
|
-
## Layered Model
|
|
51
|
-
|
|
52
|
-
### L0: Native Atom
|
|
53
|
-
|
|
54
|
-
The atom is the hot-path commitment record. It is fixed length, byte-oriented, and semantic-free.
|
|
55
|
-
|
|
56
|
-
It exists to answer only:
|
|
57
|
-
|
|
58
|
-
> Which typed machine identity committed to which payload hash under which frozen version line?
|
|
59
|
-
|
|
60
|
-
It does not contain signatures, timestamps, prices, settlement references, custody references, policy decisions, or runtime metadata.
|
|
61
|
-
|
|
62
|
-
### L1: Canonical Payload Or Intent
|
|
63
|
-
|
|
64
|
-
The payload or intent bytes carry deterministic machine meaning.
|
|
65
|
-
|
|
66
|
-
For current xoonya this is represented by `canonical_event`. For a future formal atom line, this should become a fixed binary or tightly canonicalized payload profile where every field order, integer width, unknown-field rule, and replay rule is specified.
|
|
67
|
-
|
|
68
|
-
JSON may remain a public SDK and service convenience, but the native standard should not depend on loose JSON interpretation for the hot path.
|
|
69
|
-
|
|
70
|
-
### L2: Proof Envelope
|
|
71
|
-
|
|
72
|
-
The proof envelope carries signatures, public-key refs, DID/VC/JWT/SD-JWT VC references, threshold witnesses, WebAuthn attestations, ZK proof refs, anchor refs, and finality refs.
|
|
73
|
-
|
|
74
|
-
The envelope is allowed to be variable length because it is not the high-frequency atom.
|
|
75
|
-
|
|
76
|
-
### L3: Profiles
|
|
77
|
-
|
|
78
|
-
Profiles define evidence semantics without polluting the atom. Examples:
|
|
79
|
-
|
|
80
|
-
- registry lifecycle profile
|
|
81
|
-
- economic receipt profile
|
|
82
|
-
- batch inclusion profile
|
|
83
|
-
- anchor/finality profile
|
|
84
|
-
- dispute/review profile
|
|
85
|
-
|
|
86
|
-
Profiles are versioned independently.
|
|
87
|
-
|
|
88
|
-
### L4: Runtime And Policy Consumers
|
|
89
|
-
|
|
90
|
-
xytara, agent runtimes, settlement systems, operator dashboards, and partner verifiers consume xoonya evidence. They must not redefine the atom byte layout.
|
|
91
|
-
|
|
92
|
-
## Native Atom Version Ladder
|
|
93
|
-
|
|
94
|
-
### `xoonya-native-atom/v1`
|
|
95
|
-
|
|
96
|
-
Canonical xoonya Native byte identity: `XNYA`.
|
|
97
|
-
|
|
98
|
-
Purpose: classical minimal identity and payload commitment.
|
|
99
|
-
|
|
100
|
-
Fixed size: `58` bytes.
|
|
101
|
-
|
|
102
|
-
Shape:
|
|
103
|
-
|
|
104
|
-
```text
|
|
105
|
-
MAGIC(4) | VERSION(1) | TYPE(1) | AGENT_ID(20) | PAYLOAD_HASH(32)
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Rules:
|
|
109
|
-
|
|
110
|
-
- `MAGIC` is ASCII `XNYA`.
|
|
111
|
-
- `VERSION` is `0x01`.
|
|
112
|
-
- `TYPE` is a small deterministic record type.
|
|
113
|
-
- `AGENT_ID` is a 20-byte identity digest for classical compact anchoring.
|
|
114
|
-
- `PAYLOAD_HASH` is a 32-byte payload commitment, or all zero bytes only when payload is absent.
|
|
115
|
-
- Present payloads whose computed hash equals the all-zero sentinel must be rejected.
|
|
116
|
-
|
|
117
|
-
Use when:
|
|
118
|
-
|
|
119
|
-
- extreme compactness matters
|
|
120
|
-
- the identity material is classical-era crypto
|
|
121
|
-
- the receipt is an anchor or dispute root, not the full proof
|
|
122
|
-
|
|
123
|
-
### `xoonya-native-atom/v2`
|
|
124
|
-
|
|
125
|
-
Canonical xoonya Native byte identity: `XNYA`.
|
|
126
|
-
|
|
127
|
-
Purpose: PQ-horizon identity anchoring while preserving the same fixed commitment philosophy.
|
|
128
|
-
|
|
129
|
-
Fixed size: `70` bytes.
|
|
130
|
-
|
|
131
|
-
Shape:
|
|
132
|
-
|
|
133
|
-
```text
|
|
134
|
-
MAGIC(4) | VERSION(1) | TYPE(1) | AGENT_ID(32) | PAYLOAD_HASH(32)
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Rules:
|
|
138
|
-
|
|
139
|
-
- `MAGIC` remains ASCII `XNYA`.
|
|
140
|
-
- `VERSION` is `0x02`.
|
|
141
|
-
- `AGENT_ID` is `SHA256("xoonya:agent:v2:" || type_prefix || raw_identity_bytes)`.
|
|
142
|
-
- `PAYLOAD_HASH` is `SHA256("xoonya:payload:v2:" || payload_bytes)`, or all zero bytes only when payload is absent.
|
|
143
|
-
- Present payloads whose computed hash equals the all-zero sentinel must be rejected.
|
|
144
|
-
- v1 and v2 may coexist forever; no auto-migration is implied.
|
|
145
|
-
|
|
146
|
-
Use when:
|
|
147
|
-
|
|
148
|
-
- long-horizon identity anchoring matters
|
|
149
|
-
- PQC public keys, hardware-backed credentials, or large identity material may be anchored
|
|
150
|
-
- implementers need a stronger identity digest without adding signature material to the atom
|
|
151
|
-
|
|
152
|
-
### `xoonya-native-atom/v3-contingency`
|
|
153
|
-
|
|
154
|
-
This is not an implementation target.
|
|
155
|
-
|
|
156
|
-
It is a contingency line only if SHA-256 or the prevailing digest assumption changes materially. A future v3 should stay fixed-length and deterministic, most likely by moving to a different digest family with explicit domain separation. It should not introduce runtime negotiation inside the core.
|
|
157
|
-
|
|
158
|
-
## Current xoonya Object Model
|
|
159
|
-
|
|
160
|
-
### `canonical_event`
|
|
161
|
-
|
|
162
|
-
Current version: `canonical-event-bundle/v1`
|
|
163
|
-
|
|
164
|
-
This is the deterministic event input. It is the stable machine-event shape that can be replayed by other runtimes.
|
|
165
|
-
|
|
166
|
-
### `native_receipt`
|
|
167
|
-
|
|
168
|
-
Current version: `receipt/v1`
|
|
169
|
-
|
|
170
|
-
This binds a canonical event commitment to an agent identity, domain, sequence, and verification method.
|
|
171
|
-
|
|
172
|
-
### `proof_bundle`
|
|
173
|
-
|
|
174
|
-
Current version: `proof-bundle/v1`
|
|
175
|
-
|
|
176
|
-
This carries the canonical event, receipt, optional anchors, optional attestations, optional evidence references, optional batch references, and metadata.
|
|
177
|
-
|
|
178
|
-
### `native_envelope`
|
|
179
|
-
|
|
180
|
-
Planned version: `xoonya-native-proof/v1`
|
|
181
|
-
|
|
182
|
-
This is the formal wrapper for native proof material. It should carry:
|
|
183
|
-
|
|
184
|
-
- method
|
|
185
|
-
- signature suite or digest suite
|
|
186
|
-
- identity reference
|
|
187
|
-
- public key reference when applicable
|
|
188
|
-
- proof material
|
|
189
|
-
- optional anchors
|
|
190
|
-
- optional external attestation refs
|
|
191
|
-
- optional settlement or finality refs
|
|
192
|
-
|
|
193
|
-
## Current Native Method
|
|
194
|
-
|
|
195
|
-
### `xoonya-native-sha256-v1`
|
|
196
|
-
|
|
197
|
-
Implemented.
|
|
198
|
-
|
|
199
|
-
This verifies a deterministic native digest over canonical receipt signing material and event commitment. It is useful for replayable local proof integrity and conformance.
|
|
200
|
-
|
|
201
|
-
It is not the final signed native standard by itself.
|
|
202
|
-
|
|
203
|
-
### `xoonya-native-signed-v1`
|
|
204
|
-
|
|
205
|
-
Implemented.
|
|
206
|
-
|
|
207
|
-
This adds a native signature envelope whose `public_key_ref` is self-bound to the public key material carried inside the proof (`public_key_ref == sha256(SPKI DER)` of that same key), and whose signature covers the receipt signing material, event commitment, `identity_ref`, and `public_key_ref`. The format declares its signature suite instead of hardcoding one global algorithm.
|
|
208
|
-
|
|
209
|
-
The verifier checks key self-binding and the signature, not identity ownership. `identity_ref` and `agent_identity` are free strings: any key can sign a proof that claims any identity, and that proof self-verifies. Identity binding therefore requires a trust root supplied by the verifier (`trusted_public_key_refs` or `expected_public_key_ref`, see "Verification Classes, Strict Mode, And Trust Roots" below). Without a trust root the result is `cryptographically_verified: true` with `trust_root_applied: false`, which means "this key signed this receipt", not "this identity signed this receipt".
|
|
210
|
-
|
|
211
|
-
Required signed-native fields:
|
|
212
|
-
|
|
213
|
-
- `method`
|
|
214
|
-
- `signature_suite`
|
|
215
|
-
- `identity_ref`
|
|
216
|
-
- `public_key_ref`
|
|
217
|
-
- `proof_material`
|
|
218
|
-
|
|
219
|
-
Implemented suites:
|
|
220
|
-
|
|
221
|
-
- `ed25519`
|
|
222
|
-
- `secp256k1`
|
|
223
|
-
- `p256`
|
|
224
|
-
|
|
225
|
-
Implemented PQ suites (usable only inside `xoonya-native-hybrid-v1`):
|
|
226
|
-
|
|
227
|
-
- `ml-dsa-65` (FIPS 204)
|
|
228
|
-
- `slh-dsa-sha2-128f` (FIPS 205)
|
|
229
|
-
|
|
230
|
-
Declared suite registry entries that never verify:
|
|
231
|
-
|
|
232
|
-
- `webauthn-cose` (`maturity: planned`)
|
|
233
|
-
- `dilithium` (`status: deprecated_placeholder`, `deprecated_alias_of: ml-dsa-65`)
|
|
234
|
-
- `falcon` (`status: deprecated_placeholder`, no registered successor yet)
|
|
235
|
-
- `sphincs-plus` (`status: deprecated_placeholder`, `deprecated_alias_of: slh-dsa-sha2-128f`)
|
|
236
|
-
|
|
237
|
-
The three `deprecated_placeholder` entries are legacy pre-standard names kept only so existing registry consumers keep resolving them; new material must use the ML-DSA/SLH-DSA identifiers. The atom commits to proof material; it does not validate these suites directly. Only suites with implemented validators should be described as verified.
|
|
238
|
-
|
|
239
|
-
### `xoonya-native-anchored-v1`
|
|
240
|
-
|
|
241
|
-
Implemented.
|
|
242
|
-
|
|
243
|
-
This adds deterministic anchor binding for chain transaction refs, batch inclusion refs, finality refs, content hashes, and external attestation refs without changing the atom or base proof object model.
|
|
244
|
-
|
|
245
|
-
Required anchor fields:
|
|
246
|
-
|
|
247
|
-
- `anchor_id`
|
|
248
|
-
- `anchor_kind`
|
|
249
|
-
- `anchor_ref`
|
|
250
|
-
- `anchor_hash_sha256`
|
|
251
|
-
|
|
252
|
-
Optional anchor fields:
|
|
253
|
-
|
|
254
|
-
- `network`
|
|
255
|
-
- `finality_state`
|
|
256
|
-
- `observed_at_iso`
|
|
257
|
-
- `provider_ref`
|
|
258
|
-
- `inclusion_proof_ref`
|
|
259
|
-
|
|
260
|
-
Native anchored proof material:
|
|
261
|
-
|
|
262
|
-
- `method = xoonya-native-anchored-v1`
|
|
263
|
-
- `base_method = xoonya-native-sha256-v1`
|
|
264
|
-
- `anchor_refs`
|
|
265
|
-
- `proof_material.anchor_root_sha256`
|
|
266
|
-
- `proof_material.binding_material_sha256`
|
|
267
|
-
|
|
268
|
-
Important boundary:
|
|
269
|
-
|
|
270
|
-
- xoonya verifies that the receipt and event commitment bind to the declared anchors.
|
|
271
|
-
- xoonya does not independently assert that an external chain, settlement provider, or attestation issuer is truthful.
|
|
272
|
-
- External finality or provider verification remains a higher layer.
|
|
273
|
-
|
|
274
|
-
## Native Payload Profile
|
|
275
|
-
|
|
276
|
-
Implemented profile: `xoonya-native-payload-profile/v1`
|
|
277
|
-
|
|
278
|
-
The payload profile formalizes the old "no loose JSON ambiguity" requirement without changing the `XNYA` atom. It is an optional strict binary payload profile for machine evidence that needs stable bytes before the atom commits to the payload hash.
|
|
279
|
-
|
|
280
|
-
Canonical binary shape:
|
|
281
|
-
|
|
282
|
-
```text
|
|
283
|
-
MAGIC(4="XNYP") | VERSION(1) | SCHEMA_HASH(32) | FIELD_COUNT(1) | FIELD*
|
|
284
|
-
FIELD = FIELD_ID(uint16be) | FIELD_TYPE_ID(uint8) | LENGTH(uint16be) | VALUE(bytes)
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
Implemented field types:
|
|
288
|
-
|
|
289
|
-
- `bytes32`
|
|
290
|
-
- `bytes20`
|
|
291
|
-
- `uint64`
|
|
292
|
-
- `utf8`
|
|
293
|
-
- `bool`
|
|
294
|
-
|
|
295
|
-
Canonical rules:
|
|
296
|
-
|
|
297
|
-
- binary profile, not JSON
|
|
298
|
-
- schema reference is committed as a SHA-256 schema hash
|
|
299
|
-
- fields are sorted by `uint16` field id and then field type id
|
|
300
|
-
- duplicate field id/type pairs are rejected
|
|
301
|
-
- unknown field ids can be rejected by verifier policy
|
|
302
|
-
- integers are big-endian fixed width
|
|
303
|
-
- floats, null, undefined, functions, and symbolic values are not supported
|
|
304
|
-
- payload hash is SHA-256 over `xoonya:payload-profile:v1:` plus canonical profile bytes
|
|
305
|
-
|
|
306
|
-
This gives xoonya a durable standard-grade payload path while keeping richer JSON, CBOR, DID/VC, JWT, or partner evidence envelopes available as external or higher-layer profiles. If deterministic CBOR is later needed, it should be a separate profile with its own vectors and reject rules, not a silent change to this binary profile.
|
|
307
|
-
|
|
308
|
-
Reference vectors ship at `vectors/native-payload-profile-vectors.json`.
|
|
309
|
-
|
|
310
|
-
## Native Line-Rate Frame
|
|
311
|
-
|
|
312
|
-
Implemented profile: `xoonya-native-line-rate-frame/v1`
|
|
313
|
-
|
|
314
|
-
The line-rate frame is an optional transport fast-reject wrapper around an existing `XNYA` atom. It exists for future machine/network paths that want cheap early rejection before heavier policy checks.
|
|
315
|
-
|
|
316
|
-
Frame shape:
|
|
317
|
-
|
|
318
|
-
```text
|
|
319
|
-
XNYA_ATOM(58 or 70 bytes) | CHECKSUM(2 bytes)
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
The checksum is the first two bytes of SHA-256 over `xoonya:line-rate-frame:v1:` plus the atom bytes. Supported frame sizes are 60 bytes for atom v1 and 72 bytes for atom v2.
|
|
323
|
-
|
|
324
|
-
Important boundary:
|
|
325
|
-
|
|
326
|
-
- the frame does not change the atom layout
|
|
327
|
-
- the frame does not add signatures or encryption
|
|
328
|
-
- the frame does not prove external finality or provider truth
|
|
329
|
-
- the frame is a transport fast-reject profile only
|
|
330
|
-
|
|
331
|
-
## Planned Native Methods
|
|
332
|
-
|
|
333
|
-
### `xoonya-native-hybrid-v1`
|
|
334
|
-
|
|
335
|
-
Implemented for registered runtime-supported suite pairs.
|
|
336
|
-
|
|
337
|
-
This method provides stronger-crypto and PQ-sensitive proof lanes without redefining the rest of the native proof model. It is not the global default; it is the promoted higher-assurance lane when a runtime can actually verify the declared classical and PQ signatures together.
|
|
338
|
-
|
|
339
|
-
The current rule is strict:
|
|
340
|
-
|
|
341
|
-
- only registered runtime-supported suite pairs may be claimed as verified
|
|
342
|
-
- current first-class promoted verification is `ed25519+ml-dsa-65`
|
|
343
|
-
- other candidate hybrid combinations remain non-claimable until runtime support, vectors, and deterministic error behavior exist
|
|
344
|
-
|
|
345
|
-
Required hybrid fields:
|
|
346
|
-
|
|
347
|
-
- `method`
|
|
348
|
-
- `hybrid_suite`
|
|
349
|
-
- `identity_ref`
|
|
350
|
-
- `classical_public_key_ref`
|
|
351
|
-
- `pq_public_key_ref`
|
|
352
|
-
- `classical_public_key_material`
|
|
353
|
-
- `pq_public_key_material`
|
|
354
|
-
- `proof_material.classical_signature`
|
|
355
|
-
- `proof_material.pq_signature`
|
|
356
|
-
- `proof_material.signing_material_sha256`
|
|
357
|
-
|
|
358
|
-
Current adversarial expectations include:
|
|
359
|
-
|
|
360
|
-
- tampered PQ signature rejects as `native_hybrid_pq_signature_invalid`
|
|
361
|
-
- key-binding mismatches reject as `native_hybrid_public_key_ref_mismatch`
|
|
362
|
-
- downgrade attempts through external assertion methods reject as `signature_method_mismatch`
|
|
363
|
-
- a valid dual signature from keys the verifier has not pinned for that `identity_ref` rejects as `native_hybrid_public_key_not_trusted` when a trust root is supplied
|
|
364
|
-
|
|
365
|
-
This keeps the boundary honest: xoonya now verifies the hybrid lane where the runtime and vectors are real, and refuses to overclaim beyond that runtime-supported registry. The runtime-support probe for each suite pair runs once per process and is cached afterwards.
|
|
366
|
-
|
|
367
|
-
## Verification Classes, Strict Mode, And Trust Roots
|
|
368
|
-
|
|
369
|
-
Every result from `verifyProofBundle(bundle, options)` and `POST /v1/proof-bundles/verify` carries four extra fields:
|
|
370
|
-
|
|
371
|
-
- `verification_class`: one of `cryptographic`, `digest`, `anchored_binding`, `structural`
|
|
372
|
-
- `cryptographically_verified`: `true` only when a native signature was actually checked and the result is valid
|
|
373
|
-
- `strict`: whether strict mode was active for that call
|
|
374
|
-
- `trust_root_applied`: whether a verifier-supplied trust root constrained the accepted keys
|
|
375
|
-
|
|
376
|
-
Classes by method:
|
|
377
|
-
|
|
378
|
-
| Class | Methods | What was checked |
|
|
379
|
-
| --- | --- | --- |
|
|
380
|
-
| `cryptographic` | `xoonya-native-signed-v1`, `xoonya-native-hybrid-v1` | key self-binding plus a real classical and/or PQ signature over the signing material |
|
|
381
|
-
| `digest` | `xoonya-native-sha256-v1`, `legacy-opreturn-v1` | an unkeyed deterministic digest; anyone can reproduce it, so it proves integrity and replayability, not authorship |
|
|
382
|
-
| `anchored_binding` | `xoonya-native-anchored-v1` | an unkeyed digest binding to declared anchor refs; anchor truth and authorship stay external |
|
|
383
|
-
| `structural` | `detached-assertion-v1`, `jwt-assertion-v1`, `did-vc-v1`, `sd-jwt-vc-v1`, `signed-envelope-v1`, `partner-proof-envelope-v1` | envelope shape, method registration, and canonical receipt binding only; the external signature must be verified by the external stack |
|
|
384
|
-
|
|
385
|
-
`valid` keeps its historical meaning by default: a well-formed digest, anchored, or structural bundle is still `valid: true`, it just also says `cryptographically_verified: false`.
|
|
386
|
-
|
|
387
|
-
Strict mode (`options.strict === true`, or `XOONYA_STRICT_VERIFY=1` in the environment) only accepts the `cryptographic` class. Deterministic rejection codes:
|
|
388
|
-
|
|
389
|
-
- `digest_only_not_cryptographically_verified` for `digest` and `anchored_binding` results
|
|
390
|
-
- `external_verification_required` for `structural` results
|
|
391
|
-
|
|
392
|
-
Trust roots pin which keys may speak for an identity. Options:
|
|
393
|
-
|
|
394
|
-
- `expected_public_key_ref`: the proof's `public_key_ref` (native signed) or classical/hybrid ref (native hybrid) must equal this value
|
|
395
|
-
- `expected_classical_public_key_ref`, `expected_pq_public_key_ref`, `expected_hybrid_public_key_ref`: lane-specific pins for hybrid proofs
|
|
396
|
-
- `trusted_public_key_refs`: object keyed by `identity_ref` (falling back to `agent_identity`). Values are a ref string, an array of ref strings, or `{ classical, pq, hybrid }` where each lane is a string or array. A string or array pins the classical lane; use the object form to pin the PQ lane of a hybrid proof.
|
|
397
|
-
|
|
398
|
-
When any trust-root option is present, `trust_root_applied` is `true` and native verification fails closed: an identity missing from the map, a lane that cannot be satisfied by the proof (for example a PQ pin against a classical-only proof), or any ref outside the pinned set rejects with `native_public_key_not_trusted` (native signed) or `native_hybrid_public_key_not_trusted` (native hybrid). These checks run after the signature check, so a trust-root rejection always means "valid signature, untrusted key". Digest, anchored, and structural methods carry no key and are unaffected by trust roots; use strict mode to reject them.
|
|
399
|
-
|
|
400
|
-
The `scripts/verify_forgery_resistance.js` verifier (`npm run verify:forgery-resistance`) pins this behavior, including the documented key-substitution limitation without a trust root.
|
|
401
|
-
|
|
402
|
-
## Crypto And Identity Support Boundary
|
|
403
|
-
|
|
404
|
-
xoonya Native supports cryptographic ecosystems by committing to their canonical identity or proof material. It does not become those ecosystems.
|
|
405
|
-
|
|
406
|
-
Cleanly supported above the atom:
|
|
407
|
-
|
|
408
|
-
- secp256k1 ECDSA/Schnorr identities and signatures
|
|
409
|
-
- Ed25519/X25519 identities and signatures
|
|
410
|
-
- P-256/WebAuthn/COSE public-key material
|
|
411
|
-
- DID and DIDComm identity references
|
|
412
|
-
- JWT/JWS and signed envelope assertions
|
|
413
|
-
- DID/VC and SD-JWT VC evidence references
|
|
414
|
-
- ML-DSA (FIPS 204), SLH-DSA (FIPS 205), and future PQ signature public-key material; the legacy `dilithium`, `falcon`, and `sphincs-plus` registry names are deprecated placeholders that never verify
|
|
415
|
-
- HPKE, TLS, AES-GCM, or encrypted payload commitments
|
|
416
|
-
- ZK proof, circuit, verifier-key, and public-input commitments
|
|
417
|
-
|
|
418
|
-
Important boundary:
|
|
419
|
-
|
|
420
|
-
- xoonya Native provides commitments and proof binding.
|
|
421
|
-
- It does not provide encryption, forward secrecy, access control, custody, or transport security.
|
|
422
|
-
- Those systems remain external layers.
|
|
423
|
-
|
|
424
|
-
## Interop Boundary
|
|
425
|
-
|
|
426
|
-
External methods remain first-class:
|
|
427
|
-
|
|
428
|
-
- `jwt-assertion-v1`
|
|
429
|
-
- `did-vc-v1`
|
|
430
|
-
- `sd-jwt-vc-v1`
|
|
431
|
-
- `signed-envelope-v1`
|
|
432
|
-
- `partner-proof-envelope-v1`
|
|
433
|
-
|
|
434
|
-
For these methods, xoonya checks canonical receipt shape, registration, and method boundary. Method-specific cryptographic verification stays with the relevant verifier stack unless and until a verifier is added behind that method.
|
|
435
|
-
|
|
436
|
-
## External Proof Import Adapter
|
|
437
|
-
|
|
438
|
-
Implemented version: `xoonya-external-proof-import-adapter-v1`
|
|
439
|
-
|
|
440
|
-
The import adapter is the bridge between external proof envelopes and xoonya proof bundles.
|
|
441
|
-
|
|
442
|
-
It accepts registered external proof methods:
|
|
443
|
-
|
|
444
|
-
- `detached-assertion-v1`
|
|
445
|
-
- `jwt-assertion-v1`
|
|
446
|
-
- `did-vc-v1`
|
|
447
|
-
- `sd-jwt-vc-v1`
|
|
448
|
-
- `signed-envelope-v1`
|
|
449
|
-
- `partner-proof-envelope-v1`
|
|
450
|
-
|
|
451
|
-
It then emits:
|
|
452
|
-
|
|
453
|
-
- a canonical import event
|
|
454
|
-
- a xoonya receipt bound to the selected method
|
|
455
|
-
- a proof bundle
|
|
456
|
-
- bundle verification
|
|
457
|
-
- an import review that states the external-verifier boundary
|
|
458
|
-
|
|
459
|
-
Required import fields:
|
|
460
|
-
|
|
461
|
-
- `method`
|
|
462
|
-
- `external_proof`
|
|
463
|
-
|
|
464
|
-
Optional import fields:
|
|
465
|
-
|
|
466
|
-
- `import_ref`
|
|
467
|
-
- `external_ref`
|
|
468
|
-
- `issuer_ref`
|
|
469
|
-
- `subject_ref`
|
|
470
|
-
- `declared_hash_sha256`
|
|
471
|
-
- `evidence_refs`
|
|
472
|
-
- `profile_refs`
|
|
473
|
-
- `policy_ref`
|
|
474
|
-
- `received_at_iso`
|
|
475
|
-
|
|
476
|
-
The adapter verifies:
|
|
477
|
-
|
|
478
|
-
- the method is registered and importable
|
|
479
|
-
- the external proof material is present
|
|
480
|
-
- the material hash matches `declared_hash_sha256` when supplied
|
|
481
|
-
- the import material is deterministically bound into a canonical xoonya event
|
|
482
|
-
- the emitted receipt and proof bundle verify structurally
|
|
483
|
-
|
|
484
|
-
The adapter does not claim:
|
|
485
|
-
|
|
486
|
-
- JWT/JWS signature truth
|
|
487
|
-
- DID resolution truth
|
|
488
|
-
- VC revocation truth
|
|
489
|
-
- SD-JWT disclosure truth
|
|
490
|
-
- partner policy truth
|
|
491
|
-
- external issuer correctness
|
|
492
|
-
|
|
493
|
-
Those remain the job of the relevant external verifier. xoonya's job is to bind the external proof into replayable proof continuity without pretending to own another ecosystem's trust root.
|
|
494
|
-
|
|
495
|
-
## Competitive Positioning
|
|
496
|
-
|
|
497
|
-
xoonya Native should be positioned as deterministic machine evidence, not as a universal identity credential.
|
|
498
|
-
|
|
499
|
-
Compared with JWT/JWS:
|
|
500
|
-
|
|
501
|
-
- JWT wins for broad web compatibility and signed JSON claims.
|
|
502
|
-
- xoonya Native wins when a machine needs fixed validation rules, replayable proof bundles, and no ambiguity about canonical evidence bytes.
|
|
503
|
-
|
|
504
|
-
Compared with DID/VC:
|
|
505
|
-
|
|
506
|
-
- DID/VC wins for rich identity and credential ecosystems.
|
|
507
|
-
- xoonya Native wins when the primary artifact is a compact machine receipt or proof root rather than a human credential.
|
|
508
|
-
|
|
509
|
-
Compared with chain-specific proofs:
|
|
510
|
-
|
|
511
|
-
- chain-specific proofs win for native settlement proof on that chain.
|
|
512
|
-
- xoonya Native wins when proof must cross runtimes, chains, settlement rails, and credential systems.
|
|
513
|
-
|
|
514
|
-
The unique claim is not "better than everything." The unique claim is:
|
|
515
|
-
|
|
516
|
-
> a minimal, deterministic, replayable, chain-neutral machine-evidence standard with optional native envelopes and external verifier lanes.
|
|
517
|
-
|
|
518
|
-
## Protection And Standardization Strategy
|
|
519
|
-
|
|
520
|
-
Technical protection comes from precision, conformance, and governance:
|
|
521
|
-
|
|
522
|
-
- freeze byte layouts once published
|
|
523
|
-
- publish canonical conformance vectors
|
|
524
|
-
- publish adversarial vectors for malformed bytes, wrong method, wrong key, wrong payload, downgrade attempts, and non-canonical encoding
|
|
525
|
-
- publish reference validators in more than one language
|
|
526
|
-
- require deterministic error codes
|
|
527
|
-
- maintain a method registry and suite registry
|
|
528
|
-
- treat non-conforming variants as separate formats, not soft forks
|
|
529
|
-
- keep public claims bounded to implemented and tested surfaces
|
|
530
|
-
|
|
531
|
-
Commercial and legal protection should be handled explicitly:
|
|
532
|
-
|
|
533
|
-
- preserve authorship and publication history through tagged releases and checksummed specs
|
|
534
|
-
- use clear Apache-2.0 implementation licensing where intended
|
|
535
|
-
- maintain trademark/brand usage rules for the xoonya name and native conformance marks
|
|
536
|
-
- get qualified IP counsel before relying on patent, trademark, or defensive-publication strategy
|
|
537
|
-
|
|
538
|
-
## Standardization Steps
|
|
539
|
-
|
|
540
|
-
1. Keep `xoonya-native-sha256-v1` as the implemented deterministic method.
|
|
541
|
-
2. Publish the XNYA atom ladder as xoonya Native design, without forcing the current SDK to expose raw atoms prematurely.
|
|
542
|
-
3. Keep `xoonya-native-signed-v1` behind the existing method registry with Ed25519 verification implemented first.
|
|
543
|
-
4. Maintain the signature suite registry and only mark suites as verified when validators exist.
|
|
544
|
-
5. Keep conformance vectors for native signed proof.
|
|
545
|
-
6. Keep adversarial vectors for wrong key, wrong method, tampered event, tampered envelope, and method downgrade.
|
|
546
|
-
7. Add cross-runtime canonicalization vectors.
|
|
547
|
-
8. Keep anchor and attestation reference vectors for `xoonya-native-anchored-v1`.
|
|
548
|
-
9. Keep the native atom conformance pack and stable atom reject codes current.
|
|
549
|
-
10. Keep `xoonya-native-payload-profile/v1` as the strict binary payload profile and add any future deterministic CBOR profile separately.
|
|
550
|
-
11. Keep `xoonya-native-line-rate-frame/v1` as a transport profile around atoms, not a mutation of the atom core.
|
|
551
|
-
12. Keep external methods as interop lanes instead of turning native proof into a format war.
|
|
552
|
-
|
|
553
|
-
## Public Surfaces
|
|
554
|
-
|
|
555
|
-
- `GET /v1/proof-center/native-standard`
|
|
556
|
-
- `GET /v1/proof-center/native-standard/summary`
|
|
557
|
-
- `GET /v1/proof-center/native-hybrid-readiness`
|
|
558
|
-
- `GET /v1/proof-center/native-hybrid-readiness/summary`
|
|
559
|
-
- `GET /v1/proof-center/native-standardization`
|
|
560
|
-
- `GET /v1/proof-center/native-standardization/summary`
|
|
561
|
-
- `GET /v1/proof-center/native-payload-profile`
|
|
562
|
-
- `GET /v1/proof-center/native-payload-profile/summary`
|
|
563
|
-
- `GET /v1/proof-center/native-line-rate-frame`
|
|
564
|
-
- `GET /v1/proof-center/native-line-rate-frame/summary`
|
|
565
|
-
- `GET /v1/proof-center/native-anchor-profile`
|
|
566
|
-
- `GET /v1/proof-center/native-anchor-profile/summary`
|
|
567
|
-
- `GET /v1/proof-center/import-adapter`
|
|
568
|
-
- `GET /v1/proof-center/import-adapter/summary`
|
|
569
|
-
- `POST /v1/proof-center/import-adapter/review`
|
|
570
|
-
- `POST /v1/proof-center/import-adapter/run`
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
# xoonya Native Standard Governance
|
|
2
|
-
|
|
3
|
-
Status: active governance note
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
This document defines how xoonya Native evolves without losing its standard value.
|
|
8
|
-
|
|
9
|
-
The goal is not to create a format for novelty. The goal is to preserve a small deterministic machine-evidence primitive that can survive runtime churn, identity-system churn, settlement-rail churn, and cryptographic migration.
|
|
10
|
-
|
|
11
|
-
## Compatibility Marks
|
|
12
|
-
|
|
13
|
-
The phrase `XNYA-compatible` should mean:
|
|
14
|
-
|
|
15
|
-
- the implementation accepts the canonical `XNYA` atom magic
|
|
16
|
-
- it validates the published byte layouts exactly
|
|
17
|
-
- it implements deterministic pass/fail behavior
|
|
18
|
-
- it passes the published conformance vectors
|
|
19
|
-
- it rejects the published adversarial vectors
|
|
20
|
-
- it does not redefine a published version line
|
|
21
|
-
- it follows the public mark rules in `XNYA_CONFORMANCE_MARK.md`
|
|
22
|
-
|
|
23
|
-
Implementations that use a different magic value, different field ordering, different hash derivation, or soft-forked validation behavior are not xoonya Native atom implementations. They are separate formats.
|
|
24
|
-
|
|
25
|
-
## Registry Policy
|
|
26
|
-
|
|
27
|
-
The native standard uses explicit registries for:
|
|
28
|
-
|
|
29
|
-
- atom versions
|
|
30
|
-
- record types
|
|
31
|
-
- identity type prefixes
|
|
32
|
-
- proof methods
|
|
33
|
-
- signature suites
|
|
34
|
-
- profile types
|
|
35
|
-
|
|
36
|
-
Registry additions must include:
|
|
37
|
-
|
|
38
|
-
- identifier
|
|
39
|
-
- purpose
|
|
40
|
-
- canonical bytes or structure
|
|
41
|
-
- validation behavior
|
|
42
|
-
- conformance vectors
|
|
43
|
-
- adversarial vectors where applicable
|
|
44
|
-
- claim boundary
|
|
45
|
-
|
|
46
|
-
## No Silent Forks
|
|
47
|
-
|
|
48
|
-
Published version lines are frozen.
|
|
49
|
-
|
|
50
|
-
No implementation should claim compatibility while:
|
|
51
|
-
|
|
52
|
-
- changing byte layout
|
|
53
|
-
- changing hash derivation
|
|
54
|
-
- changing magic bytes
|
|
55
|
-
- accepting ambiguous optional fields in the atom
|
|
56
|
-
- adding runtime-specific semantics inside the atom
|
|
57
|
-
- treating planned suites as verified suites
|
|
58
|
-
|
|
59
|
-
If the format changes, the version changes.
|
|
60
|
-
|
|
61
|
-
## Security Review Checklist
|
|
62
|
-
|
|
63
|
-
Before promoting a native feature:
|
|
64
|
-
|
|
65
|
-
- Does it preserve fixed atom semantics?
|
|
66
|
-
- Does it avoid runtime, chain, custody, settlement, and governance semantics in the atom?
|
|
67
|
-
- Does it define exact canonicalization rules?
|
|
68
|
-
- Does it define deterministic failure reasons?
|
|
69
|
-
- Does it return stable machine-readable error codes?
|
|
70
|
-
- Does it include positive conformance vectors?
|
|
71
|
-
- Does it include adversarial vectors?
|
|
72
|
-
- Does it prevent downgrade or method-confusion attacks?
|
|
73
|
-
- Does it avoid overclaiming unimplemented cryptographic verification?
|
|
74
|
-
|
|
75
|
-
## Public Claim Boundary
|
|
76
|
-
|
|
77
|
-
Current public claim:
|
|
78
|
-
|
|
79
|
-
> xoonya Native provides deterministic machine evidence with native digest, Ed25519 signed proof, and anchor-binding proof support, plus a formal XNYA atom spec for fixed-size commitment records.
|
|
80
|
-
|
|
81
|
-
Not current public claims:
|
|
82
|
-
|
|
83
|
-
- not a replacement for JWT, DID/VC, SD-JWT VC, WebAuthn, TLS, HPKE, or encryption
|
|
84
|
-
- not a custody system
|
|
85
|
-
- not a settlement rail
|
|
86
|
-
- not an independent finality oracle for external chains or providers
|
|
87
|
-
- not a governance system
|
|
88
|
-
- not a ZK protocol
|
|
89
|
-
- not a claim that all suite registry entries are cryptographically verified today
|
|
90
|
-
|
|
91
|
-
## Current Conformance Surface
|
|
92
|
-
|
|
93
|
-
The current xoonya Native atom conformance surface is:
|
|
94
|
-
|
|
95
|
-
- `GET /v1/proof-center/native-conformance-mark`
|
|
96
|
-
- `GET /v1/proof-center/native-conformance-mark/summary`
|
|
97
|
-
- `GET /v1/proof-center/native-atom-spec`
|
|
98
|
-
- `GET /v1/proof-center/native-atom-spec/summary`
|
|
99
|
-
- `GET /v1/proof-center/native-atom-conformance`
|
|
100
|
-
- `GET /v1/proof-center/native-atom-conformance/summary`
|
|
101
|
-
- `GET /v1/proof-center/native-anchor-profile`
|
|
102
|
-
- `GET /v1/proof-center/native-anchor-profile/summary`
|
|
103
|
-
- `vectors/native-atom-vectors.json`
|
|
104
|
-
|
|
105
|
-
Compatibility requires exact XNYA bytes, exact version lengths, exact hash derivation, and stable reject codes. Passing only the positive vectors is not enough.
|
|
106
|
-
|
|
107
|
-
The anchored native method verifies that a receipt and event commitment bind to declared anchor refs. It does not certify that an external chain, settlement provider, or attestation issuer is truthful.
|
|
108
|
-
|
|
109
|
-
## Legal And Brand Notes
|
|
110
|
-
|
|
111
|
-
Use practical protection layers:
|
|
112
|
-
|
|
113
|
-
- tagged releases
|
|
114
|
-
- checksummed spec artifacts
|
|
115
|
-
- public conformance vectors
|
|
116
|
-
- Apache-2.0 implementation licensing where intended
|
|
117
|
-
- clear xoonya name and conformance-mark usage
|
|
118
|
-
|
|
119
|
-
Patent, trademark, or defensive-publication strategy should be reviewed with qualified IP counsel before being relied on.
|