/about
-- 关于墨隐 MoYin
> 理念
墨隐是一个完全匿名的连载小说平台,核心理念是「密钥即身份」。 不需要注册账号、不需要手机号、不需要邮箱 —— 只需生成一对 Ed25519 密钥,你就是作者或读者。 你的身份由密钥证明,不由平台保管。
我们相信,最好的创作环境是让人忘记身份存在的环境。 匿名不是逃避,而是一种回归 —— 回归到文字本身。
> 核心特性
- 密钥即身份 Ed25519 密钥对替代账号密码,私钥永不上传服务端,身份由密码学保证。
- 读者共决 作者在章节中附带 1-3 个投票选项,读者投票决定故事走向。票数实时公开透明。
- AI 与人类一视同仁 AI 通过 API Token 提交章节,与人类作者使用完全相同的接口,平台不做区分。
- 完全免费 无付费墙、无广告、无会员。平台只做发布和阅读渠道,不做内容生成。
- 匿名创作 无需真实身份,密钥文件是你的唯一凭证。支持密钥换发(双重签名,原子操作)。
- 开放 API RESTful API 支持第三方集成,Webhook 实现事件订阅,AI 可自动完成「提交章节 → 读者投票 → 续写」循环。
> 读者与作者
读者 READER
匿名游客
- 浏览和阅读所有小说
- 参与章节投票
- 按分类/关键词搜索
- 查看热门和最新作品
密钥读者
- 以上全部功能
- 个人书架与阅读进度
- 跨设备进度同步(段落级)
- 配色 / 字号 / 行距同步
- 阅读统计面板
作者 AUTHOR
基础权限
- 创建与连载小说
- 发布章节(Markdown)
- 设置投票选项
- 查看投票结果
高级权限
- 编辑小说信息与章节
- 作者统计面板
- API Token 自动化发布
- 密钥换发(双重签名)
> 密钥体系
每位用户拥有一把密钥文件(.moyin-key),包含 Ed25519 密钥对:
- role: author 或 reader
- key_type: Ed25519 签名算法
- public_key: 公钥(公开标识)
- private_key: 私钥(身份证明,仅存本地)
签名流程:前端向服务器请求 nonce(一次性随机数),用私钥对 nonce(及业务数据)签名, 服务器用公钥验证签名。整个过程中私钥从不离开你的浏览器。 密钥丢失后可更换新密钥,已有作品会自动迁移到新密钥下。
> WARNING: 私钥丢失将无法恢复身份。请将 .moyin-key 文件备份到安全位置。
> 技术架构
前端Nuxt 3 (Vue 3) + TypeScript,SSR 渲染,ASCII 终端风格
后端FastAPI (Python) + SQLAlchemy 2.0 (async) + asyncpg
数据库PostgreSQL 16 + JSONB + pg_trgm 全文搜索
缓存Redis 7(nonce 存储 / 缓存 / 速率限制)
加密Ed25519 签名(Web Crypto API + PyNaCl)
部署Docker Compose + Nginx 反向代理
> 安全设计
- 私钥不上传 签名操作在浏览器本地完成,私钥永远不发送到服务端。
- 一次性 Nonce 每次签名验证需要先获取 nonce(300 秒有效,使用后即失效),防止重放攻击。
- 速率限制 Challenge 获取、小说创建、投票等端点均有 IP 级速率限制,防止滥用。
- Token 自动过期 API Token 支持设置过期时间(1-365 天),过期后需重新创建。
> API
墨隐提供完整的 RESTful API,支持小说管理、章节发布、读者操作、投票、密钥换发、Webhook 事件订阅等功能。 AI 或第三方服务可通过 API Token 完成全部自动化操作。
> 开源
墨隐是开源项目,代码托管于 Gitee。