精通比特币 ~ 解读版

《精通比特币》这本书在知笔墨上有中文电子版可以免费阅读。http://www.zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter01.html

由于包含着一些计算机网路、编程、以及加密学的知识,这本书读起来难度很大,而且有点枯燥。在这里陈述一下我的理解。

要了解比特币首先要了解什么是比特币网路。比特币采用了基于Internet的P2P(peer-to-peer)网络架构(说到p2p首先就让我想到的是BitTorrent技术)。比特币网路由节点构成。根据功能不同,节点也有不同。

下图是具有多种节点类型、网关及协议的扩展比特币网络。

精通比特币 ~ 解读版_第1张图片

另外一个概念就是矿工和挖矿。要知道比特币背后的技术就是区块链。区块链由区块构成(这句好像是废话)而区块则由所有的矿工竞争,通过解一定难度的哈希数学题来产生(具体如何解,自己去查资料吧)。当一个矿工A,成功给出答案之后(一般解题时间10分钟左右),一个大小预设为1M的新的区块产生,并且广播整个比特币网路。当其他矿工看到新的区块产生之后,知道自己已经失败,于是立刻去竞争下一题。我看到这里就产生一个问题,会不会矿工A,NB得一塌糊涂,每题都答对?答案是不可能的。因为解题是靠电脑一个个数值去试,和你NB不NB无关。产生一个新的区块,矿工A作为奖赏得到50个btc(由于一共只有2100万个比特币,所以每隔4年这个奖赏就会减半,现在2017年,一个新区块只有12.5个btc了)这个新产生的区块包含着过去10分钟内所有的交易。新区块就这样发布到了网上得到其他的节点的验证,最后链接到父区块。

我们现在通过一个例子来看看比特币的交易是怎么样的。为了方便起见假设1btc=1usd

比特币交易的基本单位是未经使用的一个交易输出,简称UTXO。UTXO是不能再分割、被所有者锁住的并被整个网络识别成货币单位的一定量的比特币货币。实际上,并不存在储存比特币地址或账户余额的地点,只有被所有者锁住的、分散的UTXO。

好了现在假设我有一个20btc的UTXO支付一杯1.5btc的咖啡。那么原来那个包含20btc的UTXO就会被消费,然后产生一个新的1.5btc的UTXO以及一个新的18.5btc的UTXO(还有可能产生数目非常小的矿工费) 分别作为支付和找零存在。当着1.5btc的交易产生之后,会迅速广播到圈比特币网路节点,并且进入临时交易区。当新区块产生之后,这个1.5bit的交易就会被加入。试想这笔交易是全网路都知道的,你想篡改怎么可能?

这里有个小小的问题,我花了1.5个bitc买咖啡,这笔交易要过10分钟才能被加入新区块。或等60分钟以得到六次确认后才是有效的。那这个也太慢了吧。理论上来说确实如此,但对于像一杯咖啡这样的小额商品来说就没有必要等待那么长时间了。

那么买咖啡支付1.5btc这个过程究竟是怎么样的?这里牵涉到三个概念,钱包,私钥和公钥。

钱包用来储存公钥和私钥对;

公钥用来产生钱包地址;

私钥用来匹配公钥;

简单理解就是咖啡店伙计给我一个比特币钱包地址,我给1.5btc到那个地址,我的交易输出会产生一个脚本,这个脚本说“谁能拿出一个签名和咖啡店的公开地址匹配上,就支付给谁”。因为只有咖啡店的钱包有这个私钥产生的签名,所以只有咖啡店可以兑换这笔输出。从中可知,私钥是非常重要的,比特币认私钥不认人。由于采取的是私钥公钥形式,所以比特币的交易的传播无需向信用卡一样使用加密网路。任何wifi都可以。

因为使用了私钥以及使用椭圆曲线加密机制生成公钥,比特币和以后的一些使用到区块链技术的山寨币被称为加密货币。但是加密货币就一定安全么?上面说了比特币认私钥不认人。如果你把私钥放在公开的地方,或者存储在本地计算机,万一被黑客看到,那么比特币资产流失不可避免。

你可能感兴趣的:(精通比特币 ~ 解读版)