作者:鹿目圆
在目前,以太坊的发展趋势正越来越倾向于模块化区块链。
在模块化区块链的架构下,以太坊上的交易计算和执行不再由主网来操作,这部分工作转移到链下的Layer 2上来完成,这种方案减轻了主网的负担,大大扩展了以太坊的性能。
未来以太坊主网只承担完成共识和数据可用性的工作,而承担了所有计算执行的 Layer 2 将变为一个类似云计算服务商的角色,正如现在的亚马逊云和阿里云等。
Rollup
在 layer 2 的扩容方案中,被认为最有前景的就是 Rollup。
Rollup 在以太坊链下完成交易的验证和计算,并把它们打包压缩后连同交易更新后新的状态根(State root)传回主网,从而减少对主网空间的占用。
Rollup 中又有两种实现方案,分别是 Optimistic Rollup 和 zk-Rollup 。其中:
- Optimistic Rollup 采用欺诈证明(Fraud proof),首先假设上传到主链所有交易都是合法的,并设置挑战期,允许验证者提出证明来挑战有问题的交易,一旦证实有欺诈行为发生,就对欺诈者进行惩罚,对挑战者进行奖励。
- Zk-Rollup 则采用有效性证明(Validity proof),在链下进行所有交易的验证和打包,验证后的交易被提交到主链时附上零知识证明来证明交易的有效性。用 StarkWare CEO Uri 的话来说:“它提供了无需信任的计算诚信(computational integrity),它是这样一种能力 —— 即便没有人监督也能确信该计算被正确地执行。”非常类似于早期比特币的理念。
Rollup 中主要有三个角色:
- Sequencer:主要负责从用户那里收集交易,对它们排序并将新的 Merkle 根传到 Layer1的 rollup 智能合约上,类似于矿工。
- Prover:负责计算验证所有的交易,并生成一个 zk-proof 来证明交易的有效性。
- Verifier:通常被部署在 Layer 1上,负责完成部分计算来验证 Prover 提交的 proof 的有效性,以确保其提供了计算诚实性所需的所有的信息。
Optimistic Rollup 可以兼容EVM,技术方案成熟且落地早,对开发者来说,迁移成本较低,代表项目 Arbitrum 和 Optimism 是目前 rollup 中市场占有率最高的。而 zk-Rollups 因为不兼容EVM,技术难度也比较大,开发进度较慢,目前应用并不如可以面向智能合约的OP系的rollup 广泛。
虽然如此,zk-Rollup 与 Optimistic Rollup 相比还是有诸多优势,例如:
- 可扩展性更好。这是由于zk-Rollups需要上传到主网的数据小于Optimistic Rollups。因为zk-rollups发布到链上的交易信息已经全部被验证过并附上了证明,其他人只需要验证证明,而无需验证交易,所以验证交易相关的数据就无需上传,但是Optimistic Rollups由于需要接受欺诈证明的挑战,所以需要把这些数据也上链。在实际应用中,zk-Rollup提升性能的能力大概是Optimistic Rollups的十倍左右。
- 交易最终确定时间短。zk-Rollups发布到链上的交易已经经过了验证并随附了证明,验证起来比较简单,通常验证时间在十分钟左右,但是Optimistic Rollups提交的交易由于存在欺诈风险,需要接受欺诈证明的挑战,这个挑战的时间窗口约为1周,所以并不能实现即时取款等功能。
- 安全性更高。zk-Rollups上传的交易都通过验证并附带了证明,作恶的可能性小。相比于Optimistic Rollups可能上传含有欺诈内容的交易,zk-Rollups的数据可靠性和安全性都更高。
Vitalik 曾在2021年说过:“短期内,optimistic rollups 会因为其 EVM 的兼容性胜出。在中长期来看,随着 zk-SNARK 技术的改进,zk-rollups 会赢得所有的用例。”可见长期来看,Vitalik更看好zk-rollups。
zk-SNARK和zk-STARK
zk系的两大龙头项目分别是zksync 和 Starkware。其中zksync采用的是zk-SNARK技术,而Starkware采用的是zk-STARK技术。
zk-SNARK是简洁式非交互式证明的缩写,zk-STARK是可扩展的透明知识证明的缩写。zk-SNARK诞生时间早,技术相对成熟,目前已经有了比较广泛的应用。早期的隐私币项目zcash使用的就是zk-SNARK技术。zk-STARK则被认为是zk-SNARK的改进版,是一种更快和更便捷的实现方式,旨在对zk-SNARK进行一些优化,弥补它的一些缺点。
从名字中可以看出,zk-STARK 相对 zk-SNARK 具有可扩展性和透明性的优点,此外 zk-STARK 还具有更高的安全性。具体原因是:
- 可扩展性。凭借 zk-STARK 技术,证明者的运行时间最多为计算规模的拟线性而验证时间为计算量的多项式对数。而在 zk-SNARK 中,证明者可能面临复杂而昂贵的证明过程,以及相对应的较长的验证耗时。
- 透明性。zk-STARK不需要进行可信初始化设置,不像zk-SNARK需要可信设置的公共参考字符串,而是使用随机公共验证,所以不用担心参数被破坏和修改;
- 安全性。由于zk-STARK依赖于哈希函数来进行对称加密,哈希函数抗碰撞的特性带来了抵御量子攻击的能力。
由于技术成熟,推出较早,目前在zk领域zk-SNARK仍是主流,而zk-STRAK技术难度大,缺少开发者,所以还未被广泛采用。但是凭着不可忽视的优势,相信未来zk-STARK会成为更被接受的解决方案。
Starkware
Starkware的联合创始人 Eli Ben-Sasson 是世界顶级的密码学科学家,在以色列理工学院担任教授,也是 zk-SNARK 和 zk-STARK 技术的联合发明者。项目采用图灵完备的Cairo语言进行开发。
工作原理
Starkware系列产品的工作流程如下图所示:
我们以StarkEx为例,StarkNet的工作流大致类似。
- 用户首先在应用中进行操作,通常是应用的客户端或者网页前端,应用执行这些动作后向StarkEx服务发送交易;
- StarkEx服务把这些交易打包执行后把包裹发送给SHARP(Shared prover,共享的证明服务),这个过程中的执行是由Cairo语言编写的程序完成的,值得一提的是,StarkWare通过Cairo这一图灵完备的语言,将所有智能合约的计算结果转化成了可证明的多项式方程,由此让智能合约与有效性证明兼容;
- SHARP 是一个基于 Stark 的证明系统,由它来生成能证明这个批次交易有效性的证明;
- SHARP 把 Stark 证明发给部署在Layer 1 上的 Verifier,由 Verifier 来完成验证;
- StarkEx Service 会发送一个链上状态更新交易给Layer 1上部署的StarkNet智能合约,这个智能合约只会在 Verifier 完成了证明之后才会接受这个新的状态变更。
产品
Starkware 目前有两款产品,分别是:
- StarkEx为应用提供定制化的 ToB 服务,运行在StarkEx上的应用可以自定义他们的业务逻辑。StarkEx服务于Defi和游戏等应用,能加快交易速度,降低交易费用,还可以通过ZK-Rollup 或 Validium 两种方案来实现数据可用性。
- StarkNet 是一个无需许可的去中心化、抗审查的通用 layer 2 网络,任何用户和开发者都可以在上面部署使用Cario语言编写的智能合约。
这两种产品分别对应了两种不同的商业模式,前者为应用提供定制化服务并出售,而后者则提供无许可的通用服务然后收取网络上的交易费或者作为节点在交易费用优先的原则下抽取MEV。
StarkWare 联合创始人 Eli Sabasson 曾做过一个比喻,将 StarkEx 和 StarkNet 的分别比作为计算机和云,购买 StarkEx 就像拥有自己的定制化计算机,每个客户都拥有自己的扩容计算机。而 StarkNet 提供的是网络,是通用服务,所有人都可以支付费用并使用。
StarkNet 的工作过程如下图所示。它与 StarkEx 的最大区别是在 StarkNet 中由Sequencer取代了StarkEx Service 来承担验证交易有效性、打包交易、调用Cairo程序执行的工作,而SHARP所承担的生成证明的工作,在 StarkNet 中由 Prover 负责。目前,Sequencer和Prover都由StarkWare官方团队来指定,这就带来了中心化的质疑。
Roadmap
StarkNet曾经在他们的博客中发布过一张路线图,并表示他们会逐步实现去中心化。
在设想中,团队建设 StarkNet 的过程包括了四个阶段,分别是:
- Step 0--基础建设
- Step 1--Planets:单一操作者、单一app的rollup
- Step 2--Constellations:单一操作者、多个app的rollup
- Step 3--Universe:去中心化的操作者、多个app的rollup
在Step 1中,一个 StarkNet 实例上(一个rollup)只运行一个应用,开发者关注于如何在StarkNet这个扩容网络上实现自己的业务逻辑。
下一步将支持在同一个 StarkNet 实例上运行多个应用,并且这些应用将可以共享同一个全局 Layer 2 状态。这将实现不同应用程序之间的互操作性,以及由于规模经济的提高而降低的gas成本。在这个阶段,StarkNet 将成为一个功能齐全的框架,在以太坊之上运行具有任意业务逻辑的多个应用程序,每个实例由单个操作者运行。从用户的角度来看,StarkNet 用起来和以太坊很像,只是可扩展性更好。
最后一个阶段是 StarkNet 对操作者进行去中心化的阶段。在这个阶段中,团队主要做两件事:(1)使用rollup来实现更好的共识机制以及(2)利用经济模型来对贡献者和操作者进行激励,吸引更多参与者来实现网络的去中心化。
Cairo语言
Cairo(CPU Algebraic Intermediate Representation,CPU代数中介码)是Starkware用来为一般计算生成STARK证明的图灵完备的编程语言。应用开发者可以用 Cairo 定义任何的业务逻辑并完成链下证明和链上验证,而无需手动生成复杂的电路或AIR(代数中介码)。
通过 Cario 编程语言,任何计算命题都可以进行快速、安全的编码证明。一个由 Cario 写成的应用程序可以证明其对应的执行逻辑,而一个 Cario 应用程序也可以集成多个 Cario 应用程序,形成 SHARP。
SHARP(共享证明器)可以聚合几个独立的 Cario 应用程序的交易,并在同一个 STARK 证明中使用。使用 STARK 证明,提出证明所需的时间与执行语句所需的时间大致呈线性关系。验证证明所需的时间与提出证明的时间则是对数关系。
由于验证时间远小于证明时间,就可以实现递归验证:一个Cairo程序可以验证多笔交易的正确性,同样也可以编写一个Cairo程序来验证多个Stark证明。由于只需要对数时间来实现验证,这样的递归验证可以极大程度地减少验证时间。
Starkware团队推出了Cairo的通用证明服务(Generic Proof Service,GPS),开发者可以使用这项服务用Cairo语言构建自己的应用。他们可以把自己包含业务逻辑的Cairo代码发送给GPS来证明,并在链上验证它们。
由于GPS 支持使用一个证明来断言不同多个应用程序执行的完整性,从而使这些应用程序能够分摊证明验证的 gas 费用。
团队和融资
Starkware的团队来自以色列,主要成员是有自希伯来大学和以色列理工背景的计算机科学及密码学开发者,可以说是零知识证明领域实力最强的团队。
从Starkware的官网上可以看到,这个团队目前有成员77人,外加7名学科顾问和5名其他顾问。主要成员包括:
- Eli Ben-Sasson:Co-Founder & 首席科学家,希伯来大学理论计算机科学博士学位,长期从事计算完整性、密码学和零知识证明方面的研究。以色列理工学院计算机专业的教授。Zcash 的创始科学家,zkSNARK、zkSTARK 的发明者。
- Uri Kolodny:Co-Founder & CEO,希伯来大学计算机科学学士,是一个商业经验丰富、善于合作的连续创业者。
- Alessandro Chiesa:Co-Founder & 首席科学家,加州大学伯克利分校计算机专业的教授。Zcash 的创始科学家,zk-SNARKs 的联合发明者,简洁零知识证明的领先开源库 libsnark 的核心开发者。
- Michael Riabzev:Co-Founder & 首席架构师。以色利理工学院的博士,曾在 Intel、IBM 工作。
- Oren Katz:工程副总裁。希伯来大学计算机专业毕业,特拉维夫大学MBA,20 年经验的资深工程师。
在融资方面,StarkWare 共披露了七轮融资,涉及投资 45 笔,对外披露融资额 2.73 亿美元,2022 年,D 轮融资估值 79 亿美元,投资人包括Paradigm,Sequoia Capital和Pantera Capital等机构以及Vitalik。
经济模型
Starkware在今年七月中旬的博客中发布了他们的代币经济模型。原本计划于9月发行其代币,但是后又发布消息推迟发币时间,截至本文发布的时间,仍然没有官宣发币。
StarkNet 代币将主要具有 3 个使用场景,分别是支付 StarkNet 网络费用、质押以参与网络共识、社区治理投票。
- 交易费用:目前,StarkNet 中的费用以 ETH 支付。但接下来,该项目预计费用将仅使用原生 StarkNet 代币支付。为了支持良好的用户体验,自动化和去中心化的链上机制将允许用户以 ETH 支付费用。
- 质押:对 StarkNet 的活跃性和安全性至关重要的某些服务可能需要质押 StarkNet 代币。这些服务可能包括排序、在达到 L1 最终性之前达成临时 L2 共识、STARK 证明服务和数据可用性供应。预计这些服务将在 2023 年实现去中心化。
- 治理:改进 StarkNet 的提案将需要一个最低的代币持有阈值。对于对 StarkNet 的活跃性、安全性和维护至关重要的协议的所有更改,都需要直接或通过委托进行投票。例如,StarkNet 操作系统的所有重大更新都需要获得代币持有者的批准。
StarkNet 代币初始发行量为 100 亿枚,17% 分配给 StarkWare 投资者,32.9% 分配给核心贡献者,50.1% 分配给基金会。同时,该代币具有增发机制,新的铸造代币和交易费用的一部分将授予给核心基础设施开发人员和智能合约开发人员。
分配给基金会的51%具体用途为:
- 9% ——生态开发者,使用者和社区。包括在 6 月 1 日前与 StarkEx 有过交互的部分用户。
- 9% ——社区退款(Rebates)——StarkNet 代币的退款,以部分支付从以太坊加入 StarkNet 的成本。
- 12% ——资助用于开发、测试、部署和维护 StarkNet 协议的研究者和工作者。
- 10% ——战略储备,用于资助符合基金会使命的生态系统活动。
- 2% ——捐赠给相关领域杰出的的机构和组织,如大学、非政府组织等,由 StarkNet 代币持有者和基金会决定。
- 8.1%未分配——以进一步支持 StarkNet 社区,具体方式由社区决定。
考虑到去中心化生态系统的惯例分配和社区的长期利益,给投资者和核心贡献者的49.9%将有 4 年的锁定期,并且将会采用 1 年的 Cliff(悬崖期)和线性的方式释放代币。
从代币分配可以看出,StarkNet 代币奖励优先考虑核心基础设施和 dApp 的开发人员,而较少倾向于普通用户。
运营数据
StarkEx 这个 toB 产品由于推出较早,且Scale as a service 的模式相对成熟,已经积累了一些用户,如dYdX(目前已出走),Immutable X,rhino.fi,celer 和 Sorare。根据官网显示的数据,StarkEx上累计的交易金额达到了7320亿美元,目前的TVL是4.61亿美元。
另一个产品StarkNet,根据 www.starknet-ecosystem.com 网站上的数据,目前生态中大约有100多个应用,其中数量最多的是Defi(45个)、NFT(24个)和基础设施(18个)。
比较知名的项目中,AAVE 和 Maker都将部署到StarkNet上,两天前(10月29日)刚刚官宣了Aave与StarkWare的第一阶段跨链合作已完成开发。该阶段是Aave v2在以太坊上的aToken跨链至StarkNet的智能合约基础设施,允许网络用户在StarkNet获取跨链aToken。而早在6月份,Maker已经上线了DAI在主网和StarkNet之间的转账。
值得一提的是,此前在 StarkEx 中占据主要TVL的 dYdX 在6月出走,选择了基于Cosmos SDK的独立区块链来推出v4版本的产品。这次事件一定程度上影响了投资人对layer 2和Starkware的信心。
从此次出走事件中也可以看出,真正拥有用户和影响力的应用在选择底层基础设施上拥有更多的话语权和主动权,它们并不依赖于某个单一的底层链,可以主动选择其他的底层公链,甚至自己搭建符合自己需求的应用链。
过去“胖协议瘦应用”的叙事或许会被重新定义。对于各种底层基础设施的项目来说,如何抓住自己生态中的优质应用,做好留存,也成为了当前需要重新思考的问题,毕竟,要捕获更多价值就要捕获更多用户,而真正与用户交互的是应用而不是底层,用户并不关心底层技术实现的原理,只会随着应用迁移而迁移。
结语
拥有强大技术团队的Starkware目前正按照他们的规划逐步开发产品:10月26日,他们官宣了已使用 STARK 证明编程语言 Cairo 写出编写完成 ZK-EVM。
同时他们也面临着一些挑战,比如zk-STARK 目前技术难度比较高,开发速度慢,开发人员少,这给生态应用的发展和留存带来了很多困难。dYdX的出走带走了项目中多数的TVL,暴露出底层基础设施对上层优质应用绑定能力不足的窘境,也让人们看到了优质应用在挑选底层链时强势的话语权。
但是由于技术的优越性,长期来说,我们仍然看好zk-rollup和STARK的发展。后期随着代币释放带来的激励效果以及网络逐渐转向去中心化,Starkware仍将会是Rollup赛道最有力的竞争者之一。