如何在Layer 3上建造安全高效的DEX

avatar
Fox Tech
1年前
本文约2245字,阅读全文需要约3分钟
Layer 3是以太坊扩容生态系统的一项伟大工程创新,如果说Layer 2的出现解决了通用型扩容问题,那么 Layer 3的出现则解决了更加高速、更加低成本、定制化的扩容问题。

原文作者:Fox Tech CEO 康水跃,Fox Tech CTO 林彦熹

Layer 3 概念目前在区块链社区备受关注,被许多人视为革命性的进步,因为开发者可以在区块链平台之上创建各式各样的智能合约和去中心化应用(dApps)。Layer 3 是以太坊扩容生态系统的一项伟大工程创新。如果说 Layer 2 的出现解决了通用型扩容问题,那么 Layer 3 的出现则解决了更加高速、更加低成本、定制化的扩容问题。

目前已经有不少建立在 Layer 2 上的去中心化交易所 DEX,那为什么还需要在 Layer 3 上建立 DEX 呢?大多数建立在 Layer 2 上的 DEX 均采用 AMM 模式,少数采用订单簿模式的 Layer 2 DEX,比如 ZigZag,其交易成本比 CEX 高出一截。不管是 AMM 模式还是订单簿模式,Layer 3 上 DEX 的交易速度、成本都会有更好的用户体验。

Layer 3 完全可以建造出安全高效的 DEX 的原因有以下几点:

  • Layer 3 的 DEX 可采用与 Layer 1 Solidity 相比更强大的语言写撮合引擎比如 Rust;

  • Layer 3 能高度定制,简化用户交易步骤,不必在每次下单都调用钱包授权;

  • Layer 3 的 TPS 相比 Layer 2 再次提升 100 倍数量级,成本再次降低 1/100 数量级,支持 Orderbook 模式;

  • Layer 3 与 Layer 2 一样,二者的的共识层均由 Layer 1 担当,安全性等级足够高;

  • Layer 3 有独立的数据可用性层,链外交易与资产状态的可见性均能轻易获知、获得;

  • 用户可以使用 EOA 钱包或者智能合约钱包实现资产自托管,更好保障资产安全。

如何在Layer 3上建造安全高效的DEX

图 1: DEX 从 Layer 1  到 Layer 3 的性能变化

区块链基础设施的分层结构

目前区块链基础设施主要分为 Layer 0、Layer 1、Layer 2、Layer 3 四层。这些“Layer”到底指什么呢?我们最熟悉的 Layer 1 ,通常指的是区块链的主网络,无需通过中心化客户端服务器即可通过每个节点P2P进行连接与交易,其中以太坊最为典型。每笔交易都会注册为一个区块并存储在分布式数据库中。Layer 1 是这 4 个 Layer 里最早出现。为了实现资产跨链,出现了 Omnichain 互操作协议,也就是 Layer 0 ,其主要应用便是各式各样的跨链桥。

经典的区块链 Trilemma“三难困境”是指在相同一个 layer 里的不同解决方案,在去中心化、可扩展性、安全性三个方面,难以同时高度满足。典型案例是 ETH 选择了去中心化和安全性从而牺牲了可扩展性,而像许多后来的公链则是依赖去中心化程度较低的框架实现更高的 TPS。正因为有“三难困境”的存在,之后随着交易数量的增加,不可避免出现了交易延迟和费用飙升问题。为了解决网络拥堵,开发者们提出了基于 OP 或者 ZK 的 Layer 2 扩容方案。

在这种多层结构的设计里,Layer 1 为 Layer 2 提供共识并保障交易安全,而 Layer 2 将计算从主区块链上分离出来作为相对独立的执行层,最大限度地减少延迟并降低交易费用。Layer 3 在用户和底层区块链技术之间提供了一个抽象层,使用户更容易与 dApps 和智能合约互动,同时通过底层区块链确保其安全。Layer 3 能在 Layer 2 的基础上进一步做数据压缩,再通过 Layer 2 将证明打包回 Layer 1 进行链上验证,从而实现比 Layer 2 更加快速和低成本的交易。

在 Laye 2 完成了通用型扩容目的之后,开发者和用户将转入 Layer 3 以获得更加定制的功能以及更高的性能,因此预计 Layer 3 将出现丰富多彩的大型应用。目前有一大批 dApps 正在使用去中心化技术将Web2各式各样的商业模式搬到 Layer 2 上实现。Layer 3 将给这些应用带来更多的可能性、更大的想象空间。

如何运用零知识证明将 DEX 接入到 Layer 3 

DEX 是很重要的一类 Layer 3 应用。如果想在 Layer 3 上建造一个名叫 OX Exchange 的 DEX,那么实现这个目的最关键的技术是什么?在 Layer 3 部署这样的去中心化交易所,零知识证明的使用最为关键。

从交互逻辑上来看,用户在 OX Exchange 当中的操作,会以调用智能合约的形式实现,也就是说每一次买入卖出订单都会转化为对合约函数的一次调用交易(transaction),而这样的每一笔交易都会被提交到 Layer 2 节点当中,并通过 zkEVM 执行。

在具体的实现方面,在 Layer 2 特定部署的智能合约会与 Layer 3 的应用进行交互。而接收到来自 Layer 3 的批量交易之后,Layer 2 的节点会进行 zkrollup 的证明生成,包括拆分 opcode 并生成电路,之后依据零知识证明算法证明执行的正确性。最终将生成的执行正确性证明提交到 Layer 1 链上,通过链上合约的验证,接受状态更新。

Layer 2 的 zkrollup 提供的服务可以获得更低的延迟,更好的用户体验。具体来讲,OX 需要与位于 Layer 2 的 zkRollup 进行交互,从而利用 Layer 2  的“打包”来获得更大的吞吐量。OX 可以提供丰富的前端操作界面,底层复杂的交互逻辑完全对用户透明,用户可以像在所有的 DEX 当中那样,连接Web3钱包就直接使用 DEX 的各种服务。

从这个过程当中可以看出,Layer 2 的 zkRollup 层依旧在承担着链下执行计算,链上提交证明更新状态的职责,而 Layer 3 则主要负责执行更为具体的直接与用户交互的订单引擎功能。通过将复杂的计算从链上分层次执行,可以高效地提高效率,让交易成本以及吞吐量发生质的变化,用户体验也因此得到显著提升。

如何在Layer 3上建造安全高效的DEX

图 2: Layer 3 DEX 架构图

如何通过数据可用性 DA 来保障用户资产安全

在所有 Web 3.0 项目中,数据可用性(Data Available)都扮演至关重要的角色。包括中心化交易所 CEX 在内的所有传统应用通常都不会使用 DA,因此用户数据透明度极低零,而 CEX 用户的资产安全等级完全取决于交易所做恶与否。Layer 3 DEX 由于采用专有的数据可用性(DA),所以在极大降低用户手续费的同时,也保障了用户交易数据、资产安全。

Layer 3 DEX 具备高吞吐量,这意味着有海量的数据需要处理。这些数据采用“DA 层+L2”的混合存储模式以兼顾的效率与安全性。部署在L2的合约只需要纪录少数关键的数据以及一个 Merkel 根,而过程中的所有其他数据将记录在 DA 层。当用户与L3的应用交互时,交互过程中的原始数据将存入 DA 层,而 DA 层会对更新后的数据计算新的 Merkel 根;与此同时,L3应用也会向L2的合约发送一个证明,合约将由此检查 Merkel 根更新的正确性。这样的机制可以确保L2合约的状态与 DA 层的一致性,即保证记录的状态始终是正确的。

中心化应用的数据就像黑箱,而有了 DA 层的L3应用就像用一个既透明又安全的保险箱。L3应用的用户不用担心项目方跑路或破产,因为他们资产的安全性不再依托于项目方而是依托于以太坊三层 Layer,以太坊共识层提供为 Layer 3 应用提供最好的安全性。

如何在Layer 3上建造安全高效的DEX

图 3: Layer 3  DEX 的数据可用性 DA

    原创文章,作者:Fox Tech。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

    ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

    推荐阅读
    星球精选