原作者:群岛网络
什么是管理员密钥 (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 的第一期播客 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 甚至允许还有一个中央集权的系统访问权限存在,这是充满讽刺的,一旦面临政府强监管和强审查的情况下,项目可以随时被关停,资产直接没收。
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 团队的那样,”明年“,他们都在争取拿下辅助轮!可是明年复明年,明年何其多!一定是道阻且长,拥抱完全去中心化,做自己的上帝!需要勇气!
Reference:
1.https://github.com/Loopring/protocols
2.https://github.com/degatedev
3.https://balajis.com/p/1-vitalik-buterin-on-starting-new-69b#details