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

2 评论 6976 浏览 36 收藏 5 分钟

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

比特币底层技术要点:节点 / 交易过程 / 区块 / 区块头 / 区块形成 / 区块分叉

比特币是不存在的

比特币不存在与任何地方,包括你的电脑硬盘或者其他任何存储设备。你持有的比特币也只是拥有比特币的地址。这样的一个地址只是充当了一个银行账户,没有任何一个实物或者某个数据文件叫做比特币。

比特币的所有交易都存放在巨大的账本文件中,这个账本就是区块链。你的“银行账户”(比特币地址)的余额,并不是直接存放在地址中,而是计算出来的。

UTXO是比特币交易的基本单位

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

UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。

到底什么是UTXO?

举例说明基于账户的支付系统:

张三有一个余额 100 元的账户,李四有一个余额50元的账户。当张三要付给李四20元时,做以下操作:

  1. 检查张三账户余额是否充足,如果不足20元就终止交易,向张三报“余额不足”
  2. 在张三账户里减去20元
  3. 在李四账户里增加20元

举例说明UTXO的支付系统:

张三挖到12.5 枚比特币。过了几天,他把其中 2.5 枚支付给李四。又过了几天,他和李四各出资 2.5 比特币凑成 5 比特币付给王五。那么,三人的账户变化情况使用UTXO记录如下:

01mup8i0VSxWupWC9qh63fh80tzoNG35MSsldJ59.png

对比特币的区块链账本来说记录的只是3笔交易记录。资金来源就是每笔交易的交易输入,资金去向就是每笔交易的交易输出。每一笔交易都要花费(Spend)一笔输入,产生一笔输出,而其所产生的输出,就是“未花费过的交易输出”,也就是 UTXO。

被斯坦福大学密码学和计算机安全教授 Dan Boneh 评价为“extremely brilliant”的中本聪的三个伟大创新:一个是区块链的设计,一个是UTXO,一个是智能合约。

9A9LjwG6GDxhKESLnowf2hHlC3hlwsLXSxLnlWgU.png

比特币的私钥

比特币的地址是随机生成的一串字符串,好像一个透明的存钱罐,谁都可以看到。私钥也是一串保密的字符串,犹如一把钥匙,只有持有私钥的人才能打开这个存钱罐。

为什么交易需要等待10分钟?

比特币协议里面设置了挖矿完成的大概时间是10分钟。所以商家可能会等到你的交易所在的区块被确认之后才会给你发货。但是也有商家不会让你去等,基于对你的一个信任,相信你不会在交易没有得到确认之前有去拿同一笔钱花在别的地方。不过一般这只适用于小额交易。

10分钟是被中本聪设计的时间,考虑计算并验证一笔交易后传播到全部互联网需要几分钟的时间,为了避免“矿工A和矿工B在不知道对方都计算出结果的情况下同时发送计算结果”的情况,都假设需要10分钟才可以完成计算。

​交易过程中的手续费

目前,很多矿工都不收手续费。但是随着每次挖矿成功系统奖励给矿工的币不断减少,未来肯定会有更多的矿工会收取手续费的。有些钱包可以让你手动设置手续费。交易中那部分没有被对方收到,同时也没有找零回来的就是手续费。这笔钱最终会被得到记账权的那个幸运的矿工所得到。

 

本文由 @ 区块链老垚 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Pixabay

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 希望多写一些东西出来 哈哈

    来自广东 回复