外观
VMax 产品定位
文档目的
本文定义 VMax 首版面向谁、解决什么问题,以及哪些承诺不能对外做。它只描述产品边界与用户可见价值,不证明密码协议安全,也不替代隐私政策、法律意见或发布文案。
依据与状态标记
- [MUST]:来自 v1.1 说明书的首个可发布版本要求,缺失即不验收。
- [建议]:说明书中的 SHOULD、推荐方案或本设计建议,仍可由总控调整。
- [已验证事实]:已对照
docs/项目执行标准.md、v1.1 原始 DOCX,或由本次总控输入明确确认;只证明需求与约束来源一致,不代表功能已经实现或安全性已经审计。 - [待总控决策]:会影响多个产品或技术线路,本文仅给出选项、取舍、推荐理由和验证办法。
一句话定位
VMax 是一款面向重视隐私的个人、小团队和自托管用户的 iOS 通信 App:用户无需手机号或邮箱即可创建与某一消息实例绑定的身份,通过完整 VMax 地址或二维码建立联系人关系,并在客户端完成一对一文本消息的端到端加密。[已验证事实]
首版同时提供本地双密码入口:主密码进入真实空间,假密码进入独立空白空间;假密码触发本地格式化是用户可选的高风险能力,默认关闭。[MUST]
核心用户与任务
| 用户 | 首要任务 | 首版价值 | 不应暗示的能力 |
|---|---|---|---|
| 隐私敏感个人 | 不提交手机号、邮箱或通讯录即可建立可信联系人 | 匿名身份、二维码验证、本地加密备份 | 不能隐藏全部元数据;不能阻止对方截图或转录 |
| 自托管用户 | 连接并核验自己的 HTTPS 消息实例 | 实例选择、指纹核验、网络诊断、独立 Profile | 依赖官方 Push Gateway 的方案不能称为完全主权 |
| 小团队或封闭社区 | 控制联系人进入与骚扰风险 | 联系人请求、接受、拒绝、阻止、实例策略 | 首版没有群聊、公开目录或后台管理页面 |
| 企业试点用户 | 评估独立签名、APNs 与审计要求 | 作为后续部署形态评估 | 不把尚未落地的企业策略写成首版能力 |
首版价值主张
- 无需实名绑定即可开始。 [MUST] 注册不要求手机号、邮箱、Apple 登录或通讯录权限。
- 联系人信任可被理解和复核。 [MUST] 支持地址添加、首次固定密钥、二维码核验和密钥变化警告。
- 实例归属始终可见。 [MUST] 创建身份前选择实例,身份与实例绑定;切换实例不复用旧身份。
- 消息状态可解释。 [MUST] 用户能区分正在发送、已发送、已送达、已读和失败,并能恢复弱网失败。
- 本地数据入口可分离。 [MUST] 主密码与假密码在同一锁屏输入,分别进入真实空间和独立空白空间;界面不得暴露假密码是否存在。
- 安全能力不被夸大。 [MUST] 不使用“绝对安全”等表述;服务器删除不等于物理擦除,本地格式化也不等于 NAND 物理覆写。
核心场景
- 首次建立联系:Alice 创建身份并展示二维码;Bob 扫码核对后建立最高级别的面对面验证关系并开始聊天。[MUST]
- 远程添加联系人:用户输入完整 VMax 地址并发送联系人请求;接受后固定对方身份密钥。[MUST]
- 连接私有实例:用户扫描部署二维码或输入 HTTPS 地址,核对实例名称与指纹后,为该实例创建或导入身份。[MUST]
- 密钥变化:对方重装或更换身份密钥后,会话顶部出现不能被悄悄忽略的警告,原验证状态不会自动恢复。[MUST]
- 离线消息:发送方在弱网或对方离线时仍可提交;客户端显示可恢复状态,接收端上线后拉取、解密并确认。[MUST]
- 设备丢失与恢复:用户在新设备导入加密备份;未包含在备份中的消息历史明确不可恢复。[MUST]
- 双密码与伪装:主密码打开真实空间;假密码打开不显示真实身份、联系人、会话、实例或备份痕迹的自然空白空间。[MUST]
非目标与宣传边界
首版不包含群聊、语音或视频通话、图片或文件消息、多设备同时在线、跨实例联邦、公开用户目录、手机号或邮箱绑定、服务端明文历史恢复、机器人和开放 API。[MUST]
项目不建设 Web 管理后台,这不是仅针对 MVP 的延期项;未来运维能力也不得默认演变为浏览器管理界面,若出现新需求必须由总控重新立项。[已验证事实]
对外表达必须保留以下边界:[MUST]
- 端到端加密不能控制合法接收方截图、复制或拍照。
- 网络和服务器仍可能观察 IP、时间、频率、实例域名与数据量等元数据。
- 服务端“已删除”是服务端状态声明,不是底层介质物理擦除证明。
- 本地格式化以关键密钥销毁和 App 沙箱清理为核心,不会删除已导出到 Files、iCloud Drive 或其他位置的备份。
- 未完成独立密码学审计、渗透测试与隐私评估前,不得宣称“与 Signal 比肩”“量子安全”或“服务器不可见”。
产品成功判据
以下目标来自说明书,但只有在上线后以合规、最小化的数据采集验证,不能当作当前已达成事实:[建议]
- 身份创建成功率不低于 99.5%,排除用户主动退出和网络不可达。
- 接收端 7 天内上线的一对一消息送达成功率不低于 99.9%。
- 同区域、文本消息、服务正常时,前台消息 P95 延迟不高于 800 ms。
- 崩溃自由会话不低于 99.8%。
- 服务器日志和数据库出现消息明文的事件数为 0。
- 创建身份后 7 天内完成加密备份的用户比例目标不低于 60%。
待总控决策
D-PROD-01 用户可见的验证等级命名
- 选项 A:直接显示 L0、L1、L2。 便于与诊断和规格一致,但普通用户难以理解。
- 选项 B:只显示“未验证、已固定、已当面验证”。 易懂,但支持人员定位问题时缺少稳定短码。
- 推荐:B 为主标签,L0/L1/L2 作为详情页次级信息。 既满足可理解性,也保留诊断一致性。
- 验证办法: 对 5–8 名非技术用户做任务测试,要求其判断“是否适合发送敏感信息”和“密钥变化后该做什么”;同时让支持人员仅凭截图定位等级。
D-PROD-02 官方实例在首次选择页的呈现权重
- 选项 A:官方实例作为默认主按钮,私有实例为次入口。 首次完成率可能更高,但可能造成官方服务被误解为唯一或更安全。
- 选项 B:官方实例与私有实例并列选择。 价值表达更中立,但首次路径多一步判断。
- 推荐:B。 说明书要求创建身份前先选择实例,VMax 又以服务器可替换为核心差异;并列能减少误导。
- 验证办法: 可用性测试中记录首次完成时长、错误选择率,以及用户能否回答“身份属于哪个实例”。