热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

不管是AMM模式还是订单簿模式,Layer3上DEX的交易速度、成本都会有更好的用户体验。撰文:康水跃,
不管是 AMM 模式还是订单簿模式,Layer3 上 DEX 的交易速度、成本都会有更好的用户体验。

撰文:康水跃,Fox Tech CEO;林彦熹,Fox Tech CTO

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

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

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

  • Layer3 的 DEX 可采用与 Layer1 Solidity 相比更强大的语言写撮合引擎比如 Rust;
  • Layer3 能高度定制,简化用户交易步骤,不必在每次下单都调用钱包授权;
  • Layer3 的 TPS 相比 Layer2 再次提升 100 倍数量级,成本再次降低 1/100 数量级,支持 Orderbook 模式;
  • Layer3 与 Layer2 一样,二者的的共识层均由 Layer1 担当,安全性等级足够高;
  • Layer3 有独立的数据可用性层,链外交易与资产状态的可见性均能轻易获知、获得;
  • 用户可以使用 EOA 钱包或者智能合约钱包实现资产自托管,更好保障资产安全。

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

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

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

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

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

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

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

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

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

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

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

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

图 2: Layer3 DEX 架构图

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

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

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

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

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


推荐阅读
author-avatar
aGreadyCat__895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有