一篇文章读懂比特币:区块链底层技术之交易过程

这篇文章主要和大家介绍下比特币的交易过程。

节点 / 交易过程 / 区块 / 区块头 / 区块形成 / 区块

分叉

比特币不存在与任何地方,包括你的电脑硬盘或者其他任何存储设备。你持有的

比特币也只是拥有比特币的地址。这样的一个地址只是充当了一个银行账户,没 

有任何一个实物或者某个数据文件叫做比特币。

比特币的所有交易都存放在巨大的账本文件中,这个账本就是区块链。你的“银

行账户”(比特币地址)的余额,并不是直接存放在地址中,而是计算出来的。

先来一张“比特币之父”中本聪白皮书里的装逼图

UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生

成及验证的一个核心概念。

张三有一个余额 100 元的账户,李四有一个余额50元的账户。当张三要付给

李四20元时,做以下操作:

1. 检查张三账户余额是否充足,如果不足20元就终止交易,向张三

报“余额不足”

2. 在张三账户里减去20元

3. 在李四账户里增加20元

张三挖到12.5 枚比特币。过了几天,他把其中 2.5 枚支付给李四。又过了几

天,他和李四各出资 2.5 比特币凑成 5 比特币付给王五。那么,三人的账户变

化情况使用UTXO记录如下:

对比特币的区块链账本来说记录的只是3笔交易记录。资金来源就是每笔交易的交

易输入,资金去向就是每笔交易的交易输出。每一笔交易都要花费(Spend)一笔

输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就

是 UTXO。

被斯坦福大学密码学和计算机安全教授 Dan Boneh 评价为“extremely

brilliant”的中本聪的三个伟大创新:一个是区块链的设计,一个是UTXO,

一个是智能合约。

比特币的地址是随机生成的一串字符串,好像一个透明的存钱罐,谁都可以看

到。私钥也是一串保密的字符串,犹如一把钥匙,只有持有私钥的人才能打开这

个存钱罐。

比特币协议里面设置了挖矿完成的大概时间是10分钟。所以商家可能会等到你的

交易所在的区块被确认之后才会给你发货。但是也有商家不会让你去等,基于对

你的一个信任,相信你不会在交易没有得到确认之前有去拿同一笔钱花在别的地

方。不过一般这只适用于小额交易。

10分钟是被中本聪设计的时间,考虑计算并验证一笔交易后传播到全部互联网需

要几分钟的时间,为了避免“矿工A和矿工B在不知道对方都计算出结果的情况下

同时发送计算结果”的情况,都假设需要10分钟才可以完成计算。

你可能感兴趣的:(一篇文章读懂比特币:区块链底层技术之交易过程)