- 长期证书 = 身份证 + 护照(证明你是谁,永久有效,极少变更)。
- 短期证书 = 门票 + 优惠券 + 临时通行证(证明你能做什么,限时有效,频繁发放)。
以下是基于这两种证书类型的分层架构详细设计方案:
🆔 1. 长期证书 (Identity Certificate) —— “数字灵魂”
定义:绑定用户与手办的唯一身份凭证,确立数据主权。
表格
| 特性 | 描述 |
|---|---|
| 有效期 | 永久 (或直到用户主动注销/手办报废) |
| 核心内容 | User_PubKey (用户公钥), Device_ID (手办硬件ID), Genesis_Time (创世时间), Level (初始等级) |
| 存储位置 | 手机端 (主): 安全区永久存储私钥 + 完整证书。 手办端 (从): 仅存储 Device_ID 哈希和 User_PubKey 片段 (用于广播身份)。 |
| 签发方 | 官方根 CA (项目发起方)。一生只签发一次,或在换绑设备时重新签发。 |
| 用途 | 1. 设备绑定:证明“这个手办属于我”。 2. 信誉积累:所有历史成就、勋章都挂载在这个 ID 下。 3. 跨域互通:去任何城市、任何景区,靠它识别老用户。 |
| 更新频率 | 极低。仅在固件重大升级或账号找回时更新。 |
🔄 生命周期流程:
- 激活:用户首次购买手办,App 扫描手办出厂二维码 -> 生成密钥对 -> 向官方申请长期证书 -> 写入手机安全区 & 手办 Flash。
- 日常:手办广播
Device_ID,周围节点识别出“这是一个已注册的合法设备”。 - 挂失/换绑:用户在新 App 登录 -> 验证身份 -> 官方吊销旧证书 -> 签发新证书绑定新手办。
🎫 2. 短期证书 (Activity Certificate) —— “临时通行证”
定义:针对特定时间、特定地点、特定活动的权限凭证。
表格
| 特性 | 描述 |
|---|---|
| 有效期 | 短时效 (如:24小时、周末、活动期间、单次有效) |
| 核心内容 | Activity_ID, Role (角色:如 VIP/普通/工作人员), Permissions (权限列表), Expire_TS (过期时间戳) |
| 存储位置 | 手机端 (主): 本地数据库缓存多个活动证书。 手办端 (从): 动态覆盖。每次同步新活动时,旧活动证书若过期则被清除,新证书写入临时区。 |
| 签发方 | 活动主办方 (景区、商户、策展人)。可以是官方,也可以是接入联盟的第三方。 |
| 用途 | 1. 准入控制:进入特定区域、参与特定游戏。 2. 权益核销:享受折扣、领取礼品。 3. 剧情触发:解锁隐藏对话、特殊灯光效果。 |
| 更新频率 | 极高。随活动随时发放、随时过期、随时吊销。 |
🔄 生命周期流程:
- 申请:用户在小程序/App 点击“报名咖啡节” -> 校验资格 (如:持有长期证书且等级>5) -> 主办方签发短期证书。
- 同步:手机通过 BLE 将短期证书写入手办 (覆盖旧的活动数据)。
- 使用:手办在活动现场广播“我是咖啡节 VIP”。
- 失效:
- 自动:手办内部时钟检测到过期 -> 自动擦除。
- 被动:手机下次连接时,发现过期/吊销 -> 强制清除。
⚙️ 3. 双证协同工作机制
这两种证书在手办和手机端是如何配合工作的?
场景 A:日常漫步 (无特定活动)
- 手办行为:广播 长期证书 中的
Device_ID哈希。 - 外界反应:
- 普通信标:忽略 (保护隐私)。
- 联盟信标:识别出“老用户”,记录足迹 (不上链,仅本地日志),可能在 App 里生成“旅行地图”。
场景 B:进入活动区域 (如:迪士尼乐园)
- 步骤 1 (手机):用户买票后,App 收到 短期证书 (乐园门票)。
- 步骤 2 (同步):手机连接手办,写入短期证书。此时手办内存中有:
[长期 ID] + [乐园门票]。 - 步骤 3 (广播):手办广播内容变为:
[长期 ID 哈希] + [乐园门票 ID]。 - 步骤 4 (验证):
- 闸机读到广播 -> 验证短期证书有效性 (签名 + 时间)。
- 同时读取长期 ID -> 查询云端:“这个用户是否有不良记录?”
- 双重验证通过 -> 开闸,手办播放乐园专属音效。
场景 C:活动结束
- 时间点:晚上 22:00 (证书过期)。
- 手办动作:内部 RTC 触发中断 -> 擦除 Flash 中的 短期证书 区域。
- 结果:手办恢复为“日常模式”,只广播长期 ID。即使黑客试图重放之前的信号,也会因时间戳过期被拒绝。
🛡️ 4. 安全与隐私策略差异
表格
| 风险点 | 长期证书对策 | 短期证书对策 |
|---|---|---|
| 泄露后果 | 灾难性 (身份被盗,历史资产丢失) | 轻微 (仅损失当次活动权益,过期即废) |
| 存储安全 | 最高级:手机存私钥 (SE),手办只存公钥哈希。 | 中级:手办可存完整证书明文 (因为有时效性),依靠签名防篡改。 |
| 隐私保护 | 强匿名:广播时使用旋转的临时 ID (DID),避免长期追踪。 | 弱匿名:活动期间允许被追踪 (为了游戏排名、互动),但活动结束后数据自动失效。 |
| 吊销机制 | 复杂:需用户主动申报,官方审核。 | 简单:时间到期自动吊销,或官方广播一条 CRL 即可。 |
💻 5. 数据结构示例 (JSON)
长期证书 (Identity Cert)
json
1{
2 "type": "IDENTITY",
3 "version": "1.0",
4 "device_id": "SN_2024_XYZ987",
5 "owner_pubkey": "npub1_long_term_key...",
6 "issued_at": 1709100000,
7 "expires_at": null, // 永久
8 "signature": "Sig_By_Root_CA"
9}
短期证书 (Activity Cert)
json
1{
2 "type": "ACTIVITY",
3 "version": "1.0",
4 "activity_id": "DISNEY_2024_SUMMER",
5 "role": "VIP_PASS",
6 "permissions": ["fast_lane", "meet_character"],
7 "issued_at": 1709100000,
8 "expires_at": 1709186400, // 24小时后过期
9 "issuer_pubkey": "npub1_disney_official...",
10 "signature": "Sig_By_Disney"
11}
🚀 6. 商业价值分析
- 资产沉淀 (长期证书):
- 让用户觉得手办是“养成的”,而不是“一次性的”。
- 随着时间推移,长期证书关联的勋章越多,手办越值钱,用户越舍不得弃坑。
- 二手交易:如果支持过户,长期证书可以转移,手办具备二手流通价值。
- 灵活运营 (短期证书):
- 变现利器:景区可以按天、按场次售卖短期证书 (电子票)。
- 营销自动化:下雨天自动发“室内馆优惠券”;生日当天自动发“长寿面兑换券”。
- 低门槛试错:用户不需要为了一个活动就注册复杂账号,领个短期证玩一次,好玩再转化。
📝 总结
“长期证书定身份,短期证书做业务”。
- 长期证书是根,保证生态的稳定性和用户的归属感。
- 短期证书是叶,保证业务的灵活性和运营的多样性。
这种双证架构,既满足了Web3 理念(用户拥有永久数字身份),又兼容了传统商业逻辑(门票、优惠券的时效性管理),是“旺财”文旅方案能够大规模落地的制度基石。