1. 程式人生 > >側鏈技術應用

側鏈技術應用

背景

  最近因為公司業務需求學習了一下側鏈技術和側鏈技術上已經落地的應用,分享一下自己的學習成果。

側鏈出現的背景

  側鏈的概念的提出是因為比特幣網路在執行幾年之後,表現出來了一些效能和功能上的不足,以及由於區塊鏈技術的發展出現了一些新的技術。比如以太坊的出現,帶來了智慧合約和虛擬機器和其他更快、更智慧的區塊鏈的出現,比特幣的升級變得非常的迫切。   但是如果通過直接在比特幣區塊鏈上進行功能新增,一旦發生故障,會直接對比特幣網路造成嚴重的影響。所以為了不影響比特幣原來的網路,比特幣的核心開發者提出了側鏈方案。

側鏈的概念

  側鏈其解決主鏈上的問題的不同,所以有多種側鏈實現的形式。有些側鏈是為了提高主鏈上的交易速度,例如對於比特幣上的每一筆交易,需要6個區塊確認,而比特幣的出塊時間是大約十分鐘出一個塊,這樣每筆交易的確認,時間可長達一個小時左右,所以提高其交易速度是非常有必要的。有些側鏈是為了擴充套件主鏈的功能,使主鏈擁有新出現的區塊鏈技術。

原理

設計原理

  側鏈的實現的核心原理是雙向楔入,對於執行數字資產的轉移的實現的實質其實並不是真正的資產轉移,比如RSK就是比特幣上的一個側鏈專案,去年這個專案炒得非常火熱,現在也不知道具體什麼狀況。不過這裡我們講述一下它的思路,RSK也是一條鏈,但是它是比特幣上的側鏈。所謂的數字資產轉移並不是比特幣上的比特幣轉移到RSK上,而是將主鏈上的幣鎖定,同時RSK上等價的令牌解鎖。

雙向楔入

  這個雙向楔入的定義就是讓幣以一個固定或確定性的匯率在側鏈間轉出和轉入的機制。然後這個機制又有一個是對稱的,一個是不對稱的。   對於對稱雙向楔入的實質就是相當於,主鏈到側鏈和側鏈到主鏈都需要一個驗證的機制才能完成資產的鎖定和解鎖。而不對稱的雙向楔入是主鏈到側鏈是不需要驗證的,但是側鏈回到主鏈需要驗證。這個也比較容易理解,相當於,主鏈是知道它側鏈的存在的,但是側鏈可能並不知道主鏈的存在。

實現方案

  上文已經講解過個雙向楔入就是實現資產轉移的機制。具體的實現方案有四種:單一託管模式、聯盟模式、SPV模式、驅動模式和混合模式。   單一託管模式,就相當於把數字資產的鎖定和解鎖都由此託管人決定,該託管人收到主鏈上的數字資產後,就會在側鏈上啟用相應的數字資產。   聯盟模式,其實就相當於單一託管模式中的託管人由一個人變成了多個人,來同時證明資產是否轉移。   SPV模式,是通過證明這筆交易的存在,就通過從區塊中檢索到該交易存在,此時就解鎖側鏈上的令牌。就跟挖礦一樣,擁有較大算力的礦工是可生成和建立欺詐性SPV證明的能力。   驅動模式,該模式下的託管人是礦工,然後礦工通過投票來決定何時解鎖數字資產和將解鎖的數字資產傳送到何處。   混合模式,就是將上述四種模式進行有效的結合,到達需要的結果。

案例

基於比特幣的側鏈專案

  基於比特幣之上,衍生出來的側鏈專案有:閃電網路、RSK、Hivemind、Mimblewimble。   閃電網路實際上就是一條比特幣之上的快速支付通道。在比特幣系統中每筆交易是需要交易手續費,當兩個或者多個使用者之前頻繁有資金往來時,就可以在其之間搭起一條支付通道,使交易不需要手續費而且快速。由於資金需要雙方的私鑰,才能解鎖,所以也安全。 閃電網路   RSK是第一個和比特幣雙向錨定的開源的智慧合約平臺。採用混合模式來實現雙向錨定。通過RSK可以支援智慧合約和虛擬機器,然後RSK中的令牌和比特幣又可以轉換,這樣使得比特幣也擁有了RSK鏈上的功能。 RSK

基於以太坊的側鏈專案

由於以太坊的功能相當於比特幣而言相對完善,而且以太坊出塊時間是15秒,交易確認是24個區塊,相當於一筆交易確認時間大概為6分鐘,這樣對於比特幣而言,交易速度也是有很大的提高。所以以太坊之上的側鏈專案稍微少一點:雷電網路和Loom。   雷電網路,雷電網路就不詳細講解,其概念和上文描述的閃電網路一樣,只是一個是基於比特幣之上,一個是基於以太坊之上。雖然以太坊之上的區塊確認比較速度,但是每筆交易都需要手續費,礦工會選擇手續費高的交易先打包到區塊中,這樣就會導致交易的手續費提高,為了避免這種情況,出現了以太坊之上的快速支付通道。   Loom,由於加密貓當時的火熱程度直接導致了以太坊網路擁堵,所以Loom的設計思路是讓每個DAPP(遊戲或者社交應用)執行在自己的區塊鏈上,來分擔以太坊主網的資料負載。   每個DAPP相當於是Loom上的側鏈, 可以基於以太坊智慧合約釋出遊戲或者社交應用裡面場景需要的Token,然後和Loom鏈上的Loom代幣雙向錨定。 Loom   基於Loom之上已經落地了很多應用,我沒有過多的研究這每個應用,但是我去看了一下以太坊DAPP程式設計的那個應用(https://cryptozombies.io/ ),個人覺得還是很有意思的,開始的學習覺得還是很簡單的,有些語法和JS比較相似,學到後面覺得還是很有難度,後面由於工作原因,就沒有繼續學習。可以等到有空閒時間學習後,再來分享一下。

總結

  通過學習,我發現側鏈技術從提出到發展至今,已經不僅僅是概念層面的,而是落地了很多應用。比如基於比特幣的元素鏈專案落地了liquid;基於以太坊的Loom Network專案落地了DelegateCall以及雷電網路也被很多區塊鏈專案使用(Loopring,Augur等等)。我很期待側鏈會有更多的專案落地,來切實解決主鏈上交易和可用性方面的痛點。