时间:2023-06-17|浏览:187
但其实并不必须这样做,因为只要每个公钥使用两次,一次是接收比特币,一次是花掉它,用户就可以获得大量财务隐私。更好的做法是,在接收支付时使用一个新的公钥或唯一地址,或使用CoinJoin技术和Mergeavoidance创建找零输出,这样就难以使用区块链来跟踪用户支付或接收比特币了。
避免重用密钥还可以提高安全性,防止攻击者从公钥或签名比较中重建私钥。唯一的非重用的P2PKH或P2SH地址通过隐藏公钥防止第一个类型的攻击,直到这个地址上的比特币被花费出去。如果无法在一两个小时之内从公钥重建私钥,那么该攻击也将无用,因为比特币已经被花出去且无法在区块链上修改。唯一的非重用的私钥进行一次签名以防止第二种类型的攻击,攻击者无法得到这个私钥第二次签名的结果,从而无法使用基于比较的攻击。
因此,从隐私和安全的角度来看,我们建议创建的应用程序避免密钥重用,并在可能的情况下劝阻其他人不要地址重用。如果应用需要提供一个固定的URI来收款,请查看bitcoin:URI部分。