《精通比特币》学习:交易如何成为区块?什么又是挖矿?

1、交易如何在比特币网络传播开?

发起一笔交易并不代表交易就是有效合法的,在区块链网络中,每一笔交易必须得到全网的认可并保存到总账簿中。一笔交易又是怎么传播让大多数节点知道的呢?有点类似六度理论,当节点A的钱包应用收到一个从未见过的有效交易,他会立即转发给其他所有联接的节点,同样其他节点收到后再继续传播。

2、为什么要把交易告知全网节点,并让全网节点来共同记账?

搞清楚这个问题,首先要搞清楚比特币的设计初衷(了解这个问题个人觉得最好的资料是中本聪发表的白皮书)。现实生活中我们转一笔钱给别人,都是通过银行这样的权威的中心机构,银行会把转出方的资产减少,转入方的资产增加,中本聪认为这种方式并不安全且成本高,比特币的设计初衷就是要绕过这样的中心机构,而且还要更安全更便捷。问题是在没有中心机构的背书下,怎么让交易正常有效运行,比如双重支付的问题,也就是一笔钱同时转给两个人,中本聪的设计是把交易告诉全网节点,全网节点把每一笔交易记录下来,并把每一笔交易通过时间戳按顺序连接起来,再通过密码学等技术保证数据的不可篡改,最后每一个节点都有同步保存交易的完整副本,如果你想篡改账本的数据,除非让51%的节点都改,随着节点的数量增加,这个难度变得几乎不可能达到。那为什么节点愿意来记账呢,中本聪就设计了激励机制,谁先抢到记账权谁就能获得比特币奖励,这就是所谓的挖矿。为什么把这个过程比喻为挖矿,其实是参考黄金而来的,黄金是通货,通过挖矿就有更多的黄金进入流通领域,比特币也是通过挖矿让更多的比特币发行出来进入流通领域,所以实际上比特币的挖矿过程就是数字货币的发行过程,也许比特币没有价值,但一旦流通起来就会产生价值,站在货币的角度去看,中本聪还涉及了比特币的发型总量只有2100万枚,以后比特币全部发行了以后,就只能通过比特币的交易来获得。

区块链是以区块为单位,一个区块包含多个交易,只有一个区块被验证并链接到区块链中,才会成为总账簿的一部分。一个节点接收到一个新的交易,会先把交易存放到一个临时的未验证的交易池中,每隔10分钟左右开始一个新的区块构建,矿工会把从上个区块生成后到现在的所有交易放进一个区块,然后开始解答一道数学题,其实就是求哈希值,简单理解就是:类似做一道函数题,X是区块头和一个随机数字,Y是一个哈希值,当Y和预设定的某个值相匹配时就成功了。谁先解出来谁就有获得了这个区块的记账权,最后再经全网确认,他就可以获得比特币奖励了。

有人说那我就把计算机性能提高,不就能更快计算并抢到计算权了吗?其实是的,计算机的计算能力(简称算力)越强大,抢到记账权的概率越大,但并不是一定的,也许某人运气好正好碰中了呢。

还有人说那是不是计算能力足够强大,是不是就不用十分钟就解答出来了?是的,为了防止这种情况,比特币设计是题目的难度会动态调整,难度会不断提高,保证每一个区块大概是在10分钟左右解答出来。

矿工把题目解答出来了,把新区快再告诉所有节点,得到所有节点确认才最终有效。矿工一旦从网络上收到一个新的区块,就知道这个区块被别人抢走了,赶紧去挖下一个区块吧。

3、挖矿所获得比特币奖励是怎么到手的呢?

每个矿工在构建新区块时,都会增加一个特殊交易,就是把新生成的比特币作为奖励支付到自己的钱包地址,那么一旦他成功解答,就会获得这笔奖励。这里说明一下,比特币的发行是通缩的,最开始是每个区块奖励50个比特币,每隔4年减半,总量固定2100万个,预计到2040年发行完毕。

4、什么是6次证明

比特币的设计中认为一个交易经过6次证明就是不可撤销的了。首先区块链是一个按顺序链接起来的,每个区块都在上一个区块的基础上增加更多的计算,从而增加交易的可信度,区块越多,链条越长,被推翻的难度会成指数级增长。比如包含A交易的区块是第10000个区块,那么10001个区块就是对10000个区块的增强,是对A交易的再一次证明,同理10002,10003都是对A交易的再一次证明,经过6次证明就被认为是不可撤销的。


分享到:


相關文章: