區塊鏈3.0時代,你連「跨鏈技術」都不知道嗎?

在過去的2018年,大家曾對EOS、Cardano等公鏈寄予厚望, 但這些所謂的「區塊鏈3.0」項目的現狀或是進展緩慢,或是主網上線後效果沒有達到此前預期,距離大家期待中的場景尚有不少差距。

之後,大家對區塊鏈的應用期待又中心化在能夠出現一個殺手級的DApp。

同時,在部分業內人士眼中,區塊鏈跨鏈技術也可能成為「區塊鏈3.0」的一種可能性。

而跨鏈技術到底是什麼?獃獃帶你們一探究竟~

如果說共識機制是區塊鏈的靈魂核心,那麼對於區塊鏈特別是聯盟鏈及私鏈來看,跨鏈技術就是實現價值網路的關鍵,它是把聯盟鏈從去中心化單獨的孤島中拯救出來的良藥,是區塊鏈向外拓展和連接的橋樑。

跨鏈的目標

簡單列舉幾個要點如下:

  1. 資產的相互轉換
  2. 原子交換:中間不能中斷,同時發生,或者同時中斷
  3. Oracle問題:鏈內部的信息是互通的,鏈看外面世界就很困難。以太坊可以知道自己的以太坊地址上的餘額,事件,但外部世界很難知曉。

    需要一種機制:讓鏈知道外面的世界。跨鏈Oracle: 身份證公有鏈。去讀取某個人的身份,就需要跨鏈Oracle。鏈與鏈協同,互相讀取信息。

  4. 資產質押:兩個鏈之間協同,一條房地產鏈,一條數字貨幣鏈;在房地產鏈上質押房產,在數字貨幣鏈上得到貸款。這就是跨鏈的資產質押。鏈的事件之間的依賴。
  5. 智能合約涉及到多個鏈的信息,跨鏈讀取。它鏈信息或事件的讀取和驗證。

其中第一條,是最先出現的跨鏈需求。

這個需求,可以通過場外通過擔保交易實現,也可以通過中心化的交易所來進行。這是表面上的跨鏈,滿足了不同數字貨幣資產的兌換。

其次,純技術角度實現,就要滿足一個條件,交易事務的Atom性,這個理解起來也相對直觀:交易事務的中間不出現中斷,要麼全部執行完畢,要麼同時中斷,不會出現哪一方的損失。

而關於Oracle問題,我們可以從鏈的角度來思考。比如比特幣和以太坊,互相之間是不知道對方的存在的,是兩個自治的系統,並沒有互通的機制。

所以發生在比特幣上的交易事務和狀態的改變,以太坊是無法知道的。這並不是一個理想狀態,理想狀態應當是鏈與鏈可以互相感知,這便是Oracle問題。由此提出的跨鏈Oracle,就是賦予鏈這樣的互相感知的能力。

使用跨鏈技術可以達到的另一個目標是資產質押。這個可以類比現實生活中的資產質押。

在鏈上的實現方式就是,假定有兩個鏈,一個房地產鏈,一個數字貨幣鏈。

在房地產鏈上,可以將房產的所有權質押到鏈上的智能合約,這個事件觸發到數字貨幣鏈上的智能合約,把數字貨幣發送到你的賬戶,從而完成鏈與鏈的事件的傳遞,完成資產質押。

最後,從更加宏觀的角度來思考,可以歸結為智能合約的跨鏈信息讀取。

一般來說,智能合約會運行在某個主鏈上,對於這個主鏈上的信息讀取並沒有任何問題,而對於它鏈的信息讀取,必須藉助於跨鏈來實現。

公證技術

這是用在在絕大多數跨鏈項目上的最簡單的方式。在公證人機制里,會存在一個或多個受信的實體,這些實體會向A鏈聲明某個事件確實在B鏈上發生了,或者某個特定的關於B鏈的聲明是真的。

優點是簡單易實現,而缺點也同樣明顯,我們需要信任1個或多個實體。

側鏈你真的理解了嗎?

關於側鏈,首先需要明白一個要點就是:主鏈並不知道側鏈的存在,側鏈知道主鏈的存在。

舉一個場景,比特幣是不可能成為任何公鏈的側鏈的,至少當前的比特幣架構是無法做到的。我們用比特幣和以太坊為例,以太坊可以成為比特幣的側鏈,比特幣作為以太坊的主鏈。

以太坊能夠知道通過智能合約以及SPV技術知曉比特幣的狀態,但是比特幣做不到去知曉以太坊平台上的狀態。

如果給一個判定方法,誰是主鏈,誰是公鏈,標準是異常簡單的:

Chain A能讀懂Chain B,則表示A是B的側鏈。

上面這些基本道出了側鏈的能夠實現的效果。而具體到一些技術要點,可以歸納出如下兩個點。

側鏈技術要點:

  • 主鏈支持簡單支付驗證SPV( Simple Payment Verification)
  • 主鏈向側鏈提供SPV proof來驗證主鏈中發生的事件

SPV技術簡單說來就是輕節點錢包用到的技術。

我們知道單純比特幣從創世區塊到現在,所有的區塊大小由170G左右,對於挖礦節點而言,可能會去安裝全節點錢包,也就是要有170G+的硬碟空間。

而我們大多數應用場景下,不用真的去存儲區塊的數據,只是想做驗證。而哈希函數能夠做到很好的壓縮數據大小:將任意大小數據壓縮到固定大小。

SPV就是這樣一種方法,不存儲區塊數據,而選擇存儲佔用空間比較小的Header數據。但是通過這些數據可以去知曉區塊鏈的狀態,去做驗證。

圍繞著比特幣,產生了很多側鏈項目,比如RootStock,簡稱RSK。

RSK

首先RootStock能讀懂比特幣,那麼RootStock是比特幣的側鏈。

SPV: 輕節點

RTC代幣,和BTC進行兌換。

其中用到的側鏈技術名稱是:Semi-Trust-Free側鏈技術,這裡不做具體展開。

如果想使用RTC,就需要往RSK中的多重簽名的地址發送比特幣(公證人機制)。

RTC發送給別人後,別人可以把RTC發送到指定地址,從而換得比特幣。

總結來說就是:雙向錨定,加上公證人機制。

關於RSK項目,會在後面進一步分析白皮書內容,這裡只做簡單介紹。

側鏈和中繼很多時候是歸於一類的,但是會有些微的差別,下面我們講一個中繼(Relay)技術的項目。

BTCRelay是啥呢?

比特幣目前不是任何鏈的側鏈。一直是作為主鏈的存在。

BTCRelay是讓以太坊成為BTC的側鏈。btcrelay.org

這讓以太坊能夠讀懂比特幣。所以以太坊是側鏈。

BTCRelay是試圖構造這樣一個塊:允許以太坊的智能合約安全地驗證比特幣的交易,而不需要任何中間機構。簡單說就是用戶能夠用比特幣做支付,但是用以太坊的DApps。

這種跨鏈是如何成為可能的?

設想: 智能合約,A在以太坊里給B的比特幣地址發送1個比特幣,B能收到並發送50個ETH回來給A。如何通過Relay實現?

BTCRelay是以太坊上的智能合約。

驗證的方式:在以太坊的智能合約里,會先把BTC的headers全部存下來。通過blockHash找到那個交易。

即:SPV驗證模式。

但是BTC對以太坊一概不知。

Relay: 中繼

關於中繼技術,是這樣的一種解決方案: 在鏈A和鏈B之間存在第三方數據結構C,C是A和B的中繼。

如果C本身也是區塊鏈結構,通常稱為relay-chain。V神並沒有嚴格區分Relay和側鏈。

Relay是一種方式,側鏈是一種結果。

中繼:比特幣的頭部信息是存在比特幣網路上的,現在需要去讀取這些信息存在中間部件,即所謂的中繼。

應用舉例

  • BTCRelay
  • Polkadot中的relay-chain

哈希鎖定

一個比較智能設計。參考閃電網路。

  • 產生隨機數
  • 猜隨機數

通過鎖定一段時間猜哈希原值來兌現支付的一種機制。

V神的跨鏈哈希鎖定技術,場景:A向B發送一個BTC,B向AA

  1. A產生一個隨機密碼值s,並計算s的哈希值h,把h發送給B
  2. A和B都將他們的資產鎖定到智能合約里,但A先B後,且B要看到A確實把資產鎖定成功才去鎖定。在A這邊,設定2X時間,如果B能提供s,則可以拿走A鎖定的比特幣,否則A鎖定的比特幣就退回自己賬戶;在B這邊,在X時間內,A能向他提供s就可以拿走B鎖定的ETH。
  3. A在X時間內向B發送s從而拿到B鎖定的ETH,這樣的話,B知道s後,還會有時間去拿A鎖定的BTC。

原文:https://mp.weixin.qq.com

提示:投資有風險,入市需謹慎,本資訊不作為投資理財建議。請理性投資,切實提高風險防範意識;如有發現的違法犯罪線索,可積極向有關部門舉報反映。
你可能還喜歡