干货,加密货币钱包,助记词备份,及其安全详解!

加密货币世界,是一个黑暗森林,风险非常高,安全永远是第一位的!怎么强调安全都不为过,但是常常被用户忽视。

对很多老手,安全风险都是有预期的,也就是认知中是知道他所做的事情,有哪些方面的安全风险,但仍然由于人性的弱点,对安全重视不够而丢掉自己的加密资产。

常规的交易风险,如剧烈的市场波动、合约爆仓、流动性不足等,交易平台(CEX / DEX)风险,新公链/新应用代码漏洞风险,欺诈风险,这些本文不做讨论。这些风险,大多是市场化的风险,高风险带着可能的高收益。

钱包私钥(或助记词)泄露,这个风险可是基本没有啥收益可言。本文重点讨论【钱包安全】,或者叫【私钥安全】,又或者叫【助记词安全】。

1、助记词、私钥、钱包地址之间的关系

无论比特币,还是以太坊,还是其他公链,基本都遵循BIP32BIP39BIP44标准。

BIP32,定义了分层确定性钱包(Hierarchical Deterministic Wallets,简称“HD Wallets”),如下图,父私钥可以派生出子私钥,也就是父私钥能控制其自身以及其派生的子私钥控制的所有资产。

BIP39,定义了私钥种子(Seed,也叫钱包种子)和助记词库的编码。私钥种子的原始形式是二进制串,人很难交互,通过编码成单词,既方便人备份,也方便人传递。

开发人员需要详细了解标准,普通用户确不需要了解的那么多细节。简单起见,先从用户视角说清楚助记词私钥钱包地址三者之间的关系。

一个助记词(Mnemonic),编码成一个钱包种子(Seed),对应着N多个私钥(Private Key);一个私钥对应一个钱包地址(Address),如下图。

比特币每次在发送的时候,都会有一个新地址接收剩余余额,这些地址都是相同的私钥种子(Seed)派生的钱包地址,都受同一个助记词控制,只要你掌握着助记词,你就掌握着所有这些地址的资产,你在接受别人付款的时候,原来的地址继续用于收款,没有任何影响。

2、钱包分类

从安全角度分类,钱包分热钱包、冷钱包。知道上面助记词、私钥、钱包地址之间的关系后,很好定义热钱包和冷钱包。

热钱包,就是私钥是触网(互联网)的,比如各种钱包软件(包括手机钱包软件、电脑钱包软件、浏览器插件钱包软件),使用的时候导入助记词,那么你这个助记词对应的钱包,就是一种热钱包状态使用了。热钱包因为联网了,助记词和私钥就有更高的泄露风险。因此在使用热钱包的时候,你默认其安全性就是较低的,最好不要放你损失不起的资产量。

冷钱包,就是私钥和网络隔离永不触网。也就是助记词在离线情况下生成,并离线保存,并始终和网络隔绝。所以关键点就是,离线生成、离线保存。常见的冷钱包有纸钱包、脑钱包、硬件钱包离线手机钱包等。所谓纸钱包,就是把助记词记录到纸上保存。脑钱包,就是通过各种办法,通过大脑记忆,辅助记住助记词,经验说明,依靠记忆的是很不靠谱的。硬件钱包,是私钥存储在特殊硬件中,不触网,就算链接电脑或手机使用的时候,也是将信息送入硬件钱包,钱包返回经过签名的信息,助记词和私钥本身只在硬件钱包里,没有触网。

3、常用钱包选择

比特币钱包,现在链上活动比较少,主要就是转账,存储比特币等,建议用户直接用硬件钱包比特币官网推荐硬件钱包,推荐的几个硬件钱包品牌,都是老牌子,可以到各自官网去购买。不推荐非官网渠道购买。其中Ledger,钱包软件支持得是最多的,支持的加密货币种类也是最多的。

如果是节点需求,或者开发需求,可以在比特币官网推荐钱包页面进行选择自己需要的钱包体验。

以太坊,以及支持以太坊虚拟机(EVM)的公链,钱包较多。但是现在使用最多的,应属MetaMask,其支持浏览器插件和连接硬件钱包,手机端现在功能比较基础。几乎所有的Dapp,都会支持MetaMask,所以基本能覆盖你的绝大多数需求。如果你有其他需求,可以参考以太坊官网推荐钱包,建议至少打开三个过滤选项,Open-sourceNon-custodialHardware support,其他过滤项,根据自己情况选择体验。

其他非EVM兼容公链,可以公链官网查看支持的钱包,本文会在文末列出知名公链主要钱包。

4、钱包安全(助记词安全)

钱包安全,本质是私钥安全,更本质是助记词安全。从上文的介绍中,我们很容易得出助记词安全中,【助记词生成】和【助记词使用】两个环节中,需要注意的安全事项。本节重点讨论【助记词备份】的安全建议。同时参考下图,以获得一个概览。

4.1、助记词备份的威胁模型

我们已经知道,除了输入助记词到使用的设备中,我们还需要备份助记词。保护备份这个事情本身,就是一个非常重要而较有挑战的事情。要知道,为了帮助人们安全地保管自己的32字节的熵,整整一个行业发展起来。

一方面,如果你的备份只有一份,因丢失、被盗、损坏、其他原因无法获得等因素,导致私钥丢失。这就是所谓的“单点故障”问题,为了清除单点故障,我们需要多份备份,至少应该有两份。如果使用中的设备可以随时导出助记词,那么这个设备中的助记词,可以算一份备份,否则不能算。

另一方面,如果你的备份很容易被攻击者获得(然后窃取你的数字资产),那么多个备份增加冗余的同时减弱了健壮性,让攻击者更容易获得备份。

备份机密信息,避免单点故障保持健壮性,都是两个关键问题,几乎所有的受攻击场景都可以归集于这两个问题。参考下面表格,可以检查你的备份方案,在哪个象限,以及如何改进。

列举一些常见备份方案的缺陷

  • 在线保存,攻击者更容易通过网络获得,健壮性弱

  • 脑钱包、复杂自定义机制,更容易遗忘,而导致单点故障

  • 备份没有告诉家人,只有一个备份,都会导致单点故障

  • 纸钱包,集中保存,保存地被损坏或入侵,也更容易单点故障

根据历史经验总结,离线保存,能大大增强健壮性;在离线保存的前提下,更多的威胁,是来自于单点故障,所以大家要非常重视这个问题。

在你的备份方案中,你需要假设你存放备份之处有可能被入侵,会导致你的备份丢失(自己不可获得)或被盗(攻击者获得),并在你的脑海里做这样的模拟攻击,来检查你的备份方案的安全性。一般用户,可以考虑一次攻击后,还有一道屏障,可供你在发现被攻击后及时处理,以避免损失。高级用户,如大量资产用户、平台或交易所等,需要考虑更多的安全屏障。下面介绍一些不同等级备份方案,供你参考。

4.2、下等备份方案(不推荐)

我们先看看一些常见的应该避免的助记词备份方案。

将助记词存储到网络服务器或联网的设备中,如

  • 将助记词拍照片

  • 将数据同步到云盘

  • 将助记词作为聊天记录发送保存

这些方式都是极其危险的备份方式。

使用“脑钱包”,将自己易于记忆的信息,主动选择一组助记词来作为种子。其实人类是非常匮乏的熵来源。黑产界都会有庞大数量的密码库、助记词库,一直都处在他们的监视之下,一有资产出现,会被立即转走,俗称“撞库”攻击。

有的把助记词分成几个片段,分开保存,但是攻击者获取部分片段,可以展开暴力破解,因为暴力破解难度达到了可完成的程度。

有的自创助记词备份方案,各种算法,但有时候过于复杂,或者没有几个人知道相关信息,也没和你的家人分享,极容易导致单点故障,最终没法获得助记词。

有的会把助记词随机排序,或者随机穿插一些单词。由于助记词有内置校验和(最后一词是用于校验和的),根据已知的有限单词,进行暴力破解,并不困难。

将助记词记在脑子里,是一种非常不靠谱的方案。临时应急记住助记词还可以理解,作为长期策略备份助记词,极易引入单点故障问题。

  • 你可能会忘记助记词

  • 你可能因受伤而想不起来助记词

  • 你可能会死亡,你的继承人无法获得助记词

  • 你可能会被胁迫泄露助记词

4.3、中等备份方案(可选)

助记词密语(passphrase),本质上是 24 词恢复短语之外的附加密码,你使用该钱包时,必须输入这个密码,这常被称为“第25词密语”。攻击者也必须同时知道助记词和这个密码,才能窃取你的数字资产。这本质上跟2/2多签钱包具有相同的安全模型。但是,你要知道在多签钱包中2/2多签是很冷门的,因为它引入了两个单点故障,两部分中任何一部分丢失,你的资产都将丢失。忘记密语而丢失资产也是十分常见的。如果你要选择这种方案,那么清除单点故障,是你必须解决的问题,通常可以增加备份副本,来避免单点故障

4.4、优等备份方案(推荐)

Trezor的Shamir备份,是一种经过严格审查的SSS标准。该方案缺点之一是没有得到广泛支持。需要通过Trezor Model T硬件钱包生成备份和恢复,其他支持该标准的钱包有Keystone和electrum。

助记词异或Seed XOR),是一个绝佳方案。它是将一个24词的助记词,变成两个或多个助记词,这些助记词都是兼容BIP39标准的助记词,也就是说都是有效的钱包助记词。这些助记词,任意组合,通过异或运算组合出的钱包助记词,也都是有效的钱包助记词。你在备份的时候,将你真正使用的助记词,分解成两个或多个助记词,然后将分解后的助记词备份到你喜欢的物理介质上(推荐钢板)。你要恢复的时候,将分解成的所有助记词做异或运算,得到真正使用的助记词。该方案既能带来“第25词密语”和简单分片的安全模型(其实异或运算,每个助记词都保留着同样高水平的熵,安全性更高),又能降低复杂度和合理的推诿说辞(因为每个部分,都是一个有效的钱包助记词)。请注意,该方案本质上,仍然是N/N(如,2/2,3/3)多签模型。需要通过多分解几组,避免单点故障问题,以便你在丢失一块助记词,仍然能恢复你真正使用的助记词。需要关注更细节的,请参考Seed XOR更详细的介绍。当你彻底弄明白这个数学运算(一点都不复杂),你可以通过在草稿纸上做数学运算,进行分解/恢复操作。当然对于没有一点儿二进制计算基础的用户,还是借助COLDCARD硬件钱包来完成分解/恢复吧,购买COLDCARD Mk3就够了,其他不需要购买。

多重签名,是一种理想的密钥方案。M/N(M<N)多签钱包,表示N个密钥中,同时获得任意M个密钥,就可以操作钱包资产,而少于M个密钥被攻击者获取,都不能窃取你的数字资产。例如,1/2多签,两把密钥中任意一把都可以打开,这可以避免单点故障,但是健壮性会削弱。2/3多签,三把密钥中任意两把一起可以打开,该模式比较常用。3/5多签,五把密钥中任意三把一起可以打开,比2/3更多冗余,也是比较常用的。M/N多签的优点(特指1<M<N时),就是它在避免单点故障和保持健壮性两个方面的表现都比较优秀。N/N多签,正如上面提到的,可以增强健壮性,但同时引入更多单点故障,因此比较冷门,如果坚持要用,需充分考虑多副本备份清除单点故障问题。另外,比特币本身支持多签,以太坊(含多数EVM兼容链)可以通过Gnosis Safe智能合约实现多签钱包。

4.5、备份设备

虽然硬件钱包,都会附带几张纸质卡片,并指引你将助记词抄写在卡片上,但这真不是一个好建议,至少对于你要用于存放较多资金的主钱包助记词,绝对不是好建议。现在普遍推荐用金属钢板记录助记词,淘宝上也有很多这样的产品,也不贵,国外细心者还做了测评,点击这里看详情。当然你在购买的时候,收货地址避免使用你家地址或其他存放助记词的地址,取而代之应该使用附近别的代收点,以免地址泄露。

4.6、地理多元性

如果某处存放了物理攻击者窃取资金的全部密钥信息,会引入单点故障。你需要将备份分散在物理上安全且难以找到的地方。有的会考虑保险柜,或存到银行保险柜。总之,异地,首先是防止单点故障,其次是在有多签特性的方案中避免削弱健壮性。所以,异地原则,建议一个地方只存放一份信息

5、总结

以上是梳理了数字货币钱包安全的逻辑,需要你理解后,根据需要来设计自己的钱包助记词安全。

作为普通用户,主钱包建议最低做到:使用硬件钱包,助记词备份做到离线两份副本钢板异地各存放一份副本。

资金量比较大的用户,主钱包建议最低做到:使用硬件钱包,助记词备份做到离线多副本钢板多签异地各存放一份信息。

资金量巨大的用户,当请专业团队提供更全面的安全方案建议。

硬件钱包,必须通过如下官方渠道购买:

1、Ledger

2、Trezor

3、BitBox02

4、Keystone

5、OneKey

附:知名公链主流钱包

Ethereum(含EVM兼容链):MetaMask

Solana:Phantom

Cosmos系:Keplr

Elrond:官方网页钱包

Flow:Lilico

Near:官方网页钱包

Klaytn:官方网页钱包

Thorchain:XDEFI

参考文档:

1、How to Back Up a Seed Phrase

2、HOW TO KEEP MY 24-WORD RECOVERY PHRASE AND PIN CODE SAFE?

Subscribe to Web3Discovery
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.