bitcoin

比特币系统由用户(用户通过密钥控制钱包)、交易(每一笔交易都会被广播到整个比特币网络)和矿工(通过竞争计算生成在每个节点达成共识的区块链,区块链是一个分布式的公共权威账簿,包含了比特币网络发生的所有的交易)组成

交易的链条
每笔交易,需要相应的秘钥才能解锁。Alice的密钥提供了解锁之前交易输出的签名,因此向比特币网络证明她拥有这笔钱。交易形成了一条链,最近交易的输入对应以前交易的输出。

bitcoin_第1张图片
Paste_Image.png

交易的形式
从一个地址到另一个地址的简单支付,这种交易也常常包含给支付者的“找零”。一般交易有一个输入和两个输出
bitcoin_第2张图片
Paste_Image.png

集合多个输入到一个输出

bitcoin_第3张图片
Paste_Image.png

将一个输入分配给多个输出,即多个接收者

bitcoin_第4张图片
Paste_Image.png

完整客户端含有整个区块链中所有交易的所有未消费输出副本。这使得钱包即能拿这些输出构建交易,又能在收到新交易时很快地验证其输入是否正确。然而,完整客户端占太大的硬盘空间,所以大多数钱包使用轻量级的客户端,只保存用户自己的未消费输出。

交易的输出
Alice的交易输出会包含一个脚本,这个脚本说 “这个输出谁能拿出一个签名和Bob的公开地址匹配上,就支付给谁”。因为只有Bob的钱包的私钥可以匹配这个地址,所以只有Bob的钱包可以提供这个签名以兑换这笔输出。因此Alice会用需要Bob的签名来包装一个输出。

bitcoin_第5张图片
Paste_Image.png
一个对比特币交易的常见误解是它们必须要等10分钟后被确认加进
一个新区块,或等60分钟以得到六次确认后才是有效的。虽然这些
确认可以确保交易已被整个网络接受,但对于像一杯咖啡这样的小
额商品来说就没有必要等待那么长时间了。一个商家可以免确认来
接受比特币小额支付。这样做的风险不比接受一个不是用有效身份
证领取或没有签名的信用卡的风险更大,而后者是现在商家常做的
事情。```
**工作量证明**
Jing在比特币网络中扮演了一个矿工的角色。大概每10分钟,Jing和其他上千个矿工一起展开一场对一个区块的交易寻找正解的全球竞赛。为寻找这个解,也被称为工作量证明,整个网络需要具有每秒亿万次哈希计算的能力。这个工作量证明算法指的用SHA256加密算法不断地对区块头和一个随机数字进行哈希计算,直到出现一个和预设值相匹配的解。第一个找到这个解的矿工会赢得这局竞赛并会将此区块发布到区块链中。
**新交易加入区块链**
网络中产生的一笔交易直到成为整个比特币大账簿——区块链的一部分时才会被确认有效。平均每10分钟,矿工会将自上一个区块以来发生的所有交易生成一个新的区块。新交易不断地从用户钱包和应用流入比特币网络。当比特币网络上的节点看到这些交易时,会先将它们放到各自节点维护的一个临时的未经验证的交易池中。当矿工构建一个新区块时,会将这些交易从这个交易池中拿出来放到这个新区块中,然后通过尝试解决一个非常困难的问题(也叫工作量证明)以证明这个新区块的合法性。
**挖矿过程**
矿工一旦从网络上收到一个新区块时,会意识到在这个区块上的解题竞赛已经输掉了,会马上开始下一个新区块的挖掘工作。它会立刻将一些交易和这个新区块的数字指纹放在一起开始构建下一个新区块,并开始给它计算工作量证明。
**困难度**
第277,317号新区块诞生在另一个挖矿节点中。因为这个新区块是基于包含Alice交易的第277,316号区块的,在这个区块的基础上增加了更多的计算,因此就加强了这些交易的可信度。包含Alice交易的区块对这个交易来说算一次"证明"。基于这个区块每产生一个新区块,对这个交易来说就会增加了一次"证明"。当区块一个个堆上来时,这个交易变得指数级地越来越难被推翻,因此它在网络中得到更多信任。

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/2061490-1ab1486cd9f5fe50.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(bitcoin)