面对最大的技术挑战,我们正朝着在 EVM 兼容环境中部署智能合约开始冲刺。测试网的第一个版本已经上线:您已经可以使用区块浏览器查看 zkSync 2.0 上的活动。在这篇文章中,我们将深入解释每个关键组件、提供进度更新以及下一个版本的计划。
在密码学方面,zkEVM 的指令集已经完成,并且两个实现都完成了:在电路中和在执行环境中。
在编译器方面,用 Solidity 和 Zinc 编写的智能合约现在可以编译成 zkEVM 字节码。
在核心基础设施方面,全节点集成完成,能够成功部署和执行编译后的智能合约。
虽然 zkEVM 和核心 2.0 基础设施已准备好公开,但编译器需要更多的工作来正确覆盖所有边缘情况。为了提供更全面的开发人员体验,我们决定在编译器 100% 可靠后立即开放对 zkEVM、编译器和核心 SDK 的访问。
大多数事情看起来和感觉都一样。以下是一些重要的区别:
Solidity 智能合约
支持以太坊中的大多数操作码!但是,也有一些例外:
此版本不支持 ADDMOD、SMOD、MULMOD、EXP 和 CREATE2 操作码,但将来会支持。
我们暂时不支持 KECCAK256 操作码,而是会自动将其所有调用替换为对另一个抗碰撞哈希函数的调用。KECCAK256 稍后将作为预编译引入。
我们决定不包含 SELFDESTRUCT 操作码,因为以太坊计划将其删除。
1inch Network已部署至zkSync Era:金色财经报道,去中心化交易所流动性聚合器 1inch Network 增加了对 zkSync 的支持,zkSync 是一种用于扩展以太坊网络的 Layer2 解决方案。[2023/4/21 14:16:58]
我们可能会取消对完整 256 位 XOR/AND/OR 操作码的支持,因为这些仅存在于已编译的用于位掩码的 Solidity 代码中。这可以由编译器使用其他操作码来完成。
费用
在 zkSync 2.0 中,有一个不同的 gas 概念。交易价格将根据当前的 L1 gas 价格(由于发布通话数据)和 ZKP 生成成本而波动。智能合约调用将具有最大数量的 zkEVM 步骤和存储写入参数。
Web3 API
下一个版本将包括我们的 Web3 API 实现,它将与以太坊文档定义的 Web3 标准兼容。事件将开箱即用,所有服务都可以轻松集成。
zkSync 包含 L1 没有的功能,例如已提交和最终块的概念。因此,将有其他方法可以让开发人员更精确地控制数据。Web3 客户端代码将接收与以太坊相同的数据,但可以使用 `zksync_` 命名空间请求特殊信息。
由于 zkSync 有多种交易类型,并且使用 EIP712 签名,因此 `eth_sendRawTransaction` 数据的格式会与 L1 不同。但是,编码对应于以太坊 ABI,因此支持它并不困难。
zkSync公布ETH Lisbon黑客松获奖项目:11月14日消息,zkSync在其社交平台公布ETHLisbon黑客松获奖的三个项目,分别是:Testamint、zkSync Patron以及Session Wallet。据悉,这三个项目均创意性的采用了账户抽象(Account Abstraction)。
zkSync此前在6月份的V2升级添加了“账户抽象”,可以减少账户类型的数量,或者减少可以发送交易的ETH余额的实体的数量。[2022/11/14 13:01:42]
签署交易
zkSync 2.0 中的交易可以通过两种方式进行授权(除了优先级队列机制):
用户可以通过签署 EIP712 消息,使用他们的普通以太坊钱包(例如 Metamask 或任何 WalletConnect 钱包)签署交易。
任何账户都可以设置公钥来创建我们内部的 Schnorr 签名来签署交易。这允许基于智能合约的钱包与 zkSync 2.0 进行交互,而无需发送 L1 消息的额外成本。
存储效率提升
每个块仅应用一次存储槽覆盖。这意味着如果多个用户与单个 AMM 合约交互,则 AMM 合约的存储槽只会被覆盖一次。这允许排序器稍后向用户退还单次写入的共享成本。
“预编译”机制是计划中的,但将在稍后发布。我们计划首先支持 keccak256、sha256 哈希和 ECDSA 恢复原语。根据需求和复杂性,可以考虑包含其他预编译,例如 Blake2f 轮函数(以当前形式在以太坊中几乎无法使用)。
Arweave生态存储解决方案Bundlr Network上线zkSync网络:5月11日消息,Arweave生态存储解决方案Bundlr Network已上线以太坊二层解决方案zkSync,zkSync开发人员可以访问Arweave上的Web3数据存储,zkSync上的用户可以使用任何代币(包括以太坊)支付数据上传费用,并为开发人员免费上传100kb以下的数据。[2022/5/11 3:06:54]
进一步的限制
zkSync 2.0 的第一次迭代可能会对每笔交易施加 32 次智能合约调用的额外限制,直到实施适当的记账机制。
执行跟踪将有一个硬性限制,但它与以太坊区块大小的当前限制相当,不应影响大多数协议。
可能还有更多限制,但我们的目标是在最终版本中将它们减少到绝对最小值。
深入了解 zkSync 2.0 架构
您可能听说过区块链三难困境,但在扩展以太坊时,还有第四个因素:可编程性。所有当前的扩展解决方案都存在于为了可扩展性而牺牲一些安全性、去中心化和可编程性的范围内。zkSync 2.0 的设计结合了以下 2 项技术突破,最大限度地发挥了所有 4 项功能:
zkEVM:为我们与 EVM 兼容的 zkRollup 提供动力的引擎,这是唯一具有 L1 安全性和可靠性智能合约支持的解决方案。
zkPorter:一个链下数据可用性系统,其可扩展性比汇总高 2 个数量级。
BiKi平台今日上线ZKS 开盘涨幅474%:据官方消息,BiKi平台今日上线ZKS(ZKSwap),并开放ZKS/USDT交易对,开盘最高涨幅达474%,开盘价0.07USDT,现报价0.253USDT。
BiKi已开启ZKS网格交易、流动性挖矿,用户通过网格宝开启ZKS/USDT网格交易,满足条件即可获得网格+流动性挖矿双收益,一键双挖。[2021/1/6 16:33:10]
(图片来源于zkSync)
由于 zkEVM 和 zkPorter 是可互操作和可组合的,因此 zkSync 2.0 能够显着优于所有其他扩展解决方案。
目前的共识是Eth2 数据分片将在 2022 年底到来,以在不牺牲去中心化的情况下提供指数级更大的数据可用性层。zkSync 的 zkRollup 技术结合 Eth2 数据分片是最终目标,在不牺牲 4 个因素中的任何一个的情况下达到 100,000+ TPS。
状态树
zkSync 2.0 状态树覆盖了以太坊的完整 160 位地址空间。每个帐户将驻留在状态的 zkRollup 部分或 zkPorter 部分。zkRollup 和 zkPorter 帐户完全相同,除了一个组件:保证数据可用性。zkRollup 交易数据通过 calldata 发布到以太坊,zkPorter 交易数据发布到 zkSync Guardian 网络,zkSync 代币持有者参与权益证明。
ZKSwap开发负责人Alex Lee:未来Layer2有望取代以太坊Layer1的大部分功能:ZKSwap开发负责人Alex Lee表示:整个市场需要加强Layer2的基础建设,提高稳定性以及TPS等方面的问题,在未来Layer2有望取代现在以太坊Layer1的大部分功能,不再受限于Layer1的性能瓶颈,从而催生出真正可以被大多数人使用的应用场景。这是区块链应用能够落地的可行路径。ZKSwap通过ZK-Rollups技术将所有的ERC-20 token转移到Layer2上,再基于不断生成的零知识证明来保证Layer1和Layer2状态的一致性,从而让所有的兑换在Layer2上发生,保障用户的资产安全、交易的快速与零手续费。[2020/12/24 16:21:43]
数据发布的地方是成本和安全性之间的权衡。zkPorter 交易比汇总交易便宜得多,但它有可能导致您的资金被冻结。但是,zkRollup 和 zkPorter 帐户的有效性都是通过零知识证明和以太坊来保证的。换句话说,zkPorter 中的资金只能被冻结,不能被盗。
zkRollup 和 zkPorter 帐户的互操作性和可组合性使每个用户都有机会成为 zkSync 中的一等公民。部署在 zkRollup 端的 Uniswap 可以通过 zkPorter 帐户访问以交换最低费用。zkSync 2.0 是一个系统,旨在供整个金融领域的用户参与。
密码学
我们的 VM,最常被称为 zkEVM,不是 EVM 1:1 副本,而是旨在能够运行 99% 用 Solidity 编写的合约并保持其相同的行为,例如在恢复和异常期间。同时,zkEVM 被编写为在电路中高效生成零知识证明。
这是在我们的证明系统没有任何重大变化的情况下完成的;我们继续将 PLONK 与自定义门和查找表(通常称为 UltraPLONK)以及以太坊的 BN-254 曲线一起使用。这是有利的,因为自 2020 年 6 月以来,该证明系统已经在 zkSync 1.0 以及使用相同证明系统的其他项目中进行了实战测试。
再一次,我们很高兴地宣布,经过几个月的努力:zkEVM 的指令集已经完成并在电路和执行环境中实现。
这里有一个重要的区别:电路和执行环境中的实现是分开的,用于不同的目的。电路的工作是生成执行跟踪的证明并提供证人,但这非常慢。另一方面,执行环境是 zkEVM 在 rust 中的直接实现,高效且快速。如果我们依靠电路来生成证明和执行,交易最终确定将需要几个小时。证明生成和简单执行的分离使 zkSync 上的交易能够即时结算。
接下来,我们专注于将 zkEVM 和编译器结合在一起,并将递归结合在一起:块之间的递归,它允许我们为 N 个块发布一个证明,以及块内的递归,它聚合块的不同逻辑部分的子证明. 这是简单的部分!自 2020 年 6 月以来,zkSync 1.0 的主网上已在使用区块之间的递归聚合证明。有关区块内递归以及我们的 zkEVM 工作原理的更多信息,请观看此视频说明。
编译器
(图片来源于zkSync)
我们同时致力于两个针对 zkEVM 的编译器前端:Yul 和 Zinc。Yul是一种中间 Solidity 表示,可以为不同的后端编译为字节码。Zinc是我们用于智能合约和通用零知识证明电路的基于 Rust 的语言。
由于编译器是使用LLVM框架构建的,因此可以将其视为具有前端 Yul → LLVM IR 和后端 LLVM IR → zkEVM 字节码。LLVM 的采用带来了几个主要优势:
LLVM 优化框架无与伦比:它从 LLVM IR 生成最高效的 zkEVM 字节码。
使用较新版本的 Solidity 或 Zinc,编译器前端将处理所有更改,而 LLVM 将使我们无需更改编译器后端。
未来,如果开发人员想用原生 Rust 或 Javascript 编写智能合约,只需为该语言构建编译器前端,智能合约就可以在 zkSync 中开箱即用。
编译器的安全性对我们来说至关重要,并且已经通过了多套测试:
Zinc 和 Yul 编译器中的词法、语法和语义测试。
我们自己的Zinc 和 Solidity集成测试,贯穿整个智能合约生命周期:从解析源代码到合约部署和在 zkSync 上执行交易。
从 Solidity 存储库集成的广泛的测试套件,适用于我们的集成测试工具。
每个套件已经包含数千个测试,我们将把这个数字至少增加一个数量级。
我们的 2 个编译器已经成功部署并执行了两种语言的简单智能合约。但是还有更多的优化需要完成,一些复杂的 LLVM IR 语句需要转换为 zkEVM 字节码。因此,我们决定在编译器处于更健壮的状态之前不发布它。
编译器完成后,我们将专注于使Zinc更具表现力和功能更丰富,然后构建 Rust 编译器前端以允许使用原生 Rust 编写智能合约。
核心基础设施
zkSync 2.0 核心由几个关键角色组成:
完整节点
通过虚拟机的 zkEVM 字节码的预电路执行器环境
该状态在交易发送后的几秒钟内可用,
过滤掉可能导致区块膨胀的明显不正确的交易(例如,交易资金不足),
在内存池中执行交易并生成区块。
证明者
接收区块的见证人并生成零知识证明,
用于并行证明生成的证明者接口,
自定义证明者自动缩放器,可根据需要创建和终止证明者机器。
交互器
用于观看和与以太坊 L1 交互的工具,
根据代币价格、ZKP 生成成本和 L1 gas 价格计算交易费用。
偏执监视器
Prometheus、elastic、sentry、uptime、几个独立的事件通知系统和自定义健康检查服务。
这个核心基础设施功能齐全,已经集成了 zkEVM 执行器。
5月18日,中国互联网金融协会、中国银行业协会、中国支付清算协会三大协会联合发布公告,要求金融机构、支付机构不得开展与虚拟货币相关的业务。紧接着,国务院金融委重磅发声打击比特币挖矿和交易行为.
1900/1/1 0:00:00上个月发生了一些有趣的事情,却被忽视了。Vitalik Buterin写了一份使用 Uniswap 创建链下预言机的提案,由 UNI 代币保护。预言机是加密货币的重要基础设施.
1900/1/1 0:00:006月3日到4日,Kusama网络正式上线第一条公益平行链Statemine。所谓公益平行链可以理解为是网络的基础设施,所以不需要竞拍插槽就能部署到Kusama网络.
1900/1/1 0:00:002021年6月4日,DEX聚合器Matcha在官方博客宣布正式上线2.0版,并称Matcha 2.0是Matcha有史以来最大的更新。金色财经带你速览Matcha 2.0最新功能.
1900/1/1 0:00:001.金色硬核|23个链上数据分析比特币本轮周期 结束了吗金色财经推出金色硬核(Hardcore)栏目,为读者提供热门项目介绍或者深度解读.
1900/1/1 0:00:00我们刚刚经历了历史上最大的月度跌幅,市场明显已经进入了一段相对漫长的不断摩擦投资者底裤的阶段,说熊来了其实也不为过.
1900/1/1 0:00:00