diff --git a/README.md b/README.md new file mode 100644 index 0000000..4dc1d77 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# Sentinel Protocol Documents + +Welcome to the Sentinel Protocol official documentation repository. + +## 🇨🇳 中文文档 (Chinese) +- [产品白皮书](./zh-CN/product/README.md) +- [技术白皮书](./zh-CN/technical/V2.0.md) + +## 🇺🇸 English Documents +- [Product Whitepaper](./en/product/V2.0.md) +- [Technical Whitepaper](./en/technical/V2.0.md) \ No newline at end of file diff --git a/en/product/README.md b/en/product/README.md new file mode 100644 index 0000000..e69de29 diff --git a/en/technical/README.md b/en/technical/README.md new file mode 100644 index 0000000..e69de29 diff --git a/en/technical/architecture.md b/en/technical/architecture.md new file mode 100644 index 0000000..e69de29 diff --git a/en/technical/glossary.md b/en/technical/glossary.md new file mode 100644 index 0000000..e69de29 diff --git a/tech.md b/tech.md new file mode 100644 index 0000000..04c1942 --- /dev/null +++ b/tech.md @@ -0,0 +1,102 @@ +# Sentinel Protocol (哨兵协议) 技术白皮书 (V2.0) + +## **1. 摘要 (Abstract)** +Sentinel Protocol 提出了一种基于“主权原点 + 递归碎片”的数字资产保护框架。通过 **AI 隐私代理** 降低普惠门槛,利用 **TEE 硬件** 锁定主权执行根,并结合 **多级 SSS 算法** 实现资产的永续传承。核心创新在于:通过 **智能合约死手开关 (Dead Man Switch)** 与 **法定信托存储机制** 的双轨保障,确保在商业公司停止服务后,开源社区能接管访问权限,且数据密文在长历史时段内依然得以物理保留与解密。 + +--- + +## **2. 核心架构:四层防御体系** + +### **2.1 AI 普惠层 (AI Accessibility Layer)** +* **功能小助手**:将高端 Prompt 封装为预设插件,提供自然语言交互入口。 +* **隐私代理 (Privacy Proxy)**: + * **本地拦截**:在应用端执行敏感词过滤,确保私钥片段或实名隐私 **绝不** 离开本地环境。 + * **去标识化转发**:中转代理剔除 IP、设备 ID 等元数据,使第三方 AI 厂商仅接收脱敏后的纯粹指令。 +* **本地语义总结**:端侧 AI 本地总结资产,仅在发现价值目标时提示用户进入加固流程。 + +### **2.2 硬件主权层 (Hardware Sovereignty Layer)** +* **Master Key (K)**:由助记词派生,锁死在手机 **TEE (可信执行环境)** 内。我们不信任软件系统,只信任锁在芯片里的数学。 +* **内层加固**:数据在离机前,由 $K$ 完成第一层硬件级内层加密。 + + + +### **2.3 哨兵存储层 (Sentinel Vault Layer)** +* **外层加固**:服务器集群对密文进行二次公钥加密,防御传输风险。 +* **永续存储**:双重加密后的密文托管于 Arweave 等去中心化永久网络。 + +### **2.4 第三方 API 接入层 (Third-Party Integration)** +* **模式 A:独立主权模式 (Standalone)**:第三方应用使用 **独立助记词** 工作。哨兵协议仅作为存储载体和算法套件,逻辑完全隔离。 +* **模式 B:协同共享模式 (Collaborative SDK)**:第三方应用集成 **哨兵加密 SDK**。在用户生物识别授权后,协同共享主授权数据,打破数据孤岛。 + +--- + +## **3. 角色定义与密钥派生体系** + +系统遵循从“数学元种子”到“物理分片”的严密派生逻辑: +* **助记词 (Mnemonic)**:系统的 **元种子 (Root Seed)**,一切密钥的唯一数学起源。 +* **Master Key (K)**:锁死于 TEE 芯片,作为日常主权执行根。 +* **S0 (Redundancy)**:冗余备份片。用户离线(物理打印/U盘)保存,作为最后救济。 +* **S1 (Cloud)**:分布式递归分片,由云端节点托管。 +* **S2 (Heir)**:继承分片。由用户分发给指定的遗产处理人。 + +--- + +## **4. S1 的分布式递归裂解 (Multi-Server Fragmentation)** + +为了彻底消除中心化节点的拖库与合谋风险,$S_1$ 采取“化整为零”的策略: + +### **4.1 二次裂解逻辑** +手机端在生成 $S_1$ 后,不直接上传,而是再次通过 SSS 算法将其裂解为 $n$ 个子分片 ($n \ge 2$):$\{S_{1a}, S_{1b} \dots S_{1n}\}$。 + +### **4.2 节点加密与存储** +* **独立加密**:每个子分片使用对应存储节点的独立公钥进行加密。 +* **分布式存储**:子分片分别分发至地理隔离、逻辑独立的多个哨兵服务器节点。 +* **安全特性**:没有任何单一服务器拥有完整 $S_1$。黑客攻破单点数据库,拿到的仅是“碎片的碎片”。 + + + +--- + +## **5. 业务逻辑流程 (Workflow)** + +### **5.1 数据入库流** +1. **识别确权**:本地 AI 发现信息,征得用户生物识别授权。 +2. **双重加密**:TEE 调用 $K$ 完成内层加固 $\rightarrow$ 服务器执行外层加固。 +3. **递归分发**:$S_1$ 裂解为多子分片,加密后飞向不同地理节点。 + +### **5.2 传承与恢复流** +1. **状态判定**:智能合约监测到失能信号。 +2. **分片归集**:多节点验证合约指令,解密并释放各自的子分片。 +3. **多级重构**: + * **一级重构**:子分片重构出原始云分片 $S_1$。 + * **二级重构**:$S_1$ 与继承人持有的 $S_2$(或冗余片 $S_0$)合成 Master Key (K)。 +4. **解密资产**:利用 $K$ 剥离内层加密,获取原始资产。 + +--- + +## **6. 生存保障与安全总结** + +### **6.1 生存保障 (The Great Survival Protocol)** +* **法定信托与续费**:专项信托基金独立于商业实体,确保存储费用在长历史时段内的物理有效性。 +* **死手开关 (Dead Man Switch)**:一旦商业公司失能,智能合约自动释放密文索引与节点私钥,开源社区接管访问。 +* **开源自救**:用户通过开源工具,配合 $S_2/S_0$ 本地还原 $K$,即便官方消失也能找回数据。 + +### **6.2 安全性总结 (Security Highlights)** +* **抗拖库 (Anti-DB Leak)**:云端 $S_1$ 碎裂化存在,单点沦陷无意义。 +* **隐私主权化**:Privacy Proxy 物理隔离 AI 侧写风险。 +* **唯一性与鲁棒性**:$K$ 锁死 TEE,且系统在部分节点掉线时依然能重构数据。 + +--- + +## **附录:技术术语表 (Appendix: Glossary)** + +| 术语 | 通俗定义 | 在本协议中的角色 | +| :--- | :--- | :--- | +| **TEE (可信执行环境)** | 手机芯片里的“独立保险箱”。 | 存储主密钥 $K$,防止即便手机中毒也被盗取密钥。 | +| **SSS (秘密共享算法)** | 就像古代的“虎符”,拆开是碎片,合拢是权力。 | 将主密钥拆分为 $S_0, S_1, S_2$,实现容灾备份。 | +| **Mnemonic (助记词)** | 系统的“元种子”,生命中最重要的单词。 | 恢复一切资产的最高权限根源。 | +| **Privacy Proxy (隐私代理)** | 你的“数字替身”,替你和 AI 说话。 | 拦截本地敏感信息,抹除 IP/设备 ID,防止身份泄露。 | +| **Arweave** | 一种“永不磨灭”的数字石碑。 | 永久托管加密密文,解决传统云盘倒闭后的数据丢失问题。 | +| **Recursive Sharding (递归裂解)** | 就像把碎纸机出来的纸片再撕碎一次。 | 确保存储节点即便被盗,也拿不到完整的云分片 $S_1$。 | +| **Dead Man Switch (死手开关)** | 如果我不打卡了,协议自动执行。 | 判定商业公司状态,若倒闭则将解密权限移交社区。 | +| **Legal Trust (法定信托)** | 一份受法律保护的数据“维护基金”。 | 确保存储费用持续缴纳,不因公司破产而断缴续费。 | \ No newline at end of file diff --git a/zh-CN/product/README.md b/zh-CN/product/README.md new file mode 100644 index 0000000..8daa90a --- /dev/null +++ b/zh-CN/product/README.md @@ -0,0 +1,103 @@ +# Sentinel Protocol (哨兵协议) 白皮书 +> **——基于 AI 与区块链的数字生命永续存储与智能传承协议** + +## 目录 +- [1. 项目背景与深度痛点](#1-项目背景与深度痛点) +- [2. 核心技术:持久化存储与分片主权](#2-核心技术持久化存储与分片主权) +- [3. 被动验证与状态机:多维服务边界](#3-被动验证与状态机多维服务边界) +- [4. 永续性治理:社区共治与故障转移](#4-永续性治理社区共治与故障转移) +- [5. AI 应用层:智能管家](#5-ai-应用层智能管家) +- [6. 开发者生态:开放 API](#6-开发者生态开放-api) +- [7. 经济模型:差异化分级与储备池](#7-经济模型差异化分级与储备池) +- [8. 结论](#8-结论) + +--- + +## 1. 项目背景与深度痛点 +* **1.1 数字遗产“永久锁死”**:由于私钥随持有者离世而丢失,导致去中心化资产不可逆损失。 +* **1.2 互联网数据“十年消失律”**:商业公司倒闭导致 38% 的链接在 10 年内失效,用户数字记忆面临蒸发。 +* **1.3 意义淹没与筛选困境**:海量冗余数据导致用户无法从碎片信息中提取真正具有传承价值的关键资产。 +* **1.4 高危行业“猝发断裂”**:矿工、海员等群体在零预警、零网络状态下的资产提取鸿沟。 + +--- + +## 2. 核心技术:持久化存储与分片主权 +### 2.1 碎裂化密钥管理与用户绝对主权 (SSS 3/2) +* **用户主权态 (组合 A)**:用户初始化即拥有完整助记词熵值,拥有 S0、S1、S2 全集控制权。在生前任何时刻,用户均具备 **100% 主权自决**。 + > **主权定义**:这意味着你无需任何人的许可,即可完成日常调用。无论是资产划转还是文件读取,系统均通过生物识别在后台完成验证,用户拥有绝对的掌控力与顺畅的使用体验。 +* **S1 与 S2 防串通机制 (Anti-Collusion Logic)**: + * **逻辑隔离**:在判定逻辑触发前,S1 分布式节点处于锁定状态,拒绝任何碰撞请求。 + * **合约见证释放**:S1 的解冻必须由智能合约检测到系统进入“Released”状态后,方可签署释放指令,彻底杜绝托管方与继承人私下合谋。 +* **传承提取态 (组合 B)**:状态判定成立后,S1 自动解冻,继承人凭 S2 碰撞提取资产。 + +### 2.2 S1 去中心化分发与多重存储保障 +* **异构冗余备份**:同步对接 Arweave (永久存储)、Filecoin (激励存储) 及多司法管辖区的异构加密节点。 +* **VSS 分布式托管**:S1 分片利用 **可验证秘密分享 (VSS)** 再次切割,分布式存储于去中心化网络,消除单一服务器崩溃风险。 + +### 2.3 AI 驱动的“数据漏斗”与自动归档 +* **智能分拣**:AI 在日常交互中识别高价值信息,自动建议用户将关键要素(账号、保单、遗嘱意愿)结构化归档,实现“一键灌装”。 + +--- + +## 3. 被动验证与状态机:多维服务边界 +### 3.1 判定中 (Pending) 的二次锁定机制 (Double-Lock) +* **防误判宽限**:若系统触发 Pending(失联信号),用户可预设进入 **180-365 天的冷冻期**。期间系统禁止释放任何数据,确保处于长期昏迷或特殊环境下的用户主权不被洗劫。 +* **复合验证**:结合低敏感隐私监测(步数、心跳、交互频率)与紧急联系人人工核实。 + +### 3.2 已释放 (Released) 与自动化交付 +* **影子代理 (AI Proxy)**:在 **TEE (可信执行环境)** 中运行,AI 生成结构化的《数字遗产继承指南》并主动推送给指定的继承人。 +### 3.3 暂停订阅与恢复机制 (Suspension & Recovery) +* **睡眠态 (Sleep Mode)** :用户可主动触发“暂停订阅”。 + + * **服务静默**:进入此状态后,系统停止主动心跳监测与 AI 资产分拣。 + + * **物理存续**:得益于多重存储体系(Arweave/Filecoin),核心密文数据依然在底层网络物理封存,不受订阅状态影响。 + + * **唤醒逻辑**:用户随时可通过身份验证(S0/助记词)补缴欠缴的维护成本,一键恢复至“活跃态”。 + +* **睡眠态下的极端提取**:若用户在睡眠态离世,持有 S2 的继承人仍可发起提取请求。系统将引导继承人结算欠费后,进入释放流程。 +--- + +## 4. 永续性治理:社区共治与故障转移 +* **4.1 数字信托基金会**:独立法人实体,管理存储基金与分片安全。 +* **4.2 智能故障转移 (Smart Failover)**:区块链智能合约实时监测商业实体活跃度。若异常超过阈值(如心跳丢失),系统控制权自动移交给 **社区自治组织 (DAO)** 接管,确保服务永不宕机。 + +--- + +## 5. AI 应用层:智能管家 +* **5.1 影子网关**:AI 辅助处理日常任务,但不触碰核心密文,保障隐私边界。 + +--- + +## 6. 开发者生态:开放 API +* **开放保险柜 API**:支持第三方应用(钱包、密码管理等)接入,共用协议与资源,共享产生的收益分润。 + +--- + +## 7. 经济模型:差异化分级与储备池 +### 7.1 服务等级体系 +| 等级 | 持久期 | 提取费 | 法律服务能力 | 增值特性 | +| :--- | :--- | :--- | :--- | :--- | +| **Standard (L0)** | 10 年 | 补足欠费+服务费 | 基础存证+定制咨询 | 提取费支持预付,离线密钥可选 | +| **Premium (L1)** | 20 年 | 免提取服务费 | 电子签名+定制咨询 | 大数据配额,无感继承体验 | +| **Eternal (L2)** | 100 年+ | 免提取服务费 | 全流程公证+定制咨询 | 银行级密钥托管,定期冷备份 | + +### 7.2 财务稳健性:协议储备池 (Reserve Pool) +* **交叉补贴逻辑**:从 L1/L2 等级的高溢价收入中提取 10% 注入储备池。 +* **风险对冲**:储备池用于对冲未来存储成本波动,并作为 L0 级用户的存储违约兜底基金,确保全量用户的数据物理安全。 + +### 7.3 线下服务与定制化咨询 +* **线下冷钱包密钥服务**:针对全量用户开放。L2 用户额外享受受银行级安保监控的离线存储环境。 +* **全量法律服务**:所有等级用户均可预约战略合作律所进行重要文件的法律效力认证及定制咨询。 + +### 7.4 存储超额费用 +* **用户配额外收费**:每个等级都有一定的配额,超过后额外收费 + + +--- + +## 8. 结论 +Sentinel Protocol 建立了以“用户主权”为核心的数字资产传承新范式。通过 **S1 分布式托管** 与 **防串通协议** 杜绝风险,利用 **二次锁定机制** 保护失能主权,结合 **协议储备池** 实现经济长效,为人类文明的数字资产提供了一个可信、永续、合法的避风港。 + +--- +**哨兵协议:守护你的数字资产,直到主权再次被唤醒。** \ No newline at end of file diff --git a/zh-CN/technical/README.md b/zh-CN/technical/README.md new file mode 100644 index 0000000..e69de29 diff --git a/zh-CN/technical/architecture.md b/zh-CN/technical/architecture.md new file mode 100644 index 0000000..6eeb9dc --- /dev/null +++ b/zh-CN/technical/architecture.md @@ -0,0 +1,102 @@ +# Sentinel Protocol (哨兵协议) 技术白皮书 + +## **1. 摘要 (Abstract)** +Sentinel Protocol 提出了一种基于“主权原点 + 递归碎片”的数字资产保护框架。通过 **AI 隐私代理** 降低普惠门槛,利用 **TEE 硬件** 锁定主权执行根,并结合 **多级 SSS 算法** 实现资产的永续传承。核心创新在于:通过 **智能合约死手开关 (Dead Man Switch)** 与 **法定信托存储机制** 的双轨保障,确保在商业公司停止服务后,开源社区能接管访问权限,且数据密文在长历史时段内依然得以物理保留与解密。 + +--- + +## **2. 核心架构:四层防御体系** + +### **2.1 AI 普惠层 (AI Accessibility Layer)** +* **功能小助手**:将高端 Prompt 封装为预设插件,提供自然语言交互入口。 +* **隐私代理 (Privacy Proxy)**: + * **本地拦截**:在应用端执行敏感词过滤,确保私钥片段或实名隐私 **绝不** 离开本地环境。 + * **去标识化转发**:中转代理剔除 IP、设备 ID 等元数据,使第三方 AI 厂商仅接收脱敏后的纯粹指令。 +* **本地语义总结**:端侧 AI 本地总结资产,仅在发现价值目标时提示用户进入加固流程。 + +### **2.2 硬件主权层 (Hardware Sovereignty Layer)** +* **Master Key (K)**:由助记词派生,锁死在手机 **TEE (可信执行环境)** 内。我们不信任软件系统,只信任锁在芯片里的数学。 +* **内层加固**:数据在离机前,由 $K$ 完成第一层硬件级内层加密。 + + + +### **2.3 哨兵存储层 (Sentinel Vault Layer)** +* **外层加固**:服务器集群对密文进行二次公钥加密,防御传输风险。 +* **永续存储**:双重加密后的密文托管于 Arweave 等去中心化永久网络。 + +### **2.4 第三方 API 接入层 (Third-Party Integration)** +* **模式 A:独立主权模式 (Standalone)**:第三方应用使用 **独立助记词** 工作。哨兵协议仅作为存储载体和算法套件,逻辑完全隔离。 +* **模式 B:协同共享模式 (Collaborative SDK)**:第三方应用集成 **哨兵加密 SDK**。在用户生物识别授权后,协同共享主授权数据,打破数据孤岛。 + +--- + +## **3. 角色定义与密钥派生体系** + +系统遵循从“数学元种子”到“物理分片”的严密派生逻辑: +* **助记词 (Mnemonic)**:系统的 **元种子 (Root Seed)**,一切密钥的唯一数学起源。 +* **Master Key (K)**:锁死于 TEE 芯片,作为日常主权执行根。 +* **S0 (Redundancy)**:冗余备份片。用户离线(物理打印/U盘)保存,作为最后救济。 +* **S1 (Cloud)**:分布式递归分片,由云端节点托管。 +* **S2 (Heir)**:继承分片。由用户分发给指定的遗产处理人。 + +--- + +## **4. S1 的分布式递归裂解 (Multi-Server Fragmentation)** + +为了彻底消除中心化节点的拖库与合谋风险,$S_1$ 采取“化整为零”的策略: + +### **4.1 二次裂解逻辑** +手机端在生成 $S_1$ 后,不直接上传,而是再次通过 SSS 算法将其裂解为 $n$ 个子分片 ($n \ge 2$):$\{S_{1a}, S_{1b} \dots S_{1n}\}$。 + +### **4.2 节点加密与存储** +* **独立加密**:每个子分片使用对应存储节点的独立公钥进行加密。 +* **分布式存储**:子分片分别分发至地理隔离、逻辑独立的多个哨兵服务器节点。 +* **安全特性**:没有任何单一服务器拥有完整 $S_1$。黑客攻破单点数据库,拿到的仅是“碎片的碎片”。 + + + +--- + +## **5. 业务逻辑流程 (Workflow)** + +### **5.1 数据入库流** +1. **识别确权**:本地 AI 发现信息,征得用户生物识别授权。 +2. **双重加密**:TEE 调用 $K$ 完成内层加固 $\rightarrow$ 服务器执行外层加固。 +3. **递归分发**:$S_1$ 裂解为多子分片,加密后飞向不同地理节点。 + +### **5.2 传承与恢复流** +1. **状态判定**:智能合约监测到失能信号。 +2. **分片归集**:多节点验证合约指令,解密并释放各自的子分片。 +3. **多级重构**: + * **一级重构**:子分片重构出原始云分片 $S_1$。 + * **二级重构**:$S_1$ 与继承人持有的 $S_2$(或冗余片 $S_0$)合成 Master Key (K)。 +4. **解密资产**:利用 $K$ 剥离内层加密,获取原始资产。 + +--- + +## **6. 生存保障与安全总结** + +### **6.1 生存保障 (The Great Survival Protocol)** +* **法定信托与续费**:专项信托基金独立于商业实体,确保存储费用在长历史时段内的物理有效性。 +* **死手开关 (Dead Man Switch)**:一旦商业公司失能,智能合约自动释放密文索引与节点私钥,开源社区接管访问。 +* **开源自救**:用户通过开源工具,配合 $S_2/S_0$ 本地还原 $K$,即便官方消失也能找回数据。 + +### **6.2 安全性总结 (Security Highlights)** +* **抗拖库 (Anti-DB Leak)**:云端 $S_1$ 碎裂化存在,单点沦陷无意义。 +* **隐私主权化**:Privacy Proxy 物理隔离 AI 侧写风险。 +* **唯一性与鲁棒性**:$K$ 锁死 TEE,且系统在部分节点掉线时依然能重构数据。 + +--- + +## **附录:技术术语表 (Appendix: Glossary)** + +| 术语 | 通俗定义 | 在本协议中的角色 | +| :--- | :--- | :--- | +| **TEE (可信执行环境)** | 手机芯片里的“独立保险箱”。 | 存储主密钥 $K$,防止即便手机中毒也被盗取密钥。 | +| **SSS (秘密共享算法)** | 就像古代的“虎符”,拆开是碎片,合拢是权力。 | 将主密钥拆分为 $S_0, S_1, S_2$,实现容灾备份。 | +| **Mnemonic (助记词)** | 系统的“元种子”,生命中最重要的单词。 | 恢复一切资产的最高权限根源。 | +| **Privacy Proxy (隐私代理)** | 你的“数字替身”,替你和 AI 说话。 | 拦截本地敏感信息,抹除 IP/设备 ID,防止身份泄露。 | +| **Arweave** | 一种“永不磨灭”的数字石碑。 | 永久托管加密密文,解决传统云盘倒闭后的数据丢失问题。 | +| **Recursive Sharding (递归裂解)** | 就像把碎纸机出来的纸片再撕碎一次。 | 确保存储节点即便被盗,也拿不到完整的云分片 $S_1$。 | +| **Dead Man Switch (死手开关)** | 如果我不打卡了,协议自动执行。 | 判定商业公司状态,若倒闭则将解密权限移交社区。 | +| **Legal Trust (法定信托)** | 一份受法律保护的数据“维护基金”。 | 确保存储费用持续缴纳,不因公司破产而断缴续费。 | \ No newline at end of file diff --git a/zh-CN/technical/glossary.md b/zh-CN/technical/glossary.md new file mode 100644 index 0000000..8bf063d --- /dev/null +++ b/zh-CN/technical/glossary.md @@ -0,0 +1,12 @@ +## **附录:技术术语表 (Appendix: Glossary)** + +| 术语 | 通俗定义 | 在本协议中的角色 | +| :--- | :--- | :--- | +| **TEE (可信执行环境)** | 手机芯片里的“独立保险箱”。 | 存储主密钥 $K$,防止即便手机中毒也被盗取密钥。 | +| **SSS (秘密共享算法)** | 就像古代的“虎符”,拆开是碎片,合拢是权力。 | 将主密钥拆分为 $S_0, S_1, S_2$,实现容灾备份。 | +| **Mnemonic (助记词)** | 系统的“元种子”,生命中最重要的单词。 | 恢复一切资产的最高权限根源。 | +| **Privacy Proxy (隐私代理)** | 你的“数字替身”,替你和 AI 说话。 | 拦截本地敏感信息,抹除 IP/设备 ID,防止身份泄露。 | +| **Arweave** | 一种“永不磨灭”的数字石碑。 | 永久托管加密密文,解决传统云盘倒闭后的数据丢失问题。 | +| **Recursive Sharding (递归裂解)** | 就像把碎纸机出来的纸片再撕碎一次。 | 确保存储节点即便被盗,也拿不到完整的云分片 $S_1$。 | +| **Dead Man Switch (死手开关)** | 如果我不打卡了,协议自动执行。 | 判定商业公司状态,若倒闭则将解密权限移交社区。 | +| **Legal Trust (法定信托)** | 一份受法律保护的数据“维护基金”。 | 确保存储费用持续缴纳,不因公司破产而断缴续费。 | \ No newline at end of file