作者: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