理解区块链
本文基本上是收集的內容匯總,略微全面一點
1、區塊鏈的誕生
互聯網上的貿易,幾乎都需要借助可資信賴的第三方信用機構來處理電子支付信息。這類系統仍然內生性地受制于“基于信用的模式”。區塊鏈技術是構建比特幣區塊鏈網絡與交易信息加密傳輸的基礎技術。它基于密碼學原理而不基于信用,使得任何達成一致的雙方直接支付,從而不需要第三方中介的參與。
定義:
區塊鏈是一個分布式賬本,一種通過去中心化、去信任的方式集體維護一個可靠數據庫的技術方案。
從數據的角度來看:區塊鏈是一種幾乎不可能被更改的分布式數據庫。這里的“分布式”不僅體現為數據的分布式存儲,也體現為數據的分布式記錄(即由系統參與者共同維護)。
從技術的角度來看:區塊鏈并不是一種單一的技術,而是多種技術整合的結果。這些技術以新的結構組合在一起,形成了一種新的數據記錄、存儲和表達的方式。
區塊鏈目前還處在早期階段,一些嗅到商機的大企業,技術牛人都對此開展了研究。初期階段,想想有木有好興奮....
2、區塊鏈技術的特征
2.1、開放,共識
任何人都可以參與到區塊鏈網絡,每一臺設備都能作為一個節點,每個節點都允許獲得一份完整的數據庫拷貝。節點間基于一套共識機制,通過競爭計算共同維護整個區塊鏈。任一節點失效,其余節點仍能正常工作。
2.2、去中心,去信任
區塊鏈由眾多節點共同組成一個端到端的網絡,不存在中心化的設備和管理機構。節點之間數據交換通過數字簽名技術進行驗證,無需互相信任,只要按照系統既定的規則進行,節點之間不能也無法欺騙其它節點。
2.3、交易透明,雙方匿名
區塊鏈的運行規則是公開透明的,所有的數據信息也是公開的,因此每一筆交易都對所有節點可見。由于節點與節點之間是去信任的,因此節點之間無需公開身份,每個參與的節點都是匿名的。
2.4、不可篡改,可追溯
單個甚至多個節點對數據庫的修改無法影響其他節點的數據庫,除非能控制整個網絡中超過51%的節點同時修改,這幾乎不可能發生。區塊鏈中的每一筆交易都通過密碼學方法與相鄰兩個區塊串聯,因此可以追溯到任何一筆交易的前世今生。
3、區塊鏈中的關鍵技術原理
區塊鏈的整個架構如下圖所示
3.1、數字簽名
數字簽名涉及到一個哈希函數、發送者的公鑰、發送者的私鑰。數字簽名有兩個作用,一是能確定消息確實是由發送方簽名并發出來的。二是數字簽名能確定消息的完整性。
工作原理
發送報文時,發送方用一個哈希函數從報文文本中生成報文摘要,然后用自己的私鑰對摘要進行加密,加密后的摘要將作為報文的數字簽名和報文一起發送給接收方,接收方首先用與發送方一樣的哈希函數從接收到的原始報文中計算出報文摘要,接著再用發送方的公鑰來對報文附加的數字簽名進行解密,如果這兩個摘要相同、那么接收方就能確認該數字簽名是發送方的。
3.2、SHA256
一種求Hash值的加密算法。
工作原理
將任何一串數據輸入到SHA256將得到一個256位的Hash值(散列值)。其特點:相同的數據輸入將得到相同的結果。輸入數據只要稍有變化(比如一個1變成了0)則將得到一個千差萬別的結果,且結果無法事先預知。正向計算(由數據計算其對應的Hash值)十分容易。逆向計算(俗稱“破解”,即由Hash值計算出其對應的數據)極其困難,在當前科技條件下被視作不可能。
3.3、Merkle Tree
一種哈希二叉樹,使用它可以快速校驗大規模數據的完整性。在比特幣網絡中,Merkle 樹被用來歸納一個區塊中的所有交易信息,最終生成這個區塊所有交易信息的一個統一的哈希值,區塊中任何一筆交易信息的改變都會使得使得Merkle 樹改變。
工作原理
網上大都稱為Merkle Hash Tree,這是因為 它所構造的Merkle Tree的所有節點都是Hash值。Merkle Tree具有以下特點:
1. 它是一種樹,可以是二叉樹,也可以多叉樹,無論是幾叉樹,它都具有樹結構的所有特點;
2. Merkle樹的葉子節點上的value,是由你指定的,這主要看你的設計了,如Merkle Hash Tree會將數據的Hash值作為葉子節點的值;
3 非葉子節點的value是根據它下面所有的葉子節點值,然后按照一定的算法計算而得出的。如Merkle Hash Tree的非葉子節點value的計算方法是將該節點的所有子節點進行組合,然后對組合結果進行hash計算所得出的hash value。
3.4、時間戳服務器
大多用來進行比對以及驗證處理,時間戳服務器是一款基于PKI(公鑰密碼基礎設施)技術的時間戳權威系統,對外提供精確可信的時間戳服務。它采用精確的時間源、高強度高標準的安全機制,以確認系統處理數據在某一時間的存在性和相關操作的相對時間順序,為信息系統中的時間防抵賴提供基礎服務。
4、區塊鏈的第一個成功應用
比特幣是區塊鏈技術的第一個應用,它的生態圈如下:
任何機器都可以運行一個完整的比特幣節點,一個完整的比特幣節點包括如下功能:
1.錢包,允許用戶在區塊鏈網絡上進行交易 2.完整區塊鏈,記錄了所有交易歷史,通過特殊的結構保證歷史交易的安全性,并且用來驗證新交易的合法性 3.礦工,通過記錄交易及解密數學題來生成新區塊,如果成功可以賺取獎勵 4.路由功能,把其它節點傳送過來的交易數據等信息再傳送給更多的節點
第1步:所有者A利用他的私鑰對前一次交易(比特貨來源)和下一位所有者B簽署一個數字簽名,并將這個簽名附加在這枚貨幣的末尾,制作成交易單
要點:B以公鑰作為接收方地址
第2步:A將交易單廣播至全網,比特幣就發送給了B,每個節點都將收到的交易信息納入一個區塊中
要點:對B而言,該枚比特幣會即時顯示在比特幣錢包中,但直到區塊確認成功后才可用。目前一筆比特幣從支付到最終確認成功,得到6個區塊確認之后才能真正確認到帳。
第3步:每個節點通過解一道數學難題,從而去獲得創建新區塊權利,并爭取得到比特幣的獎勵(新比特幣會在此過程中產生)
要點:節點反復嘗試尋找一個數值,使得將該數值、區塊鏈中最后一個區塊的Hash值以及交易單三部分送入SHA256算法后能計算出散列值X(256位)滿足一定條件(比如前20位均為0),即找到數學難題的解。由此可見,答案并不唯一
第4步:當一個節點找到解時,它就向全網廣播該區塊記錄的所有蓋時間戳交易,并由全網其他節點核對
要點:時間戳用來證實特定區塊必然于某特定時間是的確存在的。比特幣網絡采取從5個以上節點獲取時間,然后取中間值的方式作為時間戳。
第5步:全網其他節點核對該區塊記賬的正確性,沒有錯誤后他們將在該合法區塊之后競爭下一個區塊,這樣就形成了一個合法記賬的區塊鏈。
要點:每個區塊的創建時間大約在10分鐘。隨著全網算力的不斷變化,每個區塊的產生時間會隨算力增強而縮短、隨算力減弱而延長。其原理是根據最近產生的2016年區塊的時間差(約兩周時間),自動調整每個區塊的生成難度(比如減少或增加目標值中0的個數),使得每個區塊的生成時間是10分鐘。
5、主要的數據結構
區塊鏈以區塊為單位組織數據。全網所有的交易記錄都以交易單的形式存儲在全網唯一的區塊鏈中。
區塊是一種記錄交易的數據結構。每個區塊由區塊頭和區塊主體組成,區塊主體只負責記錄前一段時間內的所有交易信息,區塊鏈的大部分功能都由區塊頭實現。
在當前區塊加入區塊鏈后,所有礦工就立即開始下一個區塊的生成工作。
1.把在本地內存中的交易信息記錄到區塊主體中 2.在區塊主體中生成此區塊中所有交易信息的 Merkle 樹,把 Merkle 樹根的值保存在區塊頭中 3.把上一個剛剛生成的區塊的區塊頭的數據通過 SHA256 算法生成一個 哈希值填入到當前區塊的父哈希值中 4.把當前時間保存在時間戳字段中 5.難度值字段會根據之前一段時間區塊的平均生成時間進行調整以應對整個網絡不斷變化的整體計算總量,如果計算總量增長了,則系統會調高數學題的難度值,使得預期完成下一個區塊的時間依然在一定時間內
6、核心問題
6.1工作量證明
區塊頭包含一個隨機數,使得區塊的隨機散列值出現了所需的0個數。節點通過反復嘗試來找到這個隨機數,這樣就構建了一個工作量證明機制。工作量證明機制的本質是一CPU一票,“大多數”的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。如果大多數的CPU為誠實的節點控制,那么誠實的鏈條將以最快的速度延長,并超越其他的競爭鏈條。如果想要修改已出現的區塊,攻擊者必須重新完成該區塊的工作量外加該區塊之后所有區塊的工作量,并最終趕上和超越誠實節點的工作量。
6.2分叉
同一時間段內全網不止一個節點能計算出隨機數,即會有多個節點在網絡中廣播它們各自打包好的臨時區塊(都是合法的)。
某一節點若收到多個針對同一前續區塊的后續臨時區塊,則該節點會在本地區塊鏈上建立分支,多個臨時區塊對應多個分支。該僵局的打破要等到下一個工作量證明被發現,而其中的一條鏈條被證實為是較長的一條,那么在另一條分支鏈條上工作的節點將轉換陣營,開始在較長的鏈條上工作。其他分支將會被網絡徹底拋棄。
6.3雙花
雙花,即二重支付,指攻擊者幾乎同時將同一筆錢用作不同交易。
每當節點在把新收到的交易單加入區塊之前,會順著交易的發起方的公鑰向前遍歷檢查,檢查當前交易所用的幣是否確實屬于當前交易發起方,此檢查可遍歷到該幣的最初誕生點(即產生它的那塊區塊源)。雖然多份交易單可以任意序的廣播,但是它們最終被加入區塊時必定呈現一定的順序。區塊之間以Hash值作為時間戳則區塊,這決定了任意一筆交易資金來源都可以被確定的回溯。
7、應用場景
從需求端來看,金融、醫療、公證、通信、供應鏈、域名、投票等領域都開始意識到區塊鏈的重要性并開始嘗試將技術與現實社會對接。
從投資端來看,區塊鏈的投資資金供給逐步上升,風投的投資熱情也不斷高漲,投資密度越來越大,供給端的資金供給有望推動技術的進一步發展。
從市場應用來看,區塊鏈能成為一種市場工具,幫助社會削減平臺成本,讓中間機構成為過去;區塊鏈將促使公司現有業務模式重心的轉移,有望加速公司的發展。
8、資料來源
http://www.doc88.com/p-3843131640343.html ? 區塊鏈技術發展現狀和展望
其他網頁收集
總結
- 上一篇: 比特币的区块结构解析
- 下一篇: Hyperledger Fabric 排