亦來雲(Elastos)側鏈

買賣虛擬貨幣
亦來云為了減輕主鏈的壓力,同時為 DAPP提供更好的使用體驗,採用了主鏈+側鏈的分層架構。主鏈只擔負 ELA的流通職責,DAPP執行在側鏈上,透過亦來雲的側鏈轉賬機制完成價值在主鏈和側鏈間的安全轉移。亦來雲公鏈使用仲裁人聯合簽名以及 SPV(Simplified Payment Verification,簡單交易驗證)的機制來保障與側鏈間的轉賬安全,主鏈的持幣人共同選舉出一定數量的“仲裁人”,仲裁人負責對側鏈到主鏈的提幣交易進行簽名,多數的仲裁人簽名就可以解鎖主鏈上從代表側鏈的賬戶向普通賬戶轉賬的“提幣交易”。主鏈到側鏈充值操作的安全透過 SPV來保障,每個側鏈節點都會同步主鏈的所有區塊頭,再加上 merkle證明路徑以及交易資訊,就可以從資料結構和演算法的角度完成對轉賬交易的去中心化共識。亦來雲的側鏈可以使用任意的共識機制,目前亦來雲團隊已經開發出了基於 POW共識的側鏈,可以接入主鏈完成基於 SPV和 DPOS的充值和提幣操作。這個基於 POW的側鏈可以藉助主鏈的算力來保障自己的安全,主鏈算力的使用權交給基於 DPOS共識選舉出的“仲裁人”,每個仲裁人輪流對側鏈進行基於 POW的打包出塊。亦來雲透過跨鏈技術實現與自有 token的區塊鏈系統的相互轉賬,這種與亦來雲能夠相互轉賬的區塊鏈,我們稱為“友鏈”。主側鏈間的轉賬側鏈技術關鍵是要解決主鏈和側鏈間的轉賬問題,要有機制保障主鏈側鏈間的轉賬是安全可信的。為此 Adam Back等人發表了那個著名的側鏈白皮書,提出了一種叫做雙向錨定(Two-waypeg)的技術,來解決資產在兩條鏈間的轉移問題。基本的原理是基於 SPV來互相驗證交易在另一條鏈上確實存在,但是這有一個前提,就是都要儲存對方的所有區塊頭資訊。亦來雲主鏈和側鏈是 1對多的關係,使用對稱的雙向錨定,對於側鏈只儲存一份主鏈的全部區塊頭資訊沒有什麼問題,如果主鏈需要儲存所有側鏈的區塊頭資訊,是不可接受的,所以在亦來雲的主側鏈架構上不能夠使用對稱的基於 SPV的雙向錨定。
亦來雲對於主鏈和側鏈之間兩個方向的轉賬分別採用不同的機制來保障。1. 主鏈到側鏈轉賬亦來雲主鏈到側鏈的轉賬基於 SPV來實現,側鏈上需要整合主鏈的 SPV模組,用於隨時同步主鏈區塊以及主鏈上向側鏈的轉賬交易。轉賬過程如下:1. 使用者透過錢包在主鏈從地址 U向主鏈上代表側鏈的地址 S轉賬 n個 ELA,並在交易中附加上自己在側鏈的地址 u,傳送到主鏈上,這個交易標記為 tx1。2. 主鏈的礦工節點將 tx1打包併成功出塊。3. 等待足夠的確認後輪值的仲裁人節點 A的 SPV模組獲得這個主鏈上的轉賬交易,從交易中獲得轉賬地址 u,構造給 u發幣的交易 tx2,發幣數量等同於 tx1中 U給 S的轉賬數量,tx2中同時攜帶 SPV證明路徑和 tx1。
4. 輪值的仲裁人節點 A將 tx2傳送到側鏈節點。5. 側鏈將 tx2打包出塊。

6. 等待足夠的確認後,使用者在錢包上看到的自己的側鏈地址 u入賬了 n個 SToken。

2. 側鏈到主鏈轉賬

亦來雲側鏈到主鏈的轉賬安全透過主鏈的仲裁人機制來保證,下面是轉賬過程:

1. 使用者透過錢包在側鏈從地址 u發起ᨀ幣交易,ᨀ取 m個 SToken,並在交易中附加上自己在主鏈的地址 U,傳送到側鏈,這個交易標記為 tx3。
2. 側鏈的礦工節點將包含 tx3的交易打包併成功出塊。
3. 輪值的仲裁人節點 A向自己執行的側鏈節點獲取 tx3。
4. 輪值的仲裁人節點 A根據 tx3構造一個在主鏈上從 S轉移 m個 ELA到 U的交易 tx4,將這個交易廣播給所有的仲裁人節點簽名。
5. 輪值的仲裁人節點 A收到超過 2/3的仲裁人對 tx4的簽名,就將攜帶這些簽名的 tx4ᨀ交到主鏈。
6. 礦工將包含 tx4的交易打包出塊。
7. 等待足夠的確認後,使用者在錢包上看到自己的主鏈地址 U入賬了 m個 ELA。

3. 仲裁人

上面的轉賬過程都有仲裁人的參與,在主鏈到側鏈的轉賬過程中,仲裁人的作用是生成和轉移交易到側鏈,並不參與簽名;在側鏈到主鏈的轉賬過程中,仲裁人的作用除了生成和轉移交易,同時還要對交易簽名,讓主鏈上從代表側鏈的賬戶向普通賬戶轉賬的“提幣交易”能夠被各個主鏈節點驗證透過。

仲裁人透過在主鏈上投票選舉產生,並且定期輪換。每個仲裁人需要提供足夠的計算和網路資源,以便能夠至少執行一個主鏈節點和對應 N條側鏈的 N個節點。仲裁人的收益來自於為側鏈打包出塊所獲得的交易費。

基於 POW的側鏈

亦來雲提供了基於 POW的側鏈實現,使用這個實現,可以方便的搭建出一條側鏈來開發 DAPP應用。

這條基於 POW的側鏈採用與亦來雲主鏈聯合挖礦的方式獲得算力,主鏈的當前輪值仲裁人作為礦工將側鏈的交易打包生成挖礦交易放在主鏈上,主鏈再透過與比特幣聯合挖礦的方式出塊,按照聯合挖礦的原理,算力證明再傳遞到側鏈,側鏈的任意全節點可以依據這個算力證明來驗證出塊的有效性。

主鏈在一個仲裁人選舉週期內的所有仲裁人會按照順序輪流作為“側鏈出塊輪值仲裁人”履行相應的職責,這裡面就包括為側鏈出塊的職責。輪換動作透過側鏈出塊觸發,每個仲裁人輪流對一個側鏈出塊,順序透過上一輪的投票統計結果確定。出塊行為最終透過釋出到主鏈上的挖礦交易體現,每個主鏈節點都會對這個挖礦交易是否合法進行共識,其中一個主要的驗證就是看釋出這個挖礦交易的簽名人是否是當前有權對這個側鏈出塊的“側鏈出塊輪值仲裁人”。

側鏈的出塊收益(只有交易費,沒有創幣)仍然是分配給礦工和基金會,這裡的礦工就是當前在主鏈發起“挖礦交易”的仲裁人,當然這個挖礦交易放到主鏈上也是要付礦工費的,這個礦工費是付給真正付出算力的比特幣礦工。

在上述的側鏈聯合挖礦的模型中,側鏈的安全依靠主鏈的選舉信任以及聯合挖礦提供的算力來保證,完成了從主鏈到側鏈的信任傳遞。側鏈使用 POW的共識策略,簡單可靠,交易歷史不會因為側鏈某些相關方作惡而被篡改。側鏈也可以自己單獨挖礦,但是要和主鏈聯合挖礦的算力競爭,所以在遵循 POW規則的情況下,主鏈會為側鏈提供足夠強大的安全保障。

基於 DPOS的側鏈

亦來雲同時在規劃開發基於 DPOS共識的側鏈,側鏈上 DPOS共識中的代理人由主鏈的仲裁人來擔任,仍然相當於透過主鏈保證側鏈的安全,只是減少了挖礦的過程,會獲得更快的出塊速度。側鏈的每個節點都可以透過掛接的主鏈 SPV模組來獲得主鏈對仲裁人的投票資訊,從而對仲裁人的合法性達成共識。

友鏈

側鏈的概念來自於比特幣,在這個場景下側鏈沒有自有的 token,有自有 token的鏈有獨立的經濟體系,亦來雲與這種自有 token鏈之間的轉賬需要基於當前兩種 token的市場兌換匯率來進行,這個自有 token的鏈我們稱為“友鏈”。

亦來雲對友鏈的支援分為兩個階段:第一個階段支援友鏈和亦來雲主鏈跨鏈的原子交易,這種交易是點對點的,需要交易雙方自己約定兌換匯率,建立互相制約的原子兌換交易;第二個階段會基於去中心的交易所,完成主鏈和友鏈 token的自由兌換,不需要使用者間再點對點的建立兌換交易。

第一個階段的原子交易會藉助雜湊鎖來實現,下面透過一個具體的例子來描述兌換過程。

假設有一條友鏈 F,自有 token FToken,Alice和 Bob需要在亦來雲公鏈(這裡用 E來代表)和鏈 F之間完成 ELA和 FToken的兌換。Alice在鏈 E和鏈 F上分別有地址 EA和 FA,Bob在鏈 E和鏈 F上分別有地址 EB和 FB。假設此時的市場兌換匯率為 1:10(一個 ELA兌換 10個 FToken),Alice希望用 10個ELA和 Bob兌換 100個 FToken。

1. Alice在鏈 E上發起一筆從 EA向 EB的特殊轉賬交易 tx1,轉賬金額為 10個 ELA,這個交易的解鎖條件除了 EB對應私鑰的簽名,還增加了一個雜湊鎖,Alice先生成一個隨機數 x,對 x取雜湊 hash(x),放到這筆交易中,Bob需要提交 x才能夠解鎖這個雜湊鎖。

2. Bob看到了鏈 E上的 tx1,就在鏈 F上構造另外一筆特殊的交易 tx2,從 FB向 FA轉賬 100個FToken,這個交易的解鎖條件除了 FA對應私鑰的簽名,還增加了一個雜湊鎖,同樣是hash(x),解鎖條件同樣是需要提供 x。

3. Alice在鏈 F上提供對 tx2的簽名以及 x來解鎖 tx2,將 100個 FToken轉賬到自己在鏈 F上另外的地址。

4. Bob看到 tx2被解鎖,同時也就得到了 x,然後 Bob用 EB的私鑰簽名 tx1並提供 x,從而解鎖tx1,將 10個 ELA轉賬到自己在鏈 E上另外的地址。

更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;