概述
Pool(池)的概念被廣泛的套用在伺服器端軟體的開發上。
使用池結構可以明顯的提高你的應用程式的速度,改善效率和降低系統資源的開銷。
所以在現在的套用伺服器端的開發中池的設計和實現是開發工作中的重要一環。
那么到底什麼是池呢?我們可以簡單的想像一下套用運行時的環境,當大量的客戶並發的訪問套用伺服器時我們如何提供服務呢?我們可以為每一個客戶提供一個新的服務對象進行服務這種方法看起來簡單,在實際套用中如果採用這種實現會有很多問題,顯而易見的是不斷的創建和銷毀新服務對象必將給造成系統資源的巨大開銷,導致系統的性能下降。
針對這個問題我們採用池的方式。池可以想像成就是一個容器保存著各種我們需要的對象。我們對這些對象進行復用,從而提高系統性能。從結構上看,它應該具有容器對象和具體的元素對象。從使用方法上看,我們可以直接取得池中的元素來用,也可以把我們要做的任務交給它處理。所以從目的上看池應該有兩種類型,一種是用於處理客戶提交的任務的,我們通常用Thread Pool(執行緒池)來描述它,另一種是客戶從池中獲取有關的對象進行使用,我們通常用 Resource Pool(資源池)來描述它。它們可以分別解決不同的問題。
驗證池機制是區塊鏈共識機制的四大類之一,它是基於傳統的分散式一致性技術,加上數據驗證機制;是目前行業鏈大範圍在使用的共識機制。
區塊鏈的共識機制
區塊鏈的自信任主要體現於分布於區塊鏈中的用戶無須信任交易的另一方,也無須信任一個中心化的機構,只需要信任區塊鏈協定下的軟體系統即可實現交易。
這種自信任的前提是區塊鏈的共識機制(consensus),即在一個互不信任的市場中,要想使各節點達成一致的充分必要條件是每個節點出於對自身利益最大化的考慮,都會自發、誠實地遵守協定中預先設定的規則,判斷每一筆記錄的真實性,最終將判斷為真的記錄記入區塊鏈之中。換句話說,如果各節點具有各自獨立的利益並互相競爭,則這些節點幾乎不可能合謀欺騙你,而當節點們在網路中擁有公共信譽時,這一點體現得尤為明顯。
區塊鏈技術正是運用一套基於共識的數學算法,在機器之間建立“信任”網路,從而通過技術背書而非中心化信用機構來進行全新的信用創造。
現今區塊鏈的共識機制可分為四大類:工作量證明機制(PoW)、權益證明機制(PoS)、股份授權證明機制(DPoS)和Pool驗證池。
工作量證明機制
工作量證明機制即對於工作量的證明,是生成要加入到區塊鏈中的一筆新的交易信息(即新區塊)時必須滿足的要求。在基於工作量證明機制構建的區塊鏈網路中,節點通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。工作量證明機制具有完全去中心化的優點,在以工作量證明機制為共識的區塊鏈中,節點可以自由進出。大家所熟知的比特幣網路就套用工作量證明機制來生產新的貨幣。然而,由於工作量證明機制在比特幣網路中的套用已經吸引了全球計算機大部分的算力,其他想嘗試使用該機制的區塊鏈套用很難獲得同樣規模的算力來維持自身的安全。同時,基於工作量證明機制的挖礦行為還造成了大量的資源浪費,達成共識所需要的周期也較長,因此該機制並不適合商業套用。
權益證明機制
2012年,化名Sunny King的網友推出了Peercoin,該加密電子貨幣採用工作量證明機制發行新幣,採用權益證明機制維護網路安全,這是權益證明機制在加密電子貨幣中的首次套用。
與要求證明人執行一定量的計算工作不同,權益證明要求證明人提供一定數量加密貨幣的所有權即可。權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個“幣權”交易,交易會按照預先設定的比例把一些幣傳送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。這種共識機制可以縮短達成共識所需的時間,但本質上仍然需要網路中的節點進行挖礦運算。因此,PoS機制並沒有從根本上解決PoW機制難以套用於商業領域的問題。
股份授權證明機制
股份授權證明機制是一種新的保障網路安全的共識機制。它在嘗試解決傳統的PoW機制和PoS機制問題的同時,還能通過實施科技式的民主抵消中心化所帶來的負面效應。
股份授權證明機制與董事會投票類似,該機制擁有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這裡投票決定公司決策。基於DPoS機制建立的區塊鏈的去中心化依賴於一定數量的代表,而非全體用戶。在這樣的區塊鏈中,全體節點投票選舉出一定數量的節點代表,由他們來代理全體節點確認區塊、維持系統有序運行。同時,區塊鏈中的全體節點具有隨時罷免和任命代表的權力。如果必要,全體節點可以通過投票讓現任節點代表失去代表資格,重新選舉新的代表,實現實時的民主。
股份授權證明機制可以大大縮小參與驗證和記賬節點的數量,從而達到秒級的共識驗證。然而,該共識機制仍然不能完美解決區塊鏈在商業中的套用問題,因為該共識機制無法擺脫對於代幣的依賴,而在很多商業套用中並不需要代幣的存在。
Pool驗證池
Pool驗證池基於傳統的分散式一致性技術建立,並輔之以數據驗證機制,是目前區塊鏈中廣泛使用的一種共識機制。
Pool驗證池不需要依賴代幣就可以工作,在成熟的分散式一致性算法(Pasox、Raft)基礎之上,可以實現秒級共識驗證,更適合有多方參與的多中心商業模式。不過,Pool驗證池也存在一些不足,例如該共識機制能夠實現的分散式程度不如PoW機制等。
區塊鏈共識機制的優缺點
(1)Pow工作量證明
就是大家熟悉的挖礦,通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其它節點驗證後一起存儲;
優點:完全去中心化,節點自由進出;
缺點:目前bitcoin已經吸引全球大部分的算力,其它再用Pow共識機制的區塊鏈套用很難獲得相同的算力來保障自身的安全;挖礦造成大量的資源浪費;共識達成的周期較長,不適合商業套用
(2)Pos權益證明
Pow的一種升級共識機制;根據每個節點所占代幣的比例和時間;等比例的降低挖礦難度,從而加快找隨機數的速度。
優點:在一定程度上縮短了共識達成的時間;
缺點:還是需要挖礦,本質上沒有解決商業套用的痛點;
(3)DPos股份授權證明機制
類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證;
缺點:整個共識機制還是依賴於代幣,很多商業套用是不需要代幣存在的;
(4)Pool驗證池
基於傳統的分散式一致性技術,加上數據驗證機制;是目前行業鏈大範圍在使用的共識機制。
優點:不需要代幣也可以工作,在成熟的分散式一致性算法(Pasox、Raft)基礎上,實現秒級共識驗證;
缺點:去中心化程度不如bictoin;更適合多方參與的多中心商業模式