atharv96k/distributed-upi-poc

GitHub: atharv96k/distributed-upi-poc

基于蓝牙 mesh 网络的离线 UPI 支付概念验证系统,实现零网络环境下的安全资金转移。

Stars: 0 | Forks: 0

# UPI Mesh —— 离线支付系统 零网络发送资金。支付数据包在您的手机上加密,通过 Bluetooth mesh 在陌生人的设备间跳跃传递,并在任何设备获取网络连接的瞬间完成结算。 此仓库包含后端服务器 + mesh 网络的软件模拟器 —— 完整演示可在单台笔记本电脑上运行。 ## 技术栈 Java 17 · Spring Boot 3.3 · RSA-OAEP + AES-256-GCM · SHA-256 · Gossip 协议 · ConcurrentHashMap · @Transactional + @Version · H2 ## 运行 **Windows:** `mvnw.cmd spring-boot:run` **Mac/Linux:** `./mvnw spring-boot:run` **随后打开:** `http://localhost:8080` 首次运行会下载约 80MB。JDK 17+ 是唯一的前提要求。 ## 解决的三大问题 | 问题 | 解决方案 | |---|---| | 陌生人传递您的支付数据 —— 阻止他们读取内容 | RSA-OAEP + AES-256-GCM 混合加密 | | 3 部手机同时抵达相同的 packet | 基于 SHA-256 哈希的原子操作 `putIfAbsent` —— 恰好结算一次 | | 攻击者重放捕获的 packet | 加密内部的签名时间戳 + nonce | ## 架构 ``` Sender Phone → [encrypt] → MeshPacket → gossip hop → hop → bridge phone → gets 4G → POST /api/bridge/ingest → hash → deduplicate → decrypt → validate → settle ``` ## 核心文件 | 文件 | 功能 | |---|---| | `HybridCryptoService.java` | RSA-OAEP + AES-256-GCM 加密/解密 | | `IdempotencyService.java` | 通过 ConcurrentHashMap 实现原子去重 | | `BridgeIngestionService.java` | 主 pipeline | | `SettlementService.java` | @Transactional 借记 + 贷记 | | `MeshSimulatorService.java` | Gossip 协议模拟 | ## 核心测试 ``` mvnw.cmd test -Dtest=IdempotencyConcurrencyTest ``` 3 个线程同时投递相同的 packet。 结果:1 个 `SETTLED` · 2 个 `DUPLICATE_DROPPED` · 余额仅变动一次。
标签:AES-256-GCM, Bluetooth Mesh, CVE, Gossip协议, Java 17, meg, Nonce, P2P支付, RSA-OAEP, SHA-256, Spring Boot 3.3, UPI支付, 事务处理, 信息安全, 去重, 后端开发, 幂等性, 支付结算, 数字签名, 无网通讯, 混合加密, 离线支付, 移动支付, 端到端加密, 网状网络, 蓝牙网格网络, 蓝队防御, 金融科技, 防御绕过, 防重放攻击