重要公告:关于使用ZT地址的声明
建议所有使用此软件库的人升级到最新版本 v1.2.0 ,这个版本会修复这个漏洞.
在v1.2.0 之前的Zencashjs版本依赖于Horizen地址的前两个字符的字符串比较来确定转账的接收地址类型(P2PKH或P2SH)。 由于在Horizen中选择了base58地址前缀,因此存在针对测试网 P2PKH和主网P2SH地址的地址前缀冲突的可能性,testnet P2PKH地址以“zt”开头,而主网P2SH地址的子集也可以以“zt”开头。
在v1.2.0之前的Zencashjs版本将发送到主网上的“zt”P2SH地址的转账解释为错误的P2PKH转账。任何资金若发送到以“zt”开头的主网P2SH多重签名地址,都将被发送到错误的地址并丢失。
受到影响的Horizen钱包有:
Arizen (轻钱包)<= v1.2.0
Sphere by Horizen (Sphere的轻钱包模式) <= 1.0.1-beta
Zen Mobile Wallet (移动端钱包)<= v0.0.14
预计在未来几天内,Horizen钱包会在维护的时候更新版本。
不受影响的Horizen钱包有:
Horizen Desktop GUI Wallet “Swing Wallet”(Swing钱包)
Sphere by Horizen in full node mode(Sphere重包钱模式)
Horizen command line client(指令型钱包)
Myzenwallet.io already patched (已打补丁)
缓解策略
在受影响的钱包的更新版本可用之前,用户不应将任何交易发送到主网上以“zt”开头的地址。 预计未来几天内,Horizen维护钱包时,会更新版本修复此问题。
对于使用多重签名地址进行存款的交易所,建议仅使用以“zs”或“zr”开头的P2SH地址,并放弃使用以“zt”开头的任何新生成的地址。 或者暂停充值,直到受影响的钱包的固定版本被用户广泛采用以防止其用户的资金损失。