devnet · zchain-poker-devnetPLAY 娱乐筹码 · REAL 托管映射 · v1 托管网络
finality: soft accepted → BFT ordered → proven → finalized/claimable
四种状态来自技术方案 §5.1。v1 当前实际达到 soft accepted(桌级软确认)与 proven(批次证明);BFT ordered 与 finalized/claimable 属于 v1.5 / Phase 2 路线图,尚未上线。软确认不代表最终确认,也不能单独授权 REAL 提现。

ZChain Poker 文档 · docs v1.3.0-alpha (ABI v1.3)

Operation 与软确认帧

操作集封闭为 7 个;新操作 = 协议版本升级,禁止运行时扩展。

Operation v1(封闭)

OpenTable   { table_id, policy }
CloseTable  { table_id }
Deposit     { deposit_id, owner, asset_class, amount }
WithdrawRequest { spend, note, request_id }
Transfer    { spends, notes, outputs }
BuyIn       { table_id, spends, notes, seat_owner }
Settle      { SettlementRecord }   // boxed

防跨操作重放的 scope 标签:withdraw.v1 / transfer.v1 / buyin.v1 / 结算域。操作集封闭:新操作 = 协议版本升级。

软确认帧

SoftConfirmFrame { index: u64, prev_hash: [u8;32], op: Operation,
                   state_root: [u8;32], ts_ms: u64 }
SignedFrame      { frame, sig: [u8;64] }   // ed25519 over blake2s(borsh(frame))
  • 创世帧:index 0,prev_hash 全零;verify_chain 全量重验。
  • 提交路径:克隆态试算 → 签名 → WAL append + 真 fsync → 原子换入;WAL 失败零状态变更。

状态根折叠

state_root = poseidon 折叠(承诺树根, nullifier 根, 注册表根, 桌折叠,
                           seq, spent_count, proven_watermark)

重放时逐帧比对状态根;分叉即 WAL 损坏。proven_watermark 进入状态根,意味着证明进度本身是共识状态的一部分。