(由于硬件钱包在紧张开发中,所以只能每天抽点时间写一点,请大家见谅)

硬件钱包技术白皮书

1 背景

比特币是一种网络信息资产。不需要过多解释,大众都非常清楚,网络信息资产的安全风险要远大于实物资产。

信息安全风险主要分为两大方面:信息泄露安全风险、信息完整性破坏安全风险。

1.1 信息泄露风险

网络资产的所有权和控制权,只能通过账户和密码。

比特币更加极端,私钥就是一切。因为账户地址可以由私钥导出。这与之前的所有网络资产都有巨大的区别,其他网络资产的账户名和密码在数学上没有必然关联,只是在数据库里有对应关系,这也是导致大量小白弄丢比特币的重要原因。

比特币的支付,即控制权,由私钥签名完成。

当前的所有比特币钱包,由于私钥的生成、解密、签名、交易信息广播全部由同一软件在联网状态下完成,所以坏人(通常理解为黑客)可以通过网络盗走持币人的私钥,导致账户内全部的比特币丢失。

简而言之,如果私钥是通过自动执行的程序与互联网连接的,就是不安全。

(此处应配一个图,回头画)

1.2 信息完整性破坏风险

如前述,私钥是比特币的唯一控制权。私钥的丢失会导致账户内比特币的不可逆丢失。

由于比特币的私钥(无论加密不加密)都是存储在电脑(含手机)里的一个文件里,而电脑里会同时安装执行大量的其它程序,所以备份的不善加上电脑系统的故障,可能导致比特币丢失,这种丢失在早期发生率非常高,有人一下子就丢了上万个币。

所以,比特币账户安全理论上和现实上都是巨大的风险,需要技术上提供有效的解决方案。这也是本产品的研发初衷。

提高比特币账户安全的原理

基于以上分析,可以得出结论,提高比特币账户安全,必须做到以下3点,缺一不可:

2.1 独立硬件载体。

只有硬件独立了,私钥才不容易被黑客盗走;只有硬件独立了,才更稳定,不容易因为电脑故障丢失私钥。

2.2 不联网.

只有不联网,黑客才没有办法侵入系统窃取私钥。

2.3 不与联网的设备自动通讯

网络只是无数通讯方式的一种,现在通讯方式多了,例如NFC,蓝牙,USB,COM。只要能够自动通讯,私钥信息就可能被后门程序通过通讯协议自动发送到互联网上。特别是很多通讯方式都是无线的。

以上3点合为一句话,有点绕嘴:将私钥在物理上独立地存放在一个不通过自动通讯方式与联网设备通讯的载体上。

这个私钥载体,被形象地称为“硬件钱包”。

因而现在很多人的解决方案都是买一台电脑,专门用来安装比特币钱包,不做任何其他用途。本质上,这就是一个硬件钱包。所以显而易见,一个专用的硬件钱包,相比一台电脑,无论从成本、易用性、安全性上,都要好很多。

纸钱包、脑钱包都是广义上的硬件钱包,是低成本解决方案,当然也各有优缺点。很显然,如果不差钱,还是专用的硬件钱包安全。

 3 硬件钱包的系统构成

虽然称为“硬件钱包”,但是这实际上是一套包括多个硬件、软件、通讯协议的解决方案,主要包括以下5个部分:

3.1 离线硬件(“硬件钱包”实物)。存储和执行硬件钱包离线端软件,存储私钥。提供与用户互动的界面,提供与联网硬件进行数据传递的硬件装置。

3.2联网硬件。可以是任何电脑、手机、服务器。存储和执行硬件钱包联网端软件。具备与离线硬件进行数据传递的硬件装置。

3.3 离线端软件。接收付款指令,对交易进行签名,向联网端软件发送签名后的交易。

3.4 联网端软件。向离线端软件发送付款指令,从离线端软件接收签名后的交易,并广播到比特币网络。

3.5 通讯协议。离线端软件和联网端软件的数据交换协议。这个协议是独立于离线端软件和联网端软件的。即未来任何人都可以基于这个协议开发联网端软件和离线端软件,而这些软件都可以相互兼容。

基于这样一个系统,使得私钥和联网端软件彻底的分离,大幅提高了比特账户安全性。但是其价值不仅仅是这些,更有价值的是,由于签名过程中用户的人工介入,离线端软件和联网端软件之间公开的通讯协议,以及离线端软件和联网端软件的控制权的分离带来的多次确认,实现了对离线端软件、联网端软件的信任需求为0。换言之,即便离线端软件和联网端软件任何一方甚或双方为恶意软件,都不会导致用户比特币的丢失。

因而,这些软件就不必通过开源来取得用户的信任,因为开源其实是产生恶意软件的重要原因(在源代码基础上挂上个木马,就成为了恶意软件;而如果不开源,则需要破解程序再挂木马,二者的难度完全不是一个数量级)。

另外一个价值是,离线系统和联网系统的所有权可以完全分离。例如用户去商家消费,用户只需持有离线系统(硬件钱包),通过与商家的联网系统互动来完成支付。通过这种分离,使得硬件钱包的实际使用复杂程度并不比原始的一体式钱包系统高,甚至会有所降低(比如用户完全不需下载安装任何软件;比如相比手机钱包大幅节省了网络流量和网费;比如在没有移动网络信号i的地方,依然可以进行支付,因为商家连接了有线网络)