SuperAPI AI 工具集

walrus-data-security

数据与分析

查看项目

更新于 10-16 09:33

技能介绍

用途:讲解如何在 Walrus 上安全存放隐私或敏感数据。Walrus 原生只提供数据可用性与完整性保证,不提供机密性:所有 blob 都是公开的,持有 blob ID 的任何人都能读取,blob ID 本身不是秘密,也无法把 blob 固定到某个节点、区域或司法辖区。要保密,必须在客户端先加密再上传,上传的是密文。

主要能力:介绍加密前存储的思路,并推荐 Seal——一种阈值加密系统,没有单一主体持有完整解密密钥,通过链上 Move 合约定义谁可在何条件下解密。Seal 与 Walrus、Sui 集成:本地加密、密文存入 Walrus、访问规则定义在 Sui。可用场景包括敏感链下内容、时间锁定或代币门控数据、受信任方之间的共享数据。此外介绍 Nautilus,用可信执行环境做安全链下计算,目前支持自管理 AWS Nitro Enclave,证明通过 Move 合约在链上验证。

使用方式:安装 npm install @mysten/seal;用 SealClient 初始化(需 SuiClient 与网络);为 Seal 策略检查构建 PTB 时必须先调用 tx.setSender(address),且发送方须与请求解密权限的地址一致,否则报错 Transaction was not signed by the correct sender。解密需钱包多次签名,部分钱包支持会话签名以避免重复确认,否则会提示 Connected wallet does not support Seal session signing。

适用场景与限制:Walrus 写阈值需 2/3 诚实节点,读阈值只需 1/3 节点可用;写入后有可观测的可用性点(PoA)事件,PoA 前可用性由用户负责,之后由 Walrus 在存储期内维护。编码错误会产生不一致证明,读取返回 None。数据主权方面无法选择存储节点或地区。删除不保证隐私,缓存、历史节点或他人下载的副本可能仍存在,加密是唯一可靠手段。常见错误包括:未加密存储敏感数据、误以为 blob ID 是秘密、忘记 tx.setSender()、依赖删除保护隐私、混淆 Seal 与 Walrus 原生加密、钱包不支持会话签名、未指定正确的 Seal 密钥服务器对象 ID(测试网与主网不同)。Seal 不适合 HIPAA/PHI 或政府机密级等强监管数据。若不确定,请查阅 Walrus 数据安全文档与 Seal SDK 文档。