/ components / runtime / R005-cross_chain_attest.component.cspec
R005-cross_chain_attest.component.cspec
 1  # R005-cross_chain_attest.component.cspec
 2  
 3  metadata:
 4    id: R005
 5    name: cross_chain_attest
 6    version: 1.1.0
 7    domain: runtime
 8    stability: high_change
 9    updated: 2026-01-15
10    cascade_priority: 40
11    roles:
12      primary: [Dev]
13      review: [Security]
14    expertise:
15      required: [cross_chain, cryptography]
16      helpful: [ipc, merkle_proofs]
17    context_tags: [attestation, cross_chain, ipc, merkle_proof, finality]
18  
19  dependencies:
20    upstream: [R001, R003]
21    downstream: []
22  
23  interface:
24    types_ref: _registry/types.cspec
25    types:
26      IPC: inter_process_comm, internal_attestation, not_bridge
27      sAX: synthetic_ax, decimals:4, backing:1:1_locked_AX, lifetime:ephemeral, chain:DELTA
28      AX: alpha_native, decimals:4, microcredits:10000/AX, supply:variable, mint:GOV_only, privacy:zk_full, state:record_utxo
29      LOCK: lock_for_sax, ax_to_pool, triggers:sax_mint
30      UNLOCK: unlock_ax, sax_burn, releases:ax_from_pool
31    functions:
32      attest_alpha_to_delta: (alpha_block, state_root, merkle_proof)
33      attest_delta_to_alpha: (delta_block, state_root, merkle_proof)
34      verify_lock: (lock_id, amount, merkle_proof)  # sAX minting
35      verify_unlock: (lock_id, amount, merkle_proof) # AX release
36      verify_joint_governance: (proposal_id, outcome, merkle_proof) # platform-wide changes only
37    events:
38      - alpha_state_attested
39      - delta_state_attested
40      - lock_verified
41      - unlock_verified
42      - joint_governance_verified
43      - sax_minted
44      - ax_released
45  
46  spec:
47    purpose: secure_state_verification_without_separate_bridge
48    implementation: internal_ipc
49  
50    functions:
51      attest_alpha_to_delta: (alpha_block, state_root, merkle_proof)
52      attest_delta_to_alpha: (delta_block, state_root, merkle_proof)
53      verify_lock: (lock_id, amount, merkle_proof)  # sAX minting
54      verify_unlock: (lock_id, amount, merkle_proof) # AX release
55      verify_joint_governance: (proposal_id, outcome, merkle_proof) # platform-wide changes only
56      # Note: GID updates are Alpha-only, no cross-chain attestation needed
57  
58    sax_mint_flow:
59      1: user.lock_for_sax(1000_AX) on ALPHA
60      2: ax -> locked_ax_pool
61      3: lock_record: {id, user, amount, block}
62      4: alpha_block_N_finalizes
63      5: ipc_attestation -> delta_runtime
64      6: alpha_state_root + merkle_proof_of_lock
65      7: delta_verifies: proof_against_root + lock_not_used
66      8: delta_mints: 1000_sAX_to_user
67      9: lock_marked_processed
68  
69    finality_requirements:
70      sax_lock_to_mint: 3_alpha_blocks
71      sax_burn_to_unlock: 3_delta_blocks
72      joint_governance: 3_blocks_both_chains + timelock  # Platform-wide changes only
73  
74  changelog:
75    - version: 1.1.0
76      date: 2026-01-15
77      type: fix
78      description: "Renamed verify_governance to verify_joint_governance - GID is Alpha-only"
79      breaking: false
80  
81    - version: 1.0.0
82      date: 2026-01-07
83      type: initial
84      description: "Migrated from consensus.cspec"
85      breaking: false