工作原理

加密云盘是怎么做到只有你能打开文件的

Onchain Drive 把三件事组合在一起:钱包登录、浏览器端加密、Walrus 去中心化存储。下面按一份文件从上传到取回的过程,说明每一步发生了什么、平台能看到什么。

加密后的文件被纠删码切片、分散保存到 Walrus 去中心化存储网络多个节点的示意图

1. 钱包登录:不用注册,签名不花 gas

打开应用后连接浏览器里的 EVM 钱包(MetaMask、Rabby、OKX 等,支持 EIP-6963 的钱包都会列出来),对一条 EIP-4361(Sign-In with Ethereum)格式的登录消息签名。服务器验证签名后发一个 7 天有效的会话。

整个过程不需要邮箱、手机号或密码,签名不是交易,不花 gas。钱包地址就是你的账号。

2. 派生加密密钥:密钥只在你的浏览器内存里

登录后再签一次名:钱包对一条固定的消息签名,浏览器用 HKDF-SHA-256 从签名派生出一把 AES-256 主密钥。同一个钱包在任何设备上签同一条消息,得到的都是同一把密钥,所以换设备只要用同一个钱包登录。

新账户的这条消息是绑定网站域名的 SIWE 格式,在仿冒网站上签名时钱包会提示域名不符。主密钥只存在当前页面的内存里,不上传、不保存;服务器只记录一个由密钥派生的公开校验值,用来发现钱包签名不稳定,不能用来解密。

3. 浏览器端加密:AES-256-GCM 端到端加密

文件离开你的设备之前就已经加密,平台、上传通道和存储节点拿到的都只是密文。

  • 每个文件随机生成一把文件密钥,用 AES-256-GCM 加密文件内容。
  • 文件密钥和文件名再用你的主密钥加密,所以连文件名平台也看不到。
  • 10MB 以上的大文件在浏览器里按 64MiB 分块,每块单独加密;块序号和总块数写进 GCM 的附加认证数据,调换顺序或缺块都会解密失败。单个文件最大 500.0 MB(用 SUI 付款时 2.00 GB)。
  • 加密后的密文包自带解密需要的信息(除了你的钱包签名),格式固定,不依赖平台数据库。

4. 存进 Walrus 去中心化存储网络

Walrus 是建立在 Sui 区块链上的去中心化存储网络。密文上传后,Walrus 用纠删码把它编码、切片,分散保存在许多由不同运营者运行的独立存储节点上;即使部分节点下线,也能从其余节点完整恢复。

每份数据在 Sui 上有一个 Blob 对象,记录它的 blobId 和到期时间,任何人都可以在链上查到。一次上传 2 个以上、合计不超过 9.5MB 的小文件会自动打包成一个存储单元,只付一份存储开销。

用 Base 上的 USDC 付款时,密文经平台的上传服务写入 Walrus;用 Sui 上的 SUI 付款时,浏览器把密文直接发给 Walrus 官方上传中继,不经过平台服务器,适合大文件。两条路上传的都是密文。

5. 按用量付费:下单前逐项列明,链上核对

选好文件和存储时长后,会先看到报价单:综合成本(存储费、兑换费、链上 Gas 费)加技术服务费,存储费按 $0.023/GB/月 和文件在 Walrus 网络上实际占用的空间计算。

用 USDC 付款时,Base 上的收款合约会按公开的收费规则核对报价里的每一项金额,对不上交易就会失败;也可以在 Sui 钱包里用 SUI 付款。没有订阅,一笔订单最多 100 个文件、合计 4GB,存储最长预付 2 年,到期前可以续期。

6. 加密分享链接:对方不用钱包

想把某个文件给别人,可以生成一条分享链接,形如 /s/<分享 id>#k=<文件密钥>。文件密钥放在 # 后面,浏览器不会把这一段发给服务器,所以平台依然看不到内容。

链接里的密钥只解得开这一个文件,不会暴露你的其他文件。收到链接的人不用钱包就能在浏览器里下载解密;分享可以设 1 天、7 天、30 天或不限期,随时撤销(撤销后链接失效,但对方已经下载的副本无法收回)。

7. 不被平台锁定:不经过本站也能取回

文件的 blobId 记录在 Sui 链上,密文包的格式自带解密所需的信息。只要有 blobId 和原来的钱包,就可以直接从 Walrus 网络读取密文,在本地用钱包签名派生出同一把密钥解密,不依赖 Onchain Drive 的服务器。

8. 平台能看到什么、看不到什么

为了提供上传、计费和分享,平台会记录一部分信息;文件内容和密钥始终只在你手里。

  • 看不到:文件内容、文件名、你的主密钥和文件密钥、分享链接 # 后面的密钥。
  • 能看到:你的钱包地址、文件的大小和个数、上传和到期时间、blobId、订单和付款记录。
  • 需要注意:钱包就是钥匙,平台不保存密钥,也无法替你找回。请备份好钱包助记词,不要在仿冒网站上签名。
  • 存储不是永久的:按时长预付,到期前要续期,到期未续期的数据可能被 Walrus 网络清除。

常见问题

Onchain Drive 是端到端加密的吗?

是。文件和文件名在你的浏览器里用 AES-256-GCM 加密,密钥由你的钱包签名派生,只在浏览器内存里。平台和 Walrus 存储节点只能看到密文。

文件存在哪里?

加密后的文件存在 Walrus 去中心化存储网络上,经纠删码分散保存在许多独立节点;每份数据在 Sui 链上有对应的 Blob 对象,记录 blobId 和到期时间。

可以不经过 Onchain Drive 取回文件吗?

可以。只要有文件的 blobId 和原来的钱包,就能直接从 Walrus 读取密文,用钱包签名派生出同一把密钥在本地解密。

存储能保存多久?

存储按时长预付,最长约 2 年,到期前可以续期。这不是永久存储,到期未续期的数据可能被 Walrus 网络清除。

开始加密存储