❝掌握这些,掌握你的加密货币安全。
❞
创建钱包
钱包最最最核心的就是那个私钥(或助记词)。
私钥长这样:
❝0xa164d4767469de4faf09793ceea07d5a2f5d3cef7f6a9658916c581829ff5584
❞
助记词长这样:
❝cruel weekend spike point innocent dizzy alien use evoke shed adjust wrong
❞
注:用以太坊举例,关于私钥/助记词的基础知识请自行扩展。
私钥即身份,如果私钥丢了或被盗了,那么这个身份也就不是你的了。钱包应用其实很多,知名的也不少,我并不打算也不可能一一介绍。不过该手册确实会提到一些具体的钱包,请注意,能被提到的必然是我有基本信任的,但我不担保你在使用过程中可能出现的安全问题或目标钱包可能出现并不在我预期内的安全风险(后文我不会再不断去废话这些,引子里提到的两大安全法则希望你牢记心中)。
钱包从应用分类来说主要包括几种:PC 钱包、浏览器扩展钱包、移动端钱包、硬件钱包及网页钱包等。从触网与否来说主要可以分为冷钱包和热钱包。当我们要进入这个世界,首先要思考将拥有的钱包的用途,用途决定了你将用哪个钱包,同时用途也决定了你会如何对待这个钱包。
无论你选择什么钱包,但至少有一点可以肯定的:在这个世界玩久了后,你不可能只有一个钱包。
于是这里我们又需要记住一个安全原则:做好隔离,也就是鸡蛋不要放在一个篮子里。一般来说使用越频繁的钱包,自然也加大了出问题的风险。时刻牢记:面对一个新事物时,先准备个单独的钱包,用单独的小资金去玩一段时间。除非你已经如我这般,经历无数,对许多事物都了然于心。但,常在河边走,哪有不湿鞋呢?
下载
单这么简单的一点,其实也不简单,原因:
许多人(真是许多人)找不到正确的官网,正确的应用市场,于是安装了假钱包。 许多许多人对下载了的应用不知道如何确认是否被篡改过。
于是,出师未捷身先死。还没来得及进入这个世界,就已经钱包空空了。
针对上面的第 1 点,找到正确的官网是有技巧的,比如:
Google(注意搜索结果里的广告条目,非常不靠谱) 行业知名收录,如 CoinMarketCap多问一些比较信任的人
好,上面这几点得到的信息可以全部结合起来参考,互相佐证,最终真相只有一个:)恭喜你,找到了正确的官网。
接着,你要下载安装应用了,「如果是 PC 钱包」,根据官网提供的下载链接,下载后需要自己去安装。但在安装之前,建议做下是否篡改的校验工作,虽然这个做法并无法防止源头就被完全篡改的情况(比如官方自己内部作恶、内部被黑、官网被入侵替换了相关信息等等),但可以防止如:源头被部分篡改、被中间人劫持篡改等这些情况。
是否篡改的校验,实际上就是文件一致性校验。常见的方式有两种:
一种是哈希校验,比如 MD5、SHA256 等,MD5 绝大多数情况下够用,但存在被哈希碰撞的极小风险,所以业内一般选择 SHA256,够用且够安全。 另一种是 GPG 签名校验,这个其实也很流行,强烈建议掌握 GPG 工具、命令、方法,虽然对于新人来说有那么些费力,但上手后,相信我,你会很快乐的。
话虽至此,其实业内这样做的项目方并不多,所以一旦遇到,真是难能可贵,弥足珍惜,比如一款比特币钱包 Sparrow Wallet,下载页面的“Verifying the Release”简直良心了,提到的两种方式都有清晰指南,可以直接参考学习:
❝https://sparrowwallet.com/download/
❞
这个页面提到的 GPG 工具有两个:
GPG Suite,macOS 下运行的。 Gpg4win,Windows 下运行的。
如果你细心观察,你会发现这两个 GPG 工具的下载相关页面其实都有给出两种方法的一致性校验说明,但不好意思的是,并没手把手教你如何校验。估计吧,都是认为你会是聪明人,该补上的知识你已经补上了:)
「如果是浏览器扩展钱包」,比如这世界家喻户晓的 MetaMask,你唯一有机会注意的就是目标扩展下载页面里的用户数多不多、评分情况如何,比如 MetaMask 在 Chrome 网上应用店里,用户数可是超过一千万的,同时有两千多用户评分的,虽然最终评分并不高。有人要说这不可以刷出来吗?这位朋友,是这样的,刷,我相信,不过刷的量如此之巨大,当各方是傻子呢。
「如果是移动端钱包」,判断方式类似扩展钱包,不过需要注意的是,iPhone 的 App Store 是分区的,加密货币在中国大陆被驱赶得不行,所以如果你用 App Store 中国区账号下载到了钱包,建议只有一个:别用,换成如美区的 App Store 账号下载吧。另外,通过正确的官网也能引导到正确的下载位置(比如全球知名的 imToken、OneKey、Trust Wallet 等,官网安全一定要做好,官网都被黑了,那这安全责任就真大了)。
「如果是硬件钱包」,简单来说,可以从官网源头的引导下购买,不要直接去在线商城,到手后也需要留意是否存在被异动手脚的情况,当然有些针对硬件包装的异动是很高明的,不一定都能看得出。此时建议:无论如何,使用时,先连续至少三次从头开始的创建,记录下生成的助记词、相关钱包地址,不会重复就行。
「如果是网页钱包」,非常不建议使用这种在线的钱包,除非你不得已,那么识别好是官方的后,速战速决吧,千万别有任何感情依赖。
助记词
一般来说,我们创建了钱包后,直接打交道的关键信息是助记词(而不是私钥),毕竟助记词是方便人类记忆的。助记词是有标准约定的(如 BIP39),这就对助记词提了要求,比如一般 12 个英文单词,也可以是其他数量(3 的倍数),不过不会超过 24 个单词,要不然太复杂也就不助记了,数量少于 12 的话,安全性也不靠谱,12、15、18、21、24 都好说。不过从业内习惯来说,一般流行的是 12 位,安全性足够,有的安全严谨到变态的如 Ledger 这类硬件钱包,24 位标配走起。还有除了英文单词,也可以是其他的,比如中文、日文、韩文等等。但也不是什么单词都可以,有一个固定 2048 个单词列表,具体参考:
❝https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md
❞
创建钱包时,助记词的出现是非常敏感的,请留意你身边没有人、摄像头等一切可以导致偷窥发生的情况。同时留意下助记词是不是足够随机出现,正常来说这些知名钱包生成的助记词随机数是绝对足够的,这不以防万一?你真的很难知道,拿到手的钱包到底有没有万一的猫腻。你也不要嫌麻烦,这些安全小习惯形成后,相信我,你真的会很快乐。最后,有的场景下,你甚至可以考虑断网来创建钱包,尤其是你准备把该钱包当成冷钱包使用时,断网简直就是暴力美学。
无私钥
Keyless,顾名思义是无私钥的意思。在这我们把 Keyless 分为两大场景(注意,这里的区分不代表业内公认区分方式,只能说是方便我讲解):
Custodial,即托管方式。比如中心化交易所、钱包,用户只需注册账号,并不拥有私钥,安全完全依托于这些中心化平台。 Non-Custodial,即非托管方式。用户唯一掌握类似私钥的权力,但却不是直接的加密货币私钥(或助记词)。比如依托知名 Cloud 平台做托管、认证授权,此时知名 Cloud 平台成为木桶的那块短板。还有利用了安全多方计算(MPC)来确保不存在单点风险,同时也结合知名 Cloud,将用户体验做到最好。
对我来说,Keyless 的几种方式我都有使用。实力雄厚及口碑良好的中心化平台体验好,只要不是因为自身原因导致的被盗币(比如账号相关权限被盗),这些平台也会兜底赔付。至于 MPC 为主的 Keyless 方案是我觉得很有前景且应该尽快普及的,我用过不错的如(ZenGo、Fireblocks、Safeheron)。优势很明显,我这简单提几点:
MPC 算法工程实践在这些知名区块链上,越来越成熟,只需针对私钥开展即可。 一套思路可以解决不同区块链的多签方案差异巨大的问题,使其在用户感知上通用,这是我们常说的:通用多签。 可以确保真实的私钥从不出现,通过多方计算解决单点风险。 结合知名 Cloud(或有人提的 Web2)让 MPC 不仅安全且体验更顺滑。
优点明显,但缺点也是有的,我也简单提几点:
满足业内公认标准且开源的,这方面的成熟度还远不够,各位仍需努力。 有不少人说基本只玩以太坊系列(或者说基于 EVM 的区块链),那么 Gnosis Safe 这种智能合约方式的多签方案也就够了。
无论哪种方式,只要是你觉得安全可控的、用起来舒服的,那么都是好方式,仁者见仁智者见智。
好,创建钱包的相关安全注意点就先介绍这些,有一些通用性的安全问题会统一在之后介绍,先不着急:)
夜雨聆风