區塊鏈的概述 

想知道更多區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】
鏈客,有問必答!!算法

區塊鏈的概述  
基本原理 
區塊鏈的基本原理理解起來並不難。基本概念包括: 
交易(Transaction) :一次操做,致使帳本狀態的一次改變,如添加一條記錄; 
區塊(Block) :記錄一段時間內發生的交易和狀態結果,是對當前帳本狀態的一次共識; 
鏈(Chain) :由一個個區塊按照發生順序串聯而成,是整個狀態變化的日誌記錄。 網絡

若是把區塊鏈做爲一個狀態機,則每次交易就是試圖改變一次狀態,而每次共識生成的區塊,就是參與者對於區塊中全部交易內容致使狀態改變的結果進行確認。 
  分佈式

在實現上,首先假設存在一個分佈式的數據記錄本(這方面的技術相對成熟) ,這個記錄本只容許添加、不容許刪除。其結構是一個線性的鏈表,由一個個「區塊」串聯組成,這也是其名字「區塊鏈」的來源。新的數據要加入,必須放到一個新的區塊中。而這個塊(以及塊裏的交易) 是否合法,能夠經過一些手段快速檢驗出來。維護節點均可以提議一個新的區塊,然而必須通過必定的共識機制來對最終選擇的區塊達成一致。 區塊鏈

具體以比特幣爲例來看如何使用了區塊鏈技術?客戶端發起一項交易後,會廣播到網絡中並等待確認。網絡中的節點會將一些等待確認的交易記錄打包在一塊兒(此外還要包括此前區塊的哈希值等信息) ,組成一個候選區塊。而後,試圖找到一個 nonce 串放到區塊裏,使得候選區塊的 hash 結果知足必定條件(好比小於某個值) 。一旦算出來這個區塊在格式上就合法了,就能夠進行全網廣播。你們拿到提案區塊,進行驗證,發現確實符合約定條件了,就認可這個區塊是一個合法的新區塊,被添加到鏈上。固然,在實現上還會有不少的細節。比特幣的這種基於算力的共識機制被稱爲 Proof of Work(PoW) 。目前,要讓 hash 結果知足必定條件並沒有已知的啓發式算法,只能進行暴力嘗試。嘗試的次數越多,算出來的機率越大。經過調節對 hash 結果的限制,比特幣網絡控制約 10 分鐘平均算出來一個合法區塊。算出來的節點將獲得區塊中全部交易的管理費和協議固定發放的獎勵費(目前是 12.5 比特幣,每四年減半) 。也即俗稱的挖礦。 日誌

很天然會有人問,可否進行惡意操做來破壞整個區塊鏈系統或者獲取非法利益。好比不認可別人的結果,拒絕別人的交易等。實際上,由於系統中存在大量的用戶,並且用戶默認都只認可他看到的最長的鏈。只要不超過一半(機率意義上越少確定越難) 的用戶協商,最終最長的鏈將很大機率上是合法的鏈,並且隨着時間增長,這個機率會越大。例如,通過 6 個塊後,即使有一半的節點聯合起來想顛覆被確認的結果,其機率將爲 $$\frac{1}{2}^6 = 1.6%$$,即低於 $$\frac{1}{60}$$ 的可能性。 hash

區塊鏈是一個完整了數據鏈條,這個鏈條的無數備份被完整地存儲在P2P網絡的各個節點。因此區塊鏈的缺點很是明顯,對這個數據鏈條的修改須要彙總必定時間內的全部交易到得到出塊權的節點。得到出塊權的節點把交易彙總以後進行驗證打包出塊。出好的塊交給其餘節點確權驗證。整個流程耗時時間長挖礦的計算浪費嚴重。用戶的交易會被延遲好久纔會被確認。io

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息