對於公證人模式的跨鏈,X鏈能夠帶來哪些突出的特點

2021-09-24 04:31:00 字數 1974 閱讀 3226

當前一些知名的區塊鏈專案,採用了不同的模式實現了跨鏈,比如cosmos和波卡鏈採用了中繼模式,瑞波(ilp)協議採用了公證人模式。公證模式一直被人批判過於中心化,造成這個的主要原因是公證特別少,公證人模式大部分是用於非鏈的模式下兩個系統的相互互動或交易所模式,這樣設計公證人模式由於節點特別少,中心化程度肯定高。這樣的化必然會引入拜占庭容錯演算法去保證整個流程的有效性,對於跨鏈模式來說,並不能像位元幣一樣要10000萬個節點去承擔公證這種角色,實際上也不現實,這樣也違背了三角理論,從三角理論來看,所謂的區塊鏈「不可能三角」,也稱為「三元悖論」,通常是指區塊鏈系統無法同時兼顧去中心(decentralization)、可擴充套件性(scalability)、安全性(security),至多只能三者取其二。是否有一種新的機制能夠讓少部分公證人驗證每筆交易?足夠多的節點來驗證每筆交易系統必然安全,但又不能並行處理更多的交易。針對以上的情況,x鏈在這些基礎上對公證人模式進行了一些改進,讓公證人並不是中心化的公證人模式也能夠快速驗證交易的有效性。

依據三角理論系統安全提高的同時可擴充套件性和效能必然受限 。一般的做法是採用dpos的方式,dpos的方式會導致公證人權益過於集中,有沒有一種方法,既能滿足效能和擴充套件的同時,也能保證公證人權益不過於集中呢?這些都是值得深思的問題,x鏈對於公證人模式做了如下改進,對公證人節點進行隨機分組,按照一定週期打亂公證人所在的組,這樣公證人能並不知道自己什麼時候能夠參加交易的驗證,這樣有效的保證了公證人過於中心化的問題。原理架構如下圖所示:

需要在保證公平性的前提下,保證公證人分配的隨機性。

vrf簡介

x鏈canal的公證人產生使用vrf(verifiable random function)演算法來產生隨機數,vrf 原理示意如下:

圖 vrf 原理圖

vrf演算法過程如下:

附加權益的bls機制

一般情況下,基於所有公證人簽名的隨機數才具有唯一性。假設公證人集,則必須要他們共同簽名,若4節點發生故障,則會導致隨機數無法產生。如果僅使用其中3個節點簽名,則無法確保隨機數的唯一性,實際簽名結果會有如下四種組合:、、、。由於私鑰(ed25519簽名機制)不同,所以這四組簽名結果也不一樣,導致其產生的隨機數也不同。

orbits 使用閾值bls[16][17]簽名演算法來生成隨機數,原因如下:

驗證過程是:

證明過程如下:

從證明過程可見,主要是原理是使用e函式交換規則。

為增強公證人安全性,

bls機制採用了附加權益方式。

bls

服務組屬於公證人集,通過

pos方式繳納質押金,押金在

bls

服務組存續期間不得轉出。如果在

bls

服務組到期之前,申請提前退出,則扣除部分押金。如在

bls服務過程中作惡則扣除作惡者全部押金。

bls服務沒有到期前,不能轉走押金。

無論是聯盟鏈或是公鏈的模式下,每個跨鏈跨鏈交易在整個過程中都會產生成本費用,即每筆跨鏈交易公證人會分到這筆交易的手續費,而且涉及到跨鏈的手續費用比單獨在一條鏈上獲得的收益要高,這樣公證人更願意參與,考慮到部署成本和硬體的需求,

x鏈的公證人節點採用的是單鏈的驗證節點,這樣驗證節點不僅能夠分到本身鏈的獎勵還能夠獲得跨鏈交易的獎勵。

通過以上的論述,

x鏈在公證人模式下設計跨鏈,並不是單存的增加幾個節點做公證人,而是通過隨機混洗的演算法,讓公證人無法知道自己屬於那一筆跨鏈交易的驗證人,這樣破除了公證人聯合作惡的問題,也解決了公證人過於中心化的問題,

x

spring 對於設計模式的實現

首先說明因為 spring 框架的ioc特性.導致建立物件的過程已經幫助我們處理好了。我們在應用的過程中只需要根據不同的業務情況獲取不同的 bean 實體就好了。免去了很多麻煩。component public class ca ctory return carservicemaps.get nam...

對於抽象工廠設計模式的理解

抽象工廠中的兩個概念 產品等級結構 產品族 以海爾和海信兩個公司為例,兩個公司都生產電視機,那末海爾電視機和海信電視機就是乙個產品等級結構,而海爾電視機和海爾電冰箱就是乙個產品族。因此可以理解為海爾家的所有產品例如海爾電視機 海爾電冰箱等構成乙個產品族,海爾公司看作是乙個具體工廠。另外說明抽象工廠模...

組合模式 針對於「部分 整體」層次結構的設計模式

組合模式又稱合成模式,是用來描述部分與整體關係的一種設計模式。它的定義是 將物件組合成樹形結構以表示 部分 整體 的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。組合模式中的幾個角色 1 component抽象構件 定義參加組合物件的共有方法和屬性,可以定義一些預設的行為或屬性。2 le...