當前位置:
首頁 > 最新 > 書籍壓縮系五之「區塊鏈技術原理」

書籍壓縮系五之「區塊鏈技術原理」

書籍壓縮系五之「區塊鏈技術原理」

成長日記

每期一個主題,用文字記錄自己的成長,分享自己的故事

成長日記第二十一期

本期主題:書籍壓縮系五之「區塊鏈技術原理」

Faded

 Faded

Alan Walker 

00:00/03:32

此篇文章繼續壓縮《區塊鏈--定義未來金融與經濟新格局》

壓縮內容為第五章:區塊鏈技術原理

(因本章內容多為專業知識,篇幅較長固壓縮為兩篇 正文圖片均來自原圖書)

區塊鏈技術是建立在現有偉大技術之上的另一偉大技術,包含:公鑰密碼學、P2P網路、時間戳伺服器、工作量證明等。

區塊鏈雖具有多樣性,但是核心理念相同。以下內容以比特幣區塊鏈網路為例

1、 密碼學概述

數據加密標準和公鑰密碼學(非對稱加密演算法)的誕生將密碼學帶入了公眾領域。其按演算法思想又可以劃分為古典密碼學、現代密碼學和公鑰密碼學。

古典密碼編碼演算法可分成兩種:置換、代換

置換:把明文字元串中的字母重新排列,字母本身沒有變化,只改變了它們的位置。

代換:將明文中的字元代替成其他字元。

古典密碼學的安全性較低。

1949年香農的資訊理論誕生,標誌著密碼學進入第二階段。加密演算法基於密鑰進行信息的加密和解密,但是加密和解密演算法為同一模式,同時只用一把密鑰來保護數據安全。即「對稱加密演算法」一個很大的缺點就是:交易的甲乙雙方均需要知道密鑰才可以完成數據的加密和解密。密鑰的保存和傳遞的安全性難以保證。

公鑰密碼學是可以不直接傳遞密鑰即可完成密文的解密,加密和解密使用不同的規則,所以無需傳遞密鑰,兩者之間也有一定的關聯。被稱為:非對稱加密演算法。

用下圖表示兩者(對稱加密演算法、非對稱加密演算法)的區別:

非對稱加密演算法要有一對密鑰即:公鑰和私鑰。公鑰加密,私鑰解密。就如同一把鎖對應一把鑰匙一樣。

哈希演算法:哈希函數又稱為散列函數。給定一個輸入x,會得到相應固定長度的輸出H(x)。

比特幣系統所用的哈希函數具備:免碰撞(無x≠y,H(x)=H(y)情況)、隱匿性、窮舉為最好的解法的特點。

公鑰密碼學和哈希演算法均屬於現代密碼學

區塊鏈中包含有:橢圓曲線演算法、SHA-256哈希演算法、對稱加密演算法、Base58編碼。

2、 區塊鏈的組成

區塊鏈的基本概念為:地址、交易、數據、網路

地址的產生:通過32位元組隨機數組成的私鑰算出公鑰,然後公鑰經過一系列的哈希演算法及編碼演算法便得到了比特幣的地址。地址用來標誌一筆交易的支出方和接收方。

交易:對前一個交易和下一位所有者的公鑰簽署一個數字簽名,並將這個簽名附加在交易的末尾。

運作圖如下:

這種運作的方式存在一個非常嚴重的問題:雙花,即由於時間差,所以很難校驗之前的某位資產擁有者是否進行了雙重支付。需要可信的第三方介入。

比特幣交易可以納入多個輸入與輸出,一筆交易可以轉給多人,但最終只有一人收到,類似我們在imToken中一筆資產在未完成整個交易周期之前可以轉賬多次。

一個完整的交易周期包括:生成、在網路中傳播、工作量證明、整個網路節點驗證、記錄到比特幣區塊鏈。本質是一個包含交易發送方、接收方、資產轉移等信息的數據結構。

UTXO結構,UTXO指未花費的交易輸出。可以這樣理解:一個交易包含著資產的輸入與輸出,交易與交易之間首尾相連構成一條鏈,鏈的源頭是挖礦獎勵,末尾則是未花費的輸出。

比特幣的交易有三種:標準輸入、花費挖礦獎勵、產生挖礦獎勵。具體結構圖如下:

交易輸出主要有兩種:標準交易輸出、挖礦獎勵輸出。具體結構圖如下:

腳本類似一種規則,可表達出無數的條件變種。類似於區塊鏈技術提供的一個可擴展的介面,使得任何人都可以基於這個介面去開發基於區塊鏈技術的應用。

區塊是由包含原數據的區塊頭和其後的交易列表組成。區塊頭由4位元組的版本、32位元組的上一個區塊的哈希值、32位元組的Merkle Root Hash、4位元組的當前時間戳、4位元組的當前難度值、4位元組的隨機數組成,區塊頭大小共80位元組。

區塊中所包含的交易會通過Merkle Tree演算法生成Merkle Root Hash,並儲存在區塊頭的數據結構里,Merkle Tree演算法是用來同步數據的一致性。

進行時間戳標記:比特幣網路中的每個挖礦節點都基於已存在的最新區塊生成下一個區塊,同時將網路中的未確認的合法交易包含進去。在完成工作量證明之後,將新的區塊廣播到全網,同時獲得區塊的獎勵。時間戳可以證實某特定數據在特定的時間是確實存在的。

比特幣被設定為一種點對點的電子現金系統,採用了基於P2P的網路構架,即無特殊節點,接入網路中的每個節點都是平等的,每個節點相互關聯構成了比特幣區塊鏈中的網路。節點將最長鏈視為正確鏈,不過如果兩個節點同時廣播了基於上一個區塊的新區塊,那麼其他的節點會在不同時間接收到這兩個節點的廣播,且均會保存,並在率先接收到的區塊上進行工作,直到新區塊誕生之後才會確認哪個是最終鏈。

本章專業知識較多,本文僅簡單介紹概括,如果想深入學習可以閱讀原著。未完待續。

用文字記錄自己在區塊鏈世界的成長,帶你一起預見區塊鏈世界的未來

一隻熱愛區塊鏈、金融、寫作、運動的大三機械男


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 成長日記SeetheFuture 的精彩文章:

書籍壓縮系四之「區塊鏈的應用前景

TAG:成長日記SeetheFuture |