自行验证,Shieldz 在密码学上即为non-custodial

自行验证

你不必凭信任去接受"non-custodial"。Shieldz 在密码学上即为non-custodial,而非靠承诺,下面正是它为何无法转移你资金的原因,以及如何自行核对。

Shieldz 至多只看到一个公钥

为了收款,Shieldz 生成由你掌控的地址并监听它们,而这只需要你的钥。你给它以下之一:

这些都无法花费。一个 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 安全吗? · 工作原理