自行验证
你不必凭信任去接受"non-custodial"。Shieldz 在密码学上即为non-custodial,而非靠承诺,下面正是它为何无法转移你资金的原因,以及如何自行核对。
Shieldz 至多只看到一个公钥
为了收款,Shieldz 生成由你掌控的地址并监听它们,而这只需要你的公钥。你给它以下之一:
- 一个普通的收款地址 (例如你的
0x…EVM 地址), - 一个用于 Bitcoin 的扩展公钥 (xpub / zpub),或
- 一个用于屏蔽式 Zcash 的统一全查看密钥 (UFVK)。
这些都无法花费。一个 xpub 或一个查看密钥让你能够派生地址并监听链,但它在数学上无法签署一笔交易。所以 Shieldz 能生成你的收款地址并告诉你资金何时到账,而这就是它能做的全部上限。它从不拥有、索取或存储私钥、种子短语或助记词,也没有任何字段供输入。(开发者 API 密钥只以哈希形式存储,从不以明文存储。)
地址是确定性派生的,自己重现它们
收款地址使用标准的、公开的算法:用于 Bitcoin 的 BIP-84 原生 segwit (从你的 xpub 在 m/0/i 处),用于屏蔽式 Zcash 的 ZIP-32 多样化统一地址 (从你的 UFVK),以及用于 EVM 稳定币的你自己的地址。因为派生是确定性的且只使用你的公钥,Shieldz 无法替换成它自己的地址,它展示的每一个地址你都可以重新派生并验证。
派生过程是开源的
Shieldz 所用的确切 BIP-39 / BIP-84 / ZIP-32 派生过程是公开的、采用 MIT 许可,并针对规范的 BIP "abandon" 测试向量做过测试:github.com/LeoFinance/shieldz-key-gen。用你自己的 xpub 运行它,确认地址相符。
// BIP-84, derive receive address i from your account xpub (public key only)
import { HDKey } from "@scure/bip32";
const node = HDKey.fromExtendedKey(yourAccountXpub); // no private key involved
const child = node.deriveChild(0).deriveChild(i); // m/0/i, public derivation
// → bech32-encode child.publicKey to get the bc1… address Shieldz will show
这对你意味着什么
- Shieldz 无法转移、冻结或扣押你的资金,不是"不会",而是不能。
- Shieldz 不持有任何余额,所以没有提现步骤,也没有"支付一笔费用以释放你的资金"的陷阱。
- 一笔已确认的收款是最终的,并且已经在一个只有你才能花费的wallet里。
更多:Shieldz 安全吗? · 工作原理