前言:區(qū)塊鏈的技術(shù)術(shù)語(yǔ)中,有很多概念經(jīng)常會(huì)混淆使用。其中之一就是側(cè)鏈和狀態(tài)通道。兩者都是區(qū)塊鏈的擴(kuò)展解決方案。但在社區(qū)的使用中,經(jīng)常被互換使用。那么它們之間到底有什么不同,有什么優(yōu)缺點(diǎn),誰(shuí)更好?本文有助于回答你的困惑。本文作者Vasa,由“藍(lán)狐筆記”的“Moqi”翻譯。
以太坊社區(qū)中“狀態(tài)通道”和“側(cè)鏈”這兩個(gè)術(shù)語(yǔ)經(jīng)常被互換使用,從而導(dǎo)致普通用戶的混淆。今天我們將這個(gè)問(wèn)題搞清楚。先煮杯咖啡,因?yàn)樗鼤?huì)需要耗費(fèi)一些時(shí)間。
本文的主要目的很明確:
· 什么是狀態(tài)通道?
· 什么是側(cè)鏈?
然后我們進(jìn)行比較:
· 它們兩者試圖解決什么問(wèn)題?
· 哪個(gè)是更好的擴(kuò)展解決方案?
現(xiàn)在開始。
什么是狀態(tài)通道?
狀態(tài)通道是一種非常廣泛且簡(jiǎn)單的思考問(wèn)題的方式:思考將可能發(fā)生在區(qū)塊鏈上的交易,在不顯著增加任何參與者風(fēng)險(xiǎn)的情況下在鏈下執(zhí)行。
這一策略最著名的例子是比特幣的支付通道概念,它允許在雙方之間直接發(fā)送即時(shí)的低費(fèi)用支付。
狀態(tài)通道是支付通道的一般形式,將相同的想法應(yīng)用于通常在區(qū)塊鏈上執(zhí)行的任何類型的狀態(tài)改變操作。(藍(lán)狐筆記:也即是說(shuō),支付通道只是狀態(tài)通道的一種特殊形式,它不僅僅是支付)
將這些交互移至鏈下,且無(wú)須要求任何額外的信任,可以實(shí)現(xiàn)成本和速度的極大改善。狀態(tài)通道將是擴(kuò)展區(qū)塊鏈技術(shù)的關(guān)鍵部分,它支持更高級(jí)別的用戶使用。
狀態(tài)通道的基本組成非常簡(jiǎn)單:
1.將區(qū)塊鏈狀態(tài)的一部分通過(guò)多重簽名或某種智能合約鎖定,因此,特定的參與者集必須彼此間完全同意才能對(duì)其狀態(tài)進(jìn)行更新。
2.參與者們通過(guò)構(gòu)建和簽名可被提交至區(qū)塊鏈的交易,以更新他們之間的狀態(tài),而在此之前狀態(tài)只是暫時(shí)保持在內(nèi)部。每個(gè)新的狀態(tài)更新都“高于”之前的更新。
3.最后,參與者們將狀態(tài)提交回區(qū)塊鏈,這將關(guān)閉狀態(tài)通道,并再次解鎖狀態(tài)。
就這樣。如果參與者之間更新的“狀態(tài)”是加密貨幣的余額,那么,我們就有了一個(gè)支付通道。打開和關(guān)閉通道的步驟1和3涉及到了區(qū)塊鏈操作。
但步驟2可以快速執(zhí)行不限制次數(shù)的更新,且無(wú)須涉及到區(qū)塊鏈。這就是狀態(tài)通道可以發(fā)揮作用的地方。因?yàn)?,僅有步驟1和3需要發(fā)布到網(wǎng)絡(luò)上,以及支付費(fèi)用或等待確認(rèn)。
實(shí)際上,通過(guò)仔細(xì)的規(guī)劃和設(shè)計(jì),狀態(tài)通道幾乎可以無(wú)限期保持開放狀態(tài),且可用于大型樞紐系統(tǒng)的一部分,為整個(gè)經(jīng)濟(jì)或生態(tài)系統(tǒng)提供動(dòng)力。
盡管這里描述看似簡(jiǎn)單,但人們通常認(rèn)為狀態(tài)/支付通道是非常復(fù)雜的。造成這種情況的原因有很多:其中之一就是在對(duì)這三個(gè)步驟的表述中隱藏了一些重要的微妙之處。讓我們仔細(xì)看下這些簡(jiǎn)單的短語(yǔ)所隱含的含義:
· 可以提交到區(qū)塊鏈
為了使?fàn)顟B(tài)通道正常工作,必須確保參與者可以在任何時(shí)候?qū)⑵洚?dāng)前通道的狀態(tài)發(fā)布到區(qū)塊鏈上。這導(dǎo)致產(chǎn)生了一些重大的局限,例如這樣的事實(shí):在通道關(guān)閉之前,有人必須保持在線以保護(hù)每一方的利益。
想象一下,假設(shè)當(dāng)我們開啟一個(gè)支付通道時(shí),我以100BTC開始,而你以10BTC開始。如果我們首先簽署將10個(gè)BTC轉(zhuǎn)給我的更新,然后又簽署將50個(gè)BTC轉(zhuǎn)回給你的更新,第二個(gè)更新明顯比上個(gè)更新對(duì)你更有利。如果你意外地網(wǎng)絡(luò)掉線,而我則可以假裝第二次更新從來(lái)沒有發(fā)生過(guò),那么,我能將第一次更新發(fā)布到區(qū)塊鏈上,從而有效地從你哪里竊取了50個(gè)BTC。
你需要的是有人保持在線,擁有最新交易的副本,以便于它們可以“高于”早前的交易,并確保你的比特幣得到保護(hù)。不一定是你自己保持在線。你可以將副本發(fā)送到很多隨機(jī)服務(wù)器,它們同意通過(guò)智能合約僅在需要時(shí)才發(fā)布它(可以節(jié)省費(fèi)用)。但是,無(wú)論你如何做,你都需要確保最新簽名的狀態(tài)更新都是高于其他所有更新的。這使得我們進(jìn)入下一個(gè)微妙的短語(yǔ):
· 每個(gè)最新更新都“高于”之前的更新
為了使?fàn)顟B(tài)通道的這一部分正常工作,必須正確地設(shè)計(jì)鎖定和解鎖機(jī)制,以便提交給區(qū)塊鏈的舊狀態(tài)有機(jī)會(huì)被取代它們的新狀態(tài)所糾正。最簡(jiǎn)單的方法是讓任何解鎖嘗試啟動(dòng)計(jì)時(shí)器,在此期間,任何新的更新都能取代舊的更新(也重啟計(jì)時(shí)器)。當(dāng)計(jì)時(shí)器完結(jié),通道關(guān)閉,并且狀態(tài)將進(jìn)行調(diào)整以反映最后一次收到的更新。
可以為每個(gè)狀態(tài)通道選擇計(jì)時(shí)器的長(zhǎng)度,以平衡較長(zhǎng)通道關(guān)閉時(shí)間的不便利性和不斷增加的應(yīng)對(duì)互聯(lián)網(wǎng)連接或區(qū)塊鏈問(wèn)題的安全性。(藍(lán)狐筆記:此處意思是權(quán)衡利弊,計(jì)時(shí)器過(guò)長(zhǎng),導(dǎo)致通道關(guān)閉時(shí)間過(guò)長(zhǎng),則會(huì)帶來(lái)不便,而計(jì)時(shí)器過(guò)短,則可能帶來(lái)安全問(wèn)題)
或者,你可以通過(guò)罰款方式來(lái)構(gòu)建通道,這樣任何向區(qū)塊鏈發(fā)布不正確更新的人的損失要比他們假裝沒有發(fā)生后續(xù)交易所獲得的更多。
但是這個(gè)機(jī)制最終不會(huì)有太大關(guān)系,因?yàn)椋ɑ氐缴弦稽c(diǎn))這種情況的博弈論使得事情產(chǎn)生變化。只要這種機(jī)制在理論上是合理的,它就可能永遠(yuǎn)不必使用它。
實(shí)際上通過(guò)計(jì)時(shí)器/ 懲罰程序可能會(huì)帶來(lái)額外的費(fèi)用、時(shí)延或其他不便;考慮到迫使某人進(jìn)入機(jī)制并不能給你帶來(lái)任何好處,因此,一個(gè)狀態(tài)通道的參與方可能會(huì)只是通過(guò)相互商定最終通道狀態(tài)來(lái)關(guān)閉通道。
這種最終關(guān)閉操作跟普通的“中介”更新有根本上的不同(既然它將繞過(guò)上面提及的最新交易“高于”之前交易的機(jī)制),因此,參與者對(duì)于在特定通道內(nèi)鎖定的狀態(tài)的每個(gè)部分僅是簽署一次關(guān)閉交易。
這些“微妙之處”的細(xì)節(jié)并不是特別重要。最終歸結(jié)為參與者通過(guò)設(shè)置“法官”智能合約來(lái)打開通道,相互簽署如有必要“法官”可以強(qiáng)制執(zhí)行和裁決的承諾,然后,相互協(xié)商關(guān)閉通道,這樣法官的裁決就不需要。
只要“法官”機(jī)制被認(rèn)為是可靠的,這些承諾就可以算作為即時(shí)轉(zhuǎn)移,只有在特殊情況下法官才會(huì)出現(xiàn),例如參與方消失時(shí)。當(dāng)然,這些細(xì)節(jié)只是人們認(rèn)為狀態(tài)/支付通道是復(fù)雜的部分原因。更大的原因是比特幣的支付通道是復(fù)雜的。在比特幣上構(gòu)建具有合理有用屬性的“法官”機(jī)制是非常復(fù)雜的。
不過(guò),一旦你對(duì)狀態(tài)通道有一個(gè)清晰的總體概念,就能看到,這只是由于在一個(gè)受限的環(huán)境中試圖實(shí)施這個(gè)概念而產(chǎn)生?;镜闹悄芎霞s功能,例如計(jì)時(shí)器機(jī)制和根據(jù)提交的簽名信息來(lái)允許采用兩種不同路徑,這些在比特幣中很難做到。
其中的一些功能正在逐步添加或構(gòu)建。支付通道只是更廣泛“狀態(tài)通道”概念的特殊子情況,我們可以意識(shí)到這是一種更廣泛的技術(shù),狀態(tài)通道可以應(yīng)用到任何智能合約,這些智能合約在定義好的參與者組中處理頻繁的更新。你可以預(yù)期在很多(如果不是大多數(shù))分布式應(yīng)用中看到這種方法。
現(xiàn)在,我們對(duì)什么是“狀態(tài)通道”有了更明晰的理解。因此,我們來(lái)看看側(cè)鏈。
什么是側(cè)鏈?
側(cè)鏈?zhǔn)鞘褂秒p向錨定關(guān)聯(lián)于其父鏈(主鏈)的單獨(dú)區(qū)塊鏈。換句話說(shuō),你可以將資產(chǎn)移至側(cè)鏈,并再移回父鏈。(藍(lán)狐筆記:就是將主鏈資產(chǎn)在主鏈和側(cè)鏈間來(lái)回移動(dòng))
雙向錨定使得可以在父鏈和子鏈之間以預(yù)定的匯率進(jìn)行資產(chǎn)互換。原始區(qū)塊鏈通常成為“主鏈”,其他所有外加的區(qū)塊鏈都稱為“側(cè)鏈”。區(qū)塊鏈平臺(tái)Ardor將其側(cè)鏈稱為“子鏈”。
父鏈上的用戶首先必須發(fā)送其代幣到一個(gè)輸出地址,這些代幣會(huì)被鎖定,因此用戶無(wú)法在其他地方消費(fèi)它們。在交易完成之后,會(huì)通過(guò)跨鏈進(jìn)行確認(rèn),然后等待一段時(shí)間,以提高安全性。
在等待期過(guò)后,側(cè)鏈上會(huì)釋放等量的代幣,允許用戶獲取并在此處進(jìn)行消費(fèi)。當(dāng)將資產(chǎn)從側(cè)鏈移回主鏈,流程剛好相反。
聯(lián)盟
聯(lián)盟是一個(gè)組,它在主鏈和其一個(gè)側(cè)鏈之間充當(dāng)中間點(diǎn)。這個(gè)組確定何時(shí)鎖定和釋放用戶使用的代幣。側(cè)鏈的創(chuàng)建者可以選擇聯(lián)盟的成員。聯(lián)盟結(jié)構(gòu)的問(wèn)題在于,它在主鏈和側(cè)鏈之間添加了另外一個(gè)層。
側(cè)鏈要負(fù)責(zé)自身的安全。如果沒有足夠的算力來(lái)保護(hù)側(cè)鏈的安全,它有可能會(huì)被攻破。因?yàn)槊織l側(cè)鏈都是獨(dú)立的,如果它遭受攻擊或入侵,損壞會(huì)在該鏈中發(fā)生,而不會(huì)影響主鏈。相反,如果主鏈遭受攻擊,側(cè)鏈仍能運(yùn)行,但其錨定資產(chǎn)將會(huì)失去大部分價(jià)值。
側(cè)鏈需要它們自己的礦工??梢酝ㄟ^(guò)“合并挖礦”激勵(lì)這些礦工,因此,兩種獨(dú)立的代幣,基于相同的算法,可以同時(shí)開采出來(lái)。
現(xiàn)在,我們對(duì)側(cè)鏈也有一個(gè)很好的了解。所以,讓我們把它們放在一起。
它們想解決什么問(wèn)題?
通常,側(cè)鏈和狀態(tài)通道都是用來(lái)提高區(qū)塊鏈可擴(kuò)展性的。他們遵循類似的模型。
· 鎖定狀態(tài)/資產(chǎn)
· 在區(qū)塊鏈/主鏈之外進(jìn)行交易
· 從狀態(tài)通道/側(cè)鏈中解鎖狀態(tài)/資產(chǎn)
但盡管有這樣的類比,但兩者間有很多不同,這是因?yàn)闋顟B(tài)通道中我們不使用單獨(dú)的區(qū)塊鏈,而在側(cè)鏈中我們使用單獨(dú)的區(qū)塊鏈。讓我們來(lái)看看這會(huì)導(dǎo)致什么結(jié)果。
兩者中哪個(gè)是更好的擴(kuò)展性解決方案?
為了得出答案,我們來(lái)看看它們的優(yōu)缺點(diǎn)。
狀態(tài)通道的優(yōu)點(diǎn)
狀態(tài)通道有很強(qiáng)的隱私屬性:這是因?yàn)樗惺虑槎及l(fā)生在參與者之間的通道“內(nèi)部”,而不是公開廣播和在鏈上記錄。只有打開和關(guān)閉的交易必須是公開的。
而在側(cè)鏈上,每筆交易都會(huì)發(fā)布到側(cè)鏈上,無(wú)論你是否跟側(cè)鏈上的所有參與者交互,交易都會(huì)被側(cè)鏈上每個(gè)參與者接收。
狀態(tài)通道有即時(shí)最終性。這意味著只要雙方簽署狀態(tài)更新,它就可以被認(rèn)為是最終狀態(tài)。雙方都有很高的保證,如有必要,他們可以在鏈上“強(qiáng)制執(zhí)行”該狀態(tài)。但正如上面提到的,考慮交易的安全級(jí)別,狀態(tài)通道的關(guān)閉可能需要花費(fèi)不同的時(shí)間。
而在側(cè)鏈中,另一邊有一條區(qū)塊鏈,因此,最終性依賴于側(cè)鏈的挖礦算力。
狀態(tài)通道的缺點(diǎn)
狀態(tài)通道需要所有參與者100%的在線(可用性):正如我們上面討論的,如果任何參與者不在線,那么,這可能對(duì)他來(lái)說(shuō)要付出代價(jià)。如果參與者不在線,參與者可以使用其他人來(lái)代表TA。但代表被攻擊或被賄賂的可能性讓會(huì)它會(huì)成為狀態(tài)通道的問(wèn)題。而在側(cè)鏈上則你不必總是在線。
狀態(tài)通道最適合用于有已定義好參與者集的應(yīng)用:這是因?yàn)椤胺ü佟焙霞s(用于鎖定狀態(tài)的合約)必須了解特定通道部分的參與者/主體(即地址)。我們可以添加和移除人,但它要求每次對(duì)合約進(jìn)行更改。而在側(cè)鏈中,參與者變化方面沒有這種限制。
狀態(tài)通道在這種情形下尤其有用:參與者將要在長(zhǎng)時(shí)期內(nèi)交換很多狀態(tài)更新:這是因?yàn)閯?chuàng)建通道部署“法官”合約會(huì)產(chǎn)生初始成本。但是,一旦部署,在狀態(tài)通道內(nèi)每次狀態(tài)更新的成本會(huì)非常低。
側(cè)鏈的優(yōu)點(diǎn)
側(cè)鏈?zhǔn)怯谰玫摹H绻嬖谟袀?cè)鏈,你無(wú)須為特定目的而創(chuàng)建專屬的側(cè)鏈。側(cè)鏈一旦創(chuàng)建,就是完成構(gòu)建并進(jìn)行維護(hù)。我們不會(huì)關(guān)閉側(cè)鏈,而是鎖定在側(cè)鏈上的資產(chǎn)以移回主鏈。這是非常有用的方式,任何在區(qū)塊鏈/主鏈外做特定任務(wù)的人都會(huì)來(lái)到相同的側(cè)鏈。
因此,你不必為每個(gè)新參與者創(chuàng)建獨(dú)立的鏈。而在狀態(tài)通道,你通常必須創(chuàng)建新的狀態(tài)通道來(lái)添加新參與者。但諸如閃電網(wǎng)絡(luò)、雷電網(wǎng)絡(luò)這些項(xiàng)目為此提出了出色的解決方案。他們創(chuàng)建了參與者網(wǎng)絡(luò),由此你不必為與之互動(dòng)的每個(gè)新參與者創(chuàng)建新的通道。
你可以跟參與者進(jìn)行間接互動(dòng),方式是在你和接收者之間通過(guò)你們之間共同的其他參與者來(lái)創(chuàng)建一個(gè)通道:你和接收者。
側(cè)鏈允許加密貨幣相互交互:它們?cè)黾恿遂`活性,并允許開發(fā)者在山寨幣的Beta版本或軟件更新上線主鏈之前,可以在側(cè)鏈上實(shí)驗(yàn)。像傳統(tǒng)的銀行功能(如發(fā)行和跟蹤股份所有權(quán))可以在側(cè)鏈上測(cè)試,然后再移至主鏈。
側(cè)鏈的缺點(diǎn)
側(cè)鏈需要很多初始投資來(lái)啟動(dòng):為了創(chuàng)建側(cè)鏈,我們需要足夠的礦工,以使網(wǎng)絡(luò)免遭攻擊者的攻擊。此外,我們必須確保它們已經(jīng)啟動(dòng)和在運(yùn)行。然而,在狀態(tài)通道中沒有區(qū)塊鏈,因此,沒有這些要求。
側(cè)鏈需要聯(lián)盟:這在主鏈和側(cè)鏈之間增加了額外的層。這可能是攻擊者可以攻擊的另外一個(gè)弱點(diǎn):可以賄賂或攻擊聯(lián)盟。然而在狀態(tài)通道中,我們只需要一個(gè)智能合約就可以為我們完成這項(xiàng)任務(wù)。
兩者之間的競(jìng)爭(zhēng)是偉大的。塵埃落定,但兩者依然站立。由于研究依然在持續(xù),實(shí)際的使用還沒有傳播,我們無(wú)法確定誰(shuí)會(huì)是贏家?;蛟S它們會(huì)融合,形成一種混合解決方案,來(lái)解決擴(kuò)展性問(wèn)題。直到實(shí)現(xiàn)之前,我們還需要等待,看看什么時(shí)候能看到。
責(zé)任編輯:ct
評(píng)論
查看更多