狀態通道和側鏈技術,是以太坊社區的兩種擴容技術,但是很多人經常會傻傻分不清楚,因此導致很多困惑。

timg (1)_副本

今天,這篇文章試着解釋其中的道理,希望讓大家能夠理解。這篇文章的主要目的,是說清楚:
• 什麼是狀態通道技術?
• 什麼是側鏈技術?

然後試着比較這兩個技術:
• 他們試圖解決什麼問題?
• 這兩者誰是更好的擴容解決方案?

不浪費太多時間了,讓我們趕緊開始吧。

什麼是狀態通道技術?

狀態通道是非常廣泛和簡單的方法,來在區塊鏈上對其進行擴容,但是這是在區塊鏈鏈下進行的,並沒有顯著增加區塊鏈參與者的風險。這種方案最出名的案例就是比特幣的支付通道,它可以讓兩者之間直接發送快速以及手續費很低的支付。

狀態通道是支付通道的統稱,可以把這個技術應用到任何狀態更改的操作,大多數情況下是在區塊鏈上進行。

將計算移動到鏈下,就不需要多餘的信任,可以導致成本的降低和速度的極大提升。狀態通道是區塊鏈擴容技術的重要組成部分,可以支持更高級別的使用。

狀態通道基本的組成部分有以下:

1*6eEGoEk7_bmt4JCNmCnKnA

1. 區塊鏈的部分狀態通過多個簽名和部分智能合約鎖定,所以這部分參與者必須要完全同意對方去更新它。
2. 參與者通過產生以及簽名轉賬來自己更新狀態,這最終會上傳到區塊鏈上,而不是直接在鏈上進行計算。每個新的更新會刷新之前的更新。
3. 最終,參與者將狀態傳回到區塊鏈上,然後關閉狀態通道,並且再次鎖定狀態(通常是按照和開始不同的設置)。

如果參與者之間更新的“狀態”是數字貨幣餘額,那麼我們就會有支付通道。第一步和第三步,就會開啓和關閉這個通道,包括區塊鏈操作。但是第二步,無限的更新就會快速進行,而且不需要區塊鏈的干預- 這就是狀態通道的力量,因爲只有第一步和第三步需要公開到網絡上,支付手續費,或者等待確認。其實,有了精心的計劃和設計,狀態通道可以幾乎保持無限開啓,並且被用作中心和分支系統,來助力整個經濟和生態系統。

儘管我們是很簡單地描述,其實狀態 / 支付通道是很複雜的。這裏有幾個原因,其中一個就是這三步背後有很複雜的分散步驟。讓我們仔細來看看,這些都是什麼,讓我們從以下開始:

可以提交到區塊鏈。

爲了讓狀態通道工作,參與者必須要保證他們可以在任何時候公開通道目前的狀態。這就會導致很多重要的限制,例如有人必須要在線去保護每個參與者,直到通道關閉。

想象下,當我們開啓支付通道,我通過 100 個比特幣開始,但是你是通過 10 個比特幣開始。如果我們開始簽名一個更新,轉賬 10 個比特幣給我,然後又簽名一個更新,轉賬 50 個比特幣給你,那麼之後的更新很明顯是比早前的那個更有利益。如果你不幸地沒有網絡連接了,那麼假設第二個更新永遠不會發生,那麼我就可以將第一個轉賬更新到區塊鏈上,然後從你那邊偷走 50 個比特幣!你需要做的,就是有人在線,並且有之後轉賬的複製,從而他們可以“覆蓋”前個轉賬,並且保證你的比特幣是被保護的。不一定非要是你- 你可以這個備份傳送給很多隨機的服務器,它們都是通過智能合約同意地,並且只要需要,就可以公開轉賬(當然,需要很少的手續費)。但是無論你怎麼做,你需要保證最近的簽名更新是可以覆蓋所有其他的。這就到我們的第二個步驟:

每個新狀態“覆蓋”之前的更新

爲了完成狀態通道的這部分工作,鎖定和解鎖機制必須要能夠合理地設計,從而提交到區塊鏈的舊狀態更新有機會被替代他們的更新狀態所糾正。最簡單的方法,就是讓任何解鎖都開啓計時器,在這段時間裏,任何更新的更新能替代舊的更新(同時也重新啓動計時器)。當計時器完成的時候,通道就會關閉,並且狀態就會反應收到的最後一個更新。計時器的長度會爲每個狀態通道特定選擇,從而平衡一個長通道的關閉時間,同時也增強安全性,這會防止網絡連接或者區塊鏈問題。另外,你可以通過金融懲罰的方式來構建通道,從而任何向區塊鏈公開不準確更新的人,通過假設之後的轉賬不會發生,讓這些人失去更多。

但是這個機制並不是很重要,因爲(回到之前所說的點)這個情況下的博弈論會讓事情變得很糟糕。這個機制可能只是理論上聽起來沒問題,但是可能從不會使用。其實通過計時器 / 懲罰過程,也許會導致多餘的費用,延遲或者其他不方便;如果讓某些人進入到這個機制,並不能給你任何好處,狀態通道的更方可能只是通過人工同意最終的狀態通道,從而關閉通道。最終的關閉操作需要和正常的“中介”更新不同(因爲它會繞過上面的“覆蓋”機制),所以一旦在某個通道的部分狀態鎖定,參與者會只是簽署最終的轉賬。

這些“細節”不是特別重要。它最終分解開,可以理解爲,參與者通過設置一個“法官”智能合約來打開通道,互相簽署協議,如有必要,裁判可以強制執行,然後通過在其中達成共識關閉通道,那麼法官的判斷就不需要。只要“法官”機制是可靠的,這些承諾就可以被認爲是即時轉賬,法官只在特殊情況下上述,例如一方參與者消失。

當然,這些細節只是人們認爲狀態 / 支付通道複雜的願意之一。更多地是,比特幣支付通道是很複雜的。在比特幣中建立“法官”機制是非常錯綜複雜的。但是一旦你對狀態通道有清晰的理解,你可以看到這僅僅來自於在受限的上下文中實現這個想法。基礎的智能合約機制,例如計時器機制以及根據上傳的簽名信息來選擇兩個不同的道路,這其實在比特幣中更難做到。某些功能是逐漸添加和建立的。通過看到支付通道只是特殊的廣泛“狀態通道”概念的子案例,我們發現這是更快寬泛的技術,並且這個狀態通道能夠應用到任何智能合約中,它們和定義的參與者之間進行高頻的更新。你可以預見,這種方式會在很多分佈式應用中出現。

現在,我們應該對什麼是“狀態通道”比較清楚了,接下來我們來看看側鏈技術。

什麼是側鏈技術?

側鏈技術是一種分開獨立的區塊鏈,其會使用一個雙向錨定來依附於主鏈。

換句話說,你可以將資產移動到側鏈上,也可以轉移回主鏈。

1*hFdtS94EIFeSQGWREnNWJw

這個雙向錨定可以在主鏈和側鏈之間按照預先設定的速率進行資產的內部交換。初始的區塊鏈通常代表着主鏈,而且所有新增的區塊鏈都被定義爲側鏈。

主鏈上的用戶首先需要將代幣轉移到輸出地址,在那裏代幣會被鎖定,從而用戶不能消費它們。一旦轉賬完成,在經過安全時間的等待之後,信息就會在鏈上傳遞。在等待時間之後,相同數量的代幣就會在側鏈發佈,讓用戶能夠獲得並且消費它們。當從側鏈轉移到主鏈的時候,相反的事情就會發生。

聯盟

聯盟是指作爲主鏈和其中一個側鏈中間點的羣體。這個羣體在用戶鎖定和釋放代幣的時候,就會確定。側鏈的創建者可以選擇聯盟的數量。但是聯盟結構的一個問題在於,它會在主流和側鏈之間添加一個層級。

側鏈對於他們自身的安全性是需要負責的。如果沒有足夠的算力來確保側鏈的安全,就可能會被黑客侵入。因爲每個側鏈都是獨立的,如果被入侵,那麼損害就會包含在側鏈上,不會影響主鏈。

相反地,如果主鏈被入侵了,那麼側鏈仍然可以允許,但是錨定就會失去價值。

側鏈需要他們自己的礦工。這些礦工能夠通過“聯合挖礦”來獲得激勵,同種算法,同時挖礦,並且可以獲得兩種不同的數字貨幣。

現在,我們對側鏈也有所瞭解了。那麼,讓我們來比較它們之間的區別。

它們試圖解決什麼問題?

側鏈和狀態通道是用於來提高區塊鏈的擴容性。

它們都符合類似的模型。
• 鎖定狀態 / 資產。
• 在鏈下進行轉賬
• 在狀態通道 / 側鏈解鎖狀態 / 資產

但是儘管這樣類似,其中也有很多區別,主要是在狀態通道中,我們不使用單獨的區塊鏈,但是在側鏈中,我們使用單獨的區塊鏈。那麼我們來看看,最終的結果是什麼。

這兩個,誰是更好的擴容方案?

爲了得到答案,讓我們來看看他們各自的優勢和劣勢。

狀態通道的好處

狀態通道有很強的隱私性能:這是因爲任何事情都是發生在通道中的,而不是公開廣播並且記錄在鏈上。只有打開和關閉轉賬必須是公開的。但是在側鏈系統中,每筆轉賬都是發佈在側鏈上的,然後側鏈上的每個參與者都會收到,然而事實上,你並沒有和側鏈上所有參與者交互。

• 狀態通道有即時的最終確定性,也就是說只要兩方簽署了狀態更新,就能認爲狀態結束了。雙方對其能夠有很高的保證,如有需要,他們可以“強制”將狀態放入在鏈上。但是就像上面討論的那樣,狀態通道關閉,考慮到轉賬的安全性等級,可能會需要花費各種時間。然而在側鏈中,你在另一邊有區塊鏈。所以,最終結果取決於側鏈的挖礦算力。

狀態通道的缺陷

• 狀態通道需要所有參與者 100% 的在線:就像我們討論的,如果任何參與者變得不在線,那麼對他們來說成本是很高的。參與者可以使用別人來作爲代表,如果他掉線,但是代表被攻擊的可能性成了狀態通道的問題。但是在側鏈中,你就不需要一直在線。

• 狀態通道最好是用於一系列參與者:這是因爲法官合約(用來鎖定狀態的合約)必須總是知道參與者 / 個體 (也就是地址) 是這個通道的一部分。我們可以添加和移除參與者,但是需要每次都對合約進行改變。但是在側鏈,對於參與者的轉移就沒有這類限制。

• 狀態通道對於要長期進行很多狀態更新的參與者來說,尤其有用:這是因爲在部署法官合約的時候,創建通道有初始成本。但是一旦部署了,通道內部每個狀態的更新都非常便宜。

側鏈的好處

• 側鏈是永久的。如果現在已經有了,你不需要爲了特定目的,來創建你自己的側鏈:側鏈在完成的時候,就被創建並且維護。我們不會關閉側鏈,而是在側鏈上鎖定資產,然後轉移到主鏈。這對於那些想在鏈下進行特定任務的情況,是非常有幫助的(例如,狗狗幣轉賬),因爲最終都會到同個側鏈。所以,你不必爲每個新的參與者來創建不同的側鏈。但是在狀態通道,你總說需要創建新的通道,然後添加新的參與者。但是,有些項目也使用了別的方法,可以不用爲每個參與者都創建新的通道。你可以通過其他參與者不直接地在你和接收者之間建立通道。

• 側鏈可以讓數字貨幣和對方交互 : 他們會添加了靈活性,同時也讓開發者在把數據推送到主鏈之前,能夠進行軟件測試。傳統銀行功能,例如發放跟蹤股權的所有者,可以在將他們轉移到主鏈之前,在側鏈進行測試。

側鏈的壞處

• 側鏈需要很多的初始投資才能開始:爲了創建側鏈,我們需要有足夠的礦工,從而網絡可以防止攻擊者,保持安全。同時,我們必須要保證它們是在線並且運行的。但是在狀態通道中,沒有區塊鏈。所以,也不需要這類需求。

• 對於側鏈來說,聯盟是需要的:這會在主鏈和側鏈之間增加另個層級。這對於攻擊者來說,是另一個脆弱的點,因爲可以攻擊聯盟。因此在狀態通道中,我們只需要智能合約來這樣做。

其實這兩個擴容方案之間的競爭是很大的。塵埃落地,但是這兩者仍然還發展地很好。由於研究還在繼續,現在很難決定到底誰是獲勝者。也許他們會合作來形成另外的混合解決方案,來爲解決擴容問題。現在只能等待,看看時間會給我們帶來什麼。

發文時比特幣價格 ¥43052.55

原文:https://hackernoon.com/difference-between-sidechains-and-state-channels-2f5dfbd10707
作者:vasa
編譯:nuszjj
稿源(譯):巴比特資訊(http://www.8btc.com/‎difference-between-sidechains-and-state-channels) 版權聲明:
by
nc"
sa
作者保留權利。文章爲作者獨立觀點,不代表巴比特立場。

來源鏈接:www.8btc.com