區塊鏈幾種核心算法

			區塊鏈幾種核心算法

網絡上廣爲流傳的一段關於區塊鏈的形象解釋是:一對戀愛中的男女,男生某天對女生說“我愛你”,然後女生將這句話廣泛告知父母、朋友、微信羣等,並打賞小費感謝大家幫忙記住和作證,這個小費就是“代幣”;男生說的“我愛你”這句話、說話的時間地點等各種信息打包形成的結構化信息包,就叫“區塊”;而父母、朋友、微信羣等節點就是“鏈”;男生如果不承認說過這句話,女生翻出賬本對質,這就是區塊鏈應用。

拜占庭協定
拜占庭的故事大概是這麼說的:拜占庭帝國擁有巨大的財富,周圍10個鄰邦垂誕已久,但拜占庭高牆聳立,固若金湯,沒有一個單獨的鄰邦能夠成功入侵。任何單個鄰邦入侵的都會失敗,同時也有可能自身被其他9個鄰邦入侵。拜占庭帝國防禦能力如此之強,至少要有十個鄰邦中的一半以上同時進攻,纔有可能攻破。然而,如果其中的一個或者幾個鄰邦本身答應好一起進攻,但實際過程出現背叛,那麼入侵者可能都會被殲滅。於是每一方都小心行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。

在這個分佈式網絡裏:每個將軍都有一份實時與其他將軍同步的消息賬本。賬本里有每個將軍的簽名都是可以驗證身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些將軍。儘管有消息不一致的,只要超過半數同意進攻,少數服從多數,共識達成。外匯跟單:www.gendan5.com
由此,在一個分佈式的系統中,儘管有壞人,壞人可以做任意事情(不受protocol限制),比如不響應、發送錯誤信息、對不同節點發送不同決定、不同錯誤節點聯合起來幹壞事等等。但是,只要大多數人是好人,就完全有可能去中心化地實現共識

Paxos 算法(一致性算法)

Paxos算法解決的問題是一個分佈式系統如何就某個值(決議)達成一致。一個典型的場景是,在一個分佈式數據庫系統中,如果各節點的初始狀態一致,每個節點都執行相同的操作序列,那麼他們最後能得到一個一致的狀態。爲保證每個節點執行相同的命令序列,需要在每一條指令上執行一個“一致性算法”以保證每個節點看到的指令一致。一個通用的一致性算法可以應用在許多場景中,是分佈式計算中的重要問題。 節點通信存在兩種模型:共享內存和消息傳遞。Paxos算法就是一種基於消息傳遞模型的一致性算法。

區塊鏈共識機制

區塊鏈是一種分佈式去中心化的架構。需要解決的問題就是在去中心化的條件下能夠達到統一的認知,對於某些賬單是否有效,賬單是否可以寫入。確定網絡中的記賬節點,保證數據的一致性與正確性。通俗一點來講,某些區塊鏈操作比如增加交易,生成新的區塊均需要進行全網的所有節點確認。如果大部分的節點認爲這個有效,那麼則進行操作。

延遲工作量證明(dPoW,Delayed Proof-of-Work)、
優點:節能、安全性增加、可以通過非直接提供 Bitcoin(或是其它任何安全鏈),添加價值到其它區塊鏈,無需付出 Bitcoin(或是其它任何安全鏈)交易的代價。
不足:只有使用 PoW 或 PoS 的區塊鏈,才能採用這種共識算法。
在“公證員激活”(Notaries AcTIve)模式下,必須校準不同節點(公證員或正常節點)的哈希率,否則哈希率間的差異會爆炸

總結

共識機制目前已經成爲了區塊鏈系統性能的關鍵瓶頸。單一的共識算法均存在各種問題,例如PoW算法存在消耗大量計算資源及性能低下的問題;PoS或DPoS存在“富豪統治”問題。融合多種共識算法優勢的想法正受到越來越廣泛的關注。此外,包括在少部分可信節點中選取主節點的共識算法、保證高概率正確性的的異步共識算法、基於特定安全性前提並減少網絡廣播的共識算法、基於可信硬件的共識算法等,也是未來區塊鏈共識算法的研究熱點。
隨着區塊鏈中賬本數據的增加和業務量的提升,可擴展性也是區塊鏈系統迫切需要解決的問題,同時對共識算法也提出了新的挑戰。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章