加密货币存储系列一什么是钱包?

其实保存加密货币,重点是在保护私钥而不是钱包。

钱包这个词包含几种含义,第一、钱包是用来保存跟保护私钥的,实际上任何一种区块链上认定的交易,都是私钥签名出来的,区块链上的任何资产也都是保存在与私钥相对应生成的地址上,一个没有任何私钥的钱包,实际里面无法也不会存在任何资产。

但私钥的保存对一般人来说并不容易,不管是抄在纸上、记在电脑中、几个人分段记在心里,都有各种遗失的可能,而一旦私钥遗失,资产还是会留在区块链上相对的地址里,但将没有任何人可以使用那地址中的资产,跟遗失了也没有区别了。因此钱包的第一个作用就是透过各种软硬体来达成身份验证、安全加密、私钥备份,来达到安全保护私钥、避免遗失的目的。

第二、钱包是用来进行交易的,不管是软硬体钱包或者冷热钱包,用户通过钱包后可以跟区块链的节点联系上,开始进行交易,将资产转移给任何其他私钥对应的地址。由于私钥只是一串随机乱数,一串你可以记录在纸上或心理的乱数,单纯靠私钥是无法跟区块链里任何一个节点沟通、无法进行交易的,因此就需要钱包的协助,钱包会根据你地址里资产的构成,组织出正确的、你想要的交易格式(如转出 0.1 BTC 给某个地址),然后钱包就会使用保护的私钥进行签名,签名成功的交易在与区块链上的节点沟通,广播后被矿工打包,交易就成功被执行了。

在这个过程里,钱包需要确保交易的正确性,比如当用户输入完金额跟地址后,钱包必须能正确地把这些讯息组合成最后的交易,签名后让交易被打包执行,避免因为中间过程被攻击,造成组合出的交易与用户预期不同的问题。因此钱包不只会用来交易,用来协助用户与区块链的节点之间沟通,更重要是还要确保这中间的过程不会因为任何漏洞或弱点,造成非预期的交易出现。

最后、钱包是可以产生私钥的,除了保存私钥,其实多数钱包都可以直接产生私钥,这其实也是为什么很多新人都把私钥跟钱包划上等号,因为他们接触区块链的第一步就是下载一个钱包,然后用这个钱包产生私钥并开始交易,但其实即便私钥只是一串乱数,如何能够真正安全的产生出一串足够长的、不会跟别人重复的乱数,也是考验钱包的一步,钱包必须注意到

  • 注意生成私钥时随机乱数的取得方式,乱数必须符合 NIST SP 800-22 标准

  • 产生私钥的种子长度至少要达到 256 bits。

  • 产生私钥的过程中,如有任何错误发生必须马上中止,以避免生成 “乱度不足” 的私钥。

由上所述,我们可以知道钱包试图帮助用户保护私钥并且跟区块链沟通,中间肩负的安全性,从产生的私钥是否安全、乱度是否足够,产生的交易是否正确、内容是否被更改过,私钥的保护是否到位、避免私钥遭窃,这些都是钱包必须做好的工作,如此才能对加密货币进行完善的存储,我们将在接下来进行一系列的介绍,除了针对各种不同种类钱包的工作原理介绍,还会针对这些类型的钱包曾经被攻击过的案例介绍,让用户更了解在使用不同钱包时需要注意的地方。

了解更多区块链和加密货币在我们的知识中心