比特币的找零机制——脑钱包
开始用脑钱包时,我是想这样用它的:每次收款就在blockchain.info上查看到帐情况,需要给别人付款转账的时候再把私钥导入到Armory,使用完了就删除掉整个Armory的钱包文件,绝对不让脑钱包私钥在网络上多逗留一刻。这很合理,长期把脑钱包私钥放在钱包文件那就不叫脑钱包了。
那是我第一次把脑钱包私钥导入到 Armory, 我完成了一笔1BTC的转账,正想把存着我的脑钱包私钥的Armory钱包删除,但不知道怎么的我觉得应该点开查看我的脑钱包地址下的余额是否正确。这一查看吓死我了:我发现我导入的脑钱包的地址上的BTC余额为零!钱包地址本那里多了一个标有Change字样的地址,其余额正是我脑钱包地址应该有的。
瞬间我就石化了:我只是转了1BTC出去,它怎么没经我同意就把我脑钱包上剩下的BTC转到Armory钱包的一个新的地址上?如果我刚刚把Armory钱包文件都删除了,岂不是我的BTC都丢失了?好险!后来我通过查资料,知道这是比特币的找零机制:为了保证隐私(匿名性)客户端默认设置(不只Armory默认是这样,另一个轻客户端Electrum也是)为每转出一笔钱就把剩下的自动转移到钱包里面新的一个地址名下。
这个目的是好的,但是和我用脑钱包的初衷完全背离:我用脑钱包的目的就是想让我的BTC永远的和我的那句暗号绑在一起,现在它给我转到别的地址去了!这太扯了!于是我决定找找看Armory上是否有不找零的设置选项,还真的找到了,终于解决了问题。具体设置如图1.9-1.10:
第一步:通过菜单File点击settings进入设置,把用户模式user mode设置为expert,见图1.9:
图1.9
第二步,转账时选中Use an existing address for change(找零到一个已存在的地址,如果你不选中这个,就会把脑钱包上的余额转移到一个新的地址上),再选中Remember for future transactions(记住为以后转账默认设置,选中这个以后就不用在重复设置了。)见图1.10:
图1.10
通过上面的设置,我们就可以避免脑钱包上的比特币糊里糊涂地被找零到新地址上了。