主页 > imtoken冷钱包官方 > 软硬钱包介绍

软硬钱包介绍

imtoken冷钱包官方 2023-01-17 12:20:19

刚接触比特币和加密货币的人可能听说过它需要保存在一种叫做“钱包”的东西中[1],但是当他们开始搜索它时,他们会遇到许多不同的钱包概念,例如“手机钱包” ,“桌面钱包”,“软件钱包”,“硬件钱包”等。本文将解释两个最重要的概念“软件钱包”和“硬件钱包”。 但在这个过程中,难免会穿插一些钱包概念和使用常识,请耐心等待,都是必须的。

需要指出的是,本文主要介绍比特币钱包的相关特性。 它与其他加密货币有共性,但它们很少相同。 出于安全考虑,请将其视为对比特币钱包概念的介绍。

什么是“软件钱包”,什么是“硬件钱包”?

顾名思义,软件钱包是比特币钱包的软件实现,而硬件钱包是实现部分钱包功能的专用硬件,其特点是不能联网,数据传输方式有限。

按照这个分类,上面提到的“手机钱包”、“桌面钱包”甚至“浏览器钱包”都是软件钱包,其特点是假设它们将运行在网络和通用设备(如手机)上和计算机) ) 并提供比特币保管和转移的完整功能。 为什么这里要强调“全功能”呢? 因为硬件钱包不能提供“完整”的功能,所以必须配合软件钱包使用。 为什么? 继续阅读。

软件钱包示例(不推荐使用)(欢迎补充):

硬件钱包示例(不推荐使用)(欢迎补充):

梯形,Trezor

那么什么是比特币钱包? 它包含哪些功能?

如果我们将“比特币钱包”理解为“一种帮助用户保管比特币和收发比特币的工具”,它需要具备以下功能才算完整:

存储私钥。 生成数字签名。 构建一个比特币交易。 与比特币网络(中的一个节点)通信的能力。

为什么? 由于比特币是一种电子货币,它使用公私钥系统实现产权登记[2],并使用专用网络(比特币节点网络)同步进行产权登记。

对于比特币网络来说,一个比特币属于一个确定的公钥(严格来说是一个脚本),只有持有这个公钥的私钥,才能为花费这笔钱的交易生成数字签名,才可以花这个钱。 所以钱包一定要有存储私钥的功能,否则无法帮你保管比特币。 最终,你的钱包持有的不是你的资金,而是允许你花费部分资金的私钥。

能力 2 和能力 3 与交易的发送有关,即资金的转移。 比特币交易有特定的格式,如果不能按照这些格式表达转账需求,资金就无法转账。 数字签名也是交易有效性的先决条件。

第四种能力涉及交易的发送和接收。 同样,钱包不持有你的资金,它持有你的私钥。 你肯定会问,我的钱呢? 答案是关于每个公钥下有多少比特币的信息在每个完整节点(运行比特币软件的联网计算机)上都有完整的副本(这就是区块链的作用)。 你的软件钱包只需要和一个比特币节点通信,上报公钥,你就可以知道这个公钥名下有多少钱,相应的就知道你(对应的私钥)可以用多少钱,界面中显示的是你的钱包余额。

“钱包”这个词造成的最大误导是让你认为你的比特币“在那里”,意思是如果你不能再使用这个设备和这个软件,你的钱就没了。 不是这样。 钱包只存储你的私钥。 只要备份好私钥,私钥不外泄,你的钱就不会丢失。

这样,你能看出为什么硬件钱包不是一个完整的钱包吗?

没错,因为硬件钱包是专门设计的不联网的硬件,这意味着它天生就不能直接与比特币节点进行通信,所以从这个意义上说,它并不是一个“完整的钱包”。 (也正是因为如此,目前比特币社区的意见领袖呼吁大家使用“签名者”来指代硬件钱包。)

同理,由于硬件钱包不能直接与比特币节点通信,即预设为配合一定的软件使用,上述构建交易的能力就变得多余,可以通过配套的软件来实现。 因此,硬件钱包只留下了这些功能:

存储私钥。 生成数字签名。 解析比特币交易。

为什么还有上面第3项的功能呢? 继续阅读。

硬件钱包是不是很鸡肋? 为什么我还应该使用硬件钱包?

不,不。

从功能上看,硬件钱包(以下简称“签名者”)无法提供更多的功能,依赖软件钱包来形成一个完整的工具,听起来很无力。 但就安全性而言,情况并非如此。

签名者在安全性方面具有先天优势。 因为不联网,减少了远程攻击的接口; 与始终连接的通用设备(手机和电脑)相比,更不容易被远程攻击窃取私钥。 少得多。 另外,由于是专用设备,我们可以为它设计额外的安全措施,比如暴力自毁机制,减少攻击者在获取到存储介质后暴力拆解、获取、破解存储介质的可能性。签名 。

严格来说,签名者和软件钱包的安全性不能直接比较。 事实上,我们列出的优势是非联网设备相对于联网设备的优势,以及专业设备相对于通用设备的优势。 运行软件钱包的设备也可以保持离线状态,将其用作非指定签名者。 于是,有人发明了一套相应的概念:“冷钱包”和“热钱包”。 前者指未联网的钱包设备,后者指持续联网的钱包设备。 前者可存放大额资金,后者可存放小额日常资金。 根据这套定义,签名者一定是冷钱包,但软件钱包不一定是热钱包——这取决于运行它的设备是经常连接到互联网还是离线。

关键是,有了签名者和软件钱包,我们就可以解锁一种高级模式——观察钱包。 该模型是指软件钱包只保存公钥不保存私钥,私钥完全由签名者保存(存储); 软件钱包只需要公钥来收账和更新余额,当需要发送交易时,交易由软件钱包构建并传递给签名者签名; 既降低了远程攻击的风险,又照顾到了日常使用的便利性。 您必须尝试手表钱包才能知道使用签名者的好处。

同样,这也是签名者保留解析比特币交易能力的原因。 因为使用签名者的假设之一是软件钱包(前端)并不完全值得信赖。 也就是说,当软件钱包显示你需要签署交易A时,它实际上可能会给你签署交易B,所以我们需要在signer中保留解析待签名消息的能力,这样我们就可以跨-证实。

以上考虑也给我们一些选择软件钱包和签名者的小技巧:请尽量选择支持观察钱包功能的软件钱包! 如果可能,请选择可以向您显示要签名的消息的签名者!

你刚才说signer不能联网比特币多签钱包,那么软件钱包怎么给signer发消息呢?

这取决于签名者的硬件条件。

有一些带摄像头的签名者,可以通过扫描二维码读取信息,最方便。 发送交易时,只需使用软件钱包生成待签名的交易(及其二维码表示),然后使用签名器扫码读取信息,再使用软件钱包设备进行扫描签名者签名后的屏幕。 签名的交易被传递到软件钱包,软件钱包将其发送到比特币网络。

一些签名者仅支持使用 microSD 卡进行数据传输。 也就是说,当你使用软件钱包生成要签名的交易时,需要先写入microSD卡,然后将卡插入签名器,签名后拔出microSD卡比特币多签钱包,再插回设备中运行软件钱包,手动导入软件钱包。 想都没想,这种signer更适合搭配桌面(电脑)钱包使用。

还有一些签名者支持使用USB数据线或蓝牙连接,可以在使用特定的桌面钱包或手机钱包时自动完成数据传输过程,无需用户手动导入导出数据。

因此,在选择签名器时,还要考虑自身的使用环境和软件钱包搭配。 同时,也必须考虑便利背后的风险。 毕竟,通过 USB 连接进行的攻击比通过摄像头进行的攻击要多。 这是安全性和便利性之间的权衡。

有什么提醒吗?

尽可能使用仅支持比特币而不支持其他加密货币的软件钱包。

不要误会我的意思,这不是什么比特币神学,它只是一些实用的建议。 无论你持有哪种加密货币,我都建议你使用只支持该加密货币(及其链上资产/应用程序)的软件钱包来存储它。 比特币如此,其他加密货币也是如此。 因为不同的链有不同的特点,开发团队需要潜心研究,为用户提供足够好的产品。 支持多种加密货币的软件钱包可能对每种加密货币的支持有限且粗略。 .

笔者曾经接触过一款大而全支持数十种加密货币的桌面钱包,但它的比特币模块并没有告诉你使用的是哪种地址格式,也不能随意生成和切换比特币地址——开发团队不了解比特币钱包的行业标准; 后来,该钱包也在著名的关闭链的著名风暴中被暴露为安全隐患。

例如,比特币社区非常重视隐私。 鉴于区块链永久保存资金转账记录的特点,大家认为重复使用同一个地址(公钥)会导致很多财务记录堆积在一个地址,使得地址所有者更容易泄露他的真实身份,因此避免地址重用成为优化隐私的基本要求。 但是,为了避免地址重用,需要提供大量的私钥和公钥——而使用大量不相关的私钥对用户备份私钥提出了挑战(你必须备份很多私钥) . 那么比特币钱包行业是如何解决这个问题的呢? 大家提出了BIP32分层确定性钱包标准。 这个想法是我们可以使用一个随机数作为元数据并添加额外的信息来生成大量的私钥(以及相应的公钥和地址)。 一方面,有大量可用地址,可以随时切换。 另一方面,只需要备份原始随机数,因为附加信息是有序的,只要备份原始随机数,后面的就很容易恢复。 所有私钥。 原始随机数称为“种子词”,额外的信息称为“推导路径”。

BIP32 是比特币钱包的行业标准。 几乎所有专门的比特币钱包都支持这个标准。 支持该标准的钱包在收款和找零时会自动生成并使用新地址; 但它不是针对其他加密货币钱包行业普遍遵循的标准。 如果您使用的是不支持BIP32的钱包,您将默认放弃比特币的技术特性和行业积累所提供的隐私保护,您也将默认放弃持有比特币(不是其他加密货币)的能力。 获得的一些好处。 为什么这是必要的?

结语

综上所述,软件钱包和签名者不是竞争关系,不能相互替代。 相反,它们是一种分工合作的关系,各有各的长处和优化方向。

尾注

[1]:有人正确地指出,使用术语“钱包”来描述此工具是一个方便的比喻,并不完全准确,请参阅:。 但我在这里还是用这个词,因为它仍然是读者可以搜索到最多信息的东西,因此最需要解释。

[2]:想必有些读者会疑惑这是怎么回事。 这里需要说明的是一种叫做“数字签名”的技术。 使用这种技术,您可以使用一串随机数(称为“私钥”)生成另一串随机数(称为“公钥”)。 从此你只需要把公钥给别人看,你就可以用一段数据(叫做“数字签名”)向别人证明你持有这个公钥的私钥(因为这个签名只有知道私钥才能算出来),别人不能从公钥和签名中推导出你的私钥。 可以想象,由于签名不可伪造,公钥可以成为某种意义上的“身份”,而私钥就是使用这个身份的“凭证”; 身份可以做的事情很多,持有资金就是其中之一。 这就是比特币所有权背后的理念:比特币资金是在公钥下注册的,知道公钥的私钥是花费这些比特币的充分必要条件——你不能在不知道私钥的情况下花费它们,知道了这个就可以花费私钥——具体操作是为一笔比特币交易生成一个数字签名(证明你知道某个私钥)。 这就是为什么绝不能暴露私钥的原因,因为公钥是使用私钥导出的。 一旦别人知道了你的私钥,他们也就知道你有多少钱,怎么花。 你所有的钱都已经转移了。