安全
LocalUSDT 的设计确保平台永远无法访问您的私钥、无法阅读您的消息、无法从托管中提取资金。以下是系统每层的工作原理。
自托管钱包
创建账户时,浏览器使用 Web Cryptography API 生成加密安全的主密钥。此主密钥是账户中一切的根 — 钱包私钥和消息密钥都从中派生。
您的密码永远不会离开设备。它通过至少 100,000 次迭代和随机盐的 PBKDF2 转换为加密密钥。此延展密钥使用 AES-256-CBC 加密主密钥。加密后的主密钥存储在我们的服务器上,但没有您的密码则毫无用处。
主密钥不可更改。从中派生两个密钥:身份密钥(用于 secp256k1 曲线上的 ECDSA 数字签名)和加密密钥(用于使用 AES 加密其他私钥)。更改密码只是用新的延展密码短语重新加密主密钥。
认证和双因素
双因素认证是强制性的,在加密主密钥传递到浏览器之前进行。这意味着即使攻击者从数据库获取了加密密钥材料,也无法在通过双因素挑战之前尝试暴力破解密码。
基于邮件的 2FA 是默认选项。也支持基于时间的 OTP(如 Google Authenticator)。不支持 SMS 作为 2FA 方式,因为 SMS 不安全。
双因素验证后,登录过程使用密码派生解密密钥并尝试解锁主密钥。成功解密证明所有权。然后浏览器使用身份密钥签署服务器提供的随机数以完成认证。
端到端加密消息
所有交易消息在离开设备前在浏览器中加密。LocalUSDT 传输密文但无法阅读内容。
创建账户时,浏览器生成一批签名的临时密钥对(pre-keys)。这些上传到 LocalUSDT 的密钥服务器,以便其他用户即使在您离线时也能与您发起加密对话。
交易开始时,发起方使用新生成的 taker 密钥和接收方的 pre-key 执行 ECDH 密钥交换。产生只有双方能计算的共享密钥。从共享密钥派生两个额外密钥:一个用于 AES-256-CBC 加密,一个用于 HMAC-SHA256 消息认证。
每次交易对话使用唯一的共享密钥。在争议中与仲裁员分享密钥只会揭示该交易的消息 — 不会影响任何其他对话。
非托管保管
交易中的 USDT 由链上智能合约持有 — 不是 LocalUSDT。智能合约强制执行以下规则:
- 卖方可随时释放托管的 USDT 给买方。
- 买方可取消交易并将 USDT 退还给卖方。
- 仲裁员可在争议时将 USDT 分配给买方或卖方 — 但绝不能自取。
- 平台在任何情况下都无法从托管中提取。
托管合约部署在每个支持的网络上(Tron、Ethereum、BNB Smart Chain)。合约可公开验证且开源。
中心化组件
与任何实际系统一样,部分组件是中心化的。我们相信透明度:
- 信誉和反馈 — 存储在中心化数据库中。
- 报价目录 — 通过中心化服务器托管和搜索。
- 交易元数据 — 金额、货币代码和时间戳未加密存储以使平台正常运行。
- 通知 — 邮件和推送通知由中心化服务提供。
- 密钥服务器 — 公钥和签名的 pre-keys 由中心化基础设施分发。
已知限制
- 丢失的密码不可恢复。如果您丢失密码,任何人 — 包括 LocalUSDT 员工 — 都无法恢复您的账户或钱包。请备份您的凭据。
- 被入侵的账户无法完全恢复。更改密码会重新加密主密钥,但如果攻击者已获取主密钥,他们仍保留访问权限。您需要创建新账户。
- Web 交付信任模型。作为 Web 应用,您的浏览器每次访问时都从我们的服务器下载代码。如果服务器被入侵,攻击者理论上可以提供修改后的代码。我们通过 HTTPS、安全头和完整性检查来缓解这一风险 — 但对于任何 Web 应用,此风险无法完全消除。