DA-ChainTalk #4 — 側鏈協作的世界

DA-ChainTalk #4 — 側鏈協作的世界

各位好,上次我與 @antonsteemit探討了區塊鏈的智能合約:

DA-ChainTalk #3 — 智能合約之前世今生

今日我們將談談另一個大家也是耳熟能詳的一個名詞:側鏈(sidechains)。這是一個蠻重要的擴充特定區塊鏈網路效率的方向,適用於所有區塊鏈項目,所以,值得我們好好稍微深入瞭解一下。

此一系列以「DA-ChainTalk」的名稱開頭,您亦可從 #da-chaintalk來追蹤我們的文章。謝謝!

the-main-processor-3286065_1280.jpg
Image Source: pixabay

DA-ChainTalk #4 — 側鏈協作的世界

前言

今天來跟大家聊聊側鏈(sidechains)。

側鏈並不是一個很新的東西,它是在2014年首次被提出的,在區塊鏈的世界應該算是一個比較「老」的概念了!儘管老,但是到現在仍然被許多的團隊奉為開發宗旨,因為它為區塊鏈的擴展性帶來了許多的可能性,例如有名的Lisk,就是主打讓人輕鬆打造自己的側鏈。

好,讓我們趕緊來看看到底什麼是側鏈吧!

什麼是側鏈(Sidechain)

簡單的說,側鏈指的就是讓一種虛擬貨幣能被安全地移到另一條區塊鏈上使用(然後也可以轉移回來)的機制。假設今天除了比特幣主鏈以外,我們還有一條與之掛勾的側鏈。那麼,我們可以把一定數量的比特幣轉移到側鏈上來,以及後續轉移回去主鏈,在這裡安全的使用這些比特幣,實現比特幣在這兩個鏈上的「流通」與整體交易效率。


Image Source: http://bitcointodaynews.info/what-do-you-know-about-sidechain/

乍看之下,這是一個荒謬的想法,因為照理說比特幣應該永遠只會存在於比特幣的帳本上。沒錯!其實側鏈實質上並沒有任何貨幣的「轉移」,在比特幣主鏈上的比特幣永遠不會消失,側鏈是透過一個類似「複製身份」的方法,複製了等量的比特幣讓你在側鏈上使用。當然,這個過程並不是隨隨便便完成的,而整個側鏈的實現精華也就是在於如何準確公平的將「複製比特幣」交給不同使用者。

運作原理

2 Way Peg - 雙向掛勾

其實側鏈的運作原理相當容易理解,當我們要將錢轉到側鏈上使用時,其實我們是將錢轉到一個特定的地址,稱為「Lockbox」。在他確認收到你的BTC之後,便會「鎖住」這些BTC,同時在側鏈上釋放等量的“影子BTC“到你指定的地址中。當需要從側鏈轉移比特幣回主鏈上時,同理,也要經過一個Lockbox,凍結住側鏈上等量的“影子BTC“,並在主鏈上釋放等量之真正BTC回你的錢包。這個中間控管凍結與釋放的機制,就稱為雙向掛勾: 2 Way Peg 。是不是很簡單阿!


Image Source: https://blockstream.com/technology/

至於要怎麼實現這個雙向掛勾,就可以有不同的方法了,可以是中心化,也可以是去中心化(如論文提出的SPV檢驗)。以下分述三種方法來實現2 Way Peg:

「中心化的2-Way Peg」

當我們用一個中心化的方式來處理2 Way Peg時,這整個運作模式就會變得跟交易所類似。我們可以用交易所的例子來很好的理解這種側鏈的運作模式。

當我們匯了一筆錢到交易所的存款地址時,交易所就是在做一個中心化的監控者。假如你存了1個BTC,在交易所確定收到這一個比特幣之後,就把這一個BTC放進自己口袋,然後輕輕鬆鬆的在系統裡你的帳戶中寫上一個「1」。這個「1」,就好像是由交易所幫我們創造的「假比特幣」,是為了方便交易而使用的代幣,所以我們在交易所內拿這1個比特幣跟別人交易時,不用像真正的比特幣交易一樣要等待半小時確認,因為這時候確認交易的工作由交易所中心化的伺服器來完成,可以非常迅速。

假如你用1個BTC買了10個ETH,那麼現在你的帳下就紀錄了10個ETH,在你想要轉出這10個ETH時,交易所會在確認你的合法餘額之後,匯出口袋裡一大堆真正的ETH中的10個到你的ETH地址之中。Yea~交易完成,皆大歡喜。

這一整個過程中,交易所就扮演了側鏈以及雙向掛勾的管理者:在你轉帳給交易所之後,這些真BTC就不再受你控制,而是受到交易所控制,都放在交易的錢包裡。你能控制的只有交易所網站上面那個數字而已,就好像是側鏈上的「假比特幣」。交易所基於維持世界秩序的精神,只有在確認自己收到一個BTC之後,才會在交易所的世界裡、你的戶頭裡加上1;在你決定領出一個BTC之後,交易所也必須在「假比特幣」總資產之下永遠減1,並且匯一個BTC給你。

這麼做的壞處顯而易見:就是中心化。我們需要信任這個監控人,而這監控人掌管了所有我們在比特幣主鏈上的資金。這也是為什麼大家心甘情願付給交易所手續費,否則他們哪天心情不好捲款潛逃,不但交易所關了,我們可是一毛錢都拿不回來。

註:我們在這裡用交易所來當作例子,只是為了解釋「中心化的2-Way Peg」。實際上側鏈是另一條獨立的區塊鏈,上面會運行自己的共識機制來達到「去中心化」,這跟交易所內部的中心化伺服器處理是不一樣的。我們只是透過這個比喻了解一個「中心化的管理者」在主鏈與側鏈的溝通上扮演什麼樣的角色。

「半中心化的2-Way Peg: 聯合掛勾 (Federated Peg)」

另一個稍微比較不那麼可怕的解法稱為聯合掛勾(Federated Peg),就是由多個組織聯合來擔任中間人的角色。而關於如何共同管理一個錢包,可以利用傳統多簽(Multisig)的方式,設定一個錢包必須要有超過一定比例的管理同意才能轉帳,因此分散惡意中間人的風險。

實務經驗也告訴我們基本上這世界上好人還是比壞人多(看看Steem的見證人機制),基本上可以相信這個機制可以順利運作。但他終究不是真正的去中心化,因此我們還是要再來看看更符合去中心化精神的SPV Proof解法。


Image Source: https://surreyfootball.com/

「去中心化的2-Way Peg: SPV Proof」

熟悉比特幣錢包的朋友應該對SPV這個詞不陌生。SPV代表著Simple Payment Verification,稱為簡易支付驗證,這裡不會太仔細的介紹它的運作原理(可能未來再寫一篇專門介紹好了!?),但簡而言之,就是用一個比較偷懶的方法來看一筆交易是否是真實的。要注意簡易支付驗證並不是親自驗證這筆交易是否有效,而是提供一些證據,告訴別人「這筆交易已經被別人認證合法有效」。

SPV驗證當中,我們只要提交一個已經被挖出來的區塊,裡面包含了我們想要驗證的那筆交易,就可以告訴別人:「看阿,在這個Block之上已經又有多少區塊被礦工挖出來了,而且都沒有人反對,也就是說大家都同意他合法!」。

這個方法提供了大家一個簡化的溝通方法,在未來可以透過一個智能合約來控管側鏈的2 Way Peg,而要轉錢到側鏈上的人只要提供SPV Proof,就可以簡單確定這個用戶是否有足夠餘額轉帳到側鏈上。

SPV驗證方法最為公平,但是比較困難的是如果要利用SPV Proof來控管Sidechain,會需要比特幣節點一些協議上的升級,以更完整的支援其運作。但是升級比特幣是大家所害怕的,畢竟牽扯太大,萬一出了什麼差錯可不是一句對不起就能挽回了XD。

側鏈的好處

好了,看了這麼多什麼掛勾什麼的,執行面還是讓專家去煩惱吧。我們來想想側鏈能帶來什麼好處。

最直觀的想法就是減輕主鏈的負擔,大家都知道比特幣現在運作非常吃力,如果我們能夠順利的將許多工作分散到不同的側鏈上完成,可以在側鏈利用不同的共識機制加速交易,同時降低主鏈的負載度。

再來就是整體的變化性。就如同上面提過的,我們幾乎等同於可以將比特幣移到自己開發的鏈上使用,因而可以運行不同的共識機制,或是支援智能合約。更厲害的是,我們可以作到「跨鏈交流」,將不同的貨幣放到同一條鏈上一齊運作,可能會有新的商業模型、新的服務,大家可以好好動動腦想一想(這感覺是最賺錢的部份阿!)

最後再提一點,是許多人覺得「主鏈–側鏈」這樣的架構,是一個較為健康的「比特幣系統」。為什麼呢?相信大家對於比特幣擴容議題的各種Drama都不陌生,對於比特幣未來開發方向、如何優化,這些問題都不是幾個人開會決定就可以改變的。側鏈對於新功能的開發可以做為一個「測試鏈」,可以試跑優化的協議、執行測試。甚至不只測試,也可以是運行其他「新比特幣」的地方。因為側鏈最重要的特性是「不會影響主鏈」的運作。有人將側鏈形容為一道防火牆,因為就算它被玩壞了,受到攻擊,我們的比特幣主鏈依然不受影響。

現在全世界都有一個共識,把比特幣視為虛擬貨幣的老大哥,儘管他的性能不佳,但是卻有著很高的安全性以及穩定性,因此大家都是以「能不動就不動」為原則,不會輕易更動比特幣的運作模式。透過側鏈,我們可以一直保留著這個「有夠慢」的「比特幣爺爺」,然後將擴容等等實現放置到其他的側鏈中來運作。除了保留著傳統幣特幣的安全特性與地位,也可以在比較不害怕全世界崩潰的前提下來進行開發或升級。這是我覺得非常有意義的一點,提出來讓大家一起思考。

小結

就像最後提到的,其實現在大家對於側鏈好像更期待的是他普及之後能夠對整個生態系帶來的影響。而我呢,則是也很期待以後會有更多「跨鏈應用」來讓整個區塊鏈世界更豐富!總之覺得側鏈是個有趣的議題,希望大家會喜歡啦!


#da-chaintalk


This page is synchronized from the post: ‘DA-ChainTalk #4 — 側鏈協作的世界’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×