Skip to content

BUS-09 跨行 P2P 转账

BUS-09.1 目标与 DTS 依据

验证跨行个人转账端到端执行 DTS 规范的准备—签名—提交契约:付款钱包(银行 A 服务的 P1)向收款钱包(银行 B 服务的 P2)转账,WalletNode 预留输入并构建 ZKAT 证明与规范 prepared request,付款人资产持有银行的受保护 Idemix Holder 对准确 prepared request 签名,账本提交记账赋予最终性,双方经权威状态查询取得一致结果并可对账。

跨行口径:本原型中「跨行」指付款钱包与收款钱包分别由不同银行(A/B)建立并服务、由付款人侧银行作为平台调用方完成授权与提交;钱包本身机构中立(§7.4),不因跨行而改变账本处理路径。

追溯项依据
DTS 功能场景§14.3 场景 6「P2P 转账」(A 类核心,§14.6 完整场景卡)
DTS 章节§13 交易生命周期(§13.3 状态、§13.4 取消)、§14.6 全节、§15.3 转账与交易模块、§9.5/9.6 可用余额与输入锁
DTS 测试目录TC-P2P-001009
需求依据《技术描述》附录 1 §§4.3.2、4.8、6.1.4;附录 2 §1.1.2
追溯登记附录 A

BUS-09.2 参与角色

角色职责
付款人 P1 及银行 A 渠道确认收款人、金额并发出指令
银行 A(付款人资产持有银行)平台调用方:发起 Prepare、核验业务结果、驱动 Idemix Holder 签名、Submit
银行 A 受保护 Idemix Holder对准确 prepared request 签名
WalletNode / 归属分片选择并预留输入、构建 ZKAT 证明与规范 prepared request、保存 NBKR 私有审计包、Submit 时重新校验
收款人 P2 及银行 B 渠道解析收款数据、展示最终入账
权威账本排序、确定性验证、提交记账(FINAL 唯一来源)

BUS-09.3 前置条件

  • BUS-06 已通过:P1(银行 A)、P2(银行 B)钱包均 ACTIVE 且可发送/接收;
  • BUS-10 已通过(或先行执行):P1 钱包持有充足可用余额;
  • 银行 A 关系 Idemix 凭据有效;收款人解析方式(钱包 ID/获批别名)已约定;
  • 限额与风险测试配置已记录;
  • 记录转账前基线:P1、P2 钱包账本余额与 UTXO 清单。

BUS-09.4 测试数据

数据项要求记录值
转账金额小于 P1 可用余额且触发找零待执行时填写
付款钱包P1(银行 A,类别 10待执行时填写
收款钱包P2(银行 B,类别 10待执行时填写
参与方业务引用银行 A 侧稳定引用,重复用例复用待执行时填写
超额金额大于 P1 可用余额,用于余额不足用例待执行时填写
第二笔小额转账用于提交前取消用例待执行时填写

BUS-09.5 执行步骤(对应 §14.6.5 主流程)

步骤执行方操作预期结果实际结果证据编号状态
1P1/银行 A 渠道选择收款人 P2、输入金额、复核并确认参与方本地 CREATED;不影响余额待执行待填写待执行
2银行 A携稳定业务引用发起 PrepareTransfer平台受理 SUBMITTEDACCEPTED;网关认证、授权、结构校验通过待执行待填写待执行
3归属分片解析钱包、检查状态/限额/风险/可用余额,选择并预留 UTXO,保存准备状态返回 tx_id、选定输入引用、待签请求及业务结果;被选 UTXO 进入交易范围输入锁;账本无变化待执行待填写待执行
4银行 A对照付款指令核验收款人、金额、费用与汇总业务核验通过并记录待执行待填写待执行
5银行 A Holder对准确 prepared request 执行 Idemix 签名签名绑定该 prepared transaction待执行待填写待执行
6银行 ASubmitTransfer:提交同一 tx_id、preparation 引用、关系/member 引用及 Idemix 签名平台取回 preparation,验证调用方、交易绑定、凭据、签名、已保存 ZKAT 证明、策略与当前账本状态待执行待填写待执行
7平台/账本审计、背书、广播;账本排序、确定性验证并提交记账ORDEREDCOMMITTED/FINAL;付款输入原子花费,生成 P2 收款 UTXO 与 P1 找零 UTXO待执行待填写待执行
8银行 Atx_id 执行经认证状态查询返回 FINAL、最终性时间与账本引用待执行待填写待执行
9银行 B查询 P2 钱包与交易状态P2 入账金额正确;双方看到同一交易 ID 与同一终态待执行待填写待执行
10验收方余额核对P1 减少额 = P2 增加额 = 转账金额;找零回到 P1;与基线 UTXO 差异一致待执行待填写待执行

BUS-09.6 预期核对点

  • 状态机(§14.6.8)CREATED(参与方本地)→ SUBMITTEDACCEPTED → 准备态 → ORDEREDCOMMITTED/FINALTIMEOUT 不是终态;任何渠道不得赋予最终性;
  • 一次借记一次贷记:同一指令不产生重复借贷;账本提交是唯一余额变更点,准备/受理/索引均不改变正式余额(§14.6.11);
  • 可用余额语义(§9.5):Prepare 后 P1 可用余额 = 账本余额 − 被输入锁锁定输出;不存在「预留余额」呈现;
  • 授权绑定:Idemix 签名、ZKAT 证明、preparation 三者共同绑定同一 tx_id,任何一项被替换即拒绝;
  • 审计(§14.6.15):指令引用、机构身份、Request ID、输入预留、签名验证、账本引用、状态查询全链路可追溯,无 Idemix Secret/ZKAT 开值入日志。

BUS-09.7 负向与异常用例(对应 §14.6.17 + TC-P2P

用例操作预期结果实际结果证据编号状态
TC-P2P-002以超额金额发起转账REJECTED;不花费、不锁定 UTXO待执行待填写待执行
TC-P2P-003触发限额/策略拒绝(测试配置)REJECTEDUNDER_REVIEW;不提交记账待执行待填写待执行
未知收款人使用不存在/无权解析的收款标识安全拒绝,无越权数据披露待执行待填写待执行
TC-P2P-004篡改 prepared request 后提交,或用被停用凭据签名REJECTED;安全与审计事件;不提交记账待执行待填写待执行
TC-P2P-005a对同一 tx_id 重复 Submit返回既有权威结果;不产生第二次转账待执行待填写待执行
TC-P2P-005b对同一 tx_id 提交变更后的载荷稳定拒绝;不创建新操作待执行待填写待执行
TC-P2P-006Submit 后掐断响应(结果未知),随后查询交易保持权威终态;查询返回 FINAL;不创建替代交易待执行待填写待执行
提交前取消第二笔转账 Prepare 后取消CANCELLED;输入锁安全释放;账本无影响待执行待填写待执行
最终后取消对已 FINAL 交易发起取消拒绝;原状态保持权威待执行待填写待执行
钱包受限将 P2 置 SUSPENDED 后发起转账,验后恢复受治理拒绝;恢复 ACTIVE 后可正常转账待执行待填写待执行

BUS-09.8 执行信息、结果与签署

项目记录
原型版本与镜像摘要待执行时填写
测试环境待执行时填写
执行日期与参与人员待执行时填写
tx_id/账本引用待执行后填写
P1/P2 钱包 ID 与前后余额待执行后填写
执行结果待执行
问题/偏差(附录 F 编号)待填写
复测结论待填写
甲方业务代表签署待填写
服务商执行代表签署待填写