2025 年 4 月 23 日,一位名叫 Brain 的網友借朋友之手在推特上求助,稱自己在某比特幣 Layer2 鏈上進行套利操作時,超 10 萬美元的 unibtc 資產被 Bedrock 官方困住且無法退出。本文源自 DeepSafe Research 所著文章,由 PANews 重新整理。
(前情提要:比特幣基金會元老:正努力使免費 BTC 水龍頭重啟,21million.com 已上線 )
(背景補充:劍橋報告:比特幣挖礦「清潔能源」使用率已達 52.4%,特斯拉會重啟 BTC 支付? )
根據當事人W的披露,4月17日,他發現由Bedrock發行的unibtc在某比特幣L2鏈上出現價格異常並與BTC脫鉤,W認為脫鉤是暫時的不久會回錨,這裡有很好的套利機會,便將部分BTC跨入該比特幣L2,將其兌換為unibtc並待其錨後賣出該比特幣L2。
僅在脫鉤後24小時內,unibtc 便已回錨,但W嘗試將手上的 unibtc 賣出時,卻發現該鏈上的 unibtc-BTC 流動性池被 Bedrock 官方撤掉了,而這個代幣對該鏈上唯一的 unibtc 二級市場退出通道。 W 沒辦法將手上的 unibtc 出掉,便試著把 unibtc 跨到其他鏈上。
當他找到該鏈上唯一一個支援 unibtc 的跨鏈橋(名為Free)時,卻收到提示-「交易需要項目方簽章授權」。 W 找到 Free 跨鏈橋的客服,對面如此解釋:“unibtc跨鏈的多簽密鑰由 Bedrock 託管,未經他們許可,用戶無法把 unibtc 提到其他鏈上。”
沒有辦法,W 只能找到 Bedrock 相關人員詢問此事,對方的初步回復是:“我們可以允許您提走本金,但您套利產生的利潤能否提走,要暫留審核。”
至此,W 意識到這條鏈上 unibtc 的退出路徑被徹底切斷了,而自己手上價值約 20 萬 U 的 unibtc 被「暫時凍結」 ——既沒有辦法在該鏈上賣掉,也不能跨到其他鏈上。此時他感到非常無助,只求順利撤回本金。
然而BedRock相關人員的態度變得曖昧不清——既不明確說明W什麼時候可以撤回本金,也不提供任何書面承諾,以“風險審查”“技術排查”等理由進行拖延。
拖延了一陣後,BedRock 聲稱,unibtc 脫鉤源於 LayerBank 平台上有人大規模借走unibtc 資產並進行砸盤,然後 BedRock 的人建議 W「向LayerBank追責」。而 W 找到LayerBank 後長時間沒有得到回應。
無奈之下,W 只好在推特上找到朋友進行求助,經過超兩週的周旋,終於得到了LayerBank 和 BedRock 官方的積極響應,成功將資產追回。
W 的遭遇並非個案。根據其他當事人的回饋,去年 BedRock 也曾用類似手段切斷用戶的unibtc 退出路徑,導致這些 unibtc 被「實質凍結」。當然,本文並不打算就上述事件的背後緣由加以揣測,僅從技術層面為大家闡述類似的中心化作惡行為該如何避免與杜絕。
首先複盤前述事件,我們可以看到,BedRock 身為 unibtc 發行方以及二級市場流動性池的初始 LP,天然擁有 unibtc 二級市場退出通道的權限,如果要對其權力加以限制,更多要通過治理而非技術手段;
然而,前文 Free 跨鏈橋與 BedRock 合謀拒絕用戶請求一事,卻暴露出 unibtc 在「發行—單鏈流通—多鏈流通」環節中存在明顯的技術缺陷:身為 BedRock 合作方的 Free 跨鏈橋顯然是高度中心化的。
真正 Trustless 的橋,應該保證讓橋官方無法阻止用戶退出,而 unibtc 凍結案中無論是BedRock 還是 Free 跨鏈橋,都掌握著強有力的中心化權限,沒有提供抗審查的退出通道。
當然,類似 unibtc 的案例並不少見,切斷用戶退出路徑的事在各大交易所身上都屢見不鮮,而對跨鏈橋或其它類型的項目方來說,這種動用中心化權限的案例也不在少數。 2022年6月時,Harmony Horizon Bridge 曾因遭駭客攻擊而暫停 57 種資產的提款通道,雖然這種行為有“正當理由”,但還是讓一些人感到細思極恐;
2021年的 StableMagnet 事件中,專案方透過事先預留的程序漏洞監守自盜 2,400 萬美元,最後香港和英國出動大量警力,才在社區協助下追回了 91% 的贓物。種種案例充分說明,資產託管平台若無法提供無信任的服務,最終必然釀成惡果。
然而,Trustless 並非唾手可得,從支付通道和 DLC 到 BitVM 和 ZK Rollup,人們嘗試了各種實現方式,雖然可以很大程度的保障用戶自主權,提供可靠的資產撤離出口,但這背後仍存在不可避免的瑕疵。
例如,支付通道需要當事人監視對手方的潛在惡意行為,DLC需要依賴預言機;而BitVM使用成本高昂,在實踐環節中存在其他的信任假設;ZK Rollup的逃生艙則要經過漫長的窗口期才能觸發,且需要先將Rollup停機,這背後的代價十分巨大。
從目前各大技術方案的落地情況來看,並未出現堪稱完美的資產託管與退出方案,市場仍需推陳出新。在下文中,DeepSafe Research 將以 DeepSafe 官方推出的資產託管方案為例,向大家闡明一種結合 TEE 和 ZK、MPC 的免信任訊息驗證方案,這種方案在成本、安全、用戶體驗等不可兼得的指標上做出了平衡,可以為交易平台、跨鏈橋或任意的資產託管場景提供可靠的底層服務。
CRVA:加密隨機驗證網絡
目前市面上應用最廣泛的資管方案,大多採用多簽或MPC/TSS的方式判定資產轉移請求是否有效,這種方案優勢在於落地簡單、成本低、消息驗證速度快,壞處則不言自明——不夠安全,往往趨於中心化。 2023年的Multichain一案中,21個參與MPC計算的節點皆為一人控制,是典型的女巫攻擊。此事足以證明,單純表面上的數十個節點並不能提供較高的去中心化保障。
針對傳統MPC/TSS資管方案的不足,DeepSafe的CRVA方案做出了大量改進。首先,CRVA網路節點採用資產質押的准入形式,達到約500個節點後才會正式啟動主網,依照估算,這些節點質押的資產將長期維持在數千萬美元或更高;
其次,為了提高MPC/TSS計算的效率,CRVA會透過抽籤演算法隨機抽選節點,例如每隔半小時抽10個節點,由它們作為驗證人,驗證使用者請求是否應通過,然後產生對應的閘限簽名予以放行。為了防止內部串謀或外部駭客攻擊,CRVA的抽籤演算法採用原創的環狀VRF,結合ZK來隱藏被抽中者的身份,讓外界無法直接觀測被抽選者。
當然,光是做到這種程度還不夠,雖然外界不知道有誰被選中,但此時被抽中者本人知道,所以仍然有串謀的路徑。為了進一步杜絕串謀,CRVA的所有節點都要把核心程式碼運行在TEE硬體環境內,相當於把核心工作放在黑箱裡進行。這樣一來,任何人都無法得知自己是否被抽中,除非他能夠破解TEE可信硬件,當然根據目前的技術條件,這極難做到。
上面講到的是DeepSafe的CRVA方案基本思路,在實際的工作流程中,CRVA網路內的節點間要進行大量的廣播通訊與資訊交換,其具體的流程如下:
1.所有節點在進入CRVA網路前,要先在鏈上質押資產,留下一個公鑰作為註冊資訊。這個公鑰又稱為「永久公鑰」。
2.每過1小時,CRVA網路會隨機挑選幾個節點。但在此之前,所有候選人都要在本地生成一次性的“臨時公鑰”,同時生成ZKP,證明“臨時公鑰”與鏈上記錄的“永久公鑰”有關聯;換句話說,每個人都要通過ZK證明自己存在於候選人名單中,但又不透露自己是哪個;
3.「臨時公鑰」的作用在於隱私保護。如果直接從「永久公鑰」集合抽籤,公佈結果時,大家會直接知道哪些人當選。如果大家只揭露一次性的“臨時公鑰”,再從“臨時公鑰”集合中選出幾個人,你最多知道自己中籤,但不知道其他中籤的臨時公鑰對應著誰。
4.為了進一步防止身分洩露,CRVA打算讓你自己都不知道自己的「臨時公鑰」是啥。臨時公鑰的產生過程在節點的TEE環境內完成,執行TEE的你無法看到裡面發生了啥。
5.然後在TEE內把臨時公鑰明文加密為「亂碼」後再發給外界,只有特定的Relayer節點可以還原。當然,還原流程也在Relayer節點的TEE環境完成,Relayer並不知道這些臨時公鑰對應哪些候選人。
6. Relayer還原出全部「臨時公鑰」後,把它們統一歸集並提交給鏈上的VRF函數,從中抽取中籤者,由這些人驗證用戶前端發來的交易請求,然後根據驗證結果生成門限簽名,最後再提交至鏈上。 (要注意,這裡的Relayer其實也是隱藏身分且定期抽選的)
或許有人要問,既然每個節點都不知道自己是否被抽中,那工作還要怎麼做?其實前面提到,每個人都會在本地TEE環境內產生“臨時公鑰”,抽籤結果出來後,我們直接把名單廣播出去,每個人只要把名單傳入TEE,在裡面核對自己是否被選中即可。
DeepSafe這套方案的核心在於,幾乎所有的重要活動都在TEE硬體內進行,從TEE外部無法觀測到發生了什麼事。每個節點都不知道被選中的驗證人有誰,防止了串通作惡,並大幅增加了外部攻擊的成本。要攻擊基於DeepSafe的CRVA委員會,理論上要攻擊整個CRVA網絡,加上每個節點都有TEE保護,攻擊難度大幅攀升。
結合CRVA的資產自架方案實現
上面我們介紹了CRVA的大致原理,為大家說清了CRVA如何實現去中心化免信任。以下我們將以名為HelloBTU的比特幣演算法穩定幣為案例,進一步理清CRVA在資產託管方案中的應用方式。
眾所周知,由於比特幣鏈上不具備圖靈完備的環境,無法直接實現Defi等複雜的智能合約邏輯,所以主流的BTCFi是把比特幣橋接到其他鏈上再和智能合約互動。 HelloBTU的智慧合約部分佈置在以太坊上,用戶可以將BTC存入HelloBTU指定的收款地址,再由後者的官方橋把BTC跨到以太坊鏈上,然後和HelloBTU的算穩智能合約進行交互。
假設現在用戶要把10枚BTC質押到HelloBTU平台,具體操作是先把10枚BTC轉移到比特幣鏈上的一個Taproot地址下,對應的解鎖需要2/2多簽,其中一道簽名由用戶生成,另一道簽名由CRVA生成。
這裡涉及到的幾種情況有:
假設10枚BTC轉入上述Taproot地址後,用戶用這10枚BTC鑄造了穩定幣,現在打算將BTC主動贖回。此時用戶和CRVA各產生一個簽名,將這10枚BTC解鎖並轉回用戶地址即可。如果CRVA長期未配合用戶,等時間鎖窗口期到期後,用戶可以單方面將這10枚BTC可以拿回,這個功能名為「用戶自主贖回」。
另一種情況是,用戶作為抵押物的BTC遭到了清算,現在他應該配合CRVA把這些BTC轉移並交由CRVA單向通道控制。但用戶可以拒不配合,此時這些BTC被暫時卡住,誰也拿不走;等時間鎖窗口期一過,這些錢可以被CRVA劃轉走,進入CRVA控制的Taproot地址下(CRVA單向通道);
這裡面有個細節,就是BTC進入CRVA單向通道的時間鎖比較短,而用戶自主贖回的時間鎖更長,換句話說,如果CRVA和用戶之間無法彼此配合,這些BTC最終會優先進入CRVA單向通道。這樣一來,用戶方面賴帳作惡的行為可以被有效限制。
而對於CRVA作惡的情況,由於CRVA是一套自動化運作的節點網路系統,只要其初始啟動時的程式碼中不包含惡意邏輯,就不會出現CRVA主動拒絕配合使用者的情況,所以基本上可以忽略;
如果CRVA因停電、洪災等不可抗力導致節點大量停機,根據上述方案中提及的流程,使用者仍有辦法把資產安全提走。這裡面的信任假設就在於,我們信任CRVA夠去中心化,不會主動作惡(理由前面已經充分說明)。
如果BTC被劃轉到CRVA單向通道內,往往說明對應的鏈上算穩倉位遭到了清算,此時BTC的實際所有權歸屬於清算人。清算人可以發起提款請求,由CRVA進行審理,若通過,CRVA會為其產生簽名,並將對應金額的BTC轉給清算人。
此時,如果CRVA長期未響應,時間鎖到期後,這些BTC會轉移至DAO控制的地址下,這步操作由多簽觸發,後續的處理則由DAO治理解決,這個DAO由知名項目方、安全公司以及投資機構共同組成,以遏制單一實體作惡為宗旨而建立。
綜上所述,我們對DeepSafe針對比特幣的資產自託管方案進行了大致的闡述,而對於ERC-20資產,其原理與之類似,在此不作贅述。對於前文中提到的unibtc凍結案,如果unibtc跨鏈橋採用CRVA的自託管方案,很難出現資產發行方單方面掌控全局的可能。未來DeepSafe將長期針對比特幣和ERC-20資產進行自託管方案技術迭代,希望大家對我們保持關注!
📍相關報導📍
比特幣四月勁揚14%,Bitfinex:若守住9.5萬美元BTC今夏有望「續寫新高」
微策略再花1.8億美元「加倉1,895枚比特幣」,BTC盤整9.5萬、美股結束九連漲
黃仁勳要買比特幣?市場傳 Nvidia 考慮「購入BTC」做為AI戰略,可信度有多少?