比特币是如何运转起来的?

  1. 什么是比特币

比特币的发明者中本聪在《比特币白皮书》中将比特币定义为“一种点对点电子货币系统”,它是为了解决互联网贸易“几乎完全依赖金融机构作为可信任的第三方来处理电子支付”,而金融机构本身也有很多“固有缺点”:交易可撤销、交易成本限制小额度交易、存在欺诈。

为此,他提出了“一个基于密码学原理而不是信任的电子支付系统,该系统允许任何有交易意愿的双方能直接交易而不需要一个可信任的第三方。交易在计算上的不可撤销将保护卖家不被欺诈,用来保护买家的程序化合约机制也应该较容易实现。”这也就是我们接下来要讨论的比特币。

  1. 货币史上的比特币:去中心化

最开始人们进行着物物交换,后来人们发明了使用实物(如贝壳)、金属(如金银)作为“一般等价物”,再后来人们通过一个可信任的中央机构(如钱庄、银行、政府)发行纸币。随着电子技术的发展,发行纸币也转变成了发行电子货币,但这仍然是依靠一个中心化的机构来进行交易。

现在人们一直在探索如何实现“有交易意愿的双方能直接交易而不需要一个可信任的第三方”,因此出现了以比特币为代表的加密货币。

  1. 比特币是如何实现的:共识账本

共识账本就是一个任何人都能够看得到、但谁都无法对交易记录进行修改的公共记账本。

我们可以设想一下在一个只有500个人的小区,在每个人都有一个记账本的情况下,他们相互之间如何进行交易与记账。

小A需要向小B支付10块钱(假设小A自己有20块钱),于是他就通过广播告诉大家,小A向小B支付了十块钱;这时所有人都会在自己的记账本上记录小A向小B支付了10块钱;

如果小B只有15块钱,他想向小C支付20元,而且他向大家进行了广播,这时大家就会检查账本发现小B并没有20元钱,因此这笔交易并不会被大家接受。

比特币生态中中并没有真实的货币,比如我们说小A有10比特币,真实的含义是,我们大家同意他有10比特币,当网络中的多数人同意他只有5比特币时,他就只有5比特币。

  1. 比特币交易的主要流程

1)用户提交交易:用户发起一个交易(比如转账),并将其广播到整个网络中;

2)验证与打包:网络中的节点收到交易后进行初步验证(如签名是否有效、余额是否充足)。随后矿工将有效交易打包成一个区块。

3)达成共识:多数节点同意后,新的区块会被网络接受。

4)添加至账本:达成共识的新区块会被链接到之前的区块上,形成一条不断增长的“链”。所有节点更新自己的账本副本。

  1. 记账技术支持:区块链与密码学

在互联网中,要实现上面的共识账本,就得通过区块链和密码学的技术了,区块链能保证账本的完整性(所有的公开交易都被完整无误的记录下来),密码学能够保证账本的准确性(不会被修改)。

区块链简单来说就是由包含交易数据的区块按顺序串联起来的一整条链路。每一个区块中都包括元数据的区块头和包含交易数据的区块主体构成。区块头包括了三组元数据:

1)用于连接前面的区块、索引自父区块哈希值的数据;

2)挖矿难度、Nonce(随机数,用于工作量证明算法的计数器)、时间戳;

3)能够总结并快速归纳校验区块中所有交易的Merkle(默克尔)树根数据);

哈希算法是区块链技术中用来保证账本的准确性,后面我们会专门介绍哈希算法,欢迎您的关注和点赞,以便第一时间查看相关文章。

  1. 人们为什么愿意参与记账:矿工的收益

比特币生态中有一个重要的角色,那就是矿工。所谓矿工只是一个比方,是因为他们就像矿工一样挖掘“矿石”——比特币中的区块。他们通过贡献算力来挖掘新的区块。

矿工的收益主要有两部分,一部分是挖矿的奖励,第二部分就是交易手续费的收取;

比特币为了鼓励矿工参与记账,设置了一个交易,就是区块创建时会给矿工一笔奖励,这笔奖励在比特币2019年初始时是50比特币,并在2012年减半至25比特币,后面每四年这笔奖励减半,到现在(20206年)是3.125比特币。结合比特币大约每10分钟产生一个区块,我们可以计算出,比特币的总量是2100万。

随着挖矿奖励值的不断减半,交易手续费将成为矿工的最主要的收入。所谓交易手续费就是用户在发起交易时会设置一个输入值,和一个输出值,输出值就是给到交易对手的金额,输出值是要小于输入值的,这中间的差额就是给到记账方(矿工)的交易手续费。更高的交易手续费,有利于更多的矿工参与记账,交易也能够快速得到认证。

7.下期预告

从下期开始我们将开始关注比特币、加密货币领域相关的技术细节,下一期主题《加密货币中的哈希函数和哈希指针》,欢迎点赞加关注。