DeGate 是如何实现无需信任的?
2023-02-08 03:11
DeGate
2023-02-08 03:11
订阅此专栏
收藏此文章

传统字典把 Trustlessness 定义为“不可信任”,但它在区块链中具有全新的含义。 与不激发信任相反,Trustlessness 的意思是“无需信任”。 这意味着系统中的参与者不需要相互信任或信任第三方,系统就可以正常运行。 这种新范式消除了产品提供者和用户之间的信任问题。


在一个缺乏信任的金融系统中,用户需要选择信任谁来确保资产的安全


  • 我的钱是安全的。 没有人可以偷走它们。
  • 我的账户余额是正确的。 系统不能篡改它。
  • 只要我想,我可以随时提现


在中心化的金融机构面临着向多米诺骨牌一样倒塌的风险时,保障这些基本需求变得更加重要。 在 DeGate 上,我们将保障用户的这些权利,使用户对于自己的资金始终拥有支配权。


DeGate 是如何实现无需信任的?


DeGate 协议是基于零知识汇总(ZK-Rollup)技术并建立在以太坊上,它由链上和链下组件组成。 智能合约部署在链上,负责存储资产,验证零知识证明,提供充值和提现方法;所有账户和资产变化在链下处理并汇总到链上智能合约。


这个复杂的系统由多个部分组成,每个部分都对实现无需信任提出了挑战。 DeGate 通过以下功能来应对,让用户在交易时高枕无忧。


该协议没有管理权限并且不可升级。


管理权限允许开发人员单边更改其智能合约的规则。 管理权限使得去中心化金融 (defi) 项目容易被攻击,因为它可以单方面更改非常关键的参数,包括用户余额! 绝大多数 defi 项目都有“上帝模式”管理密钥,这是灾难的根源。 (例如,参见这篇 cointelegraph 的文章 https://cointelegraph.com/news/how-many-defi-projects-still-have-god-mode-admin-keys-more-than-you-think)。


DeGate 没有管理权限。 在协议部署后,其代码的执行逻辑是不可变的。 智能合约和电路在第一个初始化阶段会绑定生成验证密钥。 部署的合约和电路程序的二进制总是一一对应。 由于链上的智能合约是不可变的,如果电路中的任何部分发生变化,生成的零知识证明将无法被智能合约验证。 该机制确保了 DeGate 协议的不变性。 没有人可以更改或升级它。


自托管协议意味着资产无法被操纵


DeGate 协议没有将用户的资产做中央托管而是托管在智能合约中。这些资产会由密码学证明存在并由不可变协议保护, 没有人可以操纵用户的资产。


ZK-Rollup 确认链下状态变化的正确性


在 DeGate 中,帐户的所有变化都会在链下处理后汇总到链上的智能合约。 合约的 ZK-rollup 使用有效性证明来确认链下状态转换的正确性,无需在以太坊上重新执行交易。


ZK-Rollup 由两个关键因素保护:证明生成和证明验证。 证明生成由中继者通过链下电路程序进行。 中继器收集大量交易以生成 SNARK 证明。 SNARK 证明是一段类似散列的内容,代表协议状态的变更集。 为了在区块链系统中实现和证明无需信任,DeGate 使用不可变的开源智能合约来验证证明并自动更新状态。 交易数据通过智能合约记录在默克尔树中,以太坊主网会提供安全保障。


这意味着用户在交易和其他操作后,他们的账户总能读取到正确的余额。


用户在 DeGate 协议中能自主掌控资产


在 DeGate 上充值资产时,若充值交易在一定时间后仍未确认,用户可自行取回资产。 DeGate 允许用户将资金先存入智能合约。 如果充值在一段时间后没有被处理,用户可以调用智能合约功能来取回他们的资产。


当操作涉及用户账户资产变化时,用户就需要进行签名和授权确认。 只有在得到用户签名的情况下,交易才能发送并完成。


这是操作类型所需签名的列表:


用户在取消未结订单时可以执行链上取消


在 DeGate 上,在订单未完全成交前的订单签名有效,可用于交易。 并且每个订单都被强制要求有一个有效期。 对于每笔交易,电路都会验证订单的签名和有效期。 如果任何签名过期,验证将失败。 目的是降低攻击者获取订单签名并操纵订单的风险。


限价单和网格交易订单有一个默认的有效期。 用户可以修改“有效期”字段的值以达到他们想要的有效期,任何订单都是可以随时被取消的并且是即时且免费的。 DeGate 节点会在交易系统中验证该请求并进行订单的取消,原订单签名会被丢弃。 但是,如果你不信任该节点,担心它仍会有你的签名并违背你的意愿执行订单,要怎么办?


DeGate 为用户提供了使用链上取消的选项,以使其 100% 无需信任。 用户可以在已取消的订单中选择执行链上取消请求。 此操作需要支付 gas 费。 一旦 DeGate 节点将此取消请求交易汇总到链上,订单将被标记为已关闭并且永远无法再次匹配。 用户可以通过查看 Calldata 来判断 DeGate 节点是否处理了链上取消请求。


逃离模式


DeGate 协议提供了一种称为逃离模式的应急模式,以确保用户资产的无需信任。 如果 DeGate 的节点没有在规定时间内处理交易,逃离模式允许用户自主提现。 DeGate 链下节点中的 Operator 负责生成 zkBlocks 并将证明提交给 L1。 如果 Operator 不能再履行其职能,则所有未提交给 L1 的链下交易都将失效。 虽然可能性不大,但仍有存在风险,即 Operator 全部下线,无法或不愿提供服务。


假设任何强制提现超过 15 天未被处理,任何人都可以触发交易以启用逃离模式。 DeGate 一旦进入逃离模式,用户可以直接调用 DeGate 智能合约找回自己的资产。 智能合约将拒绝新的 rollup ,这意味着在所有 DeGate 帐户和资产状态将与激活逃离模式之前的 rollup 最后状态保持相同的情况下,将不会处理任何链下交易。 智能合约将根据最终状态处理所有资产。 如果用户想取回资产,首先需要解析 DeGate 智能合约的所有 CallData ,构建默克尔树,默克尔树会提供最新的账户和资产状态。 使用默克尔树中的这些数据,用户可以从智能合约中取回他们的资产。 可以使用第三方服务来解析最新的账户和资产状态。


DeGate 的逃离模式已经被成功测试。 2022 年 11 月,DeGate 关闭了其在 Rinkeby 网络上的 2 层节点。 借此机会,社区和团队测试了逃离模式并取回了他们的资产。 在这里了解更多信息 https://medium.com/degate/testing-degate-trustlessness-in-exodus-mode-2a510f1d5b8


总的来说,这些功能满足了用户在保护资产安全时的三个基本需求:


我的钱是安全的。 没有人可以偷走它。

在 DeGate 上,用户的资产是自托管的,存储在不可变的链上智能合约中。 不可变的协议确保没有人可以操纵它来窃取用户的资产。


我的账户余额是正确的。 系统不能篡改它。

任何账户的资产变动都需要用户的签名和授权。 ZK-Rollup 数据可用性确保用户的账户反映正确的余额和状态变化。


只要我想,我可以随时提现

即使在最不可能的 operator 罢工情况下,用户也可以通过逃离模式自主提现资产。


L2beat 对主流的 Layer 2 项目进行了全面的风险分析(https://l2beat.com/scaling/risk),从状态验证、数据可用性、可升级性和 Sequencer & Validator 故障评估它们的安全性和无需信任性。 用这些标准来对标 DeGate,结果将是:


  • 状态验证:ZK 证明 (SN) - ZK-SNARKS 是确保状态正确性的零知识证明,但需要可信设置。
  • 数据可用性:在链上——证明构建所需的所有数据都会发送到在链上。
  • 可升级性:否 - 保护系统的代码永远不会改变。
  • SEQUENCER 故障: 强制提现到 1 层 - 用户只能提交 L1 撤回请求并强制 sequencer 将其包含在 L2 中。 之后,用户带着他们的资金退出系统。
  • VALIDATOR 故障:逃生舱门 (MP) - 用户可以通过提交默克尔资金证明无需信任的提现。


这些属性结合在一起使 DeGate 成为最无需信任的二层之一


接下来值得期待?

DeGate 旨在提供传统订单薄交易所的使用成本和体验的同时具有更高的安全性和去中心化性。 有了这些实现和验证无需信任的措施,DeGate 让用户 Trade Easy, Sleep Easy


目前 DeGate 在测试网上。 预计将在 2023 年第一季度推出主网 beta 版。

相关Wiki

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

在 App 打开
特朗普
空投
rwa
稳定币
babylon
以太坊
wayfinder
wct
morph
香港
hyperliquid
wal