关于如何使用 Linux 创建纸质和数字离线比特币钱包的教程
客观的
目标是使用 Linux 操作系统、VirtualBox 和 Electrum 比特币钱包创建离线数字和纸质比特币钱包。本教程的成果将是一篇带有书面关键字的论文,可用于访问您的比特币。我们还将创建虚拟机的加密版本作为数字备份,以数字方式存储在安全介质上,必要时可以方便地访问您的比特币。
操作系统和软件版本
操作系统: – Debian 9 GNU/Linux
软件: – Electrum 3.0.3 或更高版本,VirtualBox 版本 5.2.2 r119230
要求
安装 Virtual Box 虚拟化软件需要对主机操作系统的特权访问。
困难
中等的
惯例
# – 要求以root权限直接以root用户身份或使用
sudo
命令执行给定的linux命令$ – 要求以常规非特权用户身份执行给定的 Linux 命令
介绍
加密货币社区尤其是新手对于如何安全存储比特币存在很多困惑和误解。其原因主要是因为对每笔比特币交易背后的实际区块链技术的工作原理缺乏基本的了解。当我们将上述内容与软件/硬件钱包的多种选择结合起来时,以及当今大量天真的用户在浏览互联网或使用智能手机时完全无视自己的在线隐私和安全,被黑客入侵的比特币钱包数量令人难以置信。每一天都不应该感到意外。比特币钱包安全始于用户心态。
变得偏执
忠告一下,如果您真的想投资比特币,那么您需要做的第一件事就是对您使用计算机、手机或任何连接到网络的在线或其他设备所做的一切保持极度偏执。只有这样,您才会有适当的动力为您的投资创造一个安全的环境。
不要信任任何网站,在这种情况下,在没有事先研究的情况下,不要相信加密货币交易所、在线钱包或加密货币投资组合跟踪器。不要信任公司或不受信任的来源向您提供的软件或操作系统。人们仍然倾向于相信公司可以提供安全的软件或操作系统。如果你是其中之一,那么你就离事实不远了。当您正在观看自己喜欢的电视节目时,您的电视可能会被用来入侵您的计算机,您的连接互联网的真空机器人吸尘器很可能在清洁您的卧室时向其制造商提供有关您的家庭网络、位置或实时视频流的私人信息。你是不是觉得我太偏执了?好吧,那我告诉你,你太无知的可能性比我太偏执的可能性要大。这就是为什么像 GNU 这样的社区项目在当今社会中变得越来越重要。对于比特币,不能太偏执!你被警告了!
什么是离线比特币钱包
人们倾向于将普通钱包与比特币钱包进行比较,认为比特币以某种方式存储在本地计算机上,就像普通硬币或纸币存储在真正的有形钱包中一样。不,事情不是这样的,你越早停止这种想法越好!比特币不存储在任何地方,因为只有一个公开的分类账,记录有多少比特币属于哪个比特币地址。因此,比特币只不过是这个公共分类账中的一条记录。这个公共账本被称为区块链,被克隆在全球数千台计算机(即比特币矿工)中。
您现在应该问的问题是:“我如何领取我的比特币以及如何操纵比特币的区块链?”好吧,你可以用比特币钱包来做到这一点。比特币钱包可以让您查看有多少比特币属于您,从而检查您的余额;它还允许您将比特币转移到其他比特币地址,从而更改/更新区块链记录。这意味着您永远不会在本地存储任何内容,您只是读取区块链的记录来查看您的余额是多少,同样,您在进行交易时更新区块链记录。
现在是时候讨论什么是比特币地址了。比特币地址用于接收资金。在许多情况下,它是由您的钱包根据您的秘密密码生成的。重要的是要了解相同的秘密密码将始终生成相同的比特币地址集。这意味着,如果用户将密码写在纸上并决定重新安装当前钱包或将其安装在另一台计算机上,则该密码将生成完全相同的一组比特币地址。因此,确保您的密码安全至关重要,因为任何拥有您密码的人都可以生成您的公共比特币地址并索取您的比特币。
由于我们现在了解到,每次使用相同的秘密密码总是会生成相应的哈希值或比特币地址,因此同样重要的是要认识到使用比特币钱包创建比特币地址,并且秘密密码不需要用户打开-线因此可以访问互联网。因此,离线比特币钱包是离线启动和使用的比特币钱包,从未用于执行任何比特币交易,也从未连接到互联网。一旦使用秘密密码生成并离线记录比特币地址,密码就会被安全地写在一张纸上,然后整个钱包就会从系统中清除,因此用户只剩下一堆比特币地址和密码写在一张纸上。因此,离线钱包现在是纸质比特币钱包。
动机
为什么我需要创建离线钱包?如果操作正确,离线或纸质比特币钱包很可能是投资者存储比特币的最安全方式,前提是您保证密码的安全。离线比特币钱包不依赖第三方网站、硬件、交易所、银行或软件。只要整个比特币区块链的完整性不受到损害,您的比特币就是安全的。如果比特币区块链遭到破坏,那么对每个人来说这都将是“游戏结束”。
如果您是一名加密货币交易者,那么离线钱包对您来说没有多大意义,除非您不将所有现金集中在一起(强烈推荐)。
设想
虚构人物娜塔莉投资了比特币。她使用加密货币 XYZ 交易所购买了 ฿0.25。现在,任何拥有 XYZ Exchange 正确用户名和密码的人都可以在线使用她的 0.25 泰铢,作为她的 XYZ Exchange 余额的一部分。然而,娜塔莉意识到,在线支付 0.25 泰铢会给她的投资带来巨大风险。首先,XYZ 交易所可能会被黑客攻击,或者干脆有一天就消失得无影无踪。同样,她的计算机也可能被黑客入侵,XYZ 交换的登录凭据被盗。如果发生上述任何一种情况,她的 ฿0.25 将永远消失。
为此,娜塔莉决定将整个局势掌握在自己手中。她使用密码创建了一个离线钱包。准备好后,她利用生成的比特币地址之一将 0.25 泰铢从 XYZ 交易所转移到她的比特币地址。之后,她从计算机中取出数字比特币钱包,并将密码安全地存储在一张纸上。从那时起,她就不必依赖 XYZ 交换机或笔记本电脑的完整性。
程序
创建安全的基础操作系统并安装 VirtualBox
下载并验证 Debian/GNU Linux ISO
安装 Debian/GNU Linux 作为虚拟机
下载、验证并安装 Electrum 比特币钱包
禁用网络和互联网访问
启动 Electrum 比特币钱包
存储秘密密码和比特币地址
执行 Electrum 钱包恢复测试
在启动时禁用虚拟机网络
导出 Electrum 虚拟机
加密并存储 Electrum 虚拟机
清除所有痕迹
启用网络和 Internet 访问
转移比特币
将带有种子密码的纸放在桌子上,您将把它存储在某个保存位置
您可以公开披露的比特币钱包地址
导出 VirtualBox 虚拟机,并将比特币钱包存储在 USB 或 M 盘等外部介质上。如果有需要,可以随时将此文件导入 VirtualBox,以便您快速访问您的比特币钱包
创建安全的基础操作系统并安装 VirtualBox
这一步是你的作业。在此阶段结束时,您将在您选择的操作系统上安装 VirtualBox。完全可以在 MS Windows 操作系统上安装 VirtualBox 时使用本指南。然而,智者不会在沙子上盖房子,所以买一些旧笔记本电脑或 PC,将其清理掉并安装新的 GNU/Linux;任何 GNU/Linux 发行版都可以,无论是 Ubuntu、Debian 还是 CentOS。 Linux 可以在任何具有最低要求的硬件上运行,但是,由于我们将在主机操作系统之上运行虚拟机,因此拥有至少 4GB 的可用 RAM 就更好了。此外,本指南是为 VirtualBox(免费开源虚拟机管理程序)编写的,但是,您可以随意使用您喜欢的任何其他虚拟机管理程序,例如 VMWare、KVM 或 XEN。
下载并验证 Debian/GNU Linux ISO
现在您已经安装了 VirtualBox,是时候下载 Debian GNU/Linux 了,它将用于为我们的 Electrum 比特币离线钱包创建虚拟机。在 https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/ 检查最新的 Debian GNU/Linux 并更新以下步骤以反映您下载的版本。
以下命令将下载 Debian 的 ISO 映像以及 MD5SUM 验证文件和签名:
$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.3.0-amd64-netinst.iso
$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/MD5SUMS
$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/MD5SUMS.sign
除非您有用于签署所有先前下载的文件的相关密钥:
$ gpg --verify MD5SUMS.sign
gpg: keybox '/home/lubos/.gnupg/pubring.kbx' created
gpg: assuming signed data in 'MD5SUMS'
gpg: Signature made Sun 10 Dec 2017 13:58:22 AEDT
gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Can't check signature: No public key
如果您遇到上述情况,请使用以下命令导入“Debian CD 签名密钥”:
$ gpg --keyserver keyring.debian.org --recv DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: /home/lubos/.gnupg/trustdb.gpg: trustdb created
gpg: key DA87E80D6294BE9B: public key "Debian CD signing key " imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
准备就绪后,确认 MD5SUMS 文件本身的有效性:
$ gpg --verify MD5SUMS.sign MD5SUMS
gpg: Signature made Sun 10 Dec 2017 13:58:22 AEDT
gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B
gpg: Good signature from "Debian CD signing key " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
最后,验证之前下载的 debian-9.3.0-amd64-netinst.iso
的完整性。确保使用您下载的版本更改以下命令:
$ md5sum -c MD5SUMS 2> /dev/null | grep debian-9.3.0-amd64-netinst.iso
debian-9.3.0-amd64-netinst.iso: OK
一切似乎都井然有序。
安装 Debian/GNU Linux 作为虚拟机
下一步我们将使用 VirtualBox 虚拟机管理程序安装 Debian GNU/Linux 虚拟机。以下屏幕截图将指导您完成整个过程:
使用虚拟盒并创建新的虚拟机。选择一个自定义名称。任何名字都可以。
根据您的主机系统选择适当数量的 RAM。您可以低至 512MB。
任何类型都可以。但是,为了更好地与其他虚拟机管理程序兼容,请选择 VMDK。
没有必要太过奢侈。 4.75GB就足够了。
创建虚拟机后,将之前下载的 Debian GNU/Linux ISO 映像附加到其 CDROM IDE 接口。
现在我们准备开始安装。安装向导相当不言自明,但下面显示了几个关键步骤。
不需要有多分区系统。将所有文件安装在单个分区上。
选择“引导分区”后,您将得到以下分区表。如果您知道如何操作,则可以将交换分区减少到 200MB 左右,因为无需在交换上浪费 1GB。但是,默认设置也可以工作。
为了节省一些磁盘空间,请取消选择所有项目并仅选择 LXDE。点击继续
开始安装。
确保安装 Grub。说是
。
安装结束时,将 Grub 安装在 /dev/sda
块设备上。
全做完了。是时候重启了!
使用您之前输入的用户凭据登录。
一切准备就绪。这个问题无关紧要。说NO
,你就完成了。
下载、验证并安装 Electrum 比特币钱包
本节介绍如何安装 Electrum 比特币钱包。但是,如果您希望创建比特币现金或莱特币离线钱包,而不是遵循以下说明,请使用我们有关如何在 Linux 上安装比特币现金和莱特币钱包的指南。在阅读下一节如何禁用网络之前,请确保您没有启动钱包。
使用新安装的 Debian GNU/Linux 虚拟机下载、验证并安装 Electrum 比特币钱包。 首先,安装先决条件:
# apt install dirmng
下载最新的 Electrum 版本和签名。在撰写本文时,Electrum 3.0.3 是最新的可用版本:
$ wget https://download.electrum.org/3.0.3/Electrum-3.0.3.tar.gz
$ wget https://download.electrum.org/3.0.3/Electrum-3.0.3.tar.gz.asc
验证您的下载:
$ gpg --verify Electrum-3.0.3.tar.gz.asc Electrum-3.0.3.tar.gz
gpg: keybox '/home/btc/.gnupg/pubring.kbx' created
gpg: Signature made Tue 12 Dec 2017 17:06:09 AEDT
gpg: using RSA key 2BD5824B7F9470E6
gpg: Can't check signature: No public key
如果您收到上述有关缺少公钥的消息,请导入它:
$ gpg --keyserver pool.sks-keyservers.net --recv-keys 2BD5824B7F9470E6
gpg: /home/btc/.gnupg/trustdb.gpg: trustdb created
gpg: key 2BD5824B7F9470E6: public key "Thomas Voegtlin (https://electrum.org) " imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
确保您导入的密钥属于 Thomas Voegtlin (https://electrum.org)
$ gpg --verify Electrum-3.0.3.tar.gz.asc Electrum-3.0.3.tar.gz
gpg: Signature made Tue 12 Dec 2017 17:06:09 AEDT
gpg: using RSA key 2BD5824B7F9470E6
gpg: Good signature from "Thomas Voegtlin (https://electrum.org) " [unknown]
gpg: aka "ThomasV " [unknown]
gpg: aka "Thomas Voegtlin " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6
验证过程完成后,就可以安装 Electrum 比特币钱包了。以下命令需要以root权限执行。使用 su
命令切换到 root 提示符,然后从下载 Electrum 比特币钱包源代码的目录中执行以下命令:
$ su
Password:
# apt-get install python3-setuptools python3-pyqt5 python3-pip
# pip3 install Electrum-3.0.3.tar.gz
Electrum 比特币钱包现已安装。重要的是要确保在下一步禁用网络之前不要启动它,因为如果不这样做将使整个教程无效。
禁用网络和互联网访问
在此阶段,我们不再需要互联网访问。关闭笔记本电脑上的无线开关,从 PC 上拔下电缆并断开虚拟机上的网络:
尝试 ping Google 的 DNS 服务器应该足以测试您的虚拟机是否已断开连接。
启动 Electrum 比特币钱包
好的!现在我们准备生成新的比特币地址。使用 electrum
命令从终端启动 Electrum 比特币钱包,并按照以下步骤操作:
$ electrum
重要!不要使用本指南中使用的种子密码!下面显示的关键字仅作为示例,不得使用。
任何名字都可以。
将你的种子写在一张纸上。切勿将您的文字以数字方式存储在其他计算机上。使用笔和纸!如果您需要备份,请将其写在两张纸上。不要向任何人透露您的关键字。只有你的眼睛!
在此步骤中确认您的关键字。从您之前创建的纸质笔记中阅读它们。
请随意加密您的 Electrum 比特币钱包。此步骤是可选的。只要您不丢失在前面的步骤中生成的种子关键字,在此步骤中丢失加密密码就不是一场灾难,因为它只是一个复杂的问题。
检查 Electrum 比特币钱包应用程序窗口的左下角。 Not Connected
正是我们想要的。点击查看->显示地址
。这将显示使用您的密码生成的所有比特币地址。根据您需要的地址数量,从外部复制一个或所有地址。 请勿使用笔或其他计算机的键盘手动重写地址,因为您很可能会犯错误,而这将带来高昂的代价。在这里,您可能会想连接到互联网并将它们复制/粘贴到您的电子邮件中。不要那样做!相反,为您想要复制的每个地址生成二维码,并使用智能手机从屏幕上扫描它们,然后将其发送到您的电子邮件。
执行 Electrum 钱包恢复测试
此步骤是可选的,但强烈建议您这样做,因为它将再次确认您的种子关键字、您的比特币地址,并在需要访问您的比特币投资时教您如何恢复您的钱包。仍然与互联网断开连接,关闭您的 Electrum 比特币钱包并从命令行删除其配置目录:
$ rm -fr ~/.electrum/
接下来,再次启动 Electrum 比特币钱包:
$ electrum
重置后设置 Electrum 比特币钱包的整个过程。按照向导操作:
我们已经有一颗种子了。继续使用向导。最后,您应该会看到您在前面的步骤中已在外部存储的同一组比特币地址。 慢慢来!一切都需要检查!
在启动时禁用虚拟机网络
我们完了。关闭 Electrum 比特币钱包应用程序并关闭您的虚拟机。 <中心>
导出 Electrum 虚拟机
为了快速访问我们的比特币钱包,我们可以导出虚拟机以供以后使用。在使用钱包之前,请确保检查新的 Electrum 版本。只需按照本指南的安装部分进行更新,您就可以立即恢复正常工作。
使用 VirtualBox 导航到 FILE->Export Appliance
并导出整个虚拟机:
加密并存储 Electrum 虚拟机
将导出的虚拟机存储在您认为值得的任何介质上。如果您打算将这台计算机连接到 Internet,请勿将其保留在您的计算机上。使用一些外部介质,例如 U 盘,或者最好将其存储在 M 盘上。如果您使用 Linux 作为主要操作系统,也可以使用 ccrypt
加密整个文件,如下所示,以防它落入坏人之手。确保您没有忘记您的加密密码:
$ ls -lh BTC_Wallet.ova
-rw------- 1 lubos lubos 1.6G Dec 21 14:29 BTC_Wallet.ova
安装ccrypt
包:
# apt install ccrypt
使用 ccrypt
加密导出的虚拟机:
$ ccrypt BTC_Wallet.ova
Enter encryption key:
Enter encryption key: (repeat)
lubos@extreme:~/Documents$ ls -lh
total 1.6G
-rw------- 1 lubos lubos 1.6G Dec 21 14:29 BTC_Wallet.ova.cpt
清除所有痕迹
在将 PC/笔记本电脑连接到互联网之前,需要删除虚拟机的所有痕迹。首先,删除导出的虚拟机:
$ rm BTC_Wallet.ova.cpt
接下来,使用 VirtualBox 虚拟机管理程序中的删除所有文件
删除整个虚拟机。
启用网络和互联网访问
现在,所有文件均已删除,您可以随意连接到互联网。
转移比特币
在此阶段,您应该具备以下条件:
最后,您准备好将比特币从比特币交易所转移到使用本指南生成的任何新比特币地址。
确保您将比特币发送到正确的地址。转账后,请勿使用比特币钱包检查余额,因为这将使您的离线比特币钱包毫无用处,并且您需要从头开始创建比特币离线钱包的整个过程。只需将浏览器导航到 https://blockchain.info/ 并搜索您的比特币地址即可确认您的余额。 就这些了!当您在转乘处时,如果您觉得本指南很有用并为您节省了一些时间,我们非常欢迎您使用以下地址给我买一杯咖啡。
Bitcoin: 1PyYJEVtxkokkYtLkRw9BA7Fr4xEAXJn3U
Litecoin: LXvDNUcdKuh3Svge358rNanXfXMKcPkxCo
欢迎对本教程有任何建议或想法。谢谢