從Bool Network看比特幣網路中心化橋的觸發機制


自2022年Axie官方跨鏈橋遭遇6.2億美元竊盜後,人們開始關注跨鏈橋的安全性和信任度問題。然而,目前這個領域仍存在許多未解決的挑戰。傳統的跨鏈橋設計仍保持著「不可能三角」的局面,難以突破。為了提高成本效益和使用者體驗,跨鏈橋通常提供免費的人機互動模型。 Bool Network透過動態輪替見證人、隱私運算和TEE封裝金鑰,嘗試優化傳統見證人橋的安全模型,解決跨鏈橋的去中心化問題。這個網路提出了DHC(動態隱藏委員會)的設計來保護見證人身分和金鑰,從根本上預防串通作惡和外部攻擊,提高跨鏈橋的安全性。

摘要: 自從各種跨鏈橋橫空出世以來,緊接著的各種駭客攻擊事件幾乎從未停止,2022年Axie官方跨鏈橋被盜6.2億美元一事更是震撼了世人,無數人開始思考如何解決跨鏈橋的安全與免信任,但時至今日,這個領域存在著許多未決的問題。

但與公鏈一樣,跨鏈橋在設計上仍舊保持著「不可能三角」的局面,並且實質上仍然難以突破。為了在成本和使用者體驗上提供優勢,跨鏈橋都提供免費的類似人機互動的模型,而這種落地的初始階段,就是為了打造一個更聰明的跨鏈橋。

慘痛的歷史經驗告訴我們,沒有添加防護措施證明人橋早會成才,但這種慘痛經歷在整個社會主義社會主義時期是家常便飯,讓人毛骨悚然。

本文將要介紹的Bool Network,在為跨鏈橋項目方提供動態輪換的見證人基礎上,結合隱私計算和TEE封裝密鑰,嘗試在傳統見證人橋的安全模型上進一步優化,解決跨鏈橋的去中心化問題,這或許能為跨鏈橋帶來破局的希望。

加拿大的現況:到處都是多簽

跨鏈橋的本質是向B鏈證明A鏈上有人發起跨鏈請求,且當事人依規定支付費用。要做到這一點,可以有不同的實作路徑。

輕客戶端往往在鏈上部署智能合約,在鏈上Native的驗證跨鏈訊息,這種橋的安全性最高,但成本也最高,而且無法在比特幣上實現(目前打出比特幣ZK橋旗號的這個項目,只能確保跨鏈到其他鏈時走ZK橋,再跨鏈時無法透過ZK橋實現)。

以BitVM為代表的樂觀主義者,透過欺詐手段騙取金錢的行為被廣為傳播,但這種行為很難被接受。

DLC.link為代表的DLC橋,雖然在預言機/見證人多簽基礎上加入支付通道的辦法,最大程度地見證人作惡的場景,但還是無法在根源上抹去多籤的隱患。

公爭

(跨鏈橋不可能三角主要指:1.疫情性:能否支持任意的傳遞

2.無需信任:不引入或盡量少引入信任假設

3.易適配性:落地努力,能適配包括公開不同公鏈)

最後愛爾蘭政府發現,在BitVM落地前,除了比特幣網路/支付通道或RGB++螞蟻集團基於客戶端驗證或協作的程式以外,其他的比特幣跨鏈橋裡都多簽。

歷史早已證明,如果解決多簽跨鏈橋乃至於大型管理平台的去信任問題,出現資金被竊事件將只是時間問題。

對此,一些專案方讓見證人超額質押資產,以辦理Slash來作為懲戒條件,並讓大機構協助見證人提供信用背書,以弱化鏈橋的安全隱患。但歸根究底,基於見證人橋,安全模型和多簽基本上一致,最終都要按照閾值,例如M/N來其信任模型,容錯率比較有限。

公爭

如何設定和處理多簽,如何讓多簽者放棄信任,如何見證人做或抬高外界的攻擊成本,將是實施二層跨橋長期思考的議題。

幾乎沒有辦法可以讓多簽參與者難以串謀攻擊,並且讓駭客難以從外界盜取金鑰? Bool Network嘗試透過一套基於ZKP-RingVRF演算法和TEE的綜合方案來解決見證人橋的安全問題。

Bool網路:指向鏈橋​​等交通基礎設施

其實,這個模式和中心化交易所沒有本質區別,你還是要信任這些被欽定的見證人不挪用跨鏈橋資金礦池裡的錢,這其實就是聯盟鏈,從根本上違反了區塊鏈的Trustless精髓。

基於POS的多簽/MPC方案比POA更去任命,准入門檻遠比拒絕接受低,但還是會面臨各種問題:例如節點的隱私洩漏。

假設現在有幾十個節點組成的見證人網絡,專門服務於跨鏈橋,由於這些節點需要頻繁的交易所數據,其公鑰和IP地址也不是其他身份信息容易對外暴露,它們可以充當可以針對的建置攻擊路徑,最終會導致某些節點的金鑰被盜。此外,見證人是內部串謀,當節點數量比較少時,這種事情很容易發生。

那我們該如何解決上述的問題呢?你可能本能的聯想到,要加強密鑰的保護措施,防止被外界窺探。一種比較可靠的是把金鑰封裝在TEE(可信執行環境)當中。

TEE 允許群組中心化的資料庫在本地安全區域運行,以便其他元件無法存取其數據,您可以透過共享資料或程式在安全的執行環境中進行交互,防止機密資料外洩或被惡意操縱。

這個問題是,如何保證見證人的確是在TEE中存放金鑰並產生簽署的?其實只要讓見證人出示TEE的遠端證明訊息,就可以驗證它是否在TEE裡,我們只需要在任意一條鏈上驗證TEE證明即可,成本幾乎可以忽略不計。

(前不久Scroll也宣布採用TEE作為ZKEVM以外的輔助證明器,並驗證了其Sepolia測試網路上的全部區塊)

公爭

(Bool Network節點設備內部構造示意圖)

當然,除了TEE之外,問題還沒完。就算你提供了TEE,假如你證明的話,總數不多,比如說5個,我們還是會遇到問題,甚至超出在TEE中的密鑰無法被“看到”,由少數人組成的見證人委員會還是無法抗和可用性。例如上述5個節點如果集體跑路,讓跨鏈橋陷入癱瘓,基金會橋接資產無法順利的lock-mind或贖回,基本上等價於永久凍結。

在綜合考慮了相容性、去中心化、成本等因素後,Bool Network提出了這樣一種構想:

我們透過資產質押的方式,建構一個無需許可的候選見證人網絡,只要你質押足夠的資產就可以加入進來;當網絡規模足夠大,比如說接入了虛擬貨幣上千台設備後,我們定期從配置隨機抽取一些節點幫忙跨鏈橋的見證人,以此來規避見證人「階級固化」的問題(這種思路現在的POS以太坊身上也有體現)

傳統的POS公鏈如Algorand、Cardano透過引入VRF函數,週期性的讓VRF函數輸出偽隨機數,並透過輸出結果抽取塊人。但傳統VRF演算法往往無法保護隱私,有哪些人參與了VRF計算過程、VRF輸出的隨機數關聯著的被選中者都有誰,幾乎暴露在陽光下。

公爭

而跨鏈橋的動態見證人與POS公鏈動態選出塊人要考慮的問題不同,公鏈的出塊人訴訟身份往往是無傷大雅的,因為在構建惡場景中,會受到許多限制條件的約束;

而跨鏈橋見證人身分一旦洩露,駭客只要取得到其密鑰,那就拒絕這些見證人內部結社,就會讓整個橋接資產資金礦池徹底陷入困境。無論如何,跨鏈橋和POS公共鏈的安全模型是差了十萬八千里的,必須更重視見證人授予保密權。

我們可以給一些想法,最好把見證人名單隱藏起來,而Bool Network可以使用的原始環VRF演算法,把選中的見證人身分隱藏在所有候選人中,其整體細節比較複雜,我們將其簡化如下:

1.所有的候選人都在進入以太坊網路前,先在以太坊或自己做的一條鏈上押資產,留下一個公鑰作為註冊資訊。這個公鑰又稱為「永久公鑰」。全體候選人的「永久公鑰」是什麼意思,在鏈上公開可見。這個永久公鑰說白了就是每個人的價值資訊;

2.每隔幾分鐘~半小時,Bool網路會透過VRF函數,隨機挑選幾個候選人。不過在此之前,每個候選人都要本地產生一次性的“臨時公鑰”,同時產生ZKP,證明該“臨時公鑰”與鏈上有記錄的“永久公鑰”有關聯;嚴格,透過ZK證明自己最近的候選人名單中,但不透露他們的詳情;

3.「臨時公鑰」的作用在於什麼?正是為了保護隱私。如果從「永久公鑰」集合抽籤,公佈抽籤結果時,大家會直接知道哪些人被推選為罪犯,從而大大打壓隱私。

如果您所有的臨時工都提交了一次性的“臨時公鑰”,再從“臨時公鑰”集合中選出幾個中籤者,您最多只獲得了中籤,因為您不知道其他中籤的臨時工對應著誰。

4.這還不算完。 Bool 網路打算這麼搞:直接讓你不知道自己的「臨時公鑰」是啥。這該怎麼做呢?只要把臨時公鑰明文放在TEE裡加密貨幣成「亂碼」後再發出就可以行。

公爭

我們可以把「臨時公鑰」的生成放到TEE 裡執行,由於TEE 可以把資料和計算保密,你根本不知道TEE 裡面有什麼。當「臨時公鑰」生成完畢後,會成「亂碼」再發到TEE 外部,你根本就沒有找到「臨時公鑰」的源代碼,只能看到一個加密貨幣後的密文(需要注意,第二段提到的,證明臨時公鑰和永久公鑰有關聯的ZKP,而臨時公鑰一起被加密貨幣了)。

5. 候選人要把亂碼形態的「臨時公鑰」密文,向指定的接班人遞交任務。接班人負責解開這些亂碼形態的密文,從中還原出全部的「暫時公鑰」原文。

這裡有個問題,就是Relayer知道每個密文的發送者是誰,只要他把每個密文解析成“臨時公鑰”,自然而然就知道每個“臨時公鑰”對應哪個人。所以,上述工作也要在TEE裡做,華爾街人的公鑰進入TEE,出來後變成了公鑰原文,就像混幣器一樣,可以有效保護隱私。

6.Relayer 得到了原始的「臨時公鑰」後,可以將其提交給鏈上的VRF 函數從中選出中者,也就是從這些「臨時公鑰」中挑出幾個中人,並組成一個跨鏈橋見證人委員會。

這樣一來,整個邏輯就清晰了:我們定期的從見證人臨時公鑰集合中隨機挑選幾個,幫忙跨鏈橋的臨時見證人,這個設計被命名為DHC(動態隱藏委員會)。

因為每個節點都運行TEE,MPC/TSS的私鑰片段,還有見證人運行的也是我們的程式、所有的計算過程,都隱藏在TEE環境中,每個人都不知道具體的計算內容包含什麼,就連被選中的人自己都不知道被選中,這樣我就可以根本阻止串謀或外部攻破。

公爭

Bool Network 跨鏈的

在介紹完了BoolNetworks見證人身分和密鑰的大致思路後,讓我們來梳理下BoolNetworks的工作流程。我們假設左邊是源鏈右邊是目標鏈,上面整個圖構成了資產從源鏈到目標鏈的全流程,由此我們透過資料流轉的角度分析一下BoolNetworks跨鏈的4個流程:

公爭

首先,提款人在源鏈發起提款動作後,訊息被Realyer發送到Messaging層;訊息在到達Messaging層後,由動態消息委員會對訊息進行驗證,確定訊息在源鏈中確實有效,然後進行簽署。

有人要問,既然大家都不知道自己有沒有被選中見證人委員會裡,那我要把我的簽名告訴大家?這很好解決,沒有人能確定誰是選中的見證人,那我們就要把整個網廣播出去,我要把我處理的每一個人都提交給你們。

最後我們曾提到,每個人的臨時公鑰都是在本地TEE產生和封裝的,在TEE外部看不到臨時公鑰。要驗證自己的暫存公鑰是否被選中,這部分邏輯上要部署在TEE內,只要把待處理的跨鏈訊息輸入TEE,TEE內部的程式就會決定是否要對訊息進行簽章確認。

公爭

在TEE內網跨鏈簽名後,還不能把數位簽名發出去,因為如果你把簽名髮外網,大家會發現你是個選中的人。所以,要想辦法讓外界相信你是被選中的人,就必須確保對方的簽名是真實的,並且要確保對方的簽名是真實的,否則對方無法確認你的身分。

總結就是:Bool Network會透過P2P傳播,把待簽名的跨鏈提交所有人,選中的見證人人在TEE內進行驗證和簽名,然後把加密貨幣後的密文廣播出去,其他人正在穿著密文後,再放進TEE內解密,重複上述流程,直到所有被選中的見證人都簽名完畢,最後被Relayer解密成TSS簽名的原始格式,完成跨鏈確認和簽名流程。

核心在於,幾乎所有的會議都在TEE內進行,從外部看根本不知道發生了什麼。每個節點都不知道見證人是誰,不知道自己是不是選中的見證人,從根本上阻止了串通作惡,並大大增加了外部攻擊代價。

要攻擊基於Bool Network的跨鏈橋,你需要確定動態委員會裡的證據人都有誰,但你根本就不知道它們是誰,這時你只有攻擊整個Bool網路才行。像ZetaChain等單純基於POS和MPC的跨鏈橋基礎設施,其證據顯示人身分全部承擔,假設閾值門限是100/200,你最少確定攻擊設定的一半節點。

但換到Bool身上後,因為有了隱私保護,理論上你必須攻擊所有的節點才能做到。再加上Bool所有節點都運行TEE,此時的攻擊很難再升高。

而且,Bool Network本質上還是見證人橋,見證人橋只需要在目標上提交一個簽名,就可以完成跨鏈處理流程,成本較低。由於沒有像Polkadot那樣的中繼鏈設計,可以避免二階驗證的指定,並且可以很方便地跨鏈處理。這種跨模式同時適用於資產跨鍊和跨鏈,在需要時需要相容Bool的客戶端,但是對於一些相容性問題,Bool的跨鏈機制非常棘手。

如何評價Bool產品設計思路?

我們拋出兩個觀點,首先資產跨鍊是ToC的產品,次跨鏈橋是競爭大於合作的。從長期看,因為跨鏈協議的壘較高,需求相對穩定,跨鏈協議相關的資金會越來越高,這是因為跨鏈協議在維護城河壁壘方面做得很出色,包括規模生態和傳輸成本。

Bool身為比跨鏈橋更底層的專用伺服器,實際上比上層的跨鏈​​橋商業前景更廣闊,它甚至還可以承擔預言機的功能,而不僅僅把場景限於跨鏈驗證,理論上還進入全鏈oracle的內部,真正建構去中心化oracle第一社區服務。

資訊來源:0x資訊編譯自網際網路。版權歸作者極客Web3所有,未經許可,不得轉載

Total
0
Shares
Related Posts