Chapter117 黑心布一楠(1/3)
首先,有一部分节点先收到了你的第一笔交易,他们会记录下来,传播出去。
另一部分节点收到了你的第二笔交易,他们也会记录下来,传播出去。
随着时间的推移,有一些节点先后收到了你的两笔交易。
怎么办呢?
很简单,他们把先收到的交易记录下来,然后认为后一笔收到的交易是不合法的,直接丢掉。
这时,网络中的节点出现了不一致:一部分节点认可你的第一笔交易,另一部分节点认可你的第二笔交易。
作为一个货币系统,比特币当然只会承认其中一笔。
具体怎么做呢?
比特币系统引入了一个竞赛,让节点们互相竞争,最终达成一致。
这里就有一个区块链的概念形成。
在比特币系统中,节点是这么组织交易的:发生时间相近的交易会被放在一起,形成一个\"区块\",然后每个区块按照时间顺序首尾相接,后一个区块里会写着前一个区块的编号,所有区块组成一个链条的形状。
这个链条从第一个区块(也就是创始块)开始,到最新的一个区块为止,记录了比特币历史上所有已经确认的交易记录。
但是我买的车子和豪宅用到的比特币是同一笔钱,但是却分属于两个区块,那么哪一个才是有效交易?!
中本聪在设计比特币系统时,要求一个区块必须满足一个非常苛刻的条件,才能被认为是区块链里的一个合法区块。
简单地说,所有新产生的区块,除了交易记录、上一个区块的地址等数据之外,还必须添加一个(称作nonce的)小块数据,使得整个区块经过一个(称作哈希计算的)数学运算之后,得到的结果满足指定的条件。而找到满足这样条件的小块数字(nonce),至少对于现在计算机的计算能力来说,是一件非常困难的事情。
这里,比特币对区块做的数学运算称作哈希计算。。
在计算机科学里,哈希计算是一系列计算的统称,这类计算能够将一块数据,映射成一小串固定长度的数字,我们称作哈希值。
哈希计算有几个特点:
一是,给定输入数据,可以很快计算出来它的哈希值;反之只给出哈