區塊鏈核心技術概覽

liudashuang2017發表於2018-04-04

第二章 核心技術概覽
定義:
1.交易–賬本的一次操作
2.區塊–記錄一段時間內發生的所有交易和狀態結果,是對當前賬本狀態的一次共識
3.鏈–由區塊按照順序串聯而成,是整個賬本狀態變化的日誌記錄。
原理:
如果把區塊鏈作為一個狀態機,則每次交易就是試圖改變一次交易,而每次共識生成的區塊,就是參與者對於區塊中交易導致狀態改變的結果進行確認。
分散式資料記錄賬本,這個賬本只允許新增不允許刪除,賬本底層的基本結構是一個線性的連結串列,連結串列由一個個區塊串聯而成,後繼區塊記錄前導區塊的hash值,新的資料要加入,必須要放到新的區塊中,而這個塊是否合法,可以通過計算hash的方式快速檢驗出來。任意維護節點都可以提議一個新的合法區塊,然而必須經過一定的共識機制來對最終選擇區塊達成一致。

比特幣例子:
比特幣客戶端發起一項交易,廣播到比特幣網路中並等待確認。網路中的節點會將一些收到的等待確認的交易記錄打包在一起(此外還要包括前一個區塊頭部的hash值等資訊),組成一個候選區塊–>找到一個nonce串(隨機串)放到區塊中,使得候選區塊的hash滿足一定的條件。一旦節點算出來滿足條件的nonce串,這個區塊在格式上就認為“合法”了,就可以嘗試在網路中將它廣播出去。–>其他節點收到候選區,進行驗證,發現確實符合約定條件,就承認這個區塊是一個合法的新區塊,並維護到自己的區塊鏈中–>當大多數的節點都將區塊新增到自己維護的區塊鏈結構上時,該區塊鏈被網路接收,區塊中所包括的交易也就得到確認。

關鍵點:比特幣的這種基於算力尋找nonce串的共識機制被稱為工作量證明。採用的是嘗試性暴力計算。嘗試的次數越多,算出來的概率越大。

參與者不同分為:公有鏈、聯盟鏈、私有鏈
使用目的和場景不同:貨幣鏈、產權鏈、眾籌鏈、通用鏈

組成部分:網路層、共識層、智慧合約、應用層、許可權管理機制。

涉及的領域:分散式系統、儲存、密碼學、心理學、經濟論、博弈論、控制論、網路協議等。

關鍵問題:
1.防止交易記錄被篡改:
2.證明交易雙方的身份:
3.保護交易雙方的隱私:
傳統方案:hash演算法、加解密演算法、數字證書和簽名(盲簽名和環簽名)
但是量子計算等新技術的出現,RSA等目前商用的加密技術,在未來可能無法提供足夠的安全性。

經典的技術難題:如何讓大多數節點承認,同時這個資訊是被確認的、不可推翻的。
公開匿名場景下:基於概率的演算法
帶許可權管理的場景下:確定性演算法

區塊鏈不適用於高頻交易的場景,如何提高區塊鏈系統的交易吞吐量,降低交易的確認。
目前公開的區塊鏈只能支援每秒7筆,而對於大額交易來說,交易確認時間為一小時左右,以太坊的區塊鏈的吞吐量略高一些,但交易效能也被認為是較大的瓶頸。
方案是將高頻的交易放到鏈外來,只用區塊鏈記錄最終交易資訊。

核心是解決多方的互信問題。
可以使用以太坊、超級賬本快速設計複雜的分散式賬本應用。

相關文章