導航:首頁 > 解決方法 > 區塊鏈共識矛盾的解決方法

區塊鏈共識矛盾的解決方法

發布時間:2022-12-07 16:01:10

『壹』 深入了解區塊鏈的共識機制及演算法原理

所謂「共識機制」,是通過特殊節點的投票,在很短的時間內完成對交易的驗證和確認;對一筆交易,如果利益不相乾的若干個節點能夠達成共識,我們就可以認為全網對此也能夠達成共識。再通俗一點來講,如果中國一名微博大V、美國一名虛擬幣玩家、一名非洲留學生和一名歐洲旅行者互不相識,但他們都一致認為你是個好人,那麼基本上就可以斷定你這人還不壞。

要想整個區塊鏈網路節點維持一份相同的數據,同時保證每個參與者的公平性,整個體系的所有參與者必須要有統一的協議,也就是我們這里要將的共識演算法。比特幣所有的節點都遵循統一的協議規范。協議規范(共識演算法)由相關的共識規則組成,這些規則可以分為兩個大的核心:工作量證明與最長鏈機制。所有規則(共識)的最終體現就是比特幣的最長鏈。共識演算法的目的就是保證比特幣不停地在最長鏈條上運轉,從而保證整個記賬系統的一致性和可靠性。

區塊鏈中的用戶進行交易時不需要考慮對方的信用、不需要信任對方,也無需一個可信的中介機構或中央機構,只需要依據區塊鏈協議即可實現交易。這種不需要可信第三方中介就可以順利交易的前提是區塊鏈的共識機制,即在互不了解、信任的市場環境中,參與交易的各節點出於對自身利益考慮,沒有任何違規作弊的動機、行為,因此各節點會主動自覺遵守預先設定的規則,來判斷每一筆交易的真實性和可靠性,並將檢驗通過的記錄寫入到區塊鏈中。各節點的利益各不相同,邏輯上將它們沒有合謀欺騙作弊的動機產生,而當網路中有的節點擁有公共信譽時,這一點尤為明顯。區塊鏈技術運用基於數學原理的共識演算法,在節點之間建立「信任」網路,利用技術手段從而實現一種創新式的信用網路。

目前區款連行業內主流的共識演算法機制包含:工作量證明機制、權益證明機制、股份授權證明機制和Pool驗證池這四大類。

工作量證明機制即對於工作量的證明,是生成要加入到區塊鏈中的一筆新的交易信息(即新區塊)時必須滿足的要求。在基於工作量證明機制構建的區塊鏈網路中,節點通過計算隨機哈希散列的數值解爭奪記賬權,求得正確的數值解以生成區塊的能力是節點算力的具體表現。工作量證明機制具有完全去中心化的優點,在以工作量證明機制為共識的區塊鏈中,節點可以自由進出。大家所熟知的比特幣網路就應用工作量證明機制來生產新的貨幣。然而,由於工作量證明機制在比特幣網路中的應用已經吸引了全球計算機大部分的算力,其他想嘗試使用該機制的區塊鏈應用很難獲得同樣規模的算力來維持自身的安全。同時,基於工作量證明機制的挖礦行為還造成了大量的資源浪費,達成共識所需要的周期也較長,因此該機制並不適合商業應用。

2012年,化名Sunny King的網友推出了Peercoin,該加密電子貨幣採用工作量證明機制發行新幣,採用權益證明機制維護網路安全,這是權益證明機制在加密電子貨幣中的首次應用。與要求證明人執行一定量的計算工作不同,權益證明要求證明人提供一定數量加密貨幣的所有權即可。權益證明機制的運作方式是,當創造一個新區塊時,礦工需要創建一個「幣權」交易,交易會按照預先設定的比例把一些幣發送給礦工本身。權益證明機制根據每個節點擁有代幣的比例和時間,依據演算法等比例地降低節點的挖礦難度,從而加快了尋找隨機數的速度。這種共識機制可以縮短達成共識所需的時間,但本質上仍然需要網路中的節點進行挖礦運算。因此,PoS機制並沒有從根本上解決PoW機制難以應用於商業領域的問題。

股份授權證明機制是一種新的保障網路安全的共識機制。它在嘗試解決傳統的PoW機制和PoS機制問題的同時,還能通過實施科技式的民主抵消中心化所帶來的負面效應。

股份授權證明機制與董事會投票類似,該機制擁有一個內置的實時股權人投票系統,就像系統隨時都在召開一個永不散場的股東大會,所有股東都在這里投票決定公司決策。基於DPoS機制建立的區塊鏈的去中心化依賴於一定數量的代表,而非全體用戶。在這樣的區塊鏈中,全體節點投票選舉出一定數量的節點代表,由他們來代理全體節點確認區塊、維持系統有序運行。同時,區塊鏈中的全體節點具有隨時罷免和任命代表的權力。如果必要,全體節點可以通過投票讓現任節點代表失去代表資格,重新選舉新的代表,實現實時的民主。

股份授權證明機制可以大大縮小參與驗證和記賬節點的數量,從而達到秒級的共識驗證。然而,該共識機制仍然不能完美解決區塊鏈在商業中的應用問題,因為該共識機制無法擺脫對於代幣的依賴,而在很多商業應用中並不需要代幣的存在。

Pool驗證池基於傳統的分布式一致性技術建立,並輔之以數據驗證機制,是目前區塊鏈中廣泛使用的一種共識機制。

Pool驗證池不需要依賴代幣就可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎之上,可以實現秒級共識驗證,更適合有多方參與的多中心商業模式。不過,Pool驗證池也存在一些不足,例如該共識機制能夠實現的分布式程度不如PoW機制等

這里主要講解區塊鏈工作量證明機制的一些演算法原理以及比特幣網路是如何證明自己的工作量的,希望大家能夠對共識演算法有一個基本的認識。

工作量證明系統的主要特徵是客戶端要做一定難度的工作來得到一個結果,驗證方則很容易通過結果來檢查客戶端是不是做了相應的工作。這種方案的一個核心特徵是不對稱性:工作對於請求方是適中中的,對於驗證方是易於驗證的。它與驗證碼不同,驗證碼是易於被人類解決而不是易於被計算機解決。

下圖所示的為工作量證明流程。

舉個例子,給個一個基本的字元創「hello,world!」,我們給出的工作量要求是,可以在這個字元創後面添加一個叫做nonce(隨機數)的整數值,對變更後(添加nonce)的字元創進行SHA-256運算,如果得到的結果(一十六進制的形式表示)以「0000」開頭的,則驗證通過。為了達到這個工作量證明的目標,需要不停地遞增nonce值,對得到的字元創進行SHA-256哈希運算。按照這個規則,需要經過4251次運算,才能找到前導為4個0的哈希散列。

通過這個示例我們對工作量證明機制有了一個初步的理解。有人或許認為如果工作量證明只是這樣一個過程,那是不是只要記住nonce為4521使計算能通過驗證就行了,當然不是了,這只是一個例子。

下面我們將輸入簡單的變更為」Hello,World!+整數值」,整數值取1~1000,也就是說將輸入變成一個1~1000的數組:Hello,World!1;Hello,World!2;...;Hello,World!1000。然後對數組中的每一個輸入依次進行上面的工作量證明—找到前導為4個0的哈希散列。

由於哈希值偽隨機的特性,根據概率論的相關知識容易計算出,預計要進行2的16次方次數的嘗試,才能得到前導為4個0的哈希散列。而統計一下剛剛進行的1000次計算的實際結果會發現,進行計算的平均次數為66958次,十分接近2的16次方(65536)。在這個例子中,數學期望的計算次數實際就是要求的「工作量」,重復進行多次的工作量證明會是一個符合統計學規律的概率事件。

統計輸入的字元創與得到對應目標結果實際使用的計算次數如下:

對於比特幣網路中的任何節點,如果想生成一個新的區塊加入到區塊鏈中,則必須解決出比特幣網路出的這道謎題。這道題的關鍵要素是工作量證明函數、區塊及難度值。工作量證明函數是這道題的計算方法,區塊是這道題的輸入數據,難度值決定了解這道題的所需要的計算量。

比特幣網路中使用的工作量證明函數正是上文提及的SHA-256。區塊其實就是在工作量證明環節產生的。曠工通過不停地構造區塊數據,檢驗每次計算出的結果是否滿足要求的工作量,從而判斷該區塊是不是符合網路難度。區塊頭即比特幣工作量證明函數的輸入數據。

難度值是礦工們挖掘的重要參考指標,它決定了曠工需要經過多少次哈希運算才能產生一個合法的區塊。比特幣網路大約每10分鍾生成一個區塊,如果在不同的全網算力條件下,新區塊的產生基本都保持這個速度,難度值必須根據全網算力的變化進行調整。總的原則即為無論挖礦能力如何,使得網路始終保持10分鍾產生一個新區塊。

難度值的調整是在每個完整節點中獨立自動發生的。每隔2016個區塊,所有節點都會按照統一的格式自動調整難度值,這個公式是由最新產生的2016個區塊的花費時長與期望時長(按每10分鍾產生一個取款,則期望時長為20160分鍾)比較得出來的,根據實際時長一期望時長的比值進行調整。也就是說,如果區塊產生的速度比10分鍾快,則增加難度值;反正,則降低難度值。用公式來表達如下:

新難度值=舊難度值*(20160分鍾/過去2016個區塊花費時長)。

工作量證明需要有一個目標值。比特幣工作量證明的目標值(Target)的計算公式如下:

目標值=最大目標值/難度值,其中最大目標值為一個恆定值

目標值的大小與難度值成反比,比特幣工作量證明的達成就是礦中計算出來的區塊哈希值必須小於目標值。

我們也可以將比特幣工作量的過程簡單的理解成,通過不停變更區塊頭(即嘗試不同nonce值)並將其作為輸入,進行SHA-256哈希運算,找出一個有特定格式哈希值的過程(即要求有一定數量的前導0),而要求的前導0個數越多,難度越大。

可以把比特幣將這道工作量證明謎題的步驟大致歸納如下:

該過程可以用下圖表示:

比特幣的工作量證明,就是我們俗稱「挖礦」所做的主要工作。理解工作量證明機制,將為我們進一步理解比特幣區塊鏈的共識機制奠定基礎。

『貳』 區塊鏈 --- 共識演算法

PoW演算法是一種防止分布式服務資源被濫用、拒絕服務攻擊的機制。它要求節點進行適量消耗時間和資源的復雜運算,並且其運算結果能被其他節點快速驗算,以耗用時間、能源做擔保,以確保服務與資源被真正的需求所使用。

PoW演算法中最基本的技術原理是使用哈希演算法。假設求哈希值Hash(r),若原始數據為r(raw),則運算結果為R(Result)。

R = Hash(r)

哈希函數Hash()的特性是,對於任意輸入值r,得出結果R,並且無法從R反推回r。當輸入的原始數據r變動1比特時,其結果R值完全改變。在比特幣的PoW演算法中,引入演算法難度d和隨機值n,得到以下公式:

Rd = Hash(r+n)

該公式要求在填入隨機值n的情況下,計算結果Rd的前d位元組必須為0。由於哈希函數結果的未知性,每個礦工都要做大量運算之後,才能得出正確結果,而算出結果廣播給全網之後,其他節點只需要進行一次哈希運算即可校驗。PoW演算法就是採用這種方式讓計算消耗資源,而校驗僅需一次。

 

PoS演算法要求節點驗證者必須質押一定的資金才有挖礦打包資格,並且區域鏈系統在選定打包節點時使用隨機的方式,當節點質押的資金越多時,其被選定打包區塊的概率越大。

POS模式下,每個幣每天產生1幣齡,比如你持有100個幣,總共持有了30天,那麼,此時你的幣齡就為3000。這個時候,如果你驗證了一個POS區塊,你的幣齡就會被清空為0,同時從區塊中獲得相對應的數字貨幣利息。

節點通過PoS演算法出塊的過程如下:普通的節點要成為出塊節點,首先要進行資產的質押,當輪到自己出塊時,打包區塊,然後向全網廣播,其他驗證節點將會校驗區塊的合法性。

 

DPoS演算法和PoS演算法相似,也採用股份和權益質押。

但不同的是,DPoS演算法採用委託質押的方式,類似於用全民選舉代表的方式選出N個超級節點記賬出塊。

選民把自己的選票投給某個節點,如果某個節點當選記賬節點,那麼該記賬節點往往在獲取出塊獎勵後,可以採用任意方式來回報自己的選民。

這N個記賬節點將輪流出塊,並且節點之間相互監督,如果其作惡,那麼會被扣除質押金。

通過信任少量的誠信節點,可以去除區塊簽名過程中不必要的步驟,提高了交易的速度。
 

拜占庭問題:

拜占庭是古代東羅馬帝國的首都,為了防禦在每塊封地都駐扎一支由單個將軍帶領的軍隊,將軍之間只能靠信差傳遞消息。在戰爭時,所有將軍必須達成共識,決定是否共同開戰。

但是,在軍隊內可能有叛徒,這些人將影響將軍們達成共識。拜占庭將軍問題是指在已知有將軍是叛徒的情況下,剩餘的將軍如何達成一致決策的問題。

BFT:

BFT即拜占庭容錯,拜占庭容錯技術是一類分布式計算領域的容錯技術。拜占庭假設是對現實世界的模型化,由於硬體錯誤、網路擁塞或中斷以及遭到惡意攻擊等原因,計算機和網路可能出現不可預料的行為。拜占庭容錯技術被設計用來處理這些異常行為,並滿足所要解決的問題的規范要求。

拜占庭容錯系統

發生故障的節點被稱為 拜占庭節點 ,而正常的節點即為 非拜占庭節點

假設分布式系統擁有n台節點,並假設整個系統拜占庭節點不超過m台(n ≥ 3m + 1),拜占庭容錯系統需要滿足如下兩個條件:

另外,拜占庭容錯系統需要達成如下兩個指標:

PBFT即實用拜占庭容錯演算法,解決了原始拜占庭容錯演算法效率不高的問題,演算法的時間復雜度是O(n^2),使得在實際系統應用中可以解決拜占庭容錯問題
 

PBFT是一種狀態機副本復制演算法,所有的副本在一個視圖(view)輪換的過程中操作,主節點通過視圖編號以及節點數集合來確定,即:主節點 p = v mod |R|。v:視圖編號,|R|節點個數,p:主節點編號。

PBFT演算法的共識過程如下:客戶端(Client)發起消息請求(request),並廣播轉發至每一個副本節點(Replica),由其中一個主節點(Leader)發起提案消息pre-prepare,並廣播。其他節點獲取原始消息,在校驗完成後發送prepare消息。每個節點收到2f+1個prepare消息,即認為已經准備完畢,並發送commit消息。當節點收到2f+1個commit消息,客戶端收到f+1個相同的reply消息時,說明客戶端發起的請求已經達成全網共識。

具體流程如下

客戶端c向主節點p發送<REQUEST, o, t, c>請求。o: 請求的具體操作,t: 請求時客戶端追加的時間戳,c:客戶端標識。REQUEST: 包含消息內容m,以及消息摘要d(m)。客戶端對請求進行簽名。

主節點收到客戶端的請求,需要進行以下交驗:

a. 客戶端請求消息簽名是否正確。

非法請求丟棄。正確請求,分配一個編號n,編號n主要用於對客戶端的請求進行排序。然後廣播一條<<PRE-PREPARE, v, n, d>, m>消息給其他副本節點。v:視圖編號,d客戶端消息摘要,m消息內容。<PRE-PREPARE, v, n, d>進行主節點簽名。n是要在某一個范圍區間內的[h, H],具體原因參見 垃圾回收 章節。

副本節點i收到主節點的PRE-PREPARE消息,需要進行以下交驗:

a. 主節點PRE-PREPARE消息簽名是否正確。

b. 當前副本節點是否已經收到了一條在同一v下並且編號也是n,但是簽名不同的PRE-PREPARE信息。

c. d與m的摘要是否一致。

d. n是否在區間[h, H]內。

非法請求丟棄。正確請求,副本節點i向其他節點包括主節點發送一條<PREPARE, v, n, d, i>消息, v, n, d, m與上述PRE-PREPARE消息內容相同,i是當前副本節點編號。<PREPARE, v, n, d, i>進行副本節點i的簽名。記錄PRE-PREPARE和PREPARE消息到log中,用於View Change過程中恢復未完成的請求操作。

主節點和副本節點收到PREPARE消息,需要進行以下交驗:

a. 副本節點PREPARE消息簽名是否正確。

b. 當前副本節點是否已經收到了同一視圖v下的n。

c. n是否在區間[h, H]內。

d. d是否和當前已收到PRE-PPREPARE中的d相同

非法請求丟棄。如果副本節點i收到了2f+1個驗證通過的PREPARE消息,則向其他節點包括主節點發送一條<COMMIT, v, n, d, i>消息,v, n, d, i與上述PREPARE消息內容相同。<COMMIT, v, n, d, i>進行副本節點i的簽名。記錄COMMIT消息到日誌中,用於View Change過程中恢復未完成的請求操作。記錄其他副本節點發送的PREPARE消息到log中。

主節點和副本節點收到COMMIT消息,需要進行以下交驗:

a. 副本節點COMMIT消息簽名是否正確。

b. 當前副本節點是否已經收到了同一視圖v下的n。

c. d與m的摘要是否一致。

d. n是否在區間[h, H]內。

非法請求丟棄。如果副本節點i收到了2f+1個驗證通過的COMMIT消息,說明當前網路中的大部分節點已經達成共識,運行客戶端的請求操作o,並返回<REPLY, v, t, c, i, r>給客戶端,r:是請求操作結果,客戶端如果收到f+1個相同的REPLY消息,說明客戶端發起的請求已經達成全網共識,否則客戶端需要判斷是否重新發送請求給主節點。記錄其他副本節點發送的COMMIT消息到log中。
 

如果主節點作惡,它可能會給不同的請求編上相同的序號,或者不去分配序號,或者讓相鄰的序號不連續。備份節點應當有職責來主動檢查這些序號的合法性。

如果主節點掉線或者作惡不廣播客戶端的請求,客戶端設置超時機制,超時的話,向所有副本節點廣播請求消息。副本節點檢測出主節點作惡或者下線,發起View Change協議。

View Change協議

副本節點向其他節點廣播<VIEW-CHANGE, v+1, n, C , P , i>消息。n是最新的stable checkpoint的編號, C 2f+1驗證過的CheckPoint消息集合, P 是當前副本節點未完成的請求的PRE-PREPARE和PREPARE消息集合。

當主節點p = v + 1 mod |R|收到 2f 個有效的VIEW-CHANGE消息後,向其他節點廣播<NEW-VIEW, v+1, V , O >消息。 V 是有效的VIEW-CHANGE消息集合。 O 是主節點重新發起的未經完成的PRE-PREPARE消息集合。PRE-PREPARE消息集合的選取規則:

副本節點收到主節點的NEW-VIEW消息,驗證有效性,有效的話,進入v+1狀態,並且開始 O 中的PRE-PREPARE消息處理流程。
 

在上述演算法流程中,為了確保在View Change的過程中,能夠恢復先前的請求,每一個副本節點都記錄一些消息到本地的log中,當執行請求後副本節點需要把之前該請求的記錄消息清除掉。

最簡單的做法是在Reply消息後,再執行一次當前狀態的共識同步,這樣做的成本比較高,因此可以在執行完多條請求K(例如:100條)後執行一次狀態同步。這個狀態同步消息就是CheckPoint消息。

副本節點i發送<CheckPoint, n, d, i>給其他節點,n是當前節點所保留的最後一個視圖請求編號,d是對當前狀態的一個摘要,該CheckPoint消息記錄到log中。如果副本節點i收到了2f+1個驗證過的CheckPoint消息,則清除先前日誌中的消息,並以n作為當前一個stable checkpoint。

這是理想情況,實際上當副本節點i向其他節點發出CheckPoint消息後,其他節點還沒有完成K條請求,所以不會立即對i的請求作出響應,它還會按照自己的節奏,向前行進,但此時發出的CheckPoint並未形成stable。

為了防止i的處理請求過快,設置一個上文提到的 高低水位區間[h, H] 來解決這個問題。低水位h等於上一個stable checkpoint的編號,高水位H = h + L,其中L是我們指定的數值,等於checkpoint周期處理請求數K的整數倍,可以設置為L = 2K。當副本節點i處理請求超過高水位H時,此時就會停止腳步,等待stable checkpoint發生變化,再繼續前進。
 

在區塊鏈場景中,一般適合於對強一致性有要求的私有鏈和聯盟鏈場景。例如,在IBM主導的區塊鏈超級賬本項目中,PBFT是一個可選的共識協議。在Hyperledger的Fabric項目中,共識模塊被設計成可插拔的模塊,支持像PBFT、Raft等共識演算法。
 

 

Raft基於領導者驅動的共識模型,其中將選舉一位傑出的領導者(Leader),而該Leader將完全負責管理集群,Leader負責管理Raft集群的所有節點之間的復制日誌。
 

下圖中,將在啟動過程中選擇集群的Leader(S1),並為來自客戶端的所有命令/請求提供服務。 Raft集群中的所有節點都維護一個分布式日誌(復制日誌)以存儲和提交由客戶端發出的命令(日誌條目)。 Leader接受來自客戶端的日誌條目,並在Raft集群中的所有關注者(S2,S3,S4,S5)之間復制它們。

在Raft集群中,需要滿足最少數量的節點才能提供預期的級別共識保證, 這也稱為法定人數。 在Raft集群中執行操作所需的最少投票數為 (N / 2 +1) ,其中N是組中成員總數,即 投票至少超過一半 ,這也就是為什麼集群節點通常為奇數的原因。 因此,在上面的示例中,我們至少需要3個節點才能具有共識保證。

如果法定仲裁節點由於任何原因不可用,也就是投票沒有超過半數,則此次協商沒有達成一致,並且無法提交新日誌。

 

數據存儲:Tidb/TiKV

日誌:阿里巴巴的 DLedger

服務發現:Consul& etcd

集群調度:HashiCorp Nomad
 

只能容納故障節點(CFT),不容納作惡節點

順序投票,只能串列apply,因此高並發場景下性能差
 

Raft通過解決圍繞Leader選舉的三個主要子問題,管理分布式日誌和演算法的安全性功能來解決分布式共識問題。

當我們啟動一個新的Raft集群或某個領導者不可用時,將通過集群中所有成員節點之間協商來選舉一個新的領導者。 因此,在給定的實例中,Raft集群的節點可以處於以下任何狀態: 追隨者(Follower),候選人(Candidate)或領導者(Leader)。

系統剛開始啟動的時候,所有節點都是follower,在一段時間內如果它們沒有收到Leader的心跳信號,follower就會轉化為Candidate;

如果某個Candidate節點收到大多數節點的票,則這個Candidate就可以轉化為Leader,其餘的Candidate節點都會回到Follower狀態;

一旦一個Leader發現系統中存在一個Leader節點比自己擁有更高的任期(Term),它就會轉換為Follower。

Raft使用基於心跳的RPC機制來檢測何時開始新的選舉。 在正常期間, Leader 會定期向所有可用的 Follower 發送心跳消息(實際中可能把日誌和心跳一起發過去)。 因此,其他節點以 Follower 狀態啟動,只要它從當前 Leader 那裡收到周期性的心跳,就一直保持在 Follower 狀態。

Follower 達到其超時時間時,它將通過以下方式啟動選舉程序:

根據 Candidate 從集群中其他節點收到的響應,可以得出選舉的三個結果。

共識演算法的實現一般是基於復制狀態機(Replicated state machines),何為 復制狀態機

簡單來說: 相同的初識狀態 + 相同的輸入 = 相同的結束狀態 。不同節點要以相同且確定性的函數來處理輸入,而不要引入一下不確定的值,比如本地時間等。使用replicated log是一個很不錯的注意,log具有持久化、保序的特點,是大多數分布式系統的基石。

有了Leader之後,客戶端所有並發的請求可以在Leader這邊形成一個有序的日誌(狀態)序列,以此來表示這些請求的先後處理順序。Leader然後將自己的日誌序列發送Follower,保持整個系統的全局一致性。注意並不是強一致性,而是 最終一致性

日誌由有序編號(log index)的日誌條目組成。每個日誌條目包含它被創建時的任期號(term),和日誌中包含的數據組成,日誌包含的數據可以為任何類型,從簡單類型到區塊鏈的區塊。每個日誌條目可以用[ term, index, data]序列對表示,其中term表示任期, index表示索引號,data表示日誌數據。

Leader 嘗試在集群中的大多數節點上執行復制命令。 如果復製成功,則將命令提交給集群,並將響應發送回客戶端。類似兩階段提交(2PC),不過與2PC的區別在於,leader只需要超過一半節點同意(處於工作狀態)即可。

leader follower 都可能crash,那麼 follower 維護的日誌與 leader 相比可能出現以下情況

當出現了leader與follower不一致的情況,leader強制follower復制自己的log, Leader會從後往前試 ,每次AppendEntries失敗後嘗試前一個日誌條目(遞減nextIndex值), 直到成功找到每個Follower的日誌一致位置點(基於上述的兩條保證),然後向後逐條覆蓋Followers在該位置之後的條目 。所以丟失的或者多出來的條目可能會持續多個任期。
 

要求候選人的日誌至少與其他節點一樣最新。如果不是,則跟隨者節點將不投票給候選者。

意味著每個提交的條目都必須存在於這些伺服器中的至少一個中。如果候選人的日誌至少與該多數日誌中的其他日誌一樣最新,則它將保存所有已提交的條目,避免了日誌回滾事件的發生。

即任一任期內最多一個leader被選出。這一點非常重要,在一個復制集中任何時刻只能有一個leader。系統中同時有多餘一個leader,被稱之為腦裂(brain split),這是非常嚴重的問題,會導致數據的覆蓋丟失。在raft中,兩點保證了這個屬性:

因此, 某一任期內一定只有一個leader
 

當集群中節點的狀態發生變化(集群配置發生變化)時,系統容易受到系統故障。 因此,為防止這種情況,Raft使用了一種稱為兩階段的方法來更改集群成員身份。 因此,在這種方法中,集群在實現新的成員身份配置之前首先更改為中間狀態(稱為聯合共識)。 聯合共識使系統即使在配置之間進行轉換時也可用於響應客戶端請求,它的主要目的是提升分布式系統的可用性。

『叄』 三. 區塊鏈系統的核心之一-分布式共識機制

        拜占庭將軍問題(Byzantine Generals Problem),是由萊斯利·蘭波特在其同名論文中提出的分布式對等網路通信容錯問題。

        在分布式計算中,不同的計算機通過通訊交換信息達成共識而按照同一套協作策略行動。但有時候,系統中的成員計算機可能出錯而發送錯誤的信息,用於傳遞信息的通訊網路也可能導致信息損壞,使得網路中不同的成員關於全體協作的策略得出不同結論,從而破壞系統一致性。這個難題被稱為「拜占庭容錯」,或者「兩軍問題」。

        拜占庭假設是對現實世界的模型化。拜占庭將軍問題被認為是容錯性問題中最難的問題類型之一。拜占庭容錯協議要求能夠解決由於硬體錯誤、網路擁塞或斷開以及遭到惡意攻擊,其他計算機和網路可能出現不可預料的行為而帶來的各種問題。並且拜占庭容錯協議還要滿足所要解決的問題要求的規范。

        在拜占庭時代有一個牆高壁厚的城邦——拜占庭,高牆之內存放在世人無法想像多的財富。拜占庭被其他10個城邦所環繞,這10個城邦也很富饒,但和拜占庭相比就有天壤之別了。

        拜占庭的十個鄰居都覬覦它的財富,並希望侵略並佔領它。但是,拜占庭的防禦非常強大,任何單個城邦的入侵行動都會失敗,而入侵者的軍隊也會被殲滅,使得該城邦自身遭到其他互相覬覦對方的九個城邦的入侵和劫掠。

        拜占庭的防禦很強,十個城邦中要有一半以上同時進攻才能攻破它。也就是說,如果有六個或者以上的相鄰城邦一起進攻,他們就會成功並獲得拜占庭的財富。然而,如果其中有一個或者更多城邦背叛了其他城邦,答應一起入侵但在其他城邦進攻的時候又不幹了,也就導致只有五支或者更少的城邦的軍隊在同時進攻,那麼所有的進攻城邦的軍隊都會被殲滅,並隨後被其他的(包括背叛他們的那(幾)個)城邦所入侵和劫掠。

        這是一個由許多不互相信任的城邦構成的一個網路。城邦們必須一起努力以完成共同的使命。而且,各個城邦之間通訊和協調的唯一途徑是通過信使騎馬在城邦之間傳遞信息。城邦的決策者們無法聚集在一個地方開個會(所有的城邦的決策者都不互相信任自己的安全會在自己的城堡或者軍隊范圍之外能夠得到保障)。

        城邦的決策者可以在任意時間以任意頻率派出任意數量的信使到任意的對方。每條信息都包含如下的內容:「我城邦將在某一天的某個時間發動進攻,你城邦願意加入嗎?」。如果收信城邦同意了,該城邦就會在原信上附上一份簽名了的或蓋了圖章的(以就是驗證了的)回應然送回發信城邦。然後,再把新合並了的信息的拷貝一一發送給其他八個城邦,要求他們也如此這樣做。最後的目標是,通過在原始信息鏈上蓋上他們所有十個城邦的決策者的圖章,讓他們在時間上達成共識。最後的結果是,會有一個蓋有十個同意同一時間發動進攻的圖章信息包,和一些被拋棄了的包含部分但不是全部圖章的信息包。

        在這個過程中首先出現了第一個問題,就是如果每個城邦向其他九個城邦派出一名信使,那麼就是十個城邦每個派出了九名信使,也就是在任何一個時間又總計90次的傳輸,並且每個城市分別收到九個信息,可能每一封都寫著不同的進攻時間。

        在這個過程中還有第二個問題,就是部分城邦會答應超過一個的攻擊時間,故意背叛進攻發起人,所以他們將重新廣播超過一條(甚至許許多多條)的信息包,由此產生許多甚至無數的足以淹沒一切的雜音。

        有了以上兩個問題,整個網路系統可能迅速變質,並演變成不可信的信息和攻擊時間相互矛盾的糾結體。

         拜占庭假設是對現實網路世界的一種模型化。在現實網路世界中由於硬體錯誤、網路擁塞或斷開以及遭到惡意攻擊,網路可能出現許許多多不可預料的行為。拜占庭容錯協議必須處理這些失效,並且還要使這些協議滿足所要解決的問題所要求的規范。

        對於拜占庭將軍問題中本聰的區塊鏈給出了比較圓滿的解決方案。也就是比較圓滿的解決了上述的兩個問題。

        拜占庭將軍問題的第一個問題從本質上來講就是時間和空間的障礙導致信息的不準確和不及時。

        區塊鏈對於第一個問題的解決方案是利用分布式存儲技術和比特流技術(BT技術,一種新型的點對點傳輸技術,具有節點同時作為客戶端和伺服器端和沒有中心伺服器等特點),將整個網路系統內的所有交易信息匯總為一個統一的,分布式存儲的,近乎實時同步更新的電子總賬。統一的分布式共同賬本就解決了空間障礙問題;而近乎同步進行的,實時的,持續的對所有賬本備份的更新、對賬則解決了時間障礙問題。

        這個過程較具體一點的描述大概是將區塊鏈系統內所有的交易活動的記錄數據統一於一種標准化的總帳上;區塊鏈系統的每一個節點都會保存一份總帳的備份;所有總帳的備份都是在實時的,持續的更新、對賬、以及同步著。區塊鏈系統的每一個節點能在這本總帳里記上添加記錄;每一筆新添加的記錄都會實時的廣播到區塊鏈系統內;所以在每一個節點上的每一份總帳的備份都是幾乎同時更新的,並且所有的總帳的備份保持著同步。

        拜占庭將軍問題的第二個問題從本質上來講就是關於信息過量問題和信息干擾問題。信息過量和信息干擾問題導致決策延遲,甚至決策系統崩潰而無法決策。

        區塊鏈對於第二個問題的解決方案是區塊鏈系統的任何一個節點在發送每一筆新添加的記錄時需要附帶一條額外的信息。對區塊鏈系統的任何一個節點來說這條額外的信息的獲得都是有成本的,並且只能有一個節點可以獲得。這樣就解決了區塊鏈系統的任何一個節點新添加額外信息時的信息多且亂而無法達成一致的問題。在這里,區塊鏈系統的任何一個節點獲得那條附帶的額外的信息的過程就是著名的工作量證明機制。

        共識機制主要解決區塊鏈系統的數據如何記錄和如何保存的問題。工作量證明機制就是要求區塊鏈系統的節點通過做一定難度的工作得出一個結果的過程。

        區塊鏈系統中某節點生成了一筆新的交易記錄,並且該節點將這筆新的交易記錄向全網廣播。全網各個節點收到這個交易記錄並與其他所有準備打包進區塊的交易記錄共同組成交易記錄列表。在列表內先對所有交易進行兩兩的哈希計算;再對以獲得的哈希值進行哈希計算獲得Merkle樹和Merkle樹的根值;把Merkle樹的根值及其他相關欄位組裝成區塊頭。

        各個節點將區塊頭的80位元組數據加上一個不停的變更的區塊頭隨機數一起進行不停的哈希運算(實際上這是一個雙重哈希運算);不停的將哈希運算結果值與當前網路的目標值做對比,直到哈希運算結果值小於目標值,就獲得了符合要求的哈希值,工作量證明也就完成了。

         分布式的區塊鏈系統是一個動態變化的系統(硬體的運算速度的增長,節點參與網路的程度的變化)。系統的不斷變化必然帶來系統的算力的不斷變化。而算力的變化又會導致通過消耗算力(工作)來獲得符合要求的哈希值的速度的不同。最終的結果會是區塊鏈的增長速度會有巨大的不同。這是一個很大的問題。為了解決這個問題,區塊鏈系統自動根據算力的變化對工作難度進行調整。也就是採用移動平均目標的方法來確定,難度控制為每小時生成區塊的速度為某一個預定的平均數。

        在區塊鏈系統中一個符合要求的哈希值是由N個前導零構成,零的個數取決於網路的難度值。為了使區塊的形成時間控制在大約十分鍾左右,區塊鏈系統採用了固定工作難度的難度演算法。難度值每2016個區塊調整一次零的個數。

        新的難度值是根據前2015個區塊(理論上應該是2016個區塊,由於當初程序編寫時的失誤造成了用2015而不是2016)的出塊時間來計算。

        難度 = 目標值 * 前2015個區塊生成所用的時間 / 1209600 (兩周的秒鍾數)

        這樣通過規定的演算法,區塊鏈系統就保證所有節點計算出的難度值都一致,區塊的形成時間大約一致在十分鍾左右。

      (1)結果不可控制。其依賴機器進行哈希函數的運算來獲得結果;計算結果是一個隨機數;沒有人能直接控制計算的結果。

      (2)計算具有對稱性。就是結果的獲得和結果的驗收需要的工作量是不同的。計算出結果所需要的工作量遠遠大於驗收結果所需要的工作量。

      (3)計算的難度自動控制。為了使區塊的形成時間控制在大約十分鍾左右,區塊鏈系統自動控制了每一個符合要求的哈希獲得為大約在十分鍾左右。

         第一,方法簡單易行。

        第二,系統達成共識容易,節點間不需要太多的信息交換。

        第三,系統比較牢固可靠,任何破壞系統的企圖都需要投入大到得不償失的成本。

        第一,消耗大量的算力,也就是浪費能源和其他資源。

        第二,區塊的確認時間比較長,並且難以縮短。

        第三,新創立的區塊鏈非常容易受到算力攻擊。

        第四,容易產生區塊鏈分叉,穩定的區塊鏈需要多個確認,並且這種狀況可能不斷持續下去。

        第五,算力的逐漸集中導致與去中心化的系統設計基礎的沖突日益明顯。

        權益證明機制是一種工作量證明機制的替代方法,試圖解決工作量計算浪費的問題.目前其成功的應用是點點幣區塊鏈系統。

        權益證明不要求區塊鏈系統的節點完成一定數量的計算工作,而是要求區塊鏈系統的節點對某些數量的錢展示所有權。

        權益證明機制首先應用於點點幣區塊鏈系統中。

        點點幣區塊鏈系統的區塊生成時,節點需要構造一個「錢幣權益」交易,即把自己的一些錢幣和預先設定的獎勵發給自己。進行哈希計算時,哈希值的計算只同交易輸入、一些附加的固定數據以及當前時間(是一個表示自1970年1月1日距離當前時刻的秒數的正數)有關。然後,根據類似工作量證明的要求來檢查這個哈希值是否正確。

        點點幣區塊鏈系統的權益證明機制除了設定了哈希計算難度與交易輸入的「幣齡」成反比外,其與工作量證明機制非常類似。其中,幣齡的定義為交易輸入大小和它存在時間的乘積。權益證明機制中哈希值只和時間和固定的數據有關,因而沒有辦法通過多完成工作來快速獲取它。

       每個點點幣區塊鏈系統的交易的輸出都有一定的幾率來產生有效的正比於幣齡和交易貨幣數量的工作。

        第一,縮短了共識達成的時間。

        第二,不再需要大量消耗能源。

        第一,還是需要哈希計算。

        第二,所有的確認都只是一個概率上的表達,而不是一個確定性的事情,有可能受到其他攻擊影響。

        授權股份證明機制類似於權益證明機制,是比特股BitShares採用的區塊鏈公識演算法。授權股份證明機制是民主選舉和輪流執政相結合方式來確定區塊的產生。

        授權股份證明機制是先由節點選舉若干代理人,由代理人驗證和記賬。其他方面和權益證明機制相似。

        每個節點按其持股比例擁有相應的影響力,51%節點投票的結果將是不可逆且有約束力的。為達到及時而高效的方法達到51%批準的目標。每個節點可以將其投票權授予一名節點。獲票數最多的前100位節點按既定時間表輪流產生區塊。每名節點分配到一個時間段來生產區塊。

        所有的節點將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。

         第一,大幅縮小參與驗證和記賬節點的數量,

         第二,可以快速實現共識驗證。

         主要缺點就是仍然無法擺脫對代幣的依賴。

        在分布式計算上,不同的計算機透過訊息交換,嘗試達成共識;但有時候,系統上協調計算或成員計算機可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。

        拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法,這無法找到一個絕對的答案,但只可以用來驗證一個機制的有效程度。

        而拜占庭問題的可能解決方法為:

        在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計算機總數,F為有問題計算機總數。信息在計算機間互相交換後,各計算機列出所有得到的信息,以大多數的結果作為解決辦法。

         第一,系統運轉可以擺脫對代幣的依賴,共識各節點由業務的參與方或者監管方組成,安全性與穩定性由業務相關方保證。

         第二,共識的時延大約在2到5秒鍾。

         第三,共識效率高,可滿足高頻交易量的需求。

         第一,當有1/3或以上記賬人停止工作後,系統將無法提供服務;

         第二,當有1/3或以上記賬人聯合作惡,可能系統會出現會留下密碼學證據的分叉。

        小蟻改良了實用拜占庭容錯機制。該機制是由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。

        此演算法在PBFT基礎上進行了以下改進:

        第一,將C/S架構的請求響應模式,改進為適合P2P網路的對等節點模式;

        第二,將靜態的共識參與節點改進為可動態進入、退出的動態共識參與節點;

        第三,為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);

        第四,在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。

        第一,專業化的記賬人;

        第二,可以容忍任何類型的錯誤;

        第三,記賬由多人協同完成,每一個區塊都有最終性,不會分產生區塊鏈分叉;

        第四,演算法的可靠性有嚴格的數學證明來保證;

        第一,當有1/3或以上記賬人停止工作後,區塊鏈系統將無法提供服務;

        第二,當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使區塊鏈系統出現分叉,但是會留下密碼學證據;

         瑞波共識機制是全體節點選取出特殊節點組成特殊節點列表,由特殊節點列表內的節點達成共識。

         初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由51%的該俱樂部會員投票通過。共識遵循這核心成員的51%權力,外部人員則沒有影響力。波共識機制將股東們與其投票權隔開,並因此比其他系統更中心化。

        瑞波共識機制參與共識形成的只有特殊節點,大大的減少了共識形成的時間。在實踐中,瑞波區塊鏈系統達成共識需要3-6秒鍾,遠遠快於比特幣區塊鏈系統的10分鍾。同時瑞波區塊鏈系統對並發交易的處理達到每秒數萬筆,而比特幣區塊鏈系統只有每秒7筆。

瑞波共識機制處理節點意見分歧的方式也是不同的。瑞波的信任節點對於新區塊的創造進行協商的時間是區塊鏈更新前。先協商,達成共識後再對區塊鏈進行更新。

由於瑞波共識機制的共識是由特殊節點達成的,普通節點並不需要維護一個完整的歷史賬本。各個節點可以根據自己的業務需要選擇同步同步完整的歷史賬本或者任意最近幾步的賬本。這也意味著對存儲空間和網路流量需求的減少。

瑞波共識機製取消了挖坑的發行貨幣機制,採用了原生貨幣(1000億枚)的方式發幣,從而大量的避免了挖礦的天量能耗。

『肆』 區塊鏈的共識機制解決了什麼問題

區塊鏈要求每個聯結點在共同的賬本上對每一筆交易進行分布式記賬,每當交易發生之後,信息會通知到所有的「點」,各個「點」(即人)按照預設的規則獨立地對交易進行確認,整個過程中,信息透明統一,參與者資格許可權完全對等。多數「點」確認的結果就是最終的結論,系統會自動將你的數據修正為大家認可的結果。你想作弊或者堅持不同的觀點,除非你能讓超過51%的「點」都同時認可你的結論,當參與的「點」多到一定程度時,這事實上是不可能的。一次交易得到確認之後,交易的記錄和各種數據打包成塊,加上時間戳,編入鏈中,然後啟動下一輪交易(塊),新舊區塊前後為繼形成「鏈」。各個區塊所存儲的交易記錄可以無限追溯,隨時備查且無法更改,想要作假、撒謊、隱瞞真相,根本無機可乘,人與人之間的信任由此得以確立!第二代區塊鏈還引入了「智能合約」機制,在程序中加入了能夠自動履行的合約,一旦約定的條件得到滿足,系統將自動實施強制交付,所有的聯結點也都會見證和確認這一過程,容不得背信棄義行為的發生。

鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。

『伍』 通俗講Seele元一

項目要點

項目名稱: 元一Seele

項目目標 :共創價值互聯網新紀元

項目屬性: 公有鏈

韭菜星級 :★☆☆☆☆

概述

元一Seele,自我定位為「價值互聯網基礎設施標准推動者,網路建設者,生態佈道者」。希望可以通過建設「元一生態系統」,實現「共創價值互聯網新紀元」的目標。

與大部分區塊鏈項目不同,元一Seele的命名並非來自英文縮寫。Seele 在德語中是「魂」之意,也代表一個人的想法或行事的基本觀念核心,元和一都有開創和初始的意思。

這一命名,也展現了元一Seele想要表達的概念:成為區塊鏈應用的「發源地」,讓其它區塊鏈項目都從自己的基礎上發展起來。

白皮書也稱元一Seele是全球首個引入全新的神經網路共識演算法,並針對大規模異構節點高通量並發,構建「異構森林」價值交換網路的區塊鏈生態系統。

不懂沒關系,元一Seele提出了區塊鏈4.0的概念——這必須是一個新時代。區別於比特幣的區塊鏈1.0時代、以太坊為代表的區塊鏈2.0時代,以及EOS為代表的區塊鏈3.0時代。

現在的情況是,「區塊鏈3.0」的代表EOS還在開發中,「區塊鏈4.0」就已經開始鋪設概念了。如此下去,「區塊鏈5.0、6.0……」相信也會很快冒頭,甚至不給前輩留起名的機會。

行業模式

元一Seele提出了「元鏈」的概念,也即由Seele為其它區塊鏈提供最底層的全局服務,所有區塊鏈應用可以實現在「元一生態系統」中的應用落地、跨鏈交互等。

當然,這不是元一Seele白皮書的重點,以太坊、EOS都有類似的設計。元一Seele最重要的突破是解決了現有區塊鏈體系的眾多問題。

針對現有區塊鏈體系共識演算法存在的「SSE矛盾」、跨鏈交互問題、鏈上資源分配等問題,白皮書均宣稱已經通過技術手段完美解決。

技術

元一Seele白皮書技術描述占據了絕大部分,並且充滿了高大上名詞和概念:微實數,神經網路共識演算法, 異構森林網路結構,QVIC和VHTTP協議等……

接地氣的解釋

與眾多高大上的概念相對應的,白皮書又採用了很多接地氣的類比來解析這些高大上的概念,比如用DNS來解釋其異構森林結構。

據白皮書解釋,Seele異構森林結構是「為現實世界和數字世界搭建一座橋梁,以實現資源和資產在價值互聯網上定義、存儲、轉移、轉換,從而促進價值互聯網業務與傳統互聯網業務的融合。」

實際上對DNS有了解的人都清楚,DNS並不涉及數據交換,互聯網生態也不是建立在DNS之上的,使用DNS類比「異構森林」這個高大上概念非常之不恰當,不能不讓人懷疑整個白皮書的嚴謹性。

這就好像在學術期刊的學術論文中,內容卻是一個為5歲孩童理解而編寫的童話,為了降低難度還進行了非常不恰當的對比。

當然,可能白皮書是為了照顧閱讀者的理解力,而高度簡化了概念——畢竟區塊鏈技術過於顛覆,受眾不理解也是常態。

突破性的轉化

通過這種方式,白皮書講述了Seele在四個方面取得的突破:基於神經網路的共識機制、異構森林網路拓撲結構、VTP和VHTTP價值傳輸、應用協議,以及低時延傳輸層協議QVIC。

神經網路的共識機制,號稱解決了現有共識機制的「SSE矛盾」,即規模(Scalability)、安全(Security),效率(Efficiency)上的不可調和。

通過所謂神經網路共識機制,Seele將區塊嚴格的串列生長邏輯打破,試圖將逐個建立每一個區塊鏈的共識的整個過程,轉變為多個獨立的連續性隨機變數求解,從而提升共識速度。

簡單說,就是將N個串列的邏輯計算問題,直接轉換成N個並行的數學計算問題,從而突破了時序和復雜度的限制。

此外,白皮書中提及,神經網路共識機制將「共識過程的離散型投票變更為連續型投票」。所謂連續性投票就是通過判斷節點的共識「傾向」來確認共識,從而提升系統效率,甚至做到「節點越多,共識效率越高」。

這樣的改變,讓人懷疑Seele是否忽略了區塊鏈的本意:區塊產生串列邏輯與共識機制,是區塊鏈重要的基礎。經過這樣的改變,如何保證共識機制的可靠性?

其它

可以說,異構森林結構及其它概念,如VTP、VHTTP、QVIC等,除了概念外並沒有實質的技術解析——或許這也是類比解釋出現的原因。

白皮書提到了為多鏈間通信而定義的一套VTP和VHTTP的協議,其邏輯和UDP、HTTP一致,根本問題在於是否有必要新定義一套協議,而不是在主鏈間做通信介面適配。

白皮書還著重論述了」算力融合「的概念,即「通過合約實體控制計算資源的鏈下桌面系統和分布式集群」,實際上是一個鏈內分布式計算體系。

對於區塊鏈這樣一個本身就是分布式計算的體系來說,內部再搭建一個分布式計計算體系,或許算一個比較有新意的想法,只是不知落地如何。

其它如傳輸層協議QVIC、「預鏈接」機制等,因為語言不詳,也無從評判其如何起到宣稱效果。

整體上看,Seele白皮書提出了太多炫酷的技術概念。但深究起來,卻在解決問題的目標下,衍生了更多疑慮和問題,甚至部分舉措可能與目標漸行漸遠。

順帶一提,白皮書中「節點」和「結點」是混用的。理論講,結點有終結之意,與區塊鏈的去中心化特性是矛盾的。

經濟系統

由於元一Seele解決了共識機制的效率問題,做到了「節點越多,效率越高」。所以激勵機制也已鼓勵節點的加入為主,無論是參與共識,還是打包區塊,均有價值激勵。

白皮書中指出傳統主流方式本質上是兩種最為粗暴的解決方案:

1. 誰有錢誰就說了算;

2. 誰提前占坑誰說了算。

提出元一的激勵機制兼顧效率和公平,很值得期待,只不過白皮書中對如何實現這一目標描述得並不夠清晰,相比大量高深的技術范內容,顯然只能算一筆帶過,讓人不明就裡。

在發行方面,Seele引入了令牌模式,使用令牌作為價值激勵及交易資產。白皮書沒有明確提及有幾種獲取令牌的模式,也沒有提及令牌是否為最終數字資產。

在激勵段落,同樣出現了「類比」問題。白皮書如此表述: 在交易費上,我們跟以太坊的 gas類似。 但是卻並沒有對Seele本身的激勵機制進行具體描述,這種借用其它產品解釋自身機制的行為或許說明項目方並沒有在這個問題上深入思考過。

團隊及資源

從白皮書看,項目團隊技術配置非常強大,來自全球的科學家到系統架構師到程序員搭配齊全。或許白皮書中提到的酷炫又玄奇的技術,在如此強大的團隊手中,實現起來並不困難。

路線圖中顯示,Seele將在2018年Q4發布正式網路。即是擁有強力的技術團隊,時間上也可以說相當緊迫。

白皮書中沒有提及基石、資本機構等,無法估算其背後的資本力量。不過能凝聚這樣強大技術團隊的運營方,也應該具有一定的能量。

技術酷炫,卻又無法表達清晰,是純技術團隊的通病。白皮書中羅列了大量的技術名詞以及宏偉的目標。至於技術能否達成,目標能否實現,至少從白皮書的內容看,是令人難以信服的。

『陸』 區塊鏈落地需解決四個核心問題 訪交通銀行投資銀行業務中心總裁陳維

隨著區塊鏈概念的持續升溫以及這一技術的日益成熟,包括銀行在內的金融機構也在加大這一領域的布局和應用。《太古宙-2019年中國區塊鏈金融行業研究報告》指出,金融機構區塊鏈投入呈逐年增長態勢,預計至2022年,中國金融機構區塊鏈技術投入將達92.7億元。

陳維指出,資產證券化業務的本質是用資產信用來取代主體信用,而藉助區塊鏈技術,可實現技術互信取代機構互信,這兩點使得區塊鏈技術契合資產證券化業務場景的需要。基於此,交通銀行推出了國內首個區塊鏈資產證券化平台――「鏈交融」。陳維還表示,區塊鏈技術還將為上海推進「長三角一體化」、建設國際資產管理中心等方面發揮積極作用。

「效率+信任」問題待解決

《中國經營報》:盡管不少銀行已經 探索 並研究區塊鏈,但最終落地項目較少。你認為,區塊鏈技術落地難的原因是什麼?

陳維:由於區塊鏈主要採用聯盟鏈的技術,這使得銀行 探索 將區塊鏈技術運用在具體業務落地時,主要面臨以下四個問題:

第一個是安全。商業銀行是整個金融系統基礎設施建設中的重要參與者,對可靠性和安全性要求特別高。在新技術的運用過程中,安全性要求是最重要的,也是必須要滿足的。由於區塊鏈技術運用目前尚處於 探索 階段,這可能會影響區塊鏈技術應用在具體業務上的落地。

第二個是效率。在去中心化的設定下,所有的節點要達成共識並且將數據進行處理,這就需要花費很多的時間,因此目前業務效率較難得到有效兼顧。銀行的一些傳統業務,比如支付、轉賬、匯款等業務場景,對時間效率和數據存儲等方面的要求較高,因此區塊鏈技術目前與這些業務場景結合仍存在一定困難。

第三個是跨機構共識。聯盟鏈需要聯盟各方達成一致,共同推進鏈的形成和擴張,但在實際業務推進過程中,不同機構對區塊鏈的認識、對聯盟鏈的需求差異較大,存在一定的協調和推進難度。

第四個是經濟成本。區塊鏈應用對銀行技術開發能力要求較高,同時還需配套大量軟硬體資源,比如:聯盟鏈需要部署節點、形成共識演算法等一系列服務;銀行需要投入大量人力、財力資源進行開發。這些投入在短期內可能無法直接產生可見的經濟利潤,會出現成本和收益的跨期錯配。任何一家金融機構,無論上市與否,都會面臨當期考核的問題,使得成本的當期性和收益的滯後性存在一定矛盾。

當然,盡管存在這四個主要矛盾,不少銀行都在摸著石頭過河、不斷 探索 。可以說,在這方面交通銀行積極響應國家號召,在區塊鏈技術應用方面走在了同業前列,尤其在資產證券化領域實現了多項突破。

陳維:所謂效率就是時間問題,信任就是安全問題。

關於效率問題,結合交通銀行的 探索 和實踐,可通過以下三個方式加以解決:第一,通過鏈上智能合約的自動化方式,來提高業務流程的辦理效率;第二,研究高性能的公有鏈技術,來滿足交易並發情況下的計算、存儲能力;第三,藉助雲計算,利用雲的存儲能力,提高效率,同時降低經濟成本。

關於信任問題,主要有三種解決方式:第一,上鏈之前達成共識,參與方在上鏈之前必須要簽署協議表示同意,避免業務開展過程中,因未達成共識而導致效率降低、難落地的情況發生;第二,採用數字簽名和非對稱加密技術,對數據進行加密以後再進行上鏈,確保只有授權方才能看到數據,實現數據許可權的控制;第三,區塊鏈技術採用分布式賬本,實現數據的不能篡改,同時還可以進行追溯,確保各參與方對鏈上的數據保持較高的信任度。

助推長三角資產和資金「同城化」

《中國經營報》:交通銀行在區塊鏈場景 探索 方面有哪些特色和亮點?

陳維:當前市場上有很多關於區塊鏈使用場景的探討,在區塊鏈賦能金融方面,資產證券化業務是最適合的場景之一。交通銀行基於在資產證券化市場的實踐 探索 及先發優勢,自2016年來已嘗試 探索 區塊鏈應用於資產證券化業務場景,並於2018年正式對外發布了國內首個區塊鏈資產證券化平台――「鏈交融」。該平台已獲得兩項技術專利――《一種基於智能合約的跨機構流程解決方案》和《基於智能合約的Fabric區塊鏈管理方案》,並榮獲上海市政府頒發的2018年度上海金融創新成果獎、《中國銀行家》十佳區塊鏈應用創新獎等獎項。

資產證券化業務參與機構眾多,發行周期較長,同時交易結構也比較復雜,如何使業務更有效率地開展,就需要解決信息不對稱問題。區塊鏈技術具有去中心化、透明、共享、不可篡改四個特徵,這就意味著區塊鏈技術可以與資產證券化實現比較完美的結合。

從業務本身來講,資產證券化業務的本質是用資產信用來取代主體信用;同時,藉助區塊鏈技術,可以實現技術互信取代機構互信,這兩點使得區塊鏈技術和資產證券化業務能夠完美地契合。區塊鏈技術可以在不需要第三方背書情況之下,實現系統中所有數據信息的公開、透明、不可篡改、不可偽造,同時還能對信息進行追溯。

《中國經營報》:在實踐中,區塊鏈技術如何賦能資產證券化業務?

陳維:在「鏈交融」平台上,藉助區塊鏈技術,將底層資產和盡調報告等資料,通過數字指紋永久儲存在鏈上,藉助區塊鏈的透明、共享、不可篡改等特性,解決了資產證券化業務眾多參與方之間的互信問題,實現信用穿透;通過一些演算法實現鏈上文件的加密保護,有效緩解了信息泄露的風險。

同時,區塊鏈技術的應用也降低了一些維護成本和系統運營的壓力。自發行亞洲首單區塊鏈技術賦能的信貸資產證券化項目「交盈2018年第一期個人住房抵押貸款資產支持證券」開始算起,截至目前,交通銀行已經通過這個平台發行大約七八百億元規模的項目。我們也一直致力於推動諸如國電電力等更多優質發起機構、專業投資人等資產證券化生態圈用戶上鏈。

「鏈交融」是「金融創新聯合實驗室」的孵化成果,也是交通銀行前中後台共同聯動的產物。在前期研發中,業務部門憑借市場敏感度牽頭整個項目,中後台部門協同合作。在區塊鏈技術投入應用後,我們還在不斷地與時俱進,對系統進行迭代升級。

除了交通銀行內部協同來進行研發之外,交通銀行還牽頭成立了資產證券化業務生態圈――「陸家嘴資產證券化聯盟」,通過與同業機構的合作,共同培育和發展生態圈系統,也是交通銀行擔當 社會 責任和實現 社會 價值的一種體現。

《中國經營報》:除了賦能銀行具體業務之外,區塊鏈技術在銀行參與「長三角一體化」、服務上海建設國際資產管理中心等方面能提供哪些幫助?

陳維:區塊鏈技術在資產證券化業務場景的應用實際上縮短了資產持有人和資金持有人之間的信息距離,同時也打破了行政區隔的界限。藉助區塊鏈技術,「鏈交融」平台的各個參與者達成資產共識和價格共識,舉例來說,上海的資產可以對接到江蘇的資金,從某種程度來說,促進了長三角區域的資產和資金的「同城化」。

同時,區塊鏈技術對上海建設國際資產管理中心也能提供一定幫助。建設國際資產管理中心就意味著需要吸引大量的海外資金或者資金管理機構到上海,只有提供豐富的可供選擇的優質資產才能把海外的資金或者機構留下來。資產證券化業務在國際市場已發展得相對成熟,規模也很大,相比之下,資產證券化業務在國內還處於發展階段。隨著中國對外開放力度的不斷加大,未來將有越來越多的外資進入中國來投資一些國內的優質資產,「鏈交融」平台或將扮演更加重要的角色。

總體而言,區塊鏈技術與上海的長三角一體化建設、自貿區建設以及建設全球金融 科技 中心、資產管理中心等戰略課題都具有較為密切的聯系,也將為服務國家戰略做出新的更大貢獻。

來源: 中國經營網

閱讀全文

與區塊鏈共識矛盾的解決方法相關的資料

熱點內容
研究分析方法路徑 瀏覽:642
心理測驗分數合成常用的兩種方法 瀏覽:693
快速寫出鍵線的方法 瀏覽:623
萬菲樂女性如何使用方法 瀏覽:355
去除黑蚊子的方法有哪些 瀏覽:716
斐訊盒子連接電視方法 瀏覽:932
拆除手機指環扣的方法 瀏覽:362
橡膠手錶帶清洗用簡單的方法 瀏覽:113
曾仕強隨機應變的方法和技巧 瀏覽:877
取決心態的簡單方法 瀏覽:25
男士面霜的正確使用方法 瀏覽:437
透視函數的使用方法 瀏覽:275
詞路的使用方法和技巧 瀏覽:282
如何快速反轉現狀的方法 瀏覽:24
課題評審得分計算方法 瀏覽:349
閃送安裝方法 瀏覽:538
手機聽語音老是黑屏解決方法 瀏覽:457
旋轉狗狗的正確方法 瀏覽:535
職業發展方法和技巧 瀏覽:669
如何用艾灸條祛濕氣視頻操作方法 瀏覽:768