原标题:《科普 | 比特币地址的类型和钱包的用法》,作者SatoshiLabs
在追求更好的技术的过程中,一些附属的东西难免会变得有些混乱。虽然比特币地址的格式化方式有了很大的变化,但真的不是普通人需要关心的事情。比特币在过去几年中使用了多种标准,有时同时使用,这使得这些奇怪的字符串更加可怕。
不同类型的比特币地址基本上是交叉兼容的,也就是说任何一个地址上的资金都可以发送到其他地址。如果您在向某个地址发送资金时遇到问题,很可能是您的钱包客户端出现了问题。只需尝试升级您的钱包,以支持下述地址类型。
一般来说,你使用的钱包软件会帮助你管理你的地址,防止你向无效地址发送资金。但是,各种钱包的做法可能并不一致。Trezor Suite app最近发布了公测版,可以防止你向无效地址汇款,支持所有常用的地址类型,帮助你避免多付费用;这最后一个问题在流行的钱包软件中非常普遍,尤其是在网络繁忙时期。
不同类型的比特币地址是什么样子的?要舒适地发送和接收比特币,你需要知道两件事:如何识别有效地址,以及你应该使用哪种类型的地址。
大多数情况下,您应该倾向于使用本机隔离见证地址(即所谓的“Bech32地址”)。这种类型的地址总是以bc1开头。这种地址是最好的,因为它在结构化交易时使用数据的效率最高,所以手续费也最低,因为比特币的手续费是按照交易的数据量来定价的。
原始隔离见证Bech32的地址如下所示:
BC 1 QJ 89046 x7 zv 6pm 4n 00 qg qp 505 nvljnfp 6 xfznyw
但是,现在并不是所有的钱包软件都支持Bech32格式。更常见的地址格式是“支付给脚本哈希(P2SH)”地址,也称为“嵌套隔离见证地址”。从交易成本来看,它的效率也比传统的地址类型高,而且因为是3开头,所以一眼就能认出来。如果您不确定事务的目标地址是否支持隔离见证,则嵌套隔离见证地址通常支持它。
证人P2SH的地址长这样:
3 emu h8 uh9 exe 7 axgyaebsc 2v duddkkdqwk
如果您使用的是较旧的钱包软件,您可能需要使用传统的“支付到公钥哈希(P2PKH)”地址。它被称为传统地址,因为它被认为是早期技术的残余。一般来说,这种称呼会花费更多,但还是通用的。你可以通过一个地址是否以1开头来判断这个地址是否是P2PKH地址。
传统的P2PKH地址如下所示:
1 MBE qfmho 9 b 69 kcffa 6 ybr 7 bqx 4 nzjfqq 9
您应该养成每次启动事务时检查目标地址的习惯,以确保目标地址没有被篡改。虽然地址的开头可以帮助你识别这个地址的类型,但是地址的长度也会随着类型而变化。Bech 32地址有42个字符3354,是最新的地址类型——,而P2SH和P2PKH地址只有32个字符。
什么是可以接收资金的有效比特币地址?所有类型的地址都来自同一个来源,即助记符(也称为“种子词”)。下面是一个种子字的示例,所有三种类型的地址都可以从该种子字中派生出来:
温柔的融化早晨母亲惊喜坐落镜头牛肉云查询真实感受
借助助记符,你可以创建一个有效的比特币收款地址。任何类型都可以,只要你的钱包软件支持。使用Trezor套件,只需点击几下鼠标,就可以生成上述任何类型的地址。
-使用“帐户”页面侧边栏中的菜单“添加新帐户”
由于比特币发展和升级的特点,随着时间的推移,你可能会遇到更多的地址类型,但所有的地址都是向后兼容的。Bech32地址可以毫无顾虑地向P2SH或P2PKH地址发送资金。反之,也可以用传统地址向Bech32和P2SH地址发送资金;但是,如果您使用的是较旧的钱包软件,该软件可能无法识别Bech32和P2SH地址,从而阻止您发送它,即使该交易可能会成功。只是保护机制过时的问题,不是比特币的问题。你只需要升级软件,这个交易就会通过。
当你有疑问时,你可以放心地使用传统的称呼,因为它拥有最广泛的支持。虽然你使用的钱包软件可能会给你一些限制,但只要它允许你签名和发送交易,你就没什么好担心的。比特币地址是交叉兼容的,每种类型的地址都可以向任何类型的地址发送资金。为了最大的灵活性和最少的混乱,请升级到Trezor套件,在这里您可以完全控制任何类型的地址。
为什么地址类型一直在变?在这里解释的地址类型中,P2SH和Bech32类型都与隔离见证的升级有关,隔离见证是事务格式的升级,可以将更多的事务放入一个块中,提高网络的吞吐量。这也意味着,只有从与隔离见证兼容的地址(如P2SH、Bech32地址)发起交易,才能享受到隔离见证提供的好处;此外,接收地址的类型并不重要。从隐私的角度来看,确保交易中剩余的加密货币返回到同一类型的地址(作为发送方)是很重要的。Trezor套件会自动为您处理。
如何获得比特币地址新人可能会对如何获得一个可以收藏的地址感到困惑。很简单。你只需要下载一个钱包软件,比如这个推荐列表里的。钱包软件会为你生成一个助记符,用这个助记符生成一个可用的地址显示给你。更好的方法是每个地址只使用一次,不管是收款还是发账号。因为一个助记符可以生成无数个地址,所以不需要担心地址不够。这种做法将为您提供额外的隐私保护。
如果你有一个Trezor硬件钱包,你可以使用Trezor套件桌面软件来创建和管理比特币地址。这些地址中使用的助记符是在你的Trezor硬件中生成并保存的,所以别人看不到你的助记符,也无法复制你的钱包。您还可以在Suite中为每个交易直接生成一个新地址。
找到你的比特币收款地址如果你想把比特币发到你的钱包里,你需要确定你的收款地址。在Trezor套件中,您需要选择您希望接收资金的帐户,然后单击“收集”按钮。然后,您可以看到一个列表,其中包含您之前生成的活动地址,以及最新未使用地址的预览。点击“显示完整地址”查看最新未使用的收款地址。点击后,请检查屏幕上显示的地址是否与您的硬件钱包设备上显示的地址一致,然后您可以复制此地址并将其发送给向您发送帐户的人。
如你所见,这里我们使用bc1开头的Bech32地址,但除非资金的发送方也使用BECH32地址或P2SH地址,否则他们无法享受SegWit提供的低手续费。始终使用Bech32地址发送账户,可以节省交易费用。
如果这是您的第一次收款,建议您在转移所有资金之前发送测试交易;这样做似乎有点太小心了,但是对于刚进入这个世界的朋友来说,可以抵消不确定性。尝试发送少量的比特币(如丛中的金额)来测试你的账单地址,耐心等待这个测试交易的确认后再发送更多的资金。
如何将比特币寄到一个地址当你需要向某人支付比特币时,你只需要得到对方提供的收货地址。使用Trezor Suite,只需移动到帐户页面的“发送”栏,输入对方的地址即可。然后,你要检查文本框中的字符和你一开始得到的地址是否一致,因为你的电脑剪贴板总有机会被恶意软件劫持。
输入地址后,设置您愿意为此交易支付的手续费。更高的手续费会促使矿商先打包你的交易,这样对方会更快收到账户。下图中,我们使用Trezor Suite建议的最高手续费,这样在10分钟之内,我们就可以将交易链起来(这是比特币网络所能做到的最快速度)。
查看自己交的手续费是个好习惯。一些钱包软件的自动设置会大大高估手续费。即使在繁忙的时候,你需要支付的手续费也就几块钱,不会高多少。如果钱包建议的费用在你看来过高,你可以寻找高级选项,自己输入一个值。互联网上有很多工具可以帮助你看到发送交易的用户支付的费用有多高,比如这个网站的第二张图。从下图可以看出,交易所支付的交易费用大多在50丛/字节以下,所以Trezor Suite建议的51丛/字节应该可以在10分钟内链接。
怎么取回发到错误地址的比特币?
在大多数情况下,如果地址无效,发送给错误收件人的比特币将无法找回。
极少数情况下,如果你知道你交易的目标地址(有效地址)是谁的,可以尝试联系他。运气好的话,TA会愿意把资金寄回给你。
如果两种方法都不行,最后一种方法就是用OP_RETURN给不小心收单的地址发消息,描述你的错误,要求对方善意归还。也很可能会失败,所以防止你把资金汇错地址的方法永远是一遍又一遍的检查,一遍又一遍的检查交易的目标地址是否有误,然后再按发送键。
可悲的事实是,尽管许多钱包软件在识别有效地址方面做得很好,但仍然有用户将资金发送到错误类型的地址,例如比特币到一个莱特币地址。这种错误有些钱包是检测不出来的。在这种情况下,网络无法认定这是一笔错误的交易,因为从钱包的角度来看,这笔交易与其他交易没有区别,也是一笔有效的交易。在这种情况下,能否拿回你的钱取决于你的地址属于哪个网络。如果你把资金发到一个莱特币地址,只要你有接收地址的私钥,你应该还是能拿回你的比特币的(即使是莱特币地址)。但如果你没有那个地址的私钥,几乎没有找到的可能。如果发生这种情况,你将不得不为此付出代价。另外,请记得换个好点的钱包。
(译者注:这里还有一个解释。用户不可能通过这种方式将比特币发送到莱特币区块链。只不过这些比特币被发送到了一个与已知莱特币地址重合的比特币地址。并且一些区块链地址是通用的,即有效的莱特币地址也可能是有效的比特币地址。所以,如果你有生成这个莱特币地址的私钥,就意味着你可以控制同一个比特币地址并拿回来。但是如果你填写一个不常见的区块链网络的地址,你就没那么幸运了。)