与大家一起学习区块链技术系列之一 比特币钱包(1)

摘要:这种设备的妥协是屡见不鲜,网络连接使得从妥协的设备传输私钥到攻击者变得容易。有网络连接的钱包用父公钥产生子公钥,选择性的帮助分发他们,监视发送到这些公钥上的输出,创建未签名的交易来花费这些输出,并把未签名的交易传给仅签名钱包。...

区块链钱包是指一个钱包程序或一个钱包文档。钱夹程序建立公钥来接收BTC,并使用相应的私钥来支付BTC。钱夹文档为钱夹程序存储私钥和其他与交易相关的信息(可选)。

本系列钱夹流程和钱夹文档分两部分介绍。

钱夹程序

允许花钱和接收比特币是钱包软件的主要功能——但一个特定的钱夹不一定是两件事。两个钱夹可以一起工作,一个程序分发公钥接收BTC,另一个程序签署交易并支付BTC。

钱夹程序还需要与点对点网络互动,从区块链获取信息,或广播新的交易。然而,公钥和签名交易本身不需要与点对点网络互动。

钱夹系统有三个必要和单独的部分:公钥分发程序、签名程序和网络程序。在未来,我们将描述这些部分的一般组合。

注:当我们一般讨论公钥分发时,在许多情况下,P2PKH或P2SH哈希分发将取代公钥分发,实际上需要导出公钥。

全服务钱夹

最简单的钱夹之一是可以执行上述三个必要部分:生成私钥,计算相应的公钥,必要时协助发送公钥,监控发送到公钥输出,建立并签署交易来支付这些输出和广播签署交易。

与大家一起学习区块链技术系列之一 比特币钱包(1)

到目前为止,绝大多数流行的钱包都可以成为全服务钱包。

全服务钱夹的主要优点是使用方便。一个独立的程序使用户想要接收和消费BTC相关的一切。

主要缺点是私钥有一个可以连接到互联网的设备。这些设备的妥协并不少见,数据连接使得从妥协设备传输私钥到攻击者变得容易。

为了保护BTC不被盗,许多钱包程序为用户选择加密钱夹文档(包括私钥)。这种方法可以保护私钥泄露,但如果攻击者从内存中获得加密密钥或读取解密密钥,则无法保证。

仅签字钱夹

为了提高安全性,私钥由一个独立的钱夹程序在更安全的环境中生成和保存,这些钱夹只与一个与点对点网络交互的钱包一起使用。

仅签字钱夹程序通常使用确定性的密钥生成父私钥和公钥,这些密钥可以生成子私钥和公钥。

与大家一起学习区块链技术系列之一 比特币钱包(1)

第一次运行时,只签字钱夹创建一个父私钥,并将相应的父公钥传输到与数据连接的钱包。

与数据连接的钱包使用父亲的公钥生成子公钥,有选择地协助分发,监控这些公钥的导出,建立未签名的交易来花费这些导出,并将未签名的交易传递给只签名的钱夹。

通常,用户只能使用签名钱夹来检查这些未签名交易的细节(特别是导出的细节)。

在这个可选的检查步骤之后,只有签名钱夹使用父私钥生成合适的子私钥并签署这些交易,并将签名交易传回与数据连接的钱包。

有数据连接的钱包将交易广播到点对点网络。

后面将介绍两种只签字钱包:离线钱包和硬件钱包。

相关推荐