許多區塊鏈應用程序最有價值的屬性之一就是去信任:應用程序能夠以預期的方式繼續操作,而不需要依賴特定的參與者以特定的方式進行操作。
即使他們的利益可能會改變,並推動他們在未來以一些不同的意想不到的方式行事。
區塊鏈應用程序從來不是完全去信任的,但是有些應用程序比其他應用程序更接近去信任。如果我們想使信任最小化變成現實,我們需要有能力去比較不同程度的信任。
首先,我對信任的簡單一句話的定義:信任是對他人行為的任何假設的使用。
當我們運行一段別人寫的代碼,是我們相信他們誠實的寫了代碼,或者至少存在足夠多的人檢查了這段代碼。
為了分析區塊鏈協議,我傾向於將信任分為四個維度:
我們需要多少人按照我們的期望行事?其中的多少個?這些人的行為需要什麼樣的動機?他們需要利他主義,還是僅僅追求利益?如果違背這些假設,系統會有多糟糕?
現在,讓我們關注前兩個。我們可以畫一個圖:
越綠越好。讓我們更詳細地探討這些類別:
1-of-1:只有一個參與者,當(且僅當)一個參與者執行我們所期望的操作時,系統才會工作。這是傳統的“中心化”模式,也是我們努力做得更好的地方。
N-of-N:“反烏托邦”世界。我們依賴於一大堆參與者,所有參與者都需要按照預期的方式工作,以便使一切正常運行,如果其中有任何一個失敗,則沒有兜底。
N/2-of-N:這就是區塊鏈的工作方式——如果大多數礦工(或PoS驗證者)是誠實的,它們就會工作。注意N/2-of-N的值會隨著N的增大而變大;一個由少數礦工/驗證者控制其網絡的區塊鏈比一個由廣泛分佈的礦工/驗證者控制的區塊鏈有趣得多。也就是說,我們想要提高這一級別的安全,就需要擔心如何在51%攻擊中倖存下來。
1-of-N :存在許多參與者,只要其中至少有一個人按照我們的期望行事,系統就會正常運行。任何基於欺詐證明的系統都屬於這一類,可信設置也是如此,儘管在這種情況下,N通常更小。請注意,我們確實希望N盡可能大!
N中的少數:有很多參與者,只要他們中至少有一小部分人按照我們的期望去做,系統就會正常工作。數據可用性檢查屬於這一類。
0-of-N:系統按照預期工作,不依賴任何外部參與者。通過自己檢查來驗證一個區塊就屬於這一類。
上面這些類別彼此之間是非常不同的。
相信某個特定的人(或組織)會按照預期的方式工作,與相信某個地方的某個人會按我們的期望去做是非常不同的。
1-of-N 可以說更接近於0-of-N ,而不是N/2-of-N或1-of-1。1-of-N模型可能很像是1-of-1模型,但這兩個非常不同:在1-of-N系統中,如果我們參與者此刻突然消失或變邪惡,我們可以切換到另一個,而在1-of-1系統就完蛋了。
特別要注意的是,就算正在運行的軟件的正確性是依賴於“N中的少數”這個信任模型,也要去確保代碼中是否有會被別人找出的bug。
另一個重要的區別是:如果我們的信任假設被違背了,系統將如何失敗?在區塊鏈中,兩種最常見的故障類型是活性故障和安全故障。
活性故障是指我們暫時無法做我們想做的事情。例如,提幣,獲得包含在區塊中的交易,從區塊鏈讀取信息。
安全故障是指系統本想要阻止但卻主動發生了的事件。例如,無效區塊被包含在區塊鏈中。
下面是幾個區塊鏈L2協議的信任模型示例。我用“小N”表示第二層系統本身的參與者集合,用“大N”表示區塊鏈的參與者;通常假設第2層協議的社區比區塊鏈本身更小。
我還將“活性故障”一詞的使用限制在幣被長時間卡住的情況;不再能夠使用系統,但能夠近乎即時地提幣並不算活性故障。
Channels (包括state channels,閃電網絡):活性方面是1-of-1的信任模式(我們的對手可以暫時凍結我們的資金,但如果我們在多個對手之間分幣,這種傷害可以減輕),安全方面是N/2-of-大N的信任模式(區塊鏈的51%攻擊可以竊取我們幣)。 Plasma(假設是中心化運營商):活性方面是1-of-1的信任模式(運營商可以暫時凍結我們的資金),安全方面是N/2-of-大N的信任模式(區塊鏈51%攻擊)。 Plasma(假設是半去中心化運營商,例如DPOS):活性方面是N/2-of-小N的信任模式,N/2-of-大N的信任模式。 Optimistic rollup:活性方面是1-of-1或N/2-of-小N 的信任模式(取決於運營商類型),N/2-of-大N的信任模式。 ZK rollup:活性方面是1-of-小N的信任模式(如果運營商沒有包含我們的交易,我們也可以提現,如果運營商沒有立即包含我們的提現,他們不能生產更多批次,我們可以藉助rollup系統的任何全節點自行提現);無安全故障風險。 ZK rollup(具有light- withdrawal enhancement功能):無活性故障風險,無安全故障風險。
最後,還有激勵的問題:我們所信任的參與者需要非常利他才能像預期那樣行事,但是是稍微利他一點,還是需要足夠理性?
如果我們添加一種小額支付的方式,那麼幫助他人從ZK rollup中提款是合理的,因此,真的沒有理由擔心我們無法在任何重要的使用中退出rollup。
與此同時,如果我們作為一個社區同意不接受51%的攻擊鏈(這些攻擊鏈在歷史上恢復的時間很長,或審查區塊的時間很長),那麼可以減輕其他系統的風險。
總結
當有人說一個系統“依賴於信任”時,需要更詳細地問他們是什麼意思! 是指1-of-1,還是1-of-N,還是N/2-of-N? 他們要求這些參與者是無私的還是理性的? 如果是利他主義,到底是小花費還是一個巨大花費?
如果這個假設被違背了——我們是只需要等幾個小時或幾天,還是我們的資產會永遠被卡住了?根據不同的答案,我們自己是否想要使用該系統的答案可能會非常不同。
Source:https://hackernoon.com/do-trust-models-deserve-their-title