大家经常性提到的比特币钱包,常指两样东西:一个是比特币钱包程序,一个是比特币钱包地址和对应的私钥。本文延用习惯性称呼,不刻意区分二者。
一、选择一款值得信赖的钱包目前有多款比特币钱包可供选择:MultiBit、Armory、Electrum、在线钱包、Android钱包等等。这些钱包各有优势:瘦钱包不需要下载block chain,移动钱包方便交易支付。不过我还是推荐使用本地钱包bitcoin-qt。此时肯定有人会跳出来说:bitcoin-qt有block chain的BUG,会导致程序崩溃!是的,不得不承认它是有这样的问题,但对个人而言,block chain的BUG并不会让你的钱包私钥丢失,也就是说不会丢币,相比于之前Android钱包随机数生成漏洞造成丢币的问题来说真是无足轻重了。bitcoin-qt使用OpenSSL库,OpenSSL是一个被广泛使用的开源的安全库,不存在所谓的随机数生成漏洞;bitcoin-qt自主生成钱包地址和私钥,自主保存私钥,不存在潜在的被他人控制的风险;bitcoin-qt用户群最为庞大,且有比特币世界最具权威的人在维护,最值得信赖。凡是那种非自主生成钱包地址和私钥的钱包都需要提防;凡是那种要求导入私钥和密码的在线钱包都需要提防。总之一句话,自己保管私钥最安全。
二、不要把鸡蛋放在同一个篮子里使用bitcoin-qt的过程中你可能感觉得到,它是鼓励大家同时使用多个钱包地址。通过bitcoin-qt可以很轻松地新建多个地址,为地址打上标签以区分比特币的不同收入来源。当比特币发送触发找零机制时,bitcoin-qt也是把找零的比特币发送回新的一个地址,而不是原地址。这正是一种分散存放的思想,分散保存比特币于不同地址,这并不影响你的比特币总量,也不影响你进行比特币接收和发送(当然如果分得太细小,当你要支付一笔大额消费时可能需要支付更多一些的交易费),只要钱包文件没有丢失,你的比特币就尽在你的掌控之中。为什么鼓励把比特币分散保存于不同的地址,我想是中本聪大神预见到以后可能出现的比特币寻宝机,一种通过随机猜测命中比特币地址同时取得私钥的机器,我称其为比特币终结者,我准备在下一篇文章《比特币终结者探索》里探讨这个问题。
三、别依赖他人生成的比特币地址和私钥你们觉得@货币大叔的比特币地址帅不帅:1Bitcoin4yZjSSPoXUceJaiyQLABx7B2LL如果你遇到有人向你兜售这样的地址,千万不要买!!!也可能有好心人送你一个这样的地址,千万不要用!!!你能保证他就不会备份私钥?如果他备份了私钥,你能保证他就一定不会取走你的比特币?用上别人提供的地址,你的资产状态可能被人监控,你的资产随时有可能被别人全部拿走。如果你真的好想要一个这样的地址,那我只能说:你一定要自主生成!!!你问我怎么生成?哦,请参考:http://8btc.com/thread-886-1-1.htmlvanitygen这个工具做得还是很强大的:支持正则表达式;支持从文件中读取一堆前缀进行匹配;支持多线程。祝你找到一个自己满意的地址哦!
四、加密你的电子钱包记得前不久有人说一朋友电子钱包被盗了,损失了上百个比特币,其丢币的原因是自己的电子钱包没有加密。所以我在这里要特别强调:一定要对电子钱包加密!!!如果你的钱包加了密码,就算是被人得到的电子钱文件,他可以看到你的钱包里的钱,但他却只有干看着流口水的份!当他尝试发送的时候就会要求输入密码,此时他只能捶胸顿足吧。当然你的密码要足够健壮哦,特殊符号+大写字母+小写字母+数字一个都不能少!至于密码位数嘛,bitcoin-qt推荐设置10位以上,我认为嘛,多一点比较好,比如我的密码有35位。肯定有人会说密码可能会忘记,那样所有的钱就全丢了,是吧。谁说一定要记了?!好记性不如烂笔头,你找个本儿记下来呀,然后把本儿放进你的保险柜里。
五、电子钱包备份与keypool电子钱包要经常备份,这可能对于有一点比特币常识的人都知道。但是,电子钱包备份也可能不安全!长铗呼吁大家发送一次比特币就备份一次电子钱包,请参考:http://www.8btc.com/lost-large-number-of-bitcoins这太惊弓之鸟了吧!我的建议是:搞明白keypool的原理,做到了然于心就能艺高人胆大了。bitcoin-qt启动时如果在datadir中没有找到wallet.dat文件会自动生成至少100个私钥到keypool而形成wallet.dat文件。只有当发送比特币时触发了找零机制才会到keypool中找一个未使用的私钥和地址来接收找零。请参考:http://www.8btc.com/joybtc_5如果你的交易非常频繁,经常发送比特币触发找零机制,100个私钥的key pool是否太容易用完?如果是的话,那你可以根据你的实际使用情况适当调整keypool的大小,比如1000。更改keypool大小设置一般有两种方法:一种是在bitcoin.conf中设置keypool=1000,一种是在bitcoin-qt的入参中加入-keypool=1000。如果具体操作方法不清楚,可以参考BigChubbyCat的文章:http://www.8btc.com/disk,-keypool的设置类似于文章中的-datadir的设置。设置好了keypool大小只是完成了第一步,此时你的电子钱包里还是只有100个私钥,还需要做一步操作,那就是到RPC控制台执行keypoolrefill命令。方法是菜单栏“帮助”->“调试窗口”->“控制台”,然后在命令输入框输入“keypoolrefill”回车执行。
怎样选择和使用比特币钱包?
如果你已经加密了电子钱包,那这个命令会执行失败,显示“Error: Please enter the wallet passphrase with walletpassphrase first. (code -13)”,没有关系,先临时解锁你的电子钱包就好。方法与输入keypoolrefill一样,只是这个命令有参数,格式:walletpassphase ,这里的就是电子钱包的密码,是超时时间,单位秒,超时时间到了之后电子钱包会再次加锁。示例:walletpassphase Hello&World520Program@yeah 480多提一句,keypoolrefill命令会随你设置的keypool大小不同而需要不同的执行时间,不要以为程序死了,在执行过程中请耐心等待一会。
拥有和保存比特币,需要通过客户端,通常把该软件称为钱包。目前,整个比特币项目由Bitcoin Foundation来开发与维护,通常把他们称为官方团队。官方推出的客户端是Bitcoin Qt, 由C++编写核心功能,GUI界面由Python Qt完成。不含有GUI界面的被成为bitcoind,许多服务与核心功能均由其实现。运行bitcoind的通常称为节点(Bitcoin Node), 一个节点通常拥有完整的BlockChain数据,并实时与外界网络同步更新。

钱包中通常含有:
公钥、私钥、地址
与钱包中地址相关的交易信息
其他辅助数据
最核心的数据就是密钥,拥有密钥便拥有一切,相关信息均可由其而来。钱包并不一定需要包含完整的BlockChain数据,不包含BlockChain数据的钱包称为轻钱包(Light Weight Wallet)。对于大部分日常使用来讲,轻钱包便足够了。
分类完全节点型(Full Node):含有BlockChain所有完整数据
简易节点型(SPV Node):Header-Only Clients,仅有Block头部信息,无需交易数据
CS型(Server-Client):服务端-客户端模式,大部分数据存储在服务端
BS型:所有数据均通过浏览器在线使用
Bitcoin Qt,因为其是一款完整的钱包软件,需要下载大约超过10GB的BlockChain数据(24万个block),对于大部分人来讲,是没有必要的。目前,官方主页上默认推荐的客户端已经不再是Bitcoin Qt, 而是MultiBit(支持Windows, MacOS和Linux的轻钱包);移动端目前最好用的是Bitcoin Wallet(安卓平台),iOS平台由于政策原因,一直未有出色的软件,Blockchain.Info为iOS提供了一个简单的钱包软件,Blockchain for the iPhone。还有就是在线钱包,如优秀的BlockChain.Info,其安全性均超过自行保存管理,推荐使用之。
最近还有一种流行的钱包:脑钱包。因其安全性较低,并不推荐大家使用,仅临时性场合使用之。其原理是由一串密码短语,通过Hash运算,得到密钥,只要记住这串密语即可使用钱包。因为密码短语符合大家习惯和记忆特点,可以通过计算大量常见组合来破解。除了暴力破解的问题外,失忆是最大的风险,比如摔个跟头跌成脑震荡,或长期不用自然忘得一干二净。
选择&存储日常使用的额度通常小于10个币,可以存放在电脑或手机App中。通常存放1个币以下是比较保险的,丢了不太心疼嘛
持有几十、几百个币的,可以选择BlockChain.Info,Inputs.io等在线钱包。其也可以当做日常钱包使用。
持有上千甚至数万的,应该分开存储,并隔离存放。使用离线电脑生产密钥,打印出来托管至银行等高安全场所存储,并销毁现有密钥。同时还需要多份隔离存储,甚至对密钥进行加密。
密钥即一切,如不慎弄丢钱包,便永远失去这笔比特币。所以钱包需要小心妥善保管,不在自己的PC或者手机App中存储大量比特币,丢失的风险太高,病毒木马、硬件损坏、手机丢失等均造成无法挽救的损失。俗话讲鸡蛋不要搁在一个篮子里,多种方式存储也是降低风险的有效方式。目前丢失的比特币或有数百万BTC之巨。
常见钱包Bitcoin-Qt– 官方客户端,基于C++/Qt,全平台,完全数据。
MultiBit– 全平台,轻钱包,官方推荐
Electrum– 著名轻钱包
Armory– 基于Python,含有诸多特性的轻钱包
BlockChain.info– 非常著名在线钱包
Inputs.io– 著名在线钱包
开发库bitcoind– 官方客户端,无GUI,开发者必备
libcoin– libcoin
libbitcoin– asynchronous C++ library for Bitcoin
cbitcoin– A low-level bitcoin library written in standard C
Bitcoinj– a Java implementation of the Bitcoin protocol
gocoin– Bitcoin client library for Go / golang
pynode– Bitcoin P2P router, in python
bitcointools– Python-based tools for the Bitcoin cryptocurrency system,By Gavin Andresen
bitcoin-abe– Abe: block browser for Bitcoin and similar currencies
数据检索BlockChain.info
Bitcoin Block Explorer
Robinhood 正式推出加密貨幣錢包和轉賬功能,將從下個月開始向部分用戶開放
薩爾瓦多官方比特幣錢包 Chivo Wallet 出現故障,官方正在處理中
萨尔瓦多发布首个官方推出的比特币商业视频广告
加密货币钱包漏洞利用与分析
比特币冷钱包到底应该怎么做?
使用比特币钱包
比特币的冷储存技术浅谈
迁移比特币钱包的区块数据
Uniswap正在向加密货币钱包发行不可替代的代币(NFTs)
如何在复杂的DeFi中 找到一个能给自己带来安全感的钱包?
加密货币钱包HyperPay “DeFi理财狂欢节 ForTube专场” 主题AMA即日开启
imToken钱包提示:DeFi市场鱼龙混杂,请警惕风险
2014年五大优秀比特币钱包
好比特币:2015年下半年比特币钱包会猛然发展
虚拟币钱包 如何合规经营?
黑客的比特币钱包被FBI“截胡”了,比特币还安全么?
萨尔瓦多总统:今晚将批准比特币法案 政府还将发布官方比特币钱包
imToken,国产钱包先行者?
据传多家知名钱包不安全或暴雷?钱包的“安全牌”究竟如何守护
又有 7000 枚比特币丢失,只因没做这一步



