比特币交易的旅程地图:从发布交易到交易上链(下)

比特币的去中心化点对点网路,其实是一个庞大的“分散式帐本系统”,也就是区块链,分散式帐本的基本单位是一个节点(node),节点是一台伺服器或钱包软体都有可能,彼此根据比特币协议定义的规则作通讯与互动。

区块链如上所说它就像是纪录交易的帐本,帐本的一页就是一个区块(block),每页(每个区块)接在一起,形成区块链。在比特币网路裡每个*全节点都拥有一本完整的帐本副本,为了使每个节点都正确更新到最新的资料,就要倚赖节点间的互相传播了。

*储存了完整交易历史纪录帐本的节点成为“全节点”.一般我们在手机上使用的钱包应用多属于轻量节点, 仅储存跟自己钱包帐户相关的交易纪录 ,需要跟全节点连结,才能访问全网的交易纪录。(关于节点的类型分类,我们会留到比特币进阶篇再做解释。)

在前一章节,Lisa 跟 Jason 那笔尚未确认、尚未添加到区块链上的交易,已经透过“溢散式传播”的方式,传播给全网大部分的节点,并被加入了由每个节点维护的未验证交易的临时池,后续这笔交易将会经历到被打包出块(block)、被矿工挖掘出来到最终被添加进区块链的 3个阶段,让我们一个一个阶段慢慢解释与理解。

(由于本篇文章与上篇文章是连贯呈现的,建议先阅读完上一章节,再延续阅读本篇)

阶段一:交易被纳入“候选区块”

现在有一名独立矿工 Ben,他所运行的矿工节点收到了Lisa 跟 Jason 的交易内容,经验证为有效的交易后,被放进了该节点所维护的临时池裡,这个临时池充满了未经验证的交易,池子裡交易们的排队顺序会按手续费高地来排序。

Ben 的矿工节点会从池子中随机选出容量上限1MB的交易数目打包成一个候选区块(如同帐本的其中一页)。在这个区块中,Ben 会再自行添加一笔新交易指向自己的地址,如果他能在后续让自己创造出的区块成功被加到区块链上的话,便能获得这笔“挖矿奖励”以及区块裡所有交易的手续费总和。

Lisa 跟 Jason 的交易正好被 Ben 打包出块后,准备进行挖矿的主轴环节。

bitcoin-101-how-bitcoin-transactions-work-part-2-1.png

阶段二:“挖矿”的过程

当矿工节点打包出一个区块后,会开始使用挖矿设备的电力进行名为“工作量证明计算”的竞赛,

竞赛的意义在于:决定谁的区块能真正成为比特币区块链的下一个新区块,如同健美先生选美一般。所有矿工都必须照著比特币协议的规则走,才有可能在赢得竞赛后,最终赢得比特币奖励,这是比特币共识规则的一环。

至于什麽是“工作量证明计算”? 我们打个简单的比方:

可以把它想像成众多矿工们在“解一个难度爆棚的数独游戏”,游戏平均每十分钟就会开启新一轮的竞赛。矿工们会利用电脑算力,一个个猜测一个随机数(nonce)的解答,就如同数独游戏只给你稀少几个线索,挖空让你去推算正确答案一样,而且也跟数独游戏一样,任何人去验证答案对不对都很容易。

另外,比特币协议会动态调整游戏难度,控制在平均每 10 分钟就会有矿工能解出问题,而矿工主角 Ben 在这一轮的游戏中第一个算出nonce值的解答,成功把区块添加到比特币区块链上,并获的矿工奖励与交易手续费。

阶段三:交易上链

bitcoin-101-how-bitcoin-transactions-work-part-2-2.png

Ben 把区块添加到链上后,广播给全球其他节点确认,其他节点承认并同步了这个区块以及 Ben 节点的临时交易池资料,开始下一轮的工作量证明计算。

Lisa 跟 Jason 的交易是 Ben 创的区块裡上百笔交易的其中之一,交易算是完成一次“确认”,现在Jason有权消费这笔钱了!

当然区块链的新区块生成仍在持续进行著……

大约13分钟后,有一个新区块生成链接在 Ben 创的区块后面,其中也包含了前一个区块的资料(Lisa 跟 Jason 的交易在裡头),成为该笔交易的第二次确认。因为每一个确认的动作都需要用到大量的算力进行工作量证明,所以随著区块越堆越高,交易被逆转的难度会指数型增加,普通来说,完成6次以上的确认后,可以被视为交易是不可逆的。

Lisa 跟 Jason 的交易纪录成功被记载在链上了,因为比特币区块链是一个公开帐本,任何人之后皆能搜寻到这笔交易纪录,下一章节将带大家利用区块链浏览器来看一笔交易的详细资讯。

比特币交易的旅程地图:从发布交易到交易上链(下)

扫一扫手机访问

比特币交易的旅程地图:从发布交易到交易上链(下)

发表评论