比特幣是一種去中心化數字貨幣,通過許多運行比特幣軟體的節點構成的全球點對點網路進行交易。
比特幣網路裡,每個節點不斷將網路收集的新交易訊息轉送給其他節點並嘗試將此交易訊息儲存到區塊上。
用戶可以連接到全球任何一個運行比特幣軟體的節點進行交易,這些節點共同維護著一份去中心化的交易記錄。
此外,比特幣網路具備可擴展性。任何人可通過在自己的電腦上安裝比特幣軟體並連接網路成為新節點,無需經過中央單位審核、許可,就能自主提供交易服務並獲得比特幣獎勵。
查詢比特幣節點資訊 https://bitnodes.io/nodes/?q=Satoshi:26.0.0
新區塊編號 = SHA-256(新區塊資訊內容)
新區塊資訊內容分成區塊頭與區塊體兩個部分。
區塊頭含有上一個區塊的編號以及一個叫NONCE的數值,區塊體則是儲存所有已打包交易資訊。
新區塊編號則是將區塊頭與區塊體輸入雜湊演算法(SHA-256)後計算出的數值。
區塊頭 = 上一個區塊編號 + NONCE
區塊體 = 已打包交易資訊
新區塊編號 = SHA-256(上一個區塊編號 + 已打包交易資訊 + NONCE)
SHA全名是Secured Hash Algorithm安全雜湊演算法的簡寫,256代表他可以接受最多264 bits的輸入並轉換成256 bits的輸出。
SHA-256("apple") = 3A7BD3E2360A3D29EEA436FCFB7E4...
SHA-256有幾個特點:
假設我們規定新區塊編號必須是0000開頭,由於SHA-256的各種特性,除了不斷調整輸入重新計算之外(try&error、暴力法)沒有其他方式,而這個可以嘗試調整的輸入,就是新區塊頭的NONCE。
NONCE = 1
1234xxx... = SHA-256(上一個區塊編號 + 已打包交易資訊 + NONCE)
NONCE = 2
9876xxx... = SHA-256(上一個區塊編號 + 已打包交易資訊 + NONCE)
...
NONCE = X
0000xxx... = SHA-256(上一個區塊編號 + 已打包交易資訊 + NONCE)
編號規則越嚴苛,找到符合規則的新區塊編號就更困難、需要更久的時間,規則的嚴苛程度就是比特幣網路的挖礦難度。
挖礦就是這麼的樸實無華,不斷的調整NONCE,直到計算出符合規則的新區塊編號。
當節點計算出符合網路難度目標的新編號後,會將新區塊廣播到比特幣網路。收到新區塊的節點會進行一系列的驗證,確認其中的交易有效且結構符合規則。
由於每個新區塊都包含著上一個區塊編號資訊,形成了一種鏈式數據結構,即所謂的區塊鏈。
隨著新區塊被更多節點接受、驗證並添加到各自的區塊鏈副本中,該區塊鏈版本逐漸在網路中得到廣泛認同,成為主鍊。
前面提到一個新區塊由區塊頭及區塊體組成,而區塊體則打包了一組交易資訊。
除了從網路來的交易訊息之外,已打包交易資訊還存在一筆特殊交易(Coinbase transaction),通常翻譯成創幣交易或是礦工獎勵交易,這筆交易的收款人是節點本身,沒有付款人。
已打包交易資訊 = Coinbase transaction(創幣交易/礦工獎勵交易) + 其他正常交易
也就是說當一個節點成功產生新區塊記錄其他人的交易時,也同時產生了一筆給自己獎勵的交易。
沒錯,所有比特幣都是從礦工來的,沒有礦工就沒有比特幣可以炒,礦工是我們的爸爸。
由於每個節點的挖礦策略不同、訊息傳遞路徑與速度等不同步的因素造成整個比特幣網路同時存在多個不同版本的主鍊。
此時比特幣網路會採用「最長鍊原則」來解決分叉問題,網路中的節點會選擇最長的區塊鏈作為有效主鍊,因為最長的鏈擁有最大的計算工作量證明,代表了網路大多數節點的共識。
當一條分叉鍊成為最長鍊後,其他較短的分叉鍊上的交易需要被重新放入交易池,等待再次被節點挖掘並加入到新的最長鍊中。
這種動態調整過程使比特幣網路能夠有效應對節點間的信息延遲或網路分割等問題,並維護系統的高度去中心化和操作的透明性。
中本聰在比特幣區塊鏈的設計中精心結合了加密技術、挖礦機制、共識機制、經濟獎勵四個關鍵要素,創造了一個堅不可摧的網路安全架構和去中心化交易系統。
SHA-256雜湊演算法保證數據的完整性,並確保每個區塊的編號依賴於前一個區塊,創建了一個不可更改的數據鏈,即區塊鏈。
挖礦機制要求礦工進行大量計算以驗證交易並創建新區塊。這不僅使篡改歷史記錄在計算上變得不可行,也極大地提高了對網路發動攻擊的成本,從而保護網路免受惡意攻擊。
通過共識機制,比特幣確保了所有網路參與者對帳本的狀態達成一致。最長鏈原則確保了網路在有多個有效的區塊鏈版本時能夠選擇最可靠的一條鏈,這支持了整個系統的去中心化和數據不可逆性。
透過區塊獎勵更多礦工被激勵而加入網路成為節點,51%攻擊的難度隨之增加,進而提升整體網路的安全性。
無論發起網路攻擊與或是參與挖礦,都需要計算能力作為成本,獎勵機制的存在使得攻擊者在衡量攻擊成本、效益後,高機率會選擇正常參與挖礦獲得獎勵而非發起攻擊。
中本聰的設計巧妙地將這些元素結合在一起,創造了一個自我調節、高度安全和去中心化的數字貨幣系統,這使比特幣成為全球範圍內廣泛接受和信賴的數字貨幣。
看完還是不太清楚沒關係,只要記住中本聰真的很神就好。
本文用較淺顯易懂的方式描述區塊鏈與區塊,真實區塊鏈的資料結構較為複雜。