比特币是一种协议,访问协议的方法是使用同样协议的客户端应用程序。 “比特币钱包”是比特币系统最常见的用户界面,就像Web浏览器是HTTP协议最常用的用户界面一样。有不同形式和品牌的比特币钱包,就像有许多品牌的网络浏览器(例如:Chrome,Safari,Firefox和Internet Explorer)。正如我们最喜欢的浏览器(Mozilla Firefox,Yay!)和我们不喜欢的(Internet Explorer,Yuck!),比特币钱包的质量,性能,安全性,隐私和可靠性也各不相同。还有一个比特币协议的参考实现,其包括被称为“Satoshi客户端”或“Bitcoin Core”的钱包,该钱包是由Satoshi Nakamoto最初编写的客户端衍变而来的。

1.4.1 选择比特币钱包

比特币钱包是比特币生态系统中最活跃的开发的应用之一。这里竞争激烈,有正在开发推出的新的钱包,也有一些钱包已不再积极维护。许多钱包专注于特定的平台或具体用途,还有些更适合初学者,而另外一些钱包则为高级用户提供了更多功能。选择钱包是非常主观的,取决于使用场景和用户的专业知识。因此,不可能推荐一个特定的钱包适合所有人。然而,我们可以根据平台和功能对比特币钱包进行分类,并提供针对不同类型的钱包的一些建议。更好的是,在比特币钱包之间转账是容易,便宜和快速的,所以值得尝试几种不同的钱包,直到找到符合自己需求的钱包。

根据平台,比特币钱包可以分类如下:

桌面钱包

桌面钱包是作为参考实现创建的第一种类型的比特币钱包,许多用户使用桌面钱包为的是实现比特币的基本功能、自主性和控制权。在通用操作系统(如Windows和Mac OS)上运行具有一定的安全隐患,因为这些平台如果配置不当往往不安全。

手机钱包

手机钱包是比特币钱包最常见的类型。在智能手机操作系统(如Apple iOS和Android)上运行,这些钱包通常是新用户的绝佳选择。许多都是为了简单易用而设计的,但也有功能强大的全功能移动钱包。

web钱包

Web钱包通过网络浏览器访问,并将用户的钱包存储在由第三方的服务器上。这类似于webmail,因为它完全依赖于第三方服务器。其中一些服务使用在浏览器中运行的客户端(插件)代码进行操作,该代码可以控制用户手中的比特币密钥。然而,大多数人需要在安全和方便性之间进行妥协。在第三方系统上存储大量的比特币是不合适的。

硬件钱包

硬件钱包是在专用硬件上独立操作比特币钱包的设备。它们通过USB与桌面网络浏览器或通过移动设备上的NFC进行操作。通过专用硬件进行所有比特币相关操作,这些钱包被认为是非常安全的,适合存储大量的比特币。

纸钱包

控制比特币的密钥也可以打印出来长期存储。即使可以使用其他材料(木材,金属等),这些也被称为纸钱包。纸钱包提供低技术但高度安全的长期存储比特币的方法。脱机存储也经常被称为冷存储。

对比特币钱包进行分类的另一种方法是通过他们的自主程度以及它们如何与比特币网络进行交互:

全节点客户端

完整客户端或“全节点”是存储比特币交易的全部历史(每个用户每次交易)的客户端,管理用户的钱包,并且可以直接在比特币网络上启动交易。全节点处理协议的所有方面,并可以独立地验证整个区块链和任何交易。全节点客户端消耗大量计算机资源(例如:超过250 GB的磁盘,2 GB的RAM),但可以提供完全自主和独立的交易验证。

轻量级客户端

一个轻量级的客户端,也称为简单支付验证(SPV)客户端,连接到比特币完整节点(前面提到过的),用于访问比特币交易信息,可以在本地存储用户钱包,并独立地创建,验证和传输交易。轻量级客户端与比特币网络直接交互,无需中介。

第三方API客户端

第三方API客户端是通过应用程序编程接口(API)的第三方系统与比特币交互的API客户端,而不是直接连接到比特币网络。 这时钱包可能由用户或第三方服务器存储,但所有交易都需要通过第三方。

结合这些分类,比特币钱包可以分为几个小组,三个最常见的划分是桌面全客户端,移动轻巧钱包和网络第三方钱包。不同类别之间的界限通常是模糊的,许多钱包在多个平台上运行,并且可以以不同的方式与网络进行交互。

为了本书的目的,我们将演示使用各种可下载的比特币客户端,从参考实现(Bitcoin Core)到移动和网络钱包。一些示例将需要使用Bitcoin Core,除了作为完整的客户端,还可以将API暴露给钱包,网络和交易服务。如果您计划探索比特币系统中的编程接口,则需要运行Bitcoin Core或其他客户端(参见第三章)。

1.4.2 快速开始

我们在上一节的故事中介绍的Alice不是技术行家,只听到她的朋友Joe提到过比特币。在聚会上,Joe再次热烈地向周围的人解释了比特币,并提供演示。有趣的是,Alice问她如何开始使用比特币。Joe说,手机钱包最适合新用户,他推荐了他最喜欢的几款钱包。Alice下载Android的“Mycelium”,并将其安装在手机上。

当Alice首次运行Mycelium时,与许多比特币钱包一样,应用程序会为她自动创建一个新的钱包。Alice在她的屏幕上看到钱包,如“Mycelium手机钱包”如下图1-1所示(注意:不要将比特币发送到此示例地址,它将永远丢失)。

1.4_入门 - 图1

图1-1 Mycelium移动钱包

这个屏幕最重要的部分是Alice的比特币地址。 在屏幕上,它显示为一长串字母和数字:1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK 。 钱包的比特币地址旁边是一个二维码,这是一种条形码,可由智能手机的相机扫描出同一格式的相同信息。二维码是具有黑色和白色点的图案的正方形。 Alice可以通过点击二维码或接收按钮将比特币地址或二维码复制到剪贴板上。 在大多数钱包中,点击二维码也会放大,以便更容易通过智能手机相机进行扫描。

提示:
比特币地址以1、3或bc1开头 。像电子邮件地址一样,可以分享给其他比特币用户,然后别人直接将比特币发送到您的钱包。 从安全角度看,比特币地址没有任何敏感信息。 它可以发布到任何地方,而不会危及帐户的安全。 与电子邮件地址不同,可以随意创建新的地址,所有这些地址都会将资金归集到您的钱包。 事实上,现在许多钱包为每个交易自动创建一个新地址,以最大限度地提高隐私。 钱包只是一个地址和解锁资金的密钥的集合。

Alice现在准备好接收资金了。她的钱包应用程序随机生成一个私钥(在第四章中更详细地描述)及其相应的比特币地址。这时,她的比特币地址对于比特币网络来说还是不知道的,或者说还未注册到比特币系统中。她的比特币地址只是一个数字,对应于一个可以用来控制资金访问的密钥,是由她的钱包独立生成的,不需要调用或注册任何服务。事实上,在大多数钱包中,比特币地址和任何外部可识别的信息(包括用户的身份)之间没有关联。在该地址被引用到比特币总帐的交易中作为接收者之前,这个比特币地址只是在比特币网络中有效的大量可能的地址的一个。一旦与交易相关联,这个地址就成为网络中已知地址的一个

Alice现在可以开始使用她新的比特币钱包了。

1.4.3 得到你的第一个比特币

新用户的第一个也是最困难的任务是获取一些比特币。与其他外币不同,您还不能在银行或自助机购买比特币。

比特币交易是不可逆转的。大多数电子支付网络(如信用卡,借记卡,PayPal和银行帐户转帐)都是可逆的。对于销售比特币的人来说,这种差异引起了很高的风险,买方在收到比特币后有可能会撤销电子支付,实际上欺骗了卖家。为了减轻这种风险,接受传统电子支付公司通常要求买方进行身份验证和信用验证(可能需要几天或几周时间)。作为新用户,这意味着您不能立即使用信用卡购买比特币。需要有一点耐心和其他思路,但是不要着急。

以下是作为新用户得到比特币的一些方法:

找一个有比特币的朋友,直接从他或她那里买一些。许多比特币用户都是以这种方式开始的。这种方法是最简单的。找到比特币持有者的好办法是参加 Meetup.com 上列出的本地比特币会议。(在中国根本无需这么麻烦,加微信群,在线支付就可以)。

使用分类服务,如 localbitcoins.com 来查找您所在地区的卖家,场外交易购买比特币。

通过出售产品或服务赚取比特币。如果你是程序员,出售你的编程技巧。如果你是美发师,理发只收比特币。

在你的城市使用比特币ATM。比特币自动取款机是接受现金并将比特币发送到智能手机比特币钱包的机器。使用Coin ATM Radar的在线地图找到靠近您的比特币ATM。

使用与您的银行帐户相关联的比特币交易所。现在有很多国家都有数字货币交易所,为买卖双方交易使用当地法币进行交易。实时行情服务(如BitcoinAverage)通常会显示支持法币兑换的比特币交易所列表。

提示:
比特币与其他支付系统相比的优点之一是,使用得当,它为用户提供了更多的隐私保护。 单纯获取,持有和支付比特币不要求您向第三方泄露敏感个人身份信息。 但是,如果涉及法币兑换的交易所,那么就需要遵守当地的国家法律和国际法规。 为了用法币兑换比特币,您通常需要提供身份证明和银行信息。 大家有必要知道,一旦比特币地址附加到一个身份,所有与此关联的比特币交易也很容易识别和跟踪。 这是许多用户选择将专用交易账户与其钱包进行分离的一个原因。

Alice 听朋友介绍比特币,所以她有一个简单的方法来获得她的第一个比特币。接下来,我们将看看她如何从她的朋友Joe 购买比特币,以及Joe 如何将比特币发送到她的钱包。

1.4.4 查找比特币当前价格

在 Alice 可以从 Joe 购买比特币之前,他们必须同意比特币和美元之间的汇率。这给比特币新人带来了一个共同的问题:“谁设定比特币价格?”简单的答案是价格是由市场决定的。

比特币与大多数其他货币一样,有浮动汇率。这意味着比特币与任何其他货币的兑换汇率都会根据各个交易市场的供求情况而波动。例如:以美元计算的比特币的“价格”是根据各个市场最近的比特币和美元交易计算的。因此,价格往往每秒钟都会有几次波动。定价服务将汇总来自多个市场的价格,并根据各个市场的交易量加权计算该货币对(例如BTC / USD)的汇率平均数。

有数百个应用程序和网站可以提供当前的市场汇率。这里有一些最受欢迎的:

Bitcoin Average该网站提供每种货币的成交量加权平均数的简单视图。

CoinCap列出了数百种加密货币(包括比特币)的市值和汇率。

Chicago Mercantile Exchange Bitcoin Reference Rate可用于机构和合同的参考汇率,作为CME投资数据的一部分。

除了这些不同的网站和应用程序,大多数比特币钱包都将自动转换比特币和其他货币之间的兑换价格。 在将比特币发送给Alice之前,Joe将使用自己的钱包自动转换价格。

1.4.5 发送和接收比特币

Alice不愿意太冒险,只决定将10美元转换成比特币。她给Joe 10美元现金,打开她的Mycelium钱包应用程序,并选择Receive。这将显示一个二维码与Alice的第一个比特币地址。

Joe然后在他的智能手机钱包上选择发送,并显示一个包含两个输入的屏幕:

  • 收款方的比特币地址
  • 以比特币(BTC)或其当地法币(USD)计价的发送金额

在比特币地址的输入字段中,有一个看起来像二维码的小图标。Joe用他的智能手机相机来扫描条形码,这样就不必输入Alice的比特币收款地址,手动输入费时,而且容易出错。 Joe点击二维码图标并激活智能手机相机,扫描Alice智能手机上显示的二维码。

Joe现在将Alice的比特币地址设置为收件人,输入金额为10美元,他的钱包通过访问在线服务转换为最新汇率。当时的汇率是每个比特币$100美元,所以如Joe的钱包(见图1-2Airbitz移动比特币钱包发送屏幕)截图所示,10美元的价值是0.10比特币(BTC)或100毫比特币(mBTC)。

1.4_入门 - 图2

图1-2. Airbitz移动比特币钱包发送屏幕

Joe然后仔细检查,确保输入了正确的金额,因为转账错误是不可撤销的。经过仔细检查地址和金额后,他按发送(send)键进行转账。 Joe的移动比特币钱包构建了一个交易,从Joe的钱包将0.10 BTC发送给Alice提供的地址,并用Joe的私钥对该交易签名。这就告诉比特币网络,Joe已经授权将这笔钱转移给Alice的新地址。当交易通过点对点网络传输时,它会在比特币网络快速传播。在不到一秒钟内,网络中大多数连接良好的节点都会接收到这笔交易,并且首次看到Alice的地址。

同时,Alice的钱包不断地“倾听”在比特币网络上发布的交易,寻找与她的钱包中的地址相匹配的任何内容。在Joe的钱包发送交易几秒钟后,Alice的钱包将显示它正在接收0.10 BTC。

确认交易

起初,Alice的钱包把与Joe的这笔交易显示为“未确认”。这意味着交易已传播到网络,但尚未记录在比特币交易账簿即区块链中。确认,就是一个交易必须包含在一个区块中,并被添加到区块链,这样的情况平均每10分钟发生一次。在传统的财务术语中,这被称为清算。有关比特币交易的传播、验证和清算(确认)的详细信息,请参阅挖矿章节第十章。

Alice现在可以自豪地称自己拥有了0.10BTC了,她有权花费这些钱了。在下一章中,我们将首先用比特币进行买卖,并更详细地研究交易和传播的底层技术。