最近,區塊鏈技術引發了普遍關注。雖然區塊鏈技術目前正在快速發展,可是傳統區塊鏈技術要落地到商業應用,特別是金融應用,仍然存在不少問題須要解決,如交易性能、隱私保護等。解決這些問題的一種作法是從新開發新的區塊鏈,可是這種作法會形成大量重複性工做,而且須要不斷的發行新的數字資產。那麼是否存在在不影響原有區塊鏈工做的基礎上,依託於原有區塊鏈進行技術升級的解決方案,側鏈就是在這種需求背景下被提出的。本文首先介紹了側鏈的基本概念,接着分析了側鏈的產生背景與工做原理,最後對目前主要存在的側鏈進行了介紹。java
01—基礎概念面試
側鏈協議本質上是一種跨區塊鏈解決方案。經過這種解決方案,能夠實現數字資產從第一個區塊鏈到第二個區塊鏈的轉移,又能夠在稍後的時間點從第二個區塊鏈安全返回到第一個區塊鏈。其中第一個區塊鏈一般被稱爲主區塊鏈或者主鏈,每二個區塊鏈則被稱爲側鏈。最初,主鏈一般指的是比特幣區塊鏈,而如今主鏈能夠是任何區塊鏈。側鏈協議被設想爲一種容許數字資產在主鏈與側鏈之間進行轉移的方式,這種技術爲開發區塊鏈技術的新型應用和實驗打開了一扇大門。算法
02—產生背景安全
2012年,在比特幣聊天室中,首次出現了關於側鏈概念的相關討論。當時比特幣的核心開發團隊正在考慮如何能夠安全的升級比特幣協議,以增長新的功能,可是直接在比特幣區塊鏈上進行功能添加比較危險,由於若是新功能在實踐中發生軟件故障,則會對現有的比特幣網絡形成嚴重影響。另外,因爲比特幣的網絡結構特性,若是進行較大規模的改動,還須要得到多數比特幣礦工的支持。這時,比特幣核心開發者便提出了側鏈方案。這種技術容許開發人員將新功能附加在其餘的區塊鏈,可是這些區塊鏈仍然附着在現有比特幣區塊鏈上。這些區塊鏈中新功能能夠充分利用現有比特幣的網絡特性,而不會對現有的比特幣網絡形成危害。網絡
2014年,這時已經出現了許多具備新功能的區塊鏈,併產生了各類競爭幣,如萊特幣、狗狗幣等。這時,比特幣的核心開發團隊擔憂這些競爭幣的產生會稀釋比特幣的價值。他們認爲,應該把比特幣做爲一種儲備貨幣,並將新功能添加到側鏈上。這樣若是用戶想使用其餘的新的區塊鏈功能,就不須要購買其餘代幣。爲了將側鏈由概念轉化成現實,Adam Back、Matt Corallo等比特幣核心開發者共同發起成立了Blockstream公司,並在同年十月,發佈了白皮書《Enabling Blockchain Innovations with Pegged Sidechains》,首次明確提出了側鏈的概念及其協議實現方案。架構
經過側鏈,能夠在主鏈的基礎上,進行交易隱私保護技術、智能合約等新功能的添加,這樣可讓用戶訪問大量的新型服務,而且對現有主鏈的工做並不形成影響。另外,側鏈也提供了一種更安全的協議升級方式,當側鏈發生災難性的問題時,主鏈依然安然無恙。併發
03—實現方案框架
側鏈實現的技術基礎是雙向錨定(Two-way Peg),經過雙向錨定技術,能夠實現暫時的將數字資產在主鏈中鎖定,同時將等價的數字資產在側鏈中釋放,一樣當等價的數字資產在側鏈中被鎖定的時候,主鏈的數字資產也能夠被釋放。雙向錨定實現的最大難點是協議改造需兼容現有主鏈,也就是不能對現有主鏈的工做形成影響,其具體實現方式能夠分爲如下幾類:分佈式
(一)單一託管模式ide
最簡單的實現主鏈與側鏈雙向錨定的方法就是經過將數字資產發送到一個主鏈單一託管方(相似於交易所),當單一託管方收到相關信息後,就在側鏈上激活相應數字資產。這個解決方案的最大問題是過於中心化。圖1給出了以比特幣爲主鏈的單一託管模式的工做原理示意圖:
(二)聯盟模式
聯盟模式是使用公證人聯盟來取代單一的保管方,利用公證人聯盟的多重簽名對側鏈的數字資產流動進行確認。在這種模式中,若是要想盜竊主鏈上凍結的數字資產就須要突破更多的機構,可是側鏈安全仍然取決於公證人聯盟的誠實度。圖2給出了以比特幣爲主鏈的聯盟模式的工做示意圖:
單一託管模式與聯盟模式的最大優勢是它們不須要對現有的比特幣協議進行任何的改變。
(三)SPV模式
SPV(Simplified Payment Verification)模式是最初的側鏈白皮書《Enabling Blockchain Innovations with Pegged Sidechains》中的去中心化雙向錨定技術最初設想。SPV是一種用於證實交易存在的方法,經過少許數據就能夠驗證某個特定區塊中交易是否存在。在SPV模式中,用戶在主鏈上將數字資產發送到主鏈的一個特殊的地址,這樣作會鎖定主鏈的數字資產,該輸出仍然會被鎖定在可能的競爭期間內,以確認相應的交易已經完成,隨後會建立一個SPV證實併發送到側鏈上。此刻,一個對應的帶有SPV證實的交易會出如今側鏈上,同時驗證主鏈上的數字資產已經被鎖住,而後就能夠在側鏈上打開具備相同價值的另外一種數字資產。這種數字資產的使用和改變在稍後會被送回主鏈。當這種數字資產返回到主鏈上時,該過程會進行重複。它們被髮送到側鏈上鎖定的輸出中,在必定的等待時間後,就能夠建立一個SPV證實,來將其發送回主區塊鏈上,以解鎖主鏈上的數字資產。SPV模式存在的問題是須要對主鏈進行軟分叉。圖3給出了以比特幣主鏈的SPV模式的工做流程示意圖:
(四)驅動鏈模式
驅動鏈概念是由Bitcoin Hivemind創始人Paul Sztorc提出的。在驅動鏈中,礦工做爲‘算法代理監護人’,對側鏈當前的狀態進行檢測。換句話說,礦工本質上就是資金託管方,驅動鏈將被鎖定數字資產的監管權發放到數字資產礦工手上,而且容許礦工們投票什麼時候解鎖數字資產和將解鎖的數字資產發送到何處。礦工觀察側鏈的狀態,當他們收到來自側鏈的要求時,他們會執行協調協議以確保他們對要求的真實性達成一致。誠實礦工在驅動鏈中的參與程度越高,總體系統安全性也就越大。如同SPV側鏈同樣,驅動鏈也須要對主鏈進行軟分叉。圖4給出了以比特幣爲主鏈的驅動鏈模式的工做流程示意圖:
(五)混合模式
上述全部的模式都是對稱的,而混合模式則是將上述得到雙向錨定的方法進行有效的結合的模式。因爲主鏈與側鏈在實現機制存在本質的不一樣,因此對稱的雙向錨定模型多是不夠完善的。混合模式是在主鏈和側鏈使用不一樣的解鎖方法,例如在側鏈上使用SPV模式,而在主鏈網絡上則使用驅動鏈模式。一樣,混合模式也須要對主鏈進行軟分叉。
04—典型範例
目前,比較著名的側鏈包括基於比特幣網絡的側鏈BTC Relay、Rootstock的Liquid,以及非比特幣的側鏈如Lisk和國內的Asch等。
BTC Relay是由ConsenSys的推出的基於以太坊區塊鏈的智能合約的側鏈解決方案。BTC Relay把以太坊網絡與比特幣網絡以一種安全去中心化的方式鏈接起來。BTC Relay經過使用以太坊的智能合約功能容許用戶在以太坊區塊鏈上驗證比特幣交易。以太坊DApp開發者能夠從智能合約向BTC Relay進行API調用來驗證比特幣網絡活動。
Liquid是Blockstream的開源側鏈項目,使用了比特幣雙向錨定技術,Liquid目的是實現使得比特幣能夠在主鏈和側鏈中互轉,旨在提升隱私性、下降成本、加速交易所和經紀商之間的價值轉移及結算流程。
Lisk是一個致力於爲JavaScript開發者提供建立分佈式應用程序的區塊鏈平臺,由德國的Max Kordek和Oliver Beddows於2016年初成立。它把每個分佈式應用程序都會在其本身且獨一無二的區塊鏈,也就是側鏈上運行,這種封裝使得主要的Lisk的主網高效,迅速和精簡
Asch是國內推出的一個基於側鏈技術的去中心化應用平臺,由單青峯於2016年初成立。Asch平臺提供的服務包括一個主鏈和一套應用軟件開發工具包。Asch的主鏈主要負責構建基礎設施、應用間的數據共享以及資產路由,應用軟件開發工具包內置了側鏈協議,主要負責構建具體的應用,經過側鏈協議能夠與主鏈進行資產互通。
05—總結
側鏈是以融合的方式實現加密貨幣金融生態的目標,而不是像其它數字資產同樣排斥現有的系統。側鏈技術進一步擴展了區塊鏈技術的應用範圍和創新空間,使傳統區塊鏈能夠支持多種資產類型,以及小微支付、智能合約、安全處理機制、財產註冊等,並能夠加強區塊鏈的隱私保護。利用側鏈,咱們能夠輕鬆的創建各類智能化的應用如金融合約,股票、期貨、衍生品等。
加Java架構師羣獲取Java工程化、高性能及分佈式、高性能、深刻淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點高級進階乾貨的直播免費學習權限 都是大牛帶飛 讓你少走不少的彎路的 羣..號是:855801563 對了 小白勿進 最好是有開發經驗
注:加羣要求
一、具備工做經驗的,面對目前流行的技術不知從何下手,須要突破技術瓶頸的能夠加。
二、在公司待久了,過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的能夠加。
三、若是沒有工做經驗,但基礎很是紮實,對java工做機制,經常使用設計思想,經常使用java開發框架掌握熟練的,能夠加。
四、以爲本身很牛B,通常需求都能搞定。可是所學的知識點沒有系統化,很難在技術領域繼續突破的能夠加。
5.阿里Java高級大牛直播講解知識點,分享知識,多年工做經驗的梳理和總結,帶着你們全面、科學地創建本身的技術體系和技術認知!