header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

V神:簡析 Rollup 等以太坊二層擴容方案信任模型

閱讀本文需 11 分鐘
區塊鏈應用永遠不可能實現完全免信任,但是不同應用在免信任程度上卻差別顯著。
原文作者:V神
原文翻譯 & 校對:閔敏 & 阿劍


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


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


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


你需要多少人如你預期的那樣行事?

總參與人數有多少?

需要這些人出於什麼動機如你預期的那樣行事?需要他們是利他主義者,還是唯利是圖者?是否需要避免他們之間產生協同?

如果這些假設被打破了,對系統的破壞有多大?


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


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


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


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」模型?這個系統需要參與者是利他主義還是理性主義?如果是利他主義,參與者需要付出多大代價?如果假設被打破,那麼你需要等待多久才能取回自己的資金?幾個小時?幾天?還是永遠無法取回?搞清楚了這些問題,你才能決定要不要使用這個系統。


原文鏈接


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交