《比特币一个虚幻而真实的金融世界全集.com》第14/37页


首次使用比特币需要先下载客户端,可以在http://bitcoin.org上选择不同种类的钱包软件。目前,钱包软件包括电脑钱包、手机钱包和在线钱包。从易用性和传承性的角度考虑,这一部分将以最早出现的客户端Bitcoin-QT为例。

下载、安装后,Bitcoin-QT首次运行时需要花费一段较长时间进行数据同步,目前同步的数据量在10G左右。之所以有这么大的数据量,是因为Bitcoin-QT会下载比特币有史以来的所有交易记录(有些轻量级客户端可直接从网络实时查询结果,无须同步如此庞大的文件)。待数据同步完毕,“余额”和“未确认”项显示的数据就是最新数据。

比特币地址

将Bitcoin-Qt切换到“接收”菜单,可以看到软件已经自动生成了一个地址,那一长串乱码般的字符就是我们的收款账号。至于这一长串东西是什么意义,凭什么作为账号,后文会统一回答。

比特币支付

为了支付,我们需要创建一个目标地址。可以在“接收”菜单下通过“新建地址”功能直接创建一个标签为“test”的新地址。然后,在“发送”菜单下填上新创建的地址和要发送的金额,点击“发送”,这笔“钱”就发出去了。待网络确认完成,将发送到我们的新账户“test”上。在“交易记录”菜单下就可以看到我们的操作记录以及网络确认次数,当确认次数达到6次,此次交易便宣告成功。

如果需要用手机钱包支付,手工输入这么一长串地址显然是令人担心的(其实输入错误肯定无法发送成功,因为错误的地址无法通过特定的算法验证)为解决这一问题,Bitcoin-QT提供了二维码的操作方式,直接用“接收”菜单的“显示二维码”功能就可以另存为图片并把二维码发给对方,让对方通过手机扫描的方式直接支付,甚至可以直接填上希望支付的金额并生成带额度和消息的二维码。

因为每个比特币地址上的金额流水全部是公开的,如果希望保密或者区分不同的付款人,可以为每个人单独生成一个地址并提供给对方,而不是像现实银行账户那样,要求对方增加一个尾数用于确认。在这里,每个人都可以为自己创建任意数量的账户(地址)。

备份钱包

比特币的钱包数据是保存在本地电脑上的,万一出现系统崩溃或者中毒事件,导致数据丢失该怎么办?Bitcoin-QT提供了钱包文件备份功能,点击“文件”菜单下的“备份钱包”就可以把钱包文件导出,保存到安全的地方。而恢复钱包也比较方便,只需把备份文件拷贝回上面的目录,重新打开Bitcoin-QT就可以看到备份钱包中的金额了。

加密钱包

在通常情况下,如果你的钱包文件被别人拿到,那么对方将拥有你所有额度的绝对支配权。这太危险了,尤其是当电脑中毒时。

Bitcoin-QT同样考虑到了这个问题,其应对之策就是支持给钱包加密。在“设置”菜单下的“加密钱包”选项里可以设置密码,钱包加密功能会保护所有在该钱包中生成的比特币账号。这个密码类似支付宝的支付密码,付款时需要输入,这样即使对方偷走了钱包文件也只能看余额而不能转账。

比特币再深入

上面简单介绍了比特币的使用,接下来,我们会思考一些更深入的原理问题,比如在一个没有中心的系统中如何产生有中心的效果,并将看到前面大段的密码学知识是如何建立起整个比特币系统的。

去中心化思想

百度百科“比特币”词条是这样定义比特币的:比特币是一种由开源的P2P(Peer-To-Peer,点对点)软件产生的电子货币,是一种网络虚拟货币。比特币不依靠特定货币机构发行,它通过特定算法的大量计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。

这段描述充斥着计算机技术界的行话,但其最核心的思想很清晰――去中心化。去中心化的意思就是不由某个人或某个群体主导一切,而是大家集体参与、共同决定。在沟通方式低效的年代,这是一件非常奢侈的事情,但由于能够保障所有人的权利、及时纠正可能的错误,所以人类社会形态也遵从这个思想,从中心化不断迈向去中心化。

进入互联网时代,由于沟通的便利性得到极大提升,去中心化思想开始在各领域迅速扩张,任何人都可以在网络上表达自己的观点或创造内容。比如在读这本书时,你可能就一边翻着百度百科的词条,一边在豆瓣书评里吐槽,同时还可能在微博里搜索别人是怎么评价比特币的。总而言之,在去中心化的世界里,所有人都是平等的,你可以给9分的电影打2分,但无法因此把9分拉低到哪怕8.9分;你可以宣传自己,但无法封杀别人的观点。

“比特币之父”中本聪在设计比特币模型时就将其设定成去中心化,其P2P网络模型和Facebook的架构类似。事实上,当技术条件成熟时,把去中心化的思想引入任何领域都将引爆群体智慧,都意味着这个领域将发生颠覆性的变革,正如博客之于出版、微博之于媒体、Facebook之于社交、网游之于娱乐、选票之于政治。就连极度中心化的苹果也是因其去中心化的开发平台App Store(应用商店)而大获成功。比特币则悄悄打开了金融业去中心化的第一扇窗户,这是第一个没有中央银行的货币体系,其货币的发行总量、发行速度、支付验证方式在一开始就由去中心化的数学模型设定。

P2P架构和安全通信

上网时,我们经常遇到的是C/S架构(客户机/服务器架构),例如新浪微博。这种架构的原理就是,大家一起连接到weibo.com,所有信息都储存在新浪服务器上,我们通过服务器中转信息进行交流。这种架构的优点是简单快捷,但容易受到攻击。假如黑客把新浪微博黑了,或者新浪微博关了,整个体系就崩溃了。

还有一种架构叫P2P架构,例如下载工具电驴就属于这一种。这种架构的特点是:服务器并不是必要条件,每台联网电脑都是一个独立的个体,通过网络联到其他几台甚至成百上千台电脑,最后全球的电脑形成一个密密麻麻的网络。P2P网络的一大特点就是,一旦启动,就无法关闭。

在这个P2P网络上的所有电脑都直接或者间接地联通起来,某个节点上发出的信息最终可以扩散到全球所有的节点。举例而言,A在中国,B在美国,A和B的联通方式可以是直接连接,也可以是通过位于欧洲的C的电脑搭桥间接地连接。

P2P网络的联通不成问题,但是信任的问题比较突出。例如,A发出一条信息,目标对象是B,B通过P2P网络最终接收到此信息――可以是直接从A电脑传递过来的,也可能是通过多台电脑转手传递过来的――B会产生两个问题:第一,这条信息到底是不是A电脑发送的?第二,信息传递过程中如何确保不被帮忙传递信息的C、D甚至更多人偷窥到信息原始内容。

这就回到了我们讲过的非对称加密技术。在刚才的例子中,假如A要发送一条信息给B,确保这个信息只有B才能解密,那么A就用B的公钥(公钥是公开的,整个P2P网络都知道B的公钥)加密原始信息,这条信息传播到整个P2P网络,虽然所有电脑都有B的公钥,但是用公钥无法解密这条信息,最后B收到这条信息,用自己的私钥就能够轻松地解密这一信息。

那么,A怎么证明自己是这条信息的发送者呢?在网络上,任何人都可以把自己伪装成任何人,B收到信息时,可能传递信息给B的那台电脑会声称它就是A,那么B是否就轻易相信那台电脑就是A呢?不能,因为很可能是那台电脑伪装成A。

A要想证明给B的信息是由自己发出的,只需完成下面这两个步骤:第一步,用A的私钥对原始信息做第一层加密;第二步,在上一步获得的数据基础上再用B的公钥做第二层加密。第一层加密的目的是为了证明这个信息是由A加密并发出的,因为只有A的私钥才能完成这样的加密,这一步也叫作数字签名;第二层加密的目的是确保信息只有B能够解密,因为B的私钥只有B电脑才有。

B收到这个加密的信息后,以相反的顺序做两次解密操作即可:第一步,用B的私钥解密收到的信息;第二步,在第一步获得的数据基础上用A的公钥再次解密。第一步顺利完成,可以确保信息只有B自己能够解密,其他人是无法解密的;第二步顺利完成,B就获得了原始信息,同时也表明这条信息确实是由A的私钥加密生成,排除了是被别人伪造的可能。

有了这一技术保障,即使在匿名的互联网环境中,我们也不必再纠结于通信的安全性,而可以将注意力集中在比特币的体系架构上来。

比特币的本质

在网络上浏览比特币相关的网页时,总是可以看到各种印着“B”符号的硬币,仿佛那就是比特币。实际上,那只是爱好者自己铸造的玩具,和比特币没有丝毫关系。比特币并不是任何有形的硬币,也不是大家想象的一段数据,同样也没有办法把某些比特币从整个系统中分离出来。比特币的本质是一个互相验证的公开记账系统,其工作就是记录所有账户发生的交易。每个账号的每一笔资金流动都被记录在账本里。而且,每个人手上都有一份完整的账本,每个人都可以独立统计出比特币有史以来每个账号的每一笔流动,当然,也能算出任意账号当前的余额是多少。

这里最关键的一点在于:每人手上都有完整的账本,这个系统里没有任何人拥有唯一决定权。这意味着没有人可以决定向这个系统增加货币或者改变规则,因为个体的修改会被整个网络否决。除非有人可以修改50%以上的人手上的账本,这就是比特币系统里所谓的51%攻击。

比特币客户端Bitcoin-QT启动时会进行大量的数据同步,Bitcoin-QT只告诉我们说这是在进行数据同步,但我们并不知道这是什么数据以及为什么要这么做。实际上,同步的是比特币世界的所有交易记录,这部分数据保障了整个体系的去中心化和每个客户端的一切知情权。而不需要下载交易数据的轻客户端,如Electrum则是去几个提供交易数据查询功能的服务器查询特定账号的记录,由于这些数据全部是公开的且带有严密的校验,任何查询服务器都没有必要也不可能伪造数据。所以,即使轻客户端带来了部分中心化效果,实际上对全局的去中心化并没有什么影响。

比特币还有几个令人十分困惑的问题,就是我的地址里拥有的那些币究竟在哪里?备份钱包是把里面的币备份了吗?在现实中,我们知道钱是什么,因为可以直接掏出来看;我们也知道自己的钱在哪里,要么是现金,要么存在银行,要么在诸如证券交易所一类的机构。而比特币系统只是所有交易的记录,这里只关心某个账号里是否有币、有多少币,而币本身是抽象的,大家并不知道它具体是个什么东西。某个地址拥有的比特币数额存在每个人的客户端数据里,大家都知道你有币就可以了。所以当我们备份钱包时,其实只是在备份对自己比特币地址的所有权。

当前:第14/37页

提示: 双击屏幕进入下一页