探討偽去中心化和具有「上帝模式」管理員密鑰協議的是與非。本文源自群島網路所著文章,由 PANews 整理、編譯及撰稿。
(前情提要: 觀點投書》區塊鏈的第三大技術革新 — ZK零知識證明應用)
(背景補充: Curve漏洞被駭,也許讓駭客攻擊DeFi有了新思路)
什麼是管理員金鑰 (admin key)?
Admin key 即管理員金鑰,你可以理解為這是能在一座遊樂場裡面可以開啟所有遊戲機後門拿走所有硬幣的萬能鑰匙,管理員金鑰可以對整個系統中的任何帳戶進行訪問和控制。管理員金鑰使特定實體(個人,公司,DAO 組織等)擁有對整個系統的管理權,包括對帳戶、許可權、資料等的控制。
可以想像下,當你去銀行開戶,無意間當你在隱藏在條款和條件中的細則中,閱讀到 「銀行保留隨時更改您的帳戶餘額的權利」, 或許那一刻你會感到震驚和害怕,因為銀行可以隨時凍結你的帳戶,最極端情況下,銀行倒閉個人資金無法取回。Admin key 是任何開發人員都非常熟悉的術語,這些有完全訪問許可權的控制金鑰允許開發人員修改或替換支援其專案的智慧合約中的任何內容,甚至可以調整使用者餘額。
讓我們來看一眼一個簡單表示 Admin Key 程式碼大概看起來是什麼樣的,管理員金鑰通常被用來執行一些關鍵操作,例如更新合約程式碼、調整合約引數、暫停合約,設定新的管理員等。
pragma solidity ^0.8.0;contract AdminContract {address public admin;bool public isPaused;constructor() {admin = msg.sender;isPaused = false;}modifier onlyAdmin() {require(msg.sender == admin, “Only the admin can perform this action”);_;}modifier whenNotPaused() {require(!isPaused, “Contract is paused”);_;}function updateAdmin(address newAdmin) public onlyAdmin {admin = newAdmin;}}
Vitalik 自爆 L2 和 Rollup 都有後門!
近期推特上比較火的一個討論是關於 Vitalik Buterin 表示,以太坊上的 L2 和 rollup 都有一個後門,供協議開發人員在需要時介入並進行更改。然而,Cardano OG Chris O 持反對意見,認為以太坊網路並不像人們廣泛聲稱的那樣是不可更改的、無需許可的或抗審查的。
其實這根本不是最近的新聞!而是 Vitalik 半年前 2023 年 2 月 7 日和 Balaji 的第一期Podcast The Network State Podcast 裡面做的採訪中談到的話題,視訊中的原話是這樣的:
「And the other thing that I’ve talked to the rollup teams that they all want to do next year is they want to start taking offtraining wheels, right?So the roll ups and layer twos that exist on Ethereum today, they basically all have what I call training wheels, like some kind of backdoor that lets developers come in and say, stop and change the protocol if they see that some kind of bug has happened.」
「我與 rollup 團隊討論的另一件事是,他們明年都想做,他們想開始卸下輔助輪,對嗎?所以今天以太坊上存在的 rollup 和第二層,他們基本上都是 有我所說的輔助輪,就像某種後門,讓開發人員進來並說,如果他們發現發生了某種錯誤,就停止並更改協議。」
「Training Wheel」 指的像是兒童學走路的訓練輔助輪,用在現在以太坊的 Rollup 和二層隱喻上,在 Vitalik 看來,目前的二層擴容方案實際上都是不夠成熟的,不能夠做到完全的去中心化和獨立性,基本都留有輔助控制措施和容災機制,以備在發生錯誤的情況下,開發人員仍然可以修改已經部署的協議。在大部分情況下,這個輔助輪 實際上就是管理員金鑰。
在加密貨幣的世界裡,所有中心化的交易所你都可以明確找到類似的使用者使用條款,在你註冊帳戶的那一刻你就同意了 CEX 對你資產的訪問和託管許可權。比如幣安使用條款, 幣安可以但沒有義務對受影響的資金和您的幣安帳戶進行管理控制。
回想 2022 年一系列暴雷事件,5 月 Luna 暴雷,6 月三箭資本暴雷,11 月 FTX 暴雷,12 月 Genesis 暴雷,Genesis 當時是管理最好、規模最大的中心化加密借貸公司,它憑藉這一聲譽以誘人的借入成本獲取資金,可是最終為什麼迎來暴雷?當時圈內第二大交易所的 FTX 也終於被擠兌的破產了。這就是為什麼理論上所有的中心化交易所都不安全?如果只是按照邏輯推理去假設,實際上任何中心化交易所都會有大廈將覆的風險,對於大資金交易的人,未來會逐漸轉移到基於 ZK Roll up 和開放訂單簿的 DEX,無許可,免 KYC,去信任這不正是加密原住民一直以來的追求嗎?以往為了便利性對安全性睜一隻眼閉一隻眼,現在或許需要重新思考。
對於具有管理員金鑰的 「集中」 專案來說,面臨政府監管的風險也是一個廣泛開放的問題。監管機構可以隨時取締和控制一個具有管理員金鑰的專案。對使用者及其資金進行集中 「託管」 控制的 DeFi 專案面臨著壓力,尤其是在立法方面。如果監管機構能夠找到一個集中的政黨或一群人,他們就可以抓住這一點。
案例
DEX 的意義往往只有在最極端的情況下,人們才會意識到 DEX 的重要性。讓我們回顧一下歷史上因為中心化管理方式或者偽去中心化的協議引發的崩塌行災難。鼎鼎大名的一家日本交易所 Mt. Gox 在駭客竊取了 5 億美元的加密貨幣後於 2014 年倒閉,2018 年,價值約 5.3 億美元的數位代幣從東京平臺 Coincheck 被盜。前者幾乎都是因為駭客使用被盜的私鑰(訪問加密貨幣資金所需的密碼)來盜取資金。再說個最近的案例,Multichain 傳出 CEO Zhao Jun 被抓,它不僅不是依賴於由少數人控制的多重簽名錢包,更糟糕的是他們似乎連多籤都沒有,私鑰掌握在他一個人手上。Multichain 前身是 Anyswap,公開資料顯示,Anyswap 創立於 2020 年 7 月,最初定位於跨鏈 DEX。2023 年 5 月 21 日,Multichain 執行長 Zhao Jun 被中國警方從家中帶走,後來發現這些 MPC 節點伺服器和其他普通伺服器一樣,實際上是執行在 Zhao Jun 的個人雲伺服器帳號下的。團隊中沒有任何成員可以訪問 Zhao Jun 的個人雲伺服器帳戶,因此任何人都無法登入這些 MPC 伺服器。Zhao Jun 的所有電腦、手機、硬體錢包、助記詞均被當局沒收。所以當一個自稱是 DEX 甚至允許還有一箇中央集權的系統訪問許可權存在,這是充滿諷刺的,一旦面臨政府強監管和強審查的情況下,專案可以隨時被關停,資產直接沒收。
延伸閱讀:MultiChain跨鏈橋拖累公鏈,Fantom該如何走下去?
No-Admin key 無管理員金鑰意味著什麼?
這意味著所有的操作和規則都是由智慧合約和去中心化網路執行,而沒有個別實體可以單獨干預,同時提高了作惡門檻。「No-Admin key 無管理員金鑰」提供了更大的安全性和可信度,因為沒有單一的實體能夠濫用權力或進行不當操作。然而,這也可能帶來一些挑戰,例如如果出現漏洞或錯誤,可能需要通過共識機制或社群治理來解決問題,而沒有中央實體和個人可以迅速介入。
優劣勢分析
重新部署合約會導致合約地址變化
以太坊上目前做的最成熟的基於 ZK Rollup 的訂單簿去中心化交易所 DeGateDEX 聲稱自己沒有管理員私鑰,可以實現最大程度的使用者自託管。可以確認的是,一旦協議完全部署,程式碼執行邏輯是不可修改的。近期 Degate 由於白帽發現了一個平臺 bug,他們重新部署了合約進行更新修復,這也驗證自己真正做到無管理員私鑰的機制下,需要修改協議只能重新部署。重新部署合約會導致合約地址發生變化。在區塊鏈平臺上,每個智慧合約都有一個唯一的地址,用於標識和定位該合約在區塊鏈上的位置。當專案方重新部署合約時,會生成一個新的合約地址,舊的合約地址將無效。我認為這也是一個判定真正的去中心化平臺的標準之一。程式碼執行邏輯不可逆,這從技術層面極大提高了作惡的門檻。
論偽去中心化的現狀
雖然管理員金鑰在專案早期很常見,但它們違背了去中心化的理念,並使整個專案變得不安全。因為管理員金鑰擁有更改專案協議或智慧合約的特殊訪問許可權。 它通常由專案的創辦人或核心團隊持有。基本上,許多需要使用者入金資產的 DeFi 協議和產品都受到 「管理員金鑰」 的保護,他們聲稱管理員金鑰都受到時間鎖和多重簽名等功能的保護。 該金鑰通常是以太坊智慧合約,能夠以多種方式升級協議或產品。然而,沒有哪個 DeFi 專案能夠證明其管理員金鑰的操作安全性很強。這意味著,當前使用這些 DeFi 產品時真正感到安全的唯一方法是信任團隊的能力及其保護管理員金鑰的能力。
而這往往就是在考驗人性!而人性經常禁不起考驗。
《精通比特幣》作者、教育家 Andreas Antonopoulos 將一個真正去中心化的專案定義為對資金沒有託管控制權的專案。「這是一個非常重要的標準。我認為這是基本標準。」 按照這個標準,大多數協議都遠遠達不到要求。在 DeFi Watch 上審查的 15 個專案中,只有 InstaDapp、MakerDAO 和 Uniswap 被報告沒有與其產品相關聯的管理員金鑰。其餘的專案(包括 Aave、Compound、DDEX、Yearn Finance、Nexus Mutual 和 Synthetix)都有管理員金鑰,允許不同程度的控制。
Aave 的管理員金鑰由 Aragon DAO 擁有。Aragon DAO 只有五個成員,只需要獲得三個 「yes」 投票就可以進行全面的協議更改。按總鎖定價值 (TVL) 計算,Aave 目前在所有 DeFi 專案中排名第三,鎖定價值超過 13.8 億美元。
這就埋下了單點故障的隱患,因為管理員金鑰是整個系統的關鍵部分,一旦被洩露或遺失,可能會導致嚴重後果,最壞的情況是,團隊成員被駭客攻擊或拿走使用者的資金並消失。為了消除這種集中的風險點,採用 admin key 和 DAO 治理。所以也有人辯駁擁有 「上帝模式」 的管理員金鑰的 DeFi 專案實際上被認為是保護使用者資金的一種方式,並且主要與時間鎖和多重簽名等安全功能一起使用。
去中心化協議和治理方式
要做到 No-Admin key 的專案需要面對更多新的挑戰。如果專案構建方式出現錯誤怎麼辦?如何修復?如果社群投票支援對專案進行虛假更改怎麼辦?如果專案受到攻擊,在時間緊迫的情況下,有哪些控制措施可以確保攻擊者不會得逞?
1. 專案構建錯誤的修復:如果專案中出現錯誤,那麼在 No-Admin Key 的環境下,修復通常需要社群的共識。通常會通過去中心化自治組織(DAO)等方式進行投票,投票達成一定比例的同意後,才能進行修復。這個過程可能會比較慢,但可以確保更公平的決策,並避免了單個人或小團隊做出可能對社群不利的決策。
2. 社群投票虛假更改:雖然 DAO 的決策過程可能被操縱,但一般來說,由於投票權通常與持有的代幣量掛鉤,因此,大規模的欺詐行為需要控制大量的代幣,這在經濟上可能並不實際。此外,還可以設計投票系統,以防止此類行為,例如通過引入抵押制度,投票者必須凍結一部分代幣來投票。
3. 面臨攻擊時的控制措施:一般來說,區塊鏈網路的安全主要依賴於它的去中心化程度和網路規模。在沒有 Admin Key 的專案中,可能沒有快速的方式來阻止攻擊。然而,社群可能會使用其共識機制(如投票)來儘可能快速地達成共識並採取行動。此外,也可以使用像 Layer 2 解決方案這樣的技術來增強專案的安全性。
4. 將金鑰 「交給」 社群,或者使用金鑰建立多重簽名錢包,並選舉知名社群成員來持有這些金鑰。其他一些專案被燒燬 金鑰,這意味著他們的合約(協議)無法輕鬆更新,而必須部署使用者可以選擇遷移到的新合約。 DApp 是由開發人員或團隊部署的智慧合約建立的。合約有 1 個私鑰作為控制者,這消除了區塊鏈技術的無需信任性,只能通過多籤來降低風險。
總的來說,No-Admin Key 的專案可能會面臨一些新的挑戰,但其去中心化的特性使得它能夠提供更公平、透明和安全的服務。這也是其主要的優勢之一。
或者正如 Vitalik 問很多做 Rollups 團隊的那樣,」 明年 「,他們都在爭取拿下輔助輪!可是明年復明年,明年何其多!一定是道阻且長,擁抱完全去中心化,做自己的上帝!需要勇氣!