原文作者:0xfoobar
编译:DeFi 之道
"我被黑了。我所有的 ape 都被盗了"– 这一绝望的呼喊传遍了推特,也因此被列入了表情包收藏。加密基础设施仍然处于 20 世纪 80 年代的 Unix 阶段,一个错误的点击就可以毁掉你整个投资组合。交易模拟还很早期,所以非技术性的钱包用户在执行交易时可能会感到无助。与空投承诺交互是可怕的,不知道那个诱人的 "Claim" 按钮是会(1)给到你免费的金钱,还是会(2)偷走你珍贵的 NFT。对于普通的加密用户来说,这是另一种俄罗斯轮盘赌。
注:俄罗斯轮盘赌(Russian roulette)是一种残忍的赌博游戏。与其他使用扑克、色子等赌具的赌博不同的是,俄罗斯轮盘赌的赌具是左轮手枪和人的性命。
对于没有经验的用户来说,自我托管可能是痛苦的
那么,用户可以做什么?在 Punk6529 的这个推特 Thread 中,他给出了一个很好的建议,即从热的软件钱包 -> 热的硬件钱包 -> 冷的硬件钱包 -> 多签。如果你拥有一个不太可能需要互动的 XCOPY 或 Fidenza,这是一个好建议。但是,当你把你 BAYC 塞进你的冷硬件钱包,你如何申领你的 ApeCoin?你如何获得进入 ApeFest 的门票?你如何证明钱包的所有权以进入那个私人 Discord 频道?这些都需要使用你所谓的冷钱包进行交互,把它变回热钱包。
冷钱包金库可以将空投申领权委托给热钱包,且不危及原始代币
这就是为什么我们创建 delegate.cash 的原因,这是一个完全不可变的链上注册合约,允许用户指定热钱包 "代表" 来代表冷钱包 "金库" 行事。目前,它已在 Ethereum+Polygon+Goerli 上上线,其他链也可根据要求提供。最终确定的合约在 0x0000000076A84feF008CDAbe6409d2FE638B 进行部署和验证。这是一个全球性的单子部署,所有的整合将简单地查询现有的委托注册表,而不需要部署自己的合约。智能合约 repo 和委托前端 repo 都是开源的。
用户流的比较:用户只需在一个受信任的网站上委托他们的冷钱包一次,他们就可以在热钱包交互中无限次地重复使用该委托。
NFT 持有者如何使用 delegate.cash?
你可以使用 delegate.cash,为你的冷钱包金库分配一个热钱包委托人。我们已经建立了一个细化的权限系统,所以你可以为(1)所有;或者(2)一个特定的合约;或者(3)一个特定的代币指定一个委托人。我预计大多数用户会对委托所有更感兴趣,但你也可以委托一个热钱包来处理你的 BAYC 申领,另一个钱包来处理你的 digidaigaku 申领,以进一步分离权力。
NFT 开发者如何使用 delegate.cash?
委托登记智能合约是 100% 链上可枚举的,所以不需要混乱的事件解析,你可以简单地查询智能合约本身的读取方法。请到开放源码仓库查看源代码的详细解释。另外,我们还将在未来几周内提供一个 JavaScript SDK。
当你编写你的 NFT 智能合约时,你可以查询 DelegationRegistry 合约,以查看特定用户是否有权限代表特定的代币行事。
当你编写你的 NFT 前端时,你可以查询 DelegationRegistry 智能合约,看看热钱包可能有资格代表哪些冷钱包库。
精明的观察者可能已经注意到,delegate.cash 并不是针对 NFT 的!事实上,我们明确地设计了它,以满足广泛的需求,包括 ERC20 代币委托和钱包级别的信誉。虽然这篇发布文章的重点是 NFT 采用的用例,但我们也期待着利用其他方面的进一步创造性想法。
如果你需要任何帮助或指导,请随时通过 Twitter DM 或 GitHub 来联系我们。我们还将发布集成样本,我也将推出一个集成 delegate.cash 铸币流程的链上争霸赛。请多支持!
竞争
到目前为止,最常见的问题是:"为什么是 delegate.cash,为什么不是 [其他委托方法]?"
衷心感谢过去在这个问题上做出不同取舍的所有人。进行比较并不是为了诋毁,而是为了达到最佳的统一标准,以便大规模采用。也就是说,delegate.cash 远远优于任何现有的解决方案,且超出很多。
为什么不通过 EIP-5131 进行 ENS 委托?因为这需要不断的更新和资本要求,也是对可能的治理行动的一种危险的依赖。为什么不是 Wenew 的 HotWalletProxy?因为它有着中心化的管理控制,合约是危险的可升级的,而且只做钱包级的委托,不支持合约或代币级的委托。为什么不用 TokenProof?delegate.cash 与专注于提供认证二维码的移动应用程序是互补的,而不是相互竞争的,我们的注册专注于完全的链上枚举性,甚至可以与 TokenProof 验证挂钩。
特点
delegate.cash 是完全链上,可枚举的,不可变的,独立的和可验证的。
完全链上
隐蔽的中继网络中没有漂浮的链下签名。这为用户提供了重要的保证,所见即所得。像 OpenSea 过期列表问题那样的攻击载体可以被阻止。
完全可枚举
我们提供链上方法来获取冷钱包和热钱包的所有授权的完整列表。不需要对事件进行解析。这大大简化了智能合约和前端开发者的整合工作。
完全不可变
零管理权。因为管理是一种攻击媒介,不应该存在于一个中立的去信任的委托标准中。该标准被设计为尽可能的灵活,但通过部署具有不同功能的新注册表,升级总是可能的。
完全独立
没有任何外部依赖性,因此攻击面被锁定,注册表可以部署在你选择的任何 EVM 链上。
完全可验证
通过在 CREATE2 部署中使用虚名地址,合约可以在多个链上以相同的 12-leading-zeros 地址去许可地部署。这使得终端用户更容易验证他们正在与正确的合约进行交互。
常见问题
这不是一种高摩擦的用户体验吗?恰恰相反,它应该是低摩擦的!你可以在 delegate.cash 上委托一次,然后用你的热钱包进行所有未来的交互,而不是每次都把你的冷钱包从仓库里挖出来。
我们如何知道哪些应用程序值得信任?你不需要知道!因为你只需与一个应用程序交互。由于你只是与一个可丢弃的热钱包进行交互,而该钱包没有任何有价值的东西可以偷,所以申领实验性空投或处理其他交互要安全得多。唯一的信任要求是检查 delegate.cash 是否与部署的合约相符,以及部署的合约代码是否诚实。这只需要检查一次。
dapp 怎么能相信委托是由金库验证的呢?由于单子委托注册表的部署是完全可以在链上枚举的,所以你可以直接查询读取方法(更多细节参见 repo 本身)。
然后呢?
如果你是开发团队,那么去构建吧!这是一个中立的公共基础设施,多个团队的采用会带来巨大的上升空间。如果团队 A 和团队 B 都决定在即将到来的空投中使用 delegate.cash,那么 A 的持有者可以重复使用现有的委托来与 B 互动。
如果你是 NFT 持有人,那么倡导你最喜欢的球队采用这个标准!也许有一天,你就帮助拯救了一只 ape……
资源
智能合约 repo:https://GitHub.com/0xfoobar/delegation-registry前端 repo:https://GitHub.com/0xfoobar/delegate-cash-frontend智能合约部署:0x00000000000076A84feF008CDAbe6409d2FE638B前端部署:https://delegate.cashEIP-5639:https://eips.ethereum.org/EIPS/eip-5639NPM sdk:即将推出