狀態通道中如果鎖定交易和解鎖交易具備確定性,那麼二者之間的所有二層交易都具備即時可確定性。

原文標題:《科普 | 狀態通道真的可以實現即時確定性嗎?》
撰文:George Knee
翻譯 & 校對:閔敏 & 阿劍

術語往往禁錮認識。在技術討論中,好的術語可以在準確性和簡潔性之間取得平衡。通常,這種平衡需要根據說話人(開發人員或營銷人員)和聽話人(專家或門外漢)的特性發生變化。

科普 | 狀態通道真的可以實現即時確定性嗎?雖然不是即時的,但是比另一款要快得多(來源:Pexels)

「即時確定性(instant finality)」 就是一個新興術語,也是本文的重點。這個術語指的是增加狀態通道層會給區塊鏈帶來的優勢。「確定性」 概念可以追溯至中本聰的那篇介紹比特幣和區塊鏈的論文《比特幣:一種點對點的電子現金系統》。「確定性」 是區塊鏈交易的一種特性,可定義爲交易被打包進區塊之後的一種狀態,即,如果我們看到某個區塊之後挖出了足夠多的區塊,就可以確信這個區塊內的交易不會被網絡拒絕。也就是說,這個交易及其結果(對代幣餘額的更改)會永遠留存下來。

工作量證明區塊鏈的確定性不是非此即彼的:交易不會在某個時刻得到最終確定,而是像中本聰在白皮書中描述的那樣,交易被拒絕的概率會隨着時間流逝呈指數級下降,因爲網絡會就最長鏈達成共識。

當然了,區塊鏈在任何時刻都有可能出現分叉,導致某個交易失敗:但是隻要看到有新的區塊出現並指向包括這個交易在內的區塊,這種可能性就越來越低。不包含我們的交易的分叉鏈越長,我們的交易被拒絕的可能性就會越高。也有可能出現這樣的情況:我們的交易可能都無法實現確定性,而是變成了 「反確定性」 的,也就是說我們可以確信這個交易已經被拒絕了。當網絡遭到所謂的 51% 攻擊時,就會出現這種情況。再強調一次,我們永遠無法確定最後會是哪種結果:但是隨着時間的流逝,我們對交易被拒絕的可能性的預測會無限趨近 0 或 1 。只要等待足夠長的時間,我們就能從實際意義上得出確定的結論。

那麼,狀態通道到底改變了什麼,產生了什麼影響?好吧,事實上沒有帶來任何影響。作爲二層技術,狀態通道顯然不會更改區塊鏈的底層協議,也無法改變其確定性:不過,底層鏈能下功夫的地方有很多。

此外,使用狀態通道應用必須在底層區塊鏈上發起至少一個 「鎖定」 交易和一個 「解鎖」 交易。跟其它交易一樣,這些交易同樣存在確定性問題。用戶通常要等待將近 1 分鐘(從用戶體驗的角度來說這已經是龜速了)左右,這些底層交易才能被視爲是確定的。

狀態通道的原理是利用鎖定和解鎖之間的機會:在這兩個步驟之間提供一個執行環境,讓類似區塊鏈的應用能夠安全地運行。這類應用會涉及狀態更新,這些狀態更新可以稱作 「二層交易」,與區塊鏈交易大同小異。二層交易也帶有密碼學簽名,可包含任意數據,並由定義了程序執行規則的虛擬機來解釋(程序當然是由開發者來寫的)。然而,二層交易並不需要依賴複雜的概率性共識協議。狀態通道的狀態可由單方或各方同時發起更新。每次更新不一定具有可確定性。

什麼是可確定性?它指的是一個狀態通道的狀態能夠被底層區塊鏈接受:作爲解鎖交易的一部分,隨解鎖交易一起發到底層鏈上時,不會導致鏈的虛擬機回滾。這就意味着,滿足可確定性的二層交易是經過正確格式化的,也得到了正確的簽名,能夠經過狀態通道協議設計者和應用開發者的額外檢查。一旦這些條件經過了參與者的驗證,參與者就可以相信這些條件會在將來的某個時間點以特定的方式觸發解鎖。這樣,二層交易就以一個可確定的狀態告終。

這些相對寬鬆的要求使得二層可確定性相比底層可確定性來說,在耗時方面減少了幾個數量級。

這就是 「即時」 這一詞語的由來:這不是一個精準的術語,但是反映出了,從普通的去中心化應用到狀態通道應用,用戶體驗已經產生了質變:高效的狀態通道更適合微支付和實時遊戲等無法直接構建在底層區塊鏈上的應用。

如果鎖定交易和解鎖交易具備確定性,那麼二者之間的所有二層交易都具備即時可確定性。如果鎖定交易被拒絕了,所有狀態通道內的更新都沒有意義。不過,在執行鎖定交易之後,我們可以等待任意久的時間再開始更新狀態通道,因此可以將實現確定性的條件建立在某個既定或接近既定的事實上。

解鎖交易也是類似的:狀態通道解鎖(釋放參與者在通道內的資金)的時候有一個挑戰和響應(或者叫 「爭議」)模式,這是用來保護離線的參與者的。如果沒有這個模式,惡意對手方就可以通過發送一筆底層鏈上的交易、用不利於對手的狀態來解鎖資金。只要誠實的參與者能夠在挑戰時期內發出底層交易來反駁對手,那 TA 的資金就是安全的。因此,如果時限太短,可確定性概念也會被打破。如果挑戰時限比底層交易得到確定所需的時間長,那麼二層交易的可確定性就是無條件的。

請注意,發生在二層的資產轉移與發生在一層的稍有不同:因爲關於交易的共識只在一組固定(人數通常較少)的參與者中達成,狀態更新僅對該這組參與者有意義。如果我通過狀態通道向對手方付款,我的對手方無法將這筆錢支付給通道外的人,直到我們完成解鎖交易爲止。雖然有了即時確定性,但是我們不具備即時流動性:

科普 | 狀態通道真的可以實現即時確定性嗎?

總而言之,在描述狀態通道時,那些想要體現更深層次理解的人可能希望用 「快速有條件可確定性」 來代替 「即時確定性」 這一術語。就其他人而言,沿用後一個術語的可能性更高:這就跟大家習慣說 「比特幣是去中心化的」、「公鑰密碼學是安全的」、「哈希函數是不可逆的」這些論斷一樣。廣大社區成員之所以會接受這些不準確的說法,是因爲它們可以讓對話更加流暢地進行,以便更簡單地傳達中心思想。但是,在更強調準確性的情況下,我們不應該懼怕更深入地探討、解析一個術語背後的完整含義——這就是我寫這篇文章的目的!

歡迎加入討論

來源鏈接:medium.com