tnzx-project/tnzx-pool-demo

GitHub: tnzx-project/tnzx-pool-demo

一个基于加密货币矿池协议(Stratum)实现数据隐写与隐蔽通信的概念验证项目,旨在演示如何在挖矿流量中安全地嵌入和传递秘密信息。

Stars: 0 | Forks: 0

# TNZX VS3 — 矿池演示与代理概念验证 [Visual Stratum协议](https://github.com/tnzx-project/tnzx-protocol)的概念验证实现。展示了两种部署模式: 1. **VS3代理** (`poc/`) — 位于任意矿机与标准矿池之间。从真实份额中提取封装数据,拦截幽灵份额,路由消息。矿池无需修改。 2. **VS3感知矿池** (`src/stratum-demo.js`) — 原生支持幽灵份额检测与消息路由的Stratum服务器。 两者共享相同的帧格式与编码方案。无外部依赖。需要Node.js 16+环境。 ## 测试结果(2026-03-30) 所有测试均针对生产环境矿池进行。 | 测试项 | 矿池 | 链 | 编码 | 消息 | 结果 | |--------|------|----|------|------|------| | V1隐写 | HashVault | Monero | 每份额1字节(随机数最低有效位) | "I am safe. I love you." | **精确匹配** | | V2隐写 | Braiins Pool | Bitcoin | 每份额3字节(随机数+附加随机数2) | "I am safe. I love you." | **精确匹配** | | Alice-Bob通信 | HashVault | Monero | V3幽灵份额(每份额5字节) | "I am safe. Meet me at the bridge." | **精确匹配** | | Alice↔Bob双向通信 | HashVault | Monero | V3幽灵份额(每份额5字节) | "I am safe..." ↔ "Tomorrow..." | **精确匹配** | | Alice↔Bob HMAC验证 | HashVault | Monero | V3幽灵份额+HMAC标签 | "I am safe..." ↔ "Tomorrow..." | **精确匹配** | 带时间戳的完整记录:[`poc/results/`](poc/results/) ## 快速开始 — 代理模式(任意矿池) ``` # 在真实 Monero 矿池上进行 V1 封装证明 node poc/run-v1-proof.js # 在真实 Bitcoin 矿池上进行 V2 封装证明 node poc/run-v2-proof.js # 在真实矿池中进行 Alice-to-Bob 消息传递 node poc/run-alice-bob-proof.js ``` 完整文档请参阅 [`poc/README.md`](poc/README.md)。 ## 快速开始 — 矿池演示(自包含模式) ``` # 终端 1:启动矿池 node src/stratum-demo.js # 终端 2:Bob 监听 node vs3-client.js listen # 终端 3:Alice 发送 node vs3-client.js send "Hello Bob!" ``` 代码详解请参阅 [`TECHNICAL_GUIDE.md`](TECHNICAL_GUIDE.md)。 ## 交互式演示 **[查看消息流程演示](https://tnzx-project.github.io/tnzx-pool-demo/demo.html)** — 可视化展示完整的TNZX消息传递流程:矿门激活、X25519密钥交换、通过幽灵份额进行加密消息传递及确认应答。观察矿池如何仅看到不透明的 `0x05 ENCRYPTED` 帧,而Alice与Bob却在交换明文。无需服务器——直接在浏览器中运行。 ## 系统架构 ``` Model 1 — Proxy (no pool modification): [Alice] --Stratum--> [VS3 Proxy] --Stratum--> [Any Standard Pool] [Bob] --Stratum--> [VS3 Proxy] (pays both miners) | V1/V2 extraction from real shares V3 ghost share interception Message routing between miners Model 2 — VS3-Aware Pool (native support): [Alice] --Stratum--> [VS3 Pool] --routes--> [Bob] | Ghost share detection Frame assembly Job notification injection ``` ## 编码配置方案 | 方案 | 每份额字节数 | 实现方式 | 隐蔽性 | 支持链 | |------|-------------|----------|--------|--------| | **V1** | 1 | 随机数最低有效位半字节(真实份额) | 最高 | 任意链 | | **V2** | 3 | V1方案+附加随机数2(真实份额) | 最高 | 比特币 | | **V3** | 5 | 幽灵份额(哨兵字节0xAA) | 较低 | 门罗币 | V1和V2方案完全绑定于有效载荷——将数据嵌入可通过完整工作量证明验证的真实份额中。V3方案是可选的带宽优化方案,但存在可检测的哨兵字节。 ## 仓库结构 ``` src/stratum-demo.js VS3-aware Stratum pool (~730 lines) vs3-client.js VS3 ghost share client (plaintext) vs3-chat.js E2E encrypted chat client (X25519 + XChaCha20) demo-server.js Full demo: proxy → real pool + browser UI demo-ui.html Browser interface for the demo test-ghost.js Upload path test lib/ e2e.js E2E encryption (X25519 ECDH + XChaCha20-Poly1305) xchacha20.js XChaCha20-Poly1305 (vendored from tnzx-protocol ref-impl) vs3-frame.js Shared frame encoding utilities poc/ vs3-proxy.js VS3 middleware proxy (~830 lines) test-vs3-proxy.js Proxy interception test test-hmac-sentinel.js HMAC rotating sentinel test (Appendix D) test-dpi-steganalysis.js Chi-squared DPI indistinguishability test run-v1-proof.js V1 proof on real Monero pool run-v2-proof.js V2 proof on real Bitcoin pool run-alice-bob-proof.js Bidirectional messaging proof results/ Timestamped transcripts proxy/ index.js Standalone proxy package entry point bin/vs3-proxy-cli.js CLI for deploying the proxy examples/ Quick-start guide and usage examples TECHNICAL_GUIDE.md Pool demo code walkthrough ``` ## 协议规范 完整规范、设计文档、参考实现(客户端加密+隐写编码器)及测试向量: [tnzx-project/tnzx-protocol](https://github.com/tnzx-project/tnzx-protocol) 本矿池演示实现了协议的*矿池端*。`tnzx-protocol` 中的参考实现了*客户端*(端到端加密、封装编码、矿门验证)。两者共同构成完整的VS3技术栈。 ## 开源许可 LGPL-2.1
标签:Bitcoin, CMS安全, DNS 反向解析, GNU通用公共许可证, HMAC认证, JavaScript, MITM代理, Monero, Node.js, POC, Stratum协议, 加密货币挖矿, 协议实现, 双向通信, 安全通信, 数据可视化, 数据封装, 概念验证, 消息传递, 矿池, 矿池代理, 网络安全, 自定义脚本, 隐写术, 隐私保护, 隐蔽通道