StarkWare: dYdX 和 iMMUTABLE 背后的 Layer2 方案解决商 . StarkWare 所研发的产品主要有 : StarkNet, StarkEx, Cairo.
StarkWare 主要解决了区块链的可扩展性和隐私. StarkWare 开发了一个完整的解决方案, 使用 STARK 技术, 通过 zk-Rollups 和 Validium 模式组成 Volition 来生成和验证计算完整性的证明. StarkWare 的密码证明可以做到零知识、简洁、透明和后量子安全. StarkWare 所研发的产品主要有: StarkNet, StarkEx, Cairo.
主要特点
里程碑
2018: STARK 白皮书发布, 以太坊基金会 Grant
2019: 第一个 Demo 发布 (扩大以太坊效率200倍), StarkEx Alpha 发布测试网, 第二个 Demo 发布 (扩大以太坊效率700倍)
2020: DeversiFi (StarkEx 1.0) 发布主网, VeeDo (基于Stark的VDF) 发布主网, StarkEx Rollup 发布主网, ethSTARK发布, Cairo (图灵完备的针对STARK语言) 以及其 PlayGround 发布, Ziggy STARK (后量子安全的安全签名) 发布, StarkEx 2.0 发布主网
2021: StarkNet 公布, dYdX 与 Immutable X (均为StarkWare的客户) 项目发布主网
iMMUTABLE 与 StarkWare
iMMUTABLE 是第一个 Layer 2 的 NFT 交易平台. Tik Tok 在9月份与 iMMUTABLE 开展了合作, 发布了一系列 NFT.
由于以太坊的本地吞吐量上限为4交易/秒, 限制了任何希望扩展的 DApp. 对于 NFT 来说, 吞吐量瓶颈甚至比普通 Token 更大: 使用 NFT, 一千个 Token 实际上消耗区块链资源的千倍于单个 Token. iMMUTABLE 希望用以太坊原生解决方案来享受以太坊的安全, 开发工具和网络效果, 所以采取了 StarkWare 提供的解决方案.
StarkWare 提供的解决方案的独特功能之一是它能够以多种数据可用性模式进行部署: zk-Rollups 或 Validium. 两者都是基于有效性证明的, 但是在 zk-Rollups 中, 所有数据都在链上提交, 而在 Validium 中, 数据被保存在链外, 并且只有对最新状态的提交, 以及该状态有效性证明的链上提交. iMMUTABLE 以 Validium 模式开始, 提供更低的 gas fee. 由于政策法规规定, 数据可用性委员会 (DAC) 确保用户始终可以访问他们的数据. 所以 iMMUTABLE 切换到了 Volition 的新数据可用性模式, 该模式将允许用户以单一事务粒度选择数据的存储位置——链上 (zk-Rollups) 或链下 (Validium). 同时这样的做法也最大化了性能的拓展.
在 Tik Tok 与 iMMUTABLE 的合作博客文章中, Tik Tok 特别提到了 StarkWare 是第一个碳中和的 L2 拓展解决方案. 在传统互联网公司的视角里, 环保是很重要的, 不环保是很容易受到抨击的, 因此 L2 高性能和节约资源的特性也能吸引传统互联网公司的目光, 给他们铺平道路, 光明正大入局加密货币领域.
StarkWare 提供给 iMMUTABLE 的解决方案最终让 Tik Tok 这个目前最热门的公司找上了 iMMUTABLE 进行合作. StarkWare 所提供的两种部署模式给了客户数据保存方式的灵活性, 不仅符合法规, 同时也让性能得以拓展. 更重要的是, 性能的拓展也让以太坊饱受争议的能耗问题得到了解决, 这会是 Layer 2 的胜利, 更是 StarkWare 的胜利. 在未来, 我们一定会看到更多的传统企业选择以太坊以及 StarkWare 的方式进入区块链领域.
StarkWare 应用为何有如此高的性能?
StarkWare 的 Prover 有各种数学优化和 StarkWare 首先提出的一些优化算法, 同时开发所用的 Cairo 语言有专门数学相关的优化。除此之外交互数据送到 Prover 之前会用 StarkEx 引擎先协调一遍待证明的数据以及批处理. 整个运行流程都做到了全覆盖的优化. 具体细节会在后文中详细探讨.
StarkWare 应用的去中心化程度?
StarkWare 的 StarkNet 上的共识为 zk-STARK. zk-Rollups 不一定是去中心化, 无准入限制的. 但是 StarkWare 所使用的 zk-STARK 是无准入限制的, 与以太坊等公链一样. 在 StarkWare 所做的应用中间过程是会存在一些中心化的服务器来提供一些服务. 但这在一个完整应用的开发中是必要且无法去除的. 就像 uniswap 必须得有个中心化的域名和前端一样. 所以 StarkWare 所做的 dYdX, StarkNet 等依然是去中心化的.
目前来看, StarkWare 无论是从性能还是目前的运行状况, 都领先于 zkSync. zkSync 和 StarkWare 最大的区别还是运作理念. zkSync 的项目都是开源的, 而且团队说自己被替代掉也无所谓, 只要能推动社区和以太坊的发展. StarkWare 公司是 toB 中心化的运作方式, STARK 证明器目前只能 StarkWare 公司使用, 而且做 Cairo 这个语言其实也是不那么对以太坊生态有利的做法 (对开发者友好的做法应该是和 zkSync 或 Optimistic 一样去做 EVM 兼容).
STARK 通过允许开发人员将计算和存储移出链来提高可伸缩性. 链外服务将能够生成 STARK 证明, 证明链外计算的完整性. 然后, 这些证据被放回链上, 供任何利益相关方验证计算. 使用 STARK 将大部分计算工作移出链, 允许现有区块链基础设施以指数级扩展, 同时保持计算完整性.
以太坊数据上链大致流程: 1000笔交易发送给以太坊每个节点 → 每个节点读取1000笔交易 → 节点更新1000笔交易
zk-STARK 数据上链流程: 1000笔交易发送给 zk-STARK → zk-STARK 作为证明者, 生成1个证明 (*生成阶段) → 节点作为验证者读取证明, 更新
*生成阶段: 通常 zk-STARK 证明需要以下过程生成证明. 验证者的证明过程分为两步: 第一步为计算完整性声明经过算术后生成代数中间代码表示, 第二步为经过测试后生成 FRI (StarkWare Co-Founder 2017年所著论文中对证明的优化方法) , 之后经过加密算法后输出可拓展的公开透明知识论据 (也就是 STARK). 简而言之就是通过安全可信的环境以及优化算法生成一个可信并且高性能的证明.
对比完各个 L2 解决方案后, 我们可以发现 zk-Rollups 或许是最接近区块链升级扩容的完美解决方案. 同时 zk-Rollup 的为数不多的几个缺点会在 StarkWare 采用的 zk-STARK 中得到修正.
ZK 证明中主要有 SNARK, STARK, Bulletproof 三种. Bulletproofs 和 STARK 不需要可信设置, STARK 使用公开可验证的随机性来创建不受信任的可验证计算系统. 其中 STARK 相较于其他两种, 证明大小大非常多, 但在计算时的大小和证明速度上有很大优势. 同时 STARK 的安全性更高, 可以抗量子攻击.
上图是 StarkWare 的 Co-Founder 在宣讲时放出的图. 他们测试时使用的 STARK 证明用图里服务器配置运行, 对比其他几种包括 SNARK 算法的性能都高出很多.
区块链浏览器: https://voyager.online
StarkNet 是一个去中心化, 无需许可即可加入且抗审查的 L2 zk-Rollups, 支持以太坊上的通用计算. 它基于图灵完备的 Cairo 语言. 开发人员可以构建应用程序来实现 App 业务逻辑并部署在 StarkNet 上; 用户可以将交易以与以太坊正常交易相同的方式发送到 StarkNet 来执行. StarkNet 节点和参与者将受到经济激励, 以确保网络高效公平运行.
所有 StarkNet 交易将定期进行批处理, 交易在 STARK 证明中得到证明, 最终在以太坊上进行验证. 由于验证 STARK 证明所需的计算工作量与以太坊证明的计算量相比, 呈指数级小, 因此 StarkNet 可以将以太坊扩展几个数量级. 由于所有 StarkNet 状态转换都将经过 STARK 验证,因此以太坊只接受最终有效的状态转换.
主要特点: 性能可拓展性, 开发便利, 针对以太坊生态的可组合性.
StarkEx 是可用于生产环境的 L2 可扩展性引擎, 自 2020 年 6 月起部署在以太坊主网上. StarkEx 利用 STARK 技术为 DeFi 和游戏等应用程序提供可扩展的自托管交易. StarkEx 支持广泛的用例: 现货交易, 永续交易以及 NFT 铸造和交易. 在主网部署之前,超过 5000 万笔 StarkEx 交易在公共和私人以太坊测试网上结算.
StarkEx 目前支持 ETH 代币, ERC-20, ERC-721 代币和合成资产. 此外, 它可以支持其他兼容 EVM 的区块链上的代币.
上图是一个使用了 StarkNet 和 StarkEx 的典型应用的架构图. 假设这个应用是一个叫 Starkswap 的 DEX.
Starkswap 的业务逻辑如下:
https://docs.starkware.co/starkex-v3/crypto/stark-curve
功能细节:
加密算法:
STARK Elliptic Curve, Pedersen Hash Function, KDF. 通过使用以上的加密算法以及参考 https://github.com/authereum/starkware-monorepo/tree/starkex-3.0/packages/starkware-provider#walletconnect 的实例, 第三方钱包可以集成 StarkEx.
Cairo 是第一个生成 STARK 证明的生产级平台. 它是图灵完备的, 而且非常高效. 要在 StarkNet 上部署高性能并且低 gas 费的 Layer 2 应用组件就需要使用 Cairo 来编写应用程序. Cairo 语言不是一门专门的合约语言, 但是可以并且主要用来写类似合约的内容.
zk-Rollups 当前的缺点是通用计算: 将智能合约逻辑直接移植到 rollups 中更具挑战性,因此只有有限的功能可用,例如转移和交易. 然而, Cairo 填补了这个空缺, 可以将智能合约逻辑直接移植到 rollups 中. zkSync 和 Optimistic 的做法分别是让 rollups 做到 EVM 兼容和 EVM equivalency (更加全面并且进一步的 EVM 兼容).
目前 Cairo 语言的生态可以说非常全面但年轻. 在工具链方面一应俱全, 根据这些工具的 GitHub 星数可以判断出并没有收获很大的关注, 但是仓库的开发者在持续更新, 基本在一到两周内都有新的提交. 未来 Cairo 语言会更加开放, 培养更多开发者后, 在 StarkEx 引擎上写 Cairo 代码的工作很可能从 StarkWare 移交到开源开发者手里, 这样对 StarkWare 应用的去中心化会有很大的意义.
更重要的是 OpenZeppelin 正在做 Cairo 语言的 ERC-20, ERC-721 等基础模版的实现 (https://github.com/OpenZeppelin/cairo-contracts). 这个实现的意义就是能方便开发者在此实现的基础上开发, 能让开发者放心且大胆地拷贝此实现, 迅捷开发并且不用过于担心安全性. 从仓库的 commit 来看, OpenZeppelin 目前有专人来为 Cairo 语言做支持, 证明 OpenZeppelin 对 StarkWare 生态的重视.
作为一家 Layer 2 解决方案提供商, StarkWare 做出了 dYdX 和 iMMUTABLE 这样的爆款产品. 在各种解决方案中, StarkWare 的 zk-STARK 技术支持了 Layer 2 上最大的交易数量. 从 Prover 的数学优化, Cairo 语言的数学优化, 到 StarkEx 引擎的证明协调, StarkNet 作为一个去中心化 zk-STARK 网络, 提供了极高的性能, 做到完全运行流程的优化. StarkWare 通过前沿的技术和完整的技术服务, 支撑了 Layer 2 应用庞大的交易量, 未来也必将拥抱开源, 做到更去中心化, 帮助了以太坊 2.0 的建设.
相关链接:
iMMUTABLE: https://www.immutable.com/blog/design-architecture, https://medium.com/starkware/starkex-now-for-nfts-bfdc9f4655a2
Layer 2: https://academy.moralis.io/blog/comparing-layer-2-ethereum-scaling-solutions, https://www.bcskill.com/index.php/archives/965.html, https://l2beat.com/faq/
ZK: https://ethereum.stackexchange.com/questions/59145/zk-snarks-vs-zk-starks-vs-bulletproofs-updated/63778, https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/, https://medium.com/unitychain/reveal-mysterious-zk-starks-42d00679c05b
StarkNet: https://medium.com/starkware/on-the-road-to-starknet-a-permissionless-stark-powered-l2-zk-rollup-83be53640880, https://starkware.co/product/starknet/, https://medium.com/starkware/starknet-alpha-is-coming-to-mainnet-b825829eaf32
StarkEx: https://docs.starkware.co/starkex-v3/architecture/solution-architecture
Cairo: https://medium.com/starkware/hello-cairo-3cb43b13b209, https://www.youtube.com/watch?v=QPNp8w9rx7o, https://arxiv.org/abs/2109.14534
zkSync: https://www.reddit.com/r/ethereum/comments/q8q822/ama_were_matter_labs_the_team_behind_zksync_the/, https://members.delphidigital.io/reports/ethereum-layer-2-rollup-debate-optimism-starkware-arbitrum-and-zksync/, https://twitter.com/KyberNetwork/status/1372593913786109953, https://blog.kyber.network/research-trade-offs-in-rollup-solutions-a1084d2b444
General: https://academy.moralis.io/blog/what-is-starkware-and-starks