文章閱讀頁通欄

比特幣區塊鏈核心技術詳解

來源: 樂晴智庫 作者:
區塊鏈的出現主要解決的是傳統中心化網絡部署方式所帶來的眾多問題,包括: 1)交易非公開化,中心節點掌握分布節點信息,分節點不掌握其他節點......

區塊鏈的出現主要解決的是傳統中心化網絡部署方式所帶來的眾多問題,包括:

1)交易非公開化,中心節點掌握分布節點信息,分節點不掌握其他節點信息;

2)系統安全性取決于中心節點安全性,中心節點存在道德風險,可利用大數據進行數據變現,存在隱私泄露風險;

3)系統風險性隨著網絡規模擴大而上升;

4)中心節點維護系統運行涉及較高成本等。


源于比特幣,區塊鏈利用分布式部署P2P網絡和同步更新完成了對于以上問題的解決:

1) 分布式方面,區塊鏈每個節點掌握各個節點信息,信息可以采用匿名化原則,但交易公開,且系統內交易批準取決于所有節點共識性原則,規則對于所有節點公平且強制,因此,隨著網絡規模擴大,系統風險性反而下降;

2) 同步更新方面,由于每個節點都存有過去所去所有交易的歷史記錄,且每10分鐘交易所組成的比鄰區塊之間存在邏輯嵌套關系,故隨著時間推移,交易增多,每個節點內同步更新的鏈條愈發變長,愈發難以被篡改。

比特幣完成了區塊鏈“從0到1”的誕生,比特幣區塊鏈交易簡易流程


1)交易定義

公共鑰匙加密(Public Key Cryptography)。比特幣區塊鏈PKC目前為每位網絡參與者提供兩把鑰匙,一個為其他用戶所知的公匙(相當于用戶用戶名),一個只為用戶自己所知的私匙 (相當于用戶密碼),任何有你公匙的參與者可以給你發送一條加密信息,該信息只有你可以讀到。

使用私匙,發信人可以在加密信息中進行數字簽名,向收信人證明發信人是你自己。KPC采用橢圓不對稱加密技術,安全性較強。如何發送比特幣?例:A向比特幣區塊鏈網絡中發送一條或多條信息,A在信息中指名發送人和收件人的地址。對于每個收件人地址,A指名發送的比特幣數量。A在信息中利用私匙對信息進行數字簽名,向收件人證明身份。信息發送后,A等待比特幣區塊鏈網絡對于信息進行驗證和確認。

區塊鏈深度分析報告:比特幣區塊鏈核心技術詳解

2)單節點交易核查

A的交易信息發送后,當比特幣區塊鏈網絡內任一節點(礦工)上的機器收到了信息,其開始做以下處理:檢查該機器自身是否已經處理過此次交易(確定交易唯一性);檢查交易涉及地址是否合法有效;檢查數字簽名,以確保原發信者是Input地址合法有效的擁有者;檢查發件人這筆比特幣有沒有在別的地方被花費提取過;檢查發件人比特幣數量至少是和收件人預收的比特幣數量相同(Input>Output,任何不同差額為手續費用)。

如果以上檢查沒有問題,節點將交易標注成有效,將其列入“未確認交易”名單。然后將信息廣播至網絡內其它節點,網絡內眾節點開始對交易進行節點共識驗證,并在網絡中進行廣播。進行單點驗證的礦工可以獲得一小部分比特幣獲得獎勵。

3) 加入區塊,區塊創造

該筆交易被一個挖礦節點驗證,驗證成功后會被添加到區塊中。每個節點要正確無誤的給這十分鐘的每一筆交易蓋上時間戳并記入最新的區塊中,所以每個區塊包含過去十分鐘的所有交易。

4) 節點共識驗證

每個礦工節點需通過解SHA256的算法來競爭過去十分鐘區塊的合法記賬權,并爭取得到12.5個比特幣的獎勵(該數量基本是每四年遞減一半,目前已挖出1600萬以上比特幣)。若一個礦工節點解開了這十分鐘的SHA256難題,其將向全網公布其這十分鐘區塊記錄的所有蓋時間戳交易,并由全網其他礦工節點核對。

5) 區塊成鏈

全網其他礦工節點核對該區塊記賬的正確性(因為他們同時也在蓋時間戳記賬,只是沒有競爭到合法區塊記賬權,因此無獎勵),沒有錯誤后他們將在該合法區塊之后競爭下一個區塊,這樣就形成了一個合法記賬的區塊單鏈,也就是—區塊鏈。

一般來說,每一筆交易,必須經過六次區塊確認,也就是六個十分鐘共計60分鐘,才能最終在區塊鏈上被承認合法交易。

比特幣區塊鏈本身是一種全球分布式數據庫,最大的特點是沒有中央管理員,因此無法被單一方所控制,但同時可以做到交易傳輸數據的可信性。

網絡節點(nodes)為礦工,負責承載網絡運輸任務,同時其負責交易的驗證以及信息記錄儲存。

個人用戶,商家等可以通過錢包和交易所形式介入比特幣區塊鏈網絡,但其不涉及區塊鏈的交易驗證和記錄儲存。

區塊鏈核心技術之一:數學加密

比特幣的所有權通過數字密鑰、比特幣地址和數字簽名予以確認,比特幣錢包中只有密鑰,不包含比特幣。由于每筆交易需一個有效簽名才能被處理存儲,因此擁有密鑰相當于擁有了帳戶中比特幣的所有和控制權。

公私鑰為1對1成對出現,公鑰相當于用戶名,私鑰相當于密碼,私鑰為隨機生成的數字,通過不可逆橢圓曲線運算加密函數運算出公鑰,公鑰經過哈希函數運算得出一個比特幣地址,可公開且分享。

區塊鏈核心技術之二:P2P網絡

擁有去中心化、抗攻擊、協助傳輸、韌性強的特點。

區塊鏈核心技術之三:區塊和鏈


挖礦流程(1/2)

挖礦由礦工型節點共同參與,由于需要保證節點之間的同步,所以新區塊的添加速度不能太快。因為每個區塊的后面,只能跟著一個區塊,礦工永遠只能在最新區塊的后面,生成下一個區塊。因此若區塊添加速度過快,就會出現剛剛同步了一個區塊并準備基于其生成下一個區塊,別的節點又有新區塊生成的情況。因此比特幣區塊鏈白皮書協議中設置故意讓添加新區塊變得較困難—平均每10分鐘,全網才能生成一個新區塊。

需注意,這種產出速度并非由白皮書硬性命令規定,而是通過使海量計算成為得出有效Hash的先決條件,從而控制區塊產生時間約為10分鐘。

目標值(The Target):

解密的過程為各個礦工在區塊頭所包含的疊加內容(參見“區塊頭”部分)基礎上放置隨機數字鏈(工作量,Proof of Work),經過SHA256反復計算后達成目標值。礦工解密運算Hash的有效性跟目標值密切相關,只有小于目標值的Hash才有效,不然則無效,必須重算。

每個區塊頭包含一個難度系數(Difficulty),此值決定了計算Hash難度。區塊鏈協議規定,使用一個常量除以難度系數(Target=TargetMax/Difficulty),可得到目標值。難度系數越大,目標值就越小。隨著全網算力提升,難度系數快速上升。例,第10000個區塊難度系數為14,484.16,而第504,000個區塊難度系數已上升為2,227,847,638,503.63。

為了將產出速率恒定在十分鐘,比特幣區塊鏈白皮書內設計了難度系數的動態調節機制。難度系數每兩周(2016個區塊)調整一次。若2周內,區塊平均生成速度是8分鐘,就意味著比法定速度快了20%,因此難度系數就要調高20%;若平均生成速度是12分鐘,就意味著比法定速度慢了20%,難度系數就要調低20%。

隨機數(The Nonce):

隨機數為只能使用一次的密碼數字,若礦工通過哈希運算產生了一個大于目標數的哈希值,則其需選擇隨機值重新進行計算,直到找到小于或等于目標數的哈希值。

更具體和直接解釋整個流程(3) 挖礦流程(2/2)

Merkle Root是區塊頭部分內的Hash值,代表了區塊體部分內的所有交易。在比特幣區塊鏈中,每筆交易產生后,都已經被Hash成一段代碼并廣播給各節點。在各節點的區塊中,可能包含數百筆到數千筆的交易,因此,為節省儲存空間并減少資源耗費,比特幣區塊鏈的設計原理採用Merkle Tree機制,讓這些數百到數千筆的交易Hash值經由兩兩一組形成一個新Hash值的方式,不斷重複進行,直到最后產生一組最終的Hash值,也就是Merkle TreeRoot,這個最終的Hash值便會被記錄到Block Header中,只有32 Bytes的大小。MerkleTree機制可大幅減少資料傳輸量與運算資源消耗,驗證時,只需驗證這個Merkle Tree的Root值即可。

分叉和六度認證

分叉:

區塊鏈中,每個子區塊只有一個父區塊,但當不同的礦工發現不同的區塊時(兩個礦工同時解出了SHA256算法,并進行全網廣播),會出現一個父區塊暫時擁有很多子區塊的情況,這種情況被稱為分叉。在任何區塊里,第一條都沒有轉出地址,就是所謂的CoinBase(挖礦交易),沒有任何人付給礦工這筆錢,礦工只是理所應當的寫上自己獲得了12.5比特幣。

若所有節點皆認可礦工這樣寫,則礦工得到該筆挖礦收入。不同的礦工在填寫區塊的時候,數據一定是不一樣的,因為每個礦工的第一條肯定不一樣,礦工只會把挖礦收入轉入自己的地址。所以比如說礦工A的CoinBase是“A獲得了12.5比特幣”,礦工B的CoinBase是“B獲得了12.5比特幣”。

由于每個礦工的區塊數據皆不同,所以他們解題得出的結果也是不一樣的,都是正確答案,只是區塊不同。由于距離遠近,不同的礦工看到這兩個區塊是有先后順序的。通常情況下,礦工們會把自己先看到的區塊復制過來,然后接著在這個區塊后開始新挖礦工作。

從分叉的區塊起,由于不同的礦工跟從了不同的區塊,在分叉出來的兩條不同鏈上,算力存在差別,形象地說,就是跟從兩個鏈礦工的數量是不同的。由于解題能力和礦工的數量成正比,因此兩條鏈的增長速度也會不一樣。一段時間后,總有一條鏈的長度要超過另一條。當礦工發現全網有一條更長的鏈時,其就會拋棄他當前的鏈,把新的更長的鏈全部予以復制,在這條鏈的基礎上繼續挖礦。所有礦工都這樣操作,這條鏈就成為了主鏈,分叉出來被拋棄掉的鏈就消失。


最終網絡內只有一條鏈會被保留,成為真正賬本,其他分鏈皆為無效。交易區塊所引伸的區塊“長度”越長(包含算力越強),越不容易被網絡內其他節點所改變或否認,一般來說一筆交易要經過6次確認才會被最終記錄下來,“六級”是比特幣用戶所認可的最終確認等級。


更多區塊鏈數字貨幣資訊:http://www.crhupc.live/news

關鍵詞: 比特幣區塊鏈  區塊鏈分布式  
0/300
? 好运彩3单双