Vitalik Buterin:簡析Rollup 等以太坊二層擴容方案信任模型- 鏈聞ChainNews


區塊鏈應用永遠不可能實現完全免信任,但是不同應用在免信任程度上卻差別顯著。

原文標題:《乾貨| 信任的模式》
撰文:Vitalik Buterin,以太坊創始人
翻譯& 校對:閔敏& 阿劍

對於許多區塊鏈應用來說,免信任性都是最重要的特徵之一。 所謂的免信任性,就是應用的正常工作不以特定參與者按特定方式行事為前提,即使他們將來會在利益的驅使下做出意料之外的舉動(也不能使應用的工作狀況脫離預期) 。 區塊鏈應用永遠不可能實現完全免信任,但是有一些應用在免信任程度上遠遠高於另一些項目。 如果我們想要朝著信任最小化邁出堅實的步伐,就得先辨別出信任程度的高低。

首先,我個人對信任的定義很簡單:信任就是對其他人行為的假設。 在疫情爆發前,你不會因為害怕別人突然捅你一刀而與刻意跟他人保持兩米的距離。 這就是一種信任:一方面是信任他人不會暴走,另一方面是信任法律制度對違法犯罪行為的約束力。 當你運行其他人寫的一段代碼時,你相信他們是誠實的(不管是從人品的角度,還是從經濟利益的角度),至少有足夠多的人對這段代碼進行過審計,知道裡面沒有bug 。 不自己種菜也是一種信任:相信會有足夠多的人為了賺錢而生產糧食。 你可以信任不同群體,信任的類型也多種多樣。

為了分析區塊鏈協議,我會將信任拆解成四個維度:

  • 你需要多少人如你預期的那樣行事?
  • 總參與人數有多少?
  • 需要這些人出於什麼動機如你預期的那樣行事? 需要他們是利他主義者,還是唯利是圖者? 是否需要避免他們之間產生協同?
  • 如果這些假設被打破了,對系統的破壞有多大?

現在,先讓我們聚焦於前兩個問題。 通過下圖,我們可以更加直觀地看出:

乾貨| 信任的模式

綠色越深表示越健康。 讓我們詳細分析以下幾種情況:

  • 1 : 1:整個系統只有一個參與者。 如果這名參與者確實如你預期的那樣行事,系統就會正常運行。 這就是傳統的「中心化」 模型,也是我們所要超越的模型。
  • N : N:「反烏托邦」 世界。 系統中的所有參與者都要如你預期的那樣行事,系統才能正常運行,如果有任意參與者失敗,那也沒有備份方案。
  • N/2 : N:這是區塊鏈的運作方式—— 如果大部分礦工(或PoS 驗證者)是誠實的,區塊鏈就能正常運作。 要注意的是,N 越大,N/2 就越有價值。 相比只由少量礦工/ 驗證者控制的區塊鏈,礦工/ 驗證者廣泛分佈的網絡有趣得多。 儘管如此,我們依然想要獲得更高的安全性,因為還有51% 攻擊的問題存在。
  • 1 : N:在眾多參與者中,只要有一名參與者如你預期的那樣行事,整個系統就能正常運行。 任何基於欺詐證明的系統都屬於這一類。 可信設置也是如此,不過在可信設置中,N 通常較小。 要注意的是,N 越大越好!
  • 極少數: N:在眾多參與者中,只要有達到固定人數的小部分參與者如你預期的那樣行事,整個系統就能正常運行。 數據可用性檢查(data availability check)就屬於這一類。
  • 0 : N:系統無需依賴外部參與者即可正常運行。 自我驗證區塊有效性就屬於這一類。

儘管除「0 : N」 之外的模型都是建立在「信任」 基礎上的,但是這些模型之間存在巨大差異! 相信某個特定的人(組織)會如你所預期的那樣行事,和相信任何一個人都會如你所預期的那樣行事,二者之間有著天壤之別。 相比「N/2 : N」 和「1 : 1」,「1 : N」 與「0 : N」 更為接近。 或許有人會覺得「1 : N」 模型與「1 : 1」 模型很像,因為這兩種系統都依賴一名參與者,但實際上它們之間迥然不同:在「1 : N」 系統中,如果這名參與者消失或作惡,換一名參與者即可;如果是「1 : 1」 系統,你就只能束手無策。

尤其要注意的是,即使是你正在運行的軟件,其正確性通常也取決於「極少數: N」 信任模型,以此確保軟件代碼出現bug 時,會有人及時發現。 在了解這一事實後,你就會發現,努力從「1 : N」 模型轉向「0 : N」 模型如同為敞開窗戶的房子安裝防盜門。

另一個重要的區別在於,如果你的信任假設被打破,對系統的破壞有多大? 在區塊鏈上,最常見的兩種故障類型是活性故障(liveness failure)安全性故障(safety failure)。 活性故障就是你暫時無法進行操作(例如,提幣、將交易打包進區塊、讀取鏈上數據)。 安全性故障就是出現了系統想要預防的情況(例如,無效塊被添加到區塊鏈上)。

以下列舉了一些區塊鏈Layer 2 協議所採用的信任模型。 我使用「small N」 來指代layer 2 系統本身的參與者集合,「big N」 來指代底層區塊鏈的參與者。 我的假設是Layer 2 的社區總是小於其底層區塊鏈的社區。 另外,我所謂的「活性故障」 特指代幣長時間卡住的情況。 無法使用系統但能即時提款的情況不算作活性故障。

  • Channel 類(包括狀態通道、閃電網絡等):使用「1 : 1」 信任模型來確保活性(你的交易對手可以暫時凍結你的資金,不過你可以將資金分散到多個通道中,從而減輕負面影響) ,「N/2 : big N」 模型來確保安全性(攻擊者可以通過51% 攻擊來偷走你的資金)。
  • Plasma(採用中心化運營方):使用「1 : 1」 模型來確保活性(運營者可以臨時凍結你的資金),「N/2 : big N」 模型來確保安全性(攻擊者可以通過51% 攻擊來偷走你的資金)。
  • Plasma(採用半中心化運營方,如DPOS):使用「N/2 : small N」 模型來確保活性,「N/2 : big N」 模型來確保安全性。
  • Optimistic Rollup:使用「1 : 1」 或「N/2 : small N」 模型來確保活性(取決於運營者的類型),「N/2 : big N」 模型來確保安全性。
  • ZK Rollup:使用「1 :small N」 模型來確保活性(如果運營者未能打包你的交易,你可以取回你的資金,如果運營者沒有立即打包你的取款交易,就無法打包更多交易,你可以在Rollup 系統中任何一個全節點的幫助下自行提款。);不存在安全性故障風險。
  • ZK Rollup(輕取款增強型):不存在活性故障風險和安全性故障風險。

最後是關於激勵的問題:為了達到預期的效果,你所信任的參與者需要非常利他主義,一般利他主義,還是理性主義? 默認情況下,「欺詐證明」 需要參與者是利他主義的,但是程度如何取決於計算的複雜性(詳見「驗證者困境」 ),而且有很多方法可以修改規則,使之變得理性。

如果我們增加一種方式來支付服務費,那麼幫助他人從ZK Rollup 上取款的行為就是理性的,因此沒必要擔心無法退出Rollup 的問題。 與此同時,如果整個社區都同意不接受通過51% 攻擊創建的區塊鏈(將交易歷史回滾到很久之前,或審查很久之前的區塊),就可以減輕其它系統的風險。

結論:如果你聽到有人說某個系統「依賴於信任」,一定要問清楚! 這個系統是「1 : 1」 模型、「1 : N」 模型還是「N/2 : N」 模型? 這個系統需要參與者是利他主義還是理性主義? 如果是利他主義,參與者需要付出多大代價? 如果假設被打破,那麼你需要等待多久才能取回自己的資金? 幾個小時? 幾天? 還是永遠無法取回? 搞清楚了這些問題,你才能決定要不要使用這個系統。

來源鏈接:vitalik.ca

.



Source link