返回網站

在區塊鏈上比特幣是如何交易?(下)

2020年3月26日

區塊鏈是一個龐大的「分散式帳本系統」,它的基本單位是一個節點(node),節點可能是一台伺服器或錢包,彼此根據比特幣協議規則作為通訊與互動。

如上述區塊鏈就像是紀錄交易的帳本,帳本中的一頁就是一個區塊(block),每個區塊接在一起,就形成了「區塊鏈」。在比特幣網路裡,每個節點都擁有一本完整帳本的副本,為了使每個節點能正確更新到最新資料,就需倚賴節點間的互相傳播。

從上一篇文章中,Lisa打幣給Jason的交易尚未添加到區塊鏈上。交易已透過「溢散式傳播」方式傳播給全網的節點進行驗證,並被加入了由每個節點維護的未驗證交易的臨時池。

接著這筆交易將會經歷到被打包出塊(block)、被礦工挖掘出來,到最終被添加進區塊鏈的 3個階段,讓我們繼續一個個階段介紹與理解吧!

|交易打包為區塊

現在有一名獨立礦工Ben,他所運行的礦工節點收到Lisa跟Jason的交易內容,經驗證後為有效交易,即被放進入該節點所維護的臨時池,這臨時池充滿了未經驗證的交易,按手續費高低來排序交易們的先後順序。

Ben礦工節點從池子中隨機選出並打包成一個區塊,後續他能用自己創造出的區塊,成功被加到區塊鏈上,就能獲得此筆「挖礦獎勵」以及區塊內所有交易的手續費總和。

接著Lisa跟Jason的交易正好被 Ben 打包出塊,準備進入挖礦的環節。

|挖礦的過程

當礦工節點打包出一個區塊後,會開始使用挖礦設備進行「工作量證明計算」的競賽,競賽的意義在於:決定誰的區塊能真正成為比特幣區塊鏈的下一個新區塊。所有礦工都必須照著比特幣協議走,才能在贏得競賽後,獲得比特幣獎勵,這也是比特幣共識規則的一環。

至於什麼是「工作量證明計算」呢? 比喻來說:
想像一群礦工們在「解一個難度爆表的數獨遊戲」,平均每十分鐘遊戲就會開啟新的一輪。礦工們利用電腦算力,一個個猜測一個隨機數(nonce)解答,就如同數獨遊戲只給幾個線索,挖空去推算正確答案。這也跟數獨遊戲一樣,任何人都很容易的可去驗證解答是否正確。

另外,比特幣規範會定期會調整遊戲難度,平均每10分鐘就有礦工能解出問題,而礦工主角Ben在這一輪遊戲中,第一個算出nonce值的解答,成功把區塊添加到比特幣區塊鏈上,並獲的礦工獎勵與交易手續費。

|交易上鏈

Ben將區塊添加到鏈上後,廣播給其他節點確認,其他節點承認並同步了這區塊後,開始下一輪的工作量證明計算。

Lisa跟Jason的交易是Ben創的區塊裡上百筆交易之一,交易算是完成一次「確認」,現在Jason有權消費這筆錢了!

Lisa跟Jason的交易紀錄成功被記載在區塊鏈上,因為比特幣區塊鏈是一個公開帳本,之後任何人皆能搜尋到這筆交易紀錄。

當然區塊鏈的新區塊生成仍在持續進行著……

約13分鐘後,新建立的區塊生成鏈接在Ben創建的區塊後面,其中也包含了前一個區塊的資料(Lisa跟Jason的交易在裡頭),成為該筆交易的第二次確認。

每一個確認的動作都需要用到大量的算力進行工作量證明,所以隨著區塊越堆越高,交易被逆轉的難度增加,普通來說,完成6次以上的確認後,可以被視為交易是不可逆的。

本文章部分節錄自:

哈希派(hashpie)

比特幣交易的旅程地圖:從發布交易到交易上鏈(下)