Whitepaper · v6.1

MIND Agent 白皮书
在按下按钮之前

一个端到端加密的交易日志与纪律守卫:它为什么存在、如何工作、如何保护你的数据,以及它的安全边界在哪里。

版本 v6.1 2026 年 10 月 适用:vault.claw402.net 与本地版

摘要

MIND Agent 是一个记录与自我约束工具。交易者在执行一笔交易之前写下它——标的、方向、仓位、情绪和理由—— MIND Agent 在「存入」前按交易者自己定义的规则逐条检查,事后再把情绪与盈亏关联起来,帮助交易者看清自己在什么状态下最容易犯错。 所有内容在浏览器中用 PBKDF2-SHA256(60 万次)派生的密钥以 AES-256-GCM 加密, 服务器只保存密文;每条云端记录由作者专属的写入令牌保护,只有作者能修改或删除。

目录
  1. 01问题
  2. 02产品
  3. 03架构
  4. 04加密设计
  5. 05威胁模型与局限
  6. 06发展路线
  7. 07常见问题
  8. 08参考
01

问题:错误往往发生在执行,而不是判断

很多交易者都写过自己的交易规则:单笔仓位不超过多少、不追高、不加仓摊平、亏损后不报复性开仓、情绪不对就停手。 规则本身通常并不难懂。难的是在行情剧烈波动、情绪最强烈的那几秒里想起它、遵守它。

事后回看亏损最大的几笔,原因常常不是「没看懂行情」,而是「明知故犯」:仓位放大了、理由是「先上车再说」、心态是「今天必须赚回来」。

1.1现有工具的空白

  • 交易日志 / 表格:记录发生在交易之后,擅长统计错误,但拦不住错误。
  • 行情与信号工具:回答「该买什么」,而真正的问题常常是「我此刻适不适合做决定」。
  • 券商风控:管的是保证金和合规,不管你自己定下的个人规矩。

1.2设计目标

  1. 在决策点介入:检查发生在「存入」之前,而不是复盘时。
  2. 规则属于用户:阈值与词库由用户自己编辑,工具不替用户制定交易体系。
  3. 低摩擦:不注册、不绑定账户,打开即可记录;想长期保存时再设密码。
  4. 私密:交易记录暴露仓位、习惯和弱点,必须端到端加密,服务器不可读。
02

产品:记录 → 检查 → 加密 → 复盘

2.1核心流程

  1. 记录:写下标的、方向(做多/做空)、仓位百分比、当下情绪和一句理由。
  2. 检查:按规则实时检查。命中的规则逐条列出;用户仍可选择存入,但该笔会被标记为「触碰纪律」。
  3. 加密保存:设置了密码的保险库在本机加密后保存(本地或云端);免密试用的数据只存在当前浏览器会话中。
  4. 补结果:平仓后补填盈亏。
  5. 复盘:情绪 × 盈亏交叉统计、纪律报告卡,看清自己在哪种状态下最容易亏损。

2.2功能一览

功能说明
纪律守卫默认规则:单笔仓位上限 10%;冲动交易词库(追高、梭哈、满仓干、加仓摊平、扛单、报复性);情绪警示词库(上头、赌一把、翻本、心态崩、忍不住)。阈值与词库均可编辑。
情绪标记六种情绪:平静、贪婪、恐惧、急躁、后悔、自信。贪婪或急躁时额外提醒;恐惧状态下做空时提醒区分判断与情绪。
情绪 × 盈亏按情绪分组统计笔数与平均盈亏,对比平静与贪婪/急躁状态下的表现。
纪律报告卡汇总近期纪律执行情况,脱敏后可分享给交易伙伴互相监督。
免密试用不设密码即可记录,数据存于 sessionStorage(明文,关闭页面即消失);首次设置密码时自动加密并入。
云端同步(可选)配置房间号后多设备共享同一份密文记录;按条写入,并发修改以版本号检测冲突。
备份导出导出为明文 JSON 文件,便于自行留档。导出文件不加密,请妥善保管。

2.3两种形态

  • 云端版:部署在 vault.claw402.net,默认本地加密保存,可选开启云端同步。
  • 本地版:单个 mind-vault.html 文件,双击即可在浏览器中打开,默认完全不联网;与云端版使用同一套加密实现。
03

架构:所有逻辑在浏览器里,服务器只是密文仓库

MIND Agent 没有传统意义上的「后端业务逻辑」。规则检查、统计、加密和解密全部在用户浏览器中完成;云端只负责按条保管密文,并校验写权限与版本。

3.1数据模型

每条记录在 KV 中是独立的键 mind:v2:<房间号>:<记录 ID>,值为:

// 服务器能看到的全部内容 { id, // 记录 ID(含创建时间戳) text, // "v2:盐:IV:密文" —— 标的、仓位、情绪、理由、盈亏都在密文里 rev, // 版本号,每次更新 +1 ah, // SHA-256(写入令牌),用于校验作者身份 ct, ut // 服务器记录的创建 / 更新时间 }

3.2接口

方法作用约束
GET读取房间内全部记录(密文)最多返回 5000 条;可附带最近写入的 ID 以绕过 KV 列表延迟
POST按条新建或更新(每次 1–50 条)更新须提供匹配的写入令牌(否则 403)与当前版本号(否则 409)
DELETE删除指定 ID 的一条记录须提供匹配的写入令牌
旧版整表写入v6 及更早的「整表覆盖」一律拒绝(410)。不存在任何能一次清空房间的接口

其他限制:房间号 4–32 位字母数字(含 _ -);单条密文 ≤ 64KB;单次请求 ≤ 512KB;只接受 v2 加密信封;跨域请求仅放行官方页面来源(以及本地开发地址)。

3.3并发与一致性

每条记录独立存储,所以不同记录之间永远不会互相覆盖。对同一条记录的并发修改通过版本号检测:客户端提交的版本与服务器不一致时返回 409,客户端刷新后再提示用户。 需要说明的是,Workers KV 是最终一致的存储,不提供原子的比较并交换;在不同地区几乎同时修改同一条记录时,仍可能出现后写者胜。

04

加密设计

原则:只使用浏览器原生的 Web Crypto API,不引入第三方加密库;密钥对象设为不可导出,只存在于页面内存中,从不写入 localStorage 或任何存储;锁定即丢弃。

4.1密钥派生与分离

master = PBKDF2-HMAC-SHA256(密码, 盐[16 字节随机], 600 000 次, 256 bit) encKey = HKDF-SHA256(master, info="MIND/v2/enc") → AES-256-GCM 加密钥匙 authKey = HKDF-SHA256(master, info="MIND/v2/auth") → HMAC-SHA256 令牌钥匙

同一个密码派生出两把互不相关的钥匙:一把只用于加密,一把只用于生成写入令牌。服务器即便拿到令牌,也无法反推出加密钥匙。盐不是秘密,随密文一起保存;每个保险库在创建时随机生成。

4.2记录加密与信封格式

envelope = "v2:" b64url(盐) ":" b64url(IV[12 字节随机]) ":" b64url(密文 ‖ 认证标签[16 字节]) AAD = "MIND/cloud/<记录 ID>" | "MIND/local/entry/<ID>" | "MIND/local/rules" | "MIND/local/canary"
  • 每条记录独立随机 IV,同样的内容两次加密结果完全不同。
  • GCM 认证标签保证完整性:密文被改动一个比特,解密就会失败,而不是解出错误内容。
  • 附加认证数据(AAD)把密文绑定到它所在的位置:把 A 记录的密文挪到 B 记录的位置,同样会解密失败。
  • 版本前缀 v2: 让未来升级算法时可以平滑迁移。

4.3密码校验

本地保险库保存一段加密的固定标记 MIND_OK;云端每条记录的明文中也带有该标记。解锁时如果认证失败或标记不符,即判定为密码错误,不会把错误密码写进任何数据。

4.4写入令牌:只有作者能改、能删

token = b64url( HMAC-SHA256(authKey, "MIND/v2/token|" + 房间号 + "|" + 记录 ID) ) 服务器保存 SHA-256(token),更新 / 删除时比对

令牌按记录、按房间派生,不同记录的令牌互不相同。同一房间里的其他人(或任何只知道房间号的人)没有你的密码,就算不出你的令牌,因此读不懂、改不了、删不掉你的记录。服务器只存令牌的哈希,即使存储泄露,也无法用它冒充你写入。

4.5参数

项目取值说明
密钥派生PBKDF2-HMAC-SHA256,600,000 次OWASP 2023 对 PBKDF2-SHA256 的建议值;每次猜测密码都要付出同样代价
盐16 字节随机每个保险库独立,使预计算与批量破解失效
密钥分离HKDF-SHA256加密钥匙与令牌钥匙相互独立
加密AES-256-GCM12 字节随机 IV,16 字节认证标签,带 AAD
写权限HMAC-SHA256 令牌服务器只存 SHA-256 哈希
耗时桌面约 0.1–0.3 秒,手机约 0.5–1 秒每次解锁每个盐只计算一次,之后缓存在内存

4.6旧格式兼容

v6 及更早版本的云端数据使用 CryptoJS 口令模式(EVP_BytesToKey,MD5 单次迭代),本地数据使用固定盐的 PBKDF2-SHA1(1 万次)。这两种方案对离线暴力破解都偏弱,且与旧文档「PBKDF2 派生」的描述不完全相符。 v6.1 以原生实现只读兼容这两种旧格式:本地保险库在解锁时立即以 v2 重新加密;云端属于你的旧记录在解锁后于后台重新加密并认领所有权。解不开的记录原样保留,不会被覆盖。

4.7页面完整性

  • 零第三方脚本:不加载任何 CDN 脚本、外部字体或统计代码。
  • 严格 CSP:应用页只允许执行哈希匹配的唯一内联脚本,网络请求只允许发往同步 API;本白皮书页面不允许执行任何脚本。
  • 其他响应头:禁止被嵌入框架、禁止 MIME 嗅探、不发送 Referer、HSTS、跨源隔离。
  • 不使用内联事件:所有交互通过白名单动作表分发;渲染用户内容前统一转义。
05

威胁模型与局限

安全描述只有在说清楚「防不住什么」时才可信。以下是我们对自身边界的完整说明。

5.1防护范围

对手能做什么防护
拿到存储数据的人读取全部密文(如云服务账号泄露)随机盐 + 60 万次 PBKDF2 + AES-256-GCM:只能逐个猜密码,且每次猜测代价高昂
只知道房间号的人调用同步接口没有整表覆盖接口;修改、删除需要按记录派生的令牌;只接受 v2 加密信封
同房间的其他用户看到你的密文解不开,改不了,删不掉
网络中间人窃听或篡改传输全程 HTTPS + HSTS;内容本身已加密,篡改会导致认证失败
第三方脚本供应链通过 CDN 投毒页面不加载任何第三方脚本;CSP 只放行哈希匹配的脚本
页面注入(XSS)执行脚本、外传数据CSP 禁止内联脚本与外部连接;用户内容统一转义;入站数据先做类型规范化

5.2不在防护范围内

  • 已解锁且被他人控制的设备:解锁期间密钥在内存里,能操作你电脑的人就能看到内容。用完请锁定。
  • 恶意浏览器扩展、键盘记录器、恶意软件:它们可以在你输入密码时直接读取。
  • 弱密码:60 万次迭代只能放慢猜测速度,不能拯救「123456」。请使用足够长的独特密码。
  • 页面托管方被攻破:与所有网页应用一样,如果托管页面的账号被攻破并投放恶意代码,攻击者可以在你下次解锁时窃取密码。对此最敏感的用户可以使用离线的本地版。

5.3已知局限

  1. KV 最终一致:同一条记录在不同地区几乎同时被修改时,可能后写者胜。
  2. 旧记录认领窗口:从旧版迁移出的记录在原作者用新版解锁前没有所有者,理论上可被知道房间号的人抢先认领。所有用户升级后,运营方可关闭认领。
  3. 房间可被灌入垃圾:知道房间号的人仍可新建记录(受大小与格式限制)。房间号请像密码一样保管。
  4. 元数据可见:服务器能看到记录数量、ID(含创建时间)、版本号、密文长度和常规网络元数据。
  5. 样式策略:应用页因大量动态样式使用 style-src 'unsafe-inline';脚本策略仍然是严格的。
  6. 明文区域:免密试用数据(sessionStorage)与导出的备份文件是明文,界面上均有提示。
  7. 密码常驻内存:会话期间密码保留在页面内存中,用于在云端发现新的盐时派生钥匙;锁定或关闭页面即清除。
没有后门 忘记密码,数据永久无法恢复。没有找回流程,运营方也解不开。这是端到端加密必须付出的代价,请务必记牢密码,并定期导出备份。
06

发展路线

每个版本只解决一个具体问题。以下「规划中」的内容是方向而非承诺,可能根据实际使用反馈调整。

  1. v2
    加密地基AES 加密存储、Cloudflare Worker + KV 同步通道、密码派生密钥。
    已交付
  2. v3
    纪律守卫可编辑的纪律规则、写入前实时检查、六种情绪标记、主动提醒、统计页。
    已交付
  3. v4
    视觉与交互体系设计令牌、动效系统、品牌首屏、指标卡、时间轴。
    已交付
  4. v5
    降低使用门槛免密快速记录、情绪 × 盈亏、纪律报告卡;修正标的字段明文落盘等缺陷。
    已交付
  5. v6
    视觉重建 + 安全加固v6 以海拔体系重建界面。v6.1:WebCrypto(PBKDF2-SHA256 60 万次 + AES-256-GCM)、按条写入 + 作者令牌 + 版本冲突检测、严格 CSP、零第三方脚本。
    当前
  6. v7
    规则可定制在现有阈值与词库编辑之上,开放更多规则类型与组合(如单日笔数、连亏后冷静期),并允许自定义哪些情绪属于高风险。
    规划中
  7. v8
    只读导入导入交易所导出的成交账单文件,在本机解析后加密保存,与当时写下的理由对照复盘。只读文件导入,解析全程在本机完成。
    规划中
07

常见问题

忘记密码怎么办?

无法找回。密码从不离开你的设备,运营方没有任何办法解密你的数据。建议用密码管理器保存密码,并定期导出备份。

服务器或运营方能看到我的交易记录吗?

不能。标的、方向、仓位、情绪、理由、盈亏和你的规则都在浏览器里加密后才上传。服务器能看到的只有密文、记录数量、记录 ID(含创建时间)、版本号和常规网络元数据。

为什么解锁时要等一下?

这是 60 万次 PBKDF2 迭代的代价,桌面端约 0.1–0.3 秒,手机约 0.5–1 秒。同样的代价会让试图暴力破解你密码的人每猜一次都慢下来。

和别人共用一个房间号安全吗?

每个人用自己的密码加密,彼此看不到对方的内容,也无法修改或删除对方的记录。但知道房间号的人可以向房间写入新记录,因此建议每人使用自己的、不易猜到的房间号。

免密试用的数据存在哪里?

只存在当前浏览器标签页的 sessionStorage 中,未加密,关闭页面即消失。首次设置密码时,试用期间的记录会被加密并入保险库。

怎么在手机和电脑之间同步?

在两台设备上配置同一个同步地址与房间号,并使用同一个密码解锁即可。数据以密文形式按条同步,两边同时修改同一条记录时会提示版本冲突。

本地版和云端版有什么区别?

两者使用完全相同的加密实现。本地版是一个可离线打开的 HTML 文件,默认不联网,适合对托管环境最谨慎的用户;云端版免安装,并可选开启多设备同步。

导出的备份安全吗?

备份文件是明文 JSON,便于你自行留档和迁移。请像保管纸质交易记录一样保管它,不要上传到公开位置。

以前版本的数据还能打开吗?

可以。v6.1 能读取旧版云端和本地两种加密格式,并在你解锁后自动升级为 v2 格式,无需手动操作。

它的提示算投资建议吗?

不算。所有提示都只是把你自己设定的规则应用到你自己写下的计划上,不涉及任何行情判断或标的推荐。

08

参考

  • RFC 8018 — PKCS #5: Password-Based Cryptography Specification v2.1(PBKDF2)
  • RFC 5869 — HMAC-based Extract-and-Expand Key Derivation Function(HKDF)
  • RFC 2104 — HMAC: Keyed-Hashing for Message Authentication
  • NIST SP 800-38D — Galois/Counter Mode (GCM) and GMAC
  • W3C — Web Cryptography API
  • W3C — Content Security Policy Level 3
  • OWASP — Password Storage Cheat Sheet(PBKDF2-HMAC-SHA256 迭代次数建议)

下一笔之前,先过一遍自己的规矩

不用注册,打开即用;想长期保存时再设置密码。

开始记录