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

比特幣的去中心化點對點網路,其實是一個龐大的「分散式帳本系統」,也就是區塊鏈,分散式帳本的基本單位是一個節點(node),節點是一台伺服器或錢包軟體都有可能,彼此根據比特幣協議定義的規則作通訊與互動。

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

*儲存了完整交易歷史紀錄帳本的節點成為「全節點」.一般我們在手機上使用的錢包應用多屬於輕量節點, 僅儲存跟自己錢包帳戶相關的交易紀錄 ,需要跟全節點連結,才能訪問全網的交易紀錄。(關於節點的類型分類,我們會留到比特幣進階篇再做解釋。)

在前一章節,Lisa 跟 Jason 那筆尚未確認、尚未添加到區塊鏈上的交易,已經透過「溢散式傳播」的方式,傳播給全網大部分的節點,並被加入了由每個節點維護的未驗證交易的臨時池,後續這筆交易將會經歷到被打包出塊(block)、被礦工挖掘出來到最終被添加進區塊鏈的 3個階段,讓我們一個一個階段慢慢解釋與理解。

(由於本篇文章與上篇文章是連貫呈現的,建議先閱讀完上一章節,再延續閱讀本篇)

階段一:交易被納入「候選區塊」

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

Ben 的礦工節點會從池子中隨機選出容量上限1MB的交易數目打包成一個候選區塊(如同帳本的其中一頁)。在這個區塊中,Ben 會再自行添加一筆新交易指向自己的地址,如果他能在後續讓自己創造出的區塊成功被加到區塊鏈上的話,便能獲得這筆「挖礦獎勵」以及區塊裡所有交易的手續費總和。

Lisa 跟 Jason 的交易正好被 Ben 打包出塊後,準備進行挖礦的主軸環節。

階段二:「挖礦」的過程

當礦工節點打包出一個區塊後,會開始使用挖礦設備的電力進行名為「工作量證明計算」的競賽,

競賽的意義在於:決定誰的區塊能真正成為比特幣區塊鏈的下一個新區塊,如同健美先生選美一般。所有礦工都必須照著比特幣協議的規則走,才有可能在贏得競賽後,最終贏得比特幣獎勵,這是比特幣共識規則的一環。

至於什麼是「工作量證明計算」? 我們打個簡單的比方:

可以把它想像成眾多礦工們在「解一個難度爆棚的數獨遊戲」,遊戲平均每十分鐘就會開啟新一輪的競賽。礦工們會利用電腦算力,一個個猜測一個隨機數(nonce)的解答,就如同數獨遊戲只給你稀少幾個線索,挖空讓你去推算正確答案一樣,而且也跟數獨遊戲一樣,任何人去驗證答案對不對都很容易。

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

階段三:交易上鏈

Ben 把區塊添加到鏈上後,廣播給全球其他節點確認,其他節點承認並同步了這個區塊以及 Ben 節點的臨時交易池資料,開始下一輪的工作量證明計算。

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

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

大約13分鐘後,有一個新區塊生成鏈接在 Ben 創的區塊後面,其中也包含了前一個區塊的資料(Lisa 跟 Jason 的交易在裡頭),成為該筆交易的第二次確認。因為每一個確認的動作都需要用到大量的算力進行工作量證明,所以隨著區塊越堆越高,交易被逆轉的難度會指數型增加,普通來說,完成6次以上的確認後,可以被視為交易是不可逆的。

Lisa 跟 Jason 的交易紀錄成功被記載在鏈上了,因為比特幣區塊鏈是一個公開帳本,任何人之後皆能搜尋到這筆交易紀錄,下一章節將帶大家利用區塊鏈瀏覽器來看一筆交易的詳細資訊。

 

NEXT:《從區塊鏈瀏覽器,解析比特幣交易運作》

Next Post

Welcome Back!

Login to your account below

Create New Account!

Fill the forms below to register

Retrieve your password

Please enter your username or email address to reset your password.

Add New Playlist