为什么要做 FluiDex
在今天的以太坊上,Uniswap 这类基于算法自动化做市的交易所获得了很高的热度。这类交易所除了矿工费较高外,大体上满足了“投机散户”的需求。但是,这类交易所,对 liquidity taker 来说,只能挂市价单,对 liquidity maker 来说,价格稳定时有返佣盈利,价格剧烈波动时有损失。以上这些缺点,对于 “投机散户” 是可以容忍的,但是对于“专业交易员”是无法想象的。对于每一个传统金融出身的交易者,你如果告诉他们“这里没有订单簿,你也不能挂单吃返佣;你们只能下市价单,最多设置一下滑点”,他们都会惊掉下巴。
我们预期未来会有越来越多的真实资产会以去中心化的方式流通,也会有越来越多类型的交易者参与交易。过于简单的 swap 类交易所,将无法满足相当多的高级交易者的需求。传统的订单簿交易所,将是一个好用得多的解决方案。
那过去几年为什么订单簿去中心化交易所没有爆发呢?一方面是生态环境,早几年以太坊上承载的资产还不算特别多,要知道炒币者皆知的 USDT 稳定币,两年前都没有在以太坊上流通。另一方面是技术,订单簿交易所的早期简单实现,会使得每笔委托和交易的矿工费成本和 swap 类交易所相当,昂贵的挂单和交易成本束缚了订单簿交易所的爆发,而今天,得益于过去两年零知识证明技术雨后春笋般地爆发,我们终于能提供 0 成本挂单,0.0001 成本成交的交易体验。
怎么看待类似的产品和项目
- 传统中心化交易所。对于相当多,甚至是一大半的人来说,这类交易所已经足够好用了。不过对于一些对资金安全 & 匿名性要求较高的人来说,中心化交易所始终存在黑天鹅的隐患,是不够的。即使是 长期或是ZKRollup OKEx 这样的大交易所,不久前也发生了因为创始人失联一个多月没法提币的事情。
- 算法自动化做市交易所。典型的是 Uniswap,通过始终保证资金池中 资产 A 的数量 * 资产 B 的数量 == 定值,来确认买卖资产的价格。上一段中,我们解释了我们为什么认为这类交易所对于专业交易者是不够用的。
- 基于 optimistic rollup 技术的订单簿交易所。这类交易所性能较高,而且开发容易,但是有两个重大缺点。第一是,资金从这种交易所提出,需要周尺度的确认时间,这对很多资金是完全没法接受的。第二,optimistic rollup 的安全性是有假设有牺牲的,和 zk rollup 的“长期或是ZKRollup 绝对安全“不同。
- 其他类似技术路线的产品,如 diversifi 和 loopring。是的,概括地说,FluiDex 将和他们硬碰硬头对头地竞争。因为我们觉得,一个潜在的大赛道已经有了一两个玩家,不是后面玩家不该进入的理由。不能说 OKEx 运行很好,Binance 就不该创业了。此外,FluiDex 和这些项目还会有一些具体的技术和产品路线区分,例如技术角度,我们会使用 PLONK 作为零知识证明的底层,这会带来更快的产品迭代效率,产品角度,我们很可能会实现无许可上币。
控制权 & 去中心化治理 & 发币
我内心更倾向认为,我们的交易所就是一个传统的“中心化”交易所,唯一的不同是资产的自托管。“去中心化”有很多种解读,资产的去中心化,控制权(“治理”)的去中心化,甚至团队的去中心化。基于我们的愿景来看,资产的去中心化(即资产的自托管),对我们是必需的。但是,至少今天,我们认为控制权的去中心化对于构建一个伟大产品而言,既非必要,也不充分。任何团队做产品都会调研,但是不会有团队仅仅通过用户的投票来决定未来。从古至今,客户和股东就是两种人,你不应该强迫或者期待客户成为股东。对于 FluiDex 团队来说,客户至上,但可见未来不会有所谓“去中心化”治理,产品的未来的决策权始终会在团队管理层手中,期待用户用脚来给我们的成败投票。
基于以上我们对控制权的认知,FluiDex 在可见未来不会发行有投票权的 “治理代币”,但是我们不反对发行有分红权的代币来做募资。比如,我们完全有可能发行一种代币,保证用今后 3 年每月毛利的 10%来回购这种代币。
项目状态 & 时间表 & 融资
FluiDex 项目在 2020 年底启动,预期在 2021 年 Q2 完成最小 Demo 开发,在 2021 年 Q4 能够部署主网。
Update 2021.04.15: 项目可能很快会启动种子轮股权融资,期待按照 700-1000 万美元的估值获得总额 100 万美元左右融资。
创始人 & 团队
CEO: 张卓。毕业于清华大学计算机系,曾任人工智能独角兽依图科技的语音识别负责人,曾负责 IOST 公链的研发。
CTO: 林浩宇。VRF-mining, RandChain, fair-atomic-swap 共同发明人。ZenGo 研究员。曾负责比原链研发。
我们正在招聘全职/兼职/实习工程师。完整的招聘信息在 we are hiring。我们的开源项目在 FluiDex 下面,目前有 零知识证明工具包 Plonkit,交易所撮合引擎 dingir-exchange,零知识证明电路 DSL 代码。我们团队 Base 在北京,希望新成员尽量在北京,但也可以接受 remote 工作。
zkSync2.0兼容EVM打破ZKRollup技术瓶颈
简介
ZK Rollup是基于「零知识证明」验证方式落实Rollup技术的layer2解决方案,「ZK」正是「Zero Knowledge」(零知识)的字母简称,该方案起源于2018年下半年,最早由区块链技术研究员Barry Whitehat提出。
ZK Rollup是利用Rollup技术构建以太坊Layer2网络的一种实现方式,另一个主要是Optimistic Rollup,二者的区别主要在于使用的验证算法不同。
于是,针对这个痛点,Arbitrum Rollup在Optimistic Rollup上进行了改善,它主张把异议部分先进行划块处理,找出争议最大的部分,以太坊主网只对争议部分进行验证,以此缓解主网的验证负担。
除此之外,Arbitrum Rollup的进步还在于实现了与EVM的兼容,这就使得应用该技术的layer2网络可以承载以太坊主网上的应用无缝迁移,于是,不少DeFi应用选择部署「Arbitrum版」。相较之下,Optimistic Rollup扩容方案还没有做到100%兼容EVM。
可见,Arbitrum Rollup方案算是Optimistic Rollup的「改进版」。尽管如此,资金从Arbitrum Rollup相关网络的退出时还是需要一个等待期,这个痛点还有待改善。
而在与EVM的兼容方面,ZK Rollup也此前一直难有突破。以太坊创始人Vitalik Buterin(花名V神)曾在公开演讲中表示,ZK Rollup由于底层技术较为复杂,想要做到完全兼容以太坊虚拟机可能需要几年时间,短期内,Optimistic Rollup是以太坊扩容方案的可行之选,但长期而言会更倾向于ZK Rollup。
令人意外的是,ZK Rollup兼容EVM的开发进度比预期快了许多。今年2月份,使用ZK Rollup方案的zkSync 2.长期或是ZKRollup 0公测网上线,它兼容了EVM。这意味着,在不久的将来,ZK Rollup方案不再被束之高阁,基于它的网络将迎来应用的迁移。
2019年,MatterLabs团队开始利用ZK Rollup扩容方案开发zkSync网络。2020年6月,zkSync1.0版本上线,主要聚焦于支付。作为Layer2扩容层,zkSync1.0链上的转账手续费用极低,处理交易快速,且手续费不仅限于ETH,利用该网络转账的其他以太坊标准资产也能用作手续费,资产进出以太坊主网一般在几分钟到几小时不等。
zkSync官网
今年2月,zkSync 2.0版本的公共测试网上线,实现了EVM兼容,也因此成为首个利用ZK Rollup方案并兼容EVM 的区块链网络。
应用代表
去中心化交易应用(DEX)ZigZag
StarkWare可以视作一个公司,它创建于2018年,有一套完整的Layer2系统解决方案,特别是它在「零知识证明」基础上创新出zkSTARK算法,用以进一步增强网络的扩展性,并将这一算法进行了产品化,形成了StarkNet(Layer2扩容网络)和 StarkEx(扩容技术)两个落地模块。
StarkWare官网
StarkNet
StarkEx
Immutable X是以太坊针对NFT资产设置的Layer2扩容方案,它基于StarkEx引擎搭建,该网络上的资产及交易数据均由以太坊保障,用户无需担心安全问题。更重要的是,StarkEx支持提取资产到以太坊链上即时到账,没有7天的间隔期。目前,卡牌游戏Gods Unchained(GODS)、战斗类角色扮演游戏Illuvium(ILV)等已选择与Immutable X集成,为用户提供快速的、0 Gas费的交易体验。
长期或是ZKRollup
Orbiter Finance是一个去中心化的跨Rollup的二层桥,目前已经支持多个Layer 2协议,其中包括zkSync在内的代币转移,手续费低,转账速度快。
4、NFT 项目Mint Square
Mint Square是基于以太坊Layer 2 zkRollup的NFT平台,支持Starknet和zkSync,希望未来可以让更多人参与铸造和交易NFT资产。
StarkWare概述
StarkWare正在构建StarkNet,这是一个去中心化、无需许可且抗审查的STARK驱动的 L2 ZK-Rollup,且支持基于以太坊的通用计算的协议。它基于图灵完备的Cairo语言。
StarkEx是首个使用基于STARK的ZK-Rollup扩展应用程序能力的实用案例,是其L2 可扩展性引擎,项目可以使用它来实现廉价的链下计算,即证明执行正确性的STARK证明是在链下生成的。这样的证明最多可以支持12,000–500,000 笔交易(取决于交易类型),并将证明发送给STARK验证者以在链上被接受;这意味着对所有交易都进行一次验证,即每笔交易的gas成本极低。自2020年6月以来,StarkEx已为处理逻辑复杂的交易(现货交易、衍生品和NFT)以及支付等领域的多个用户提供服务,包括DeversiFi、dydx、ImmutableX和Sorare。
2022年5月25日StarkWare宣布以80亿美元估值完成1亿美元D轮融资,本轮融资由Greenoaks Capital和Coatue领投,包括Tiger Global在内的其他现有和新投资者参投。D 轮融资完成后,StarkWare总融资金额已达到2.62亿美元。
截至到2022年6月12日,通过StarkEx平台的TVL为10亿美金,Tx总数1.84亿次,累计交易量6150亿美金,NFT mint 5840万个。
StarkWare重点生态项目
1、基础设施层类项目Nethermind
Nethermind.io是一家专门提供以太坊和Layer2软件解决方案的公司,提供多个去中心化基础设施构建模块:Nethermind客户端(可定制型以太坊客户端),Warp-开源 EVM到Cairo转译器,实现在StarkNet上直接部署智能合约Voyager,可轻松浏览 StarkNet并与之交互。
2、钱包类项目Braavos
3、NFT Marketplace类项目Aspect (prev. PlayOasis)
Aspect是一个建立在StarkNet上的NFT Marketplace,在StarkNet测试网上运行,目前处于alpha阶段,支持创作、买和卖,此外在Argent X Wallet和Braavos钱包均可实现。
4、元宇宙类项目Altzone
5、跨链桥类项目Layerswap
6、借贷类项目zkLend
zkSync vs. StarkWare, zkRollup 赛道的竞争
总结
虽然目前市场进入熊市,以太坊上的gas费用比之前牛市下降不少。但在下一个牛市到来之前,以太坊未必能显著优化 L1 性能。而基于zkRollup技术的zkSync和Starkware 使用零知识证明和链上数据可用性来保证用户资金的安全,其安全性等同于以太坊。此外,在保证安全性的前提下,zkSync和Starkware的交易成本相对以太坊而言依然非常低。因此,zkRollup很可能成为Vitalik所说的以太坊在中长期内扩容的主要方式。
作为zkRollup的明星项目,zkSync把设计核心放在了用户和开发人员体验,希望能够降低整个平台的复杂度。从过去这几年的表现看,其团队Matter Labs在协议开发上稳步推进,zkSync 2.0陆续发布更新,整个生态正在繁荣壮大。而Starkware由于前期的StarkEx Saas服务积累了非常雄厚的开发和生态经验,因此StarkNet的开发迅速,目前其开发重点放在了进一步优化提升性能上,同时在去中心化的态度上更加明确。
ZKSwap提出实用zkrollup协议ZKSpeed,可大幅提高TPS并降低Gas费用
因此,近些年越来越多的区块链研究者和开发人员致力于底层技术研究,想尽各种技术手段,来改善整个网络状态。有针对 Layer-1 的技术方案,例如 ETH 2.0 的分片技术,通过修改或优化区块链的共识网络,来提高网络的出块效率,从而加快区块确认时间,达到交易快速上链的目的;也有针对 Layer-2 的技术方案,在保持 Layer-1 功能足够简单且强大稳定的前提下,把一些原本在 Layer-1 上的一些计算和操作,放在链下去做,然后通过密码学的技术来保证这些链下操作的准确性。
但从长远角度来看,基于 Layer-2 的扩容技术方案将更适合区块链的健康发展
因为区块链的基础架构已经比较清晰,稳定且易于维护,基于此强加复杂逻辑,就有可能使 Layer-1 变得越来越脆弱。所以,区块链的结构发展方向应该是 Layer-1 尽量保持不动,除非有重大变故,比如密码学技术的突破,导致底层使用的密码学原语的修改。其他的复杂逻辑及创新应用放在 Layer-2 去做,Layer-1 和 Layer-2 相辅相成。
研究者也逐渐发现了这一点,因此,基于 Layer-2 的扩容技术方案层出不穷。然而,理想很丰满,现实很骨感。当理论需要实践的时候,开发人员才发现要想达到预期,有太多的地方需要权衡利弊,对于不同的应用场景,可能也要做出不同的妥协。
迄今为止,Layer-2 扩容方案里,被讨论的最多的有 zkRollup、Optimistic Rollup、Validium 和 Plasma。在此借用 StarkWare 里 Avihu Levy 的一张图来区分它们:
(4种以太坊扩容方案对比)
zkRollup: 由以太坊的研究员提出,特点是所有计算过程由链下计算,链上存储,参与计算的明文数据通过 calldata 的形式发送到链上合约,降低存储成本,同时,链下计算的正确性由零知识证明算法保证;由此也能看出,此方案确实能大幅提高 TPS,也能降低单次交易的费用。
Optimistic Rollup: 从图上可以看出,Optimistic 长期或是ZKRollup Rollup 和 zkRollup 位于同一行,也就说明它们的共同点是:明文数据通过 calldata 的形式发送到链上合约;不同之处是 Optimistic Rollup 采用交互式错误证明来确保链下计算的准确性,如果被识别出故意作恶,那将会收到惩罚;相比于 zkRollup,Optimistic Rollup 的安全性假设弱一些。
Validium: 此方案由 StarkWare 提出,获得 V 神的认可,得此命名。特点是计算过程在链下完成,由零知识证明算法保证计算的正确性,链上完成验证并存储最终得世界状态;还有一点需要注意得是,为了获得更好的可扩展性,此方案把交易数据也存储在链下,同时由可信的“数据可用性”委员会提供数据可用性的证明,相比前两个方案,这个方案损失了一定的数据可用性,但是确实提供了更好的数据可扩展性;因此,在实际的应用场景中,此方案可能会得到更多的青睐。
Plasma: 由 V 神提出,相比于其他三个方案,这个方案被提出的时间最早。方案特点比较显著,链下计算,链上存储,交易数据也存到链下,简单粗暴,用户可以发起错误型证明来证明执行者的作恶行为,由此获得奖励,惩罚作恶的执行者。
虽然现在已经有了以上方案,但由于还没有真正在 Layer-2 上跑起来的应用,所以孰优孰劣也很难下定论。目前在以太坊上最活跃的应用概念是 Defi,其中又以 DEX 占用的网络资源最多,Layer-2 的提出将明显给 DEX 发展带来更大空间。下面可以从一个具体案例来看Layer-2 的落地。
目前市场上很热的 ZKSwap 算是探索者之一, ZKSwap 提出的 Layer-2 扩容方案叫 ZKSpeed (A Pratical and Scalable Zk-rollup Solution 一个实用并且可拓展的zk-rollup 协议)。
下面通过一张图来展示 ZKSwap 设计的方案和上述方案的关系:
从图上可以看到,ZKSwap 的第一版扩容方案 ZKSpeed 基础架构结合了ZK-rollup和 Validium 和 Plasma 方案特点,在此基础上又通过聚合证明、GPU 优化、证明电路优化三个方案,大幅提升了整个网络的吞吐能力。
在做详细介绍之前,需要说明一下为何采用了交易数据链下存储的方案。事实上,ZKSwap 的初衷是完全按照 zkRollup 的方案来实现,因此它不仅能提降低交易成本,同时也保证了链上数据可用性,有了这个,用户随时可以提供默克尔树的有效性证明,从链上提取属于自己的钱。遗憾的是,经过真实的测试,在这种方案下,上链的成本仍然很昂贵,每一笔layer2交易的Gas Limit 为 6000 左右, 作为对比Layer1 上面以太坊的Gas Limit 为21000,普通ERC20的转账交易的Gas Limit 为50000 左右。这离 Layer-2 的扩容目标高吞吐,低 Gas 相差甚远;具有很快的上链速度,但是交易成本很高,相信也会降低用户主动做交易的意愿;因此,如果Layer2 的平均每一笔交易成本太高,Layer2 主打的高TPS也很难实现。因此,要想把 Layer-2 的扩容方案用于真实场景,首先需要Layer2 资金的绝对安全性; 第二需要Layer2 的TPS 够快 (ZKSwap Layer2的TPS 在100以上,并可以继续提升)第三 需要Layer2的每一笔交易的Gas 成本只有主网交易成本的5%, 或者2% 。
ZKSpeed 方案中,对链下数据处理分为2部分,所有和Layer1 交易相关的数据都会实时上链,保证资金的觉得安全性,并实时生成零知识证明和验证证明,但是对于仅仅和Layer2相关的交易采用分布式存储的方案,实时披露原始交易数据,并把数据摘要实时上链,目前数据摘要由Layer2 运营方自己发布,并且任何人可以实时验证该摘要的准确性,长期来看,数据摘要的计算和发布可以通过分布式的形式进行,并引入社区验证。ZKSpeed 方案对链下数据进行了分类,大幅度提高了数据的可拓展性,关于数据可用性这个方面,ZKSpeed 方案的可拓展性长期来看优于所有交易都上链的 Optimistic Rollup 方案,长期来看,受制于以太坊的layer1 的每个Block Gas Limit 的限制,如果所有数据都上链存储,那么在Layer2系统的可拓展性方面存在明显的天花板,考虑到巨大的上链Gas 成本,这样的Layer2系统在实际应用中,其TPS 很难到20以上,其实用性会大大降低。
ZKSpeed 扩容协议通过对链下数据进行分类,实现了数据可用性和数据可拓展性的权衡。数据可用性的问题得到解决,那么下一步的目标就是提高零知识证明系统的可用性和处理速度。ZKSpeed 方案基于零知识证明算法,保证一个区块内的所有交易导致的世界状态的变化是正确的,多笔交易一次性处理,实现系统性能的第一次提升,带来了较高的TPS。但是,这种解决方案带来的提升效果只能说是勉强可以接受,ZKSwap 团队不满于此,坚持寻找新的技术方案来实现更高的系统容量和更低的交易成本;经过不屑努力,终于找到了一个新的解决方案,即聚合证明 (Aggregative Proof)。
Aggregative Proof 聚合证明
聚合证明的逻辑其实很简单。大家知道,基础的 Layer-2 扩容方案里,一个区块对应一个有效性的证明,链上合约验证证明的有效性。现在以太坊的出块平均速度是 15s 长期或是ZKRollup 一个区块,如果链上一次能验证多个区块的有效性,那么平摊在每个交易上的成本将大幅减少。基于这个思考,ZKSwap 采用了一种聚合证明方案。所谓的聚合证明方案就是,现在是一个区块一个证明,把一段时间内,或者是固定数量的区块产生的多个证明,再用零知识证明的方式去证明这些区块的证明是有效的(把验证的过程再当作是一种电路)。这样链上只需要一次验证,就可以实现多个区块证明的有效性验证。
经过实际测试,ZKSwap 在采用了聚合证明方案后,单笔交易的费用降低到了 1000 (Gas Limit),该成本是以太坊主网ERC20 转账成本的1/50 (以太坊主网转账的Gas Limit 大概是50000 左右),这个结果足够让人惊喜。试想一下,如果能在主网的出块时间间隔内,能生成更多的零知识证明,那么整个系统的 TPS 将会得到大幅改善,为此,ZKSwap 同样做出了大量的努力,实现了 GPU 版的 PLONK 算法,相比于 CPU 版本的 PLONK 算法,计算速度提升 3 倍有余,同时,ZKSwap 通过大规模高性能机器,专门用于零知识证明的生成,对于规模为 2^28 次幂的超大型电路,生成一个证明不到 2 分钟。但同时,受算法采用的椭圆曲线参数限制,每个区块里可证明的最多交易数量和可证明的证明数量存在上限,导致系统的的性能上限收到了限制。虽然有此约束,但ZKSwap最终的实测 TPS 仍然远超过了现有的其他产品,目前在最新的压力测试中,采用ZKSpeed 方案的 ZKSwap项目的TPS 可以到 100以上。
ZKSpeed 长期或是ZKRollup 已经把目光放在了不需要可信设置的递归 SNARK 上,相比于聚合证明,递归 SNARK 将不需要可信设置,并且一次性可验证的区块数量将不受限制,仅取决于出块的速度和生成证明的速度。
由于 Deposit 和 Withdraw 操作涉及到与 Layer-1 的交互,因此交易成本相对于 Layer2 转账和 Swap交易操作较多。不过,无论是哪一种交易类型,其每笔交易的成本已经领先于行业内的其他产品,基于ZKSpeed 方案的ZKSwap 已经实现了 资金安全性和高TPS 以及 低Gas 成本的 全面权衡,并且具备很大的实用价值,在Layer2 的实际应用中,具备很大的技术优势。
ZKSpeed Layer2 长期或是ZKRollup 扩容方案是一个兼具实用和工程优化的 zk-rollup 方案,通过 零知识证明的聚合证明,Plonk 算法的并行处理,以及对链下数据的分类处理,大大提高了Layer2 系统的TPS, 并大幅降低了 Layer2 交易的Gas 成本。相比其他的Layer2 方案(zk-Sync , optimistic rollup以及Plasma 长期或是ZKRollup ),ZKSpeed 方案在实用性方面取得了更大的突破,并将率先支持DeFi 的应用在Layer2 大规模部署,关于ZKSpeed 的方案细节,敬请关注即将发布的技术白皮书和系统示例(zkspeed.org)