您的位置:首页 >基金 >

金色观察 | zkSync 2.0要来了 这里有zkEVM和zkSync 2.0的最全说明

2021-10-19 18:47:28来源:金色财经

2021年10月13日,以太坊Layer2解决方案zksync开发者MatterLabs展示一个带有Solidity智能合约和Web3前端的功能齐全的dApp UniSync,这是MatterLabs利用Uniswap V2智能合约和前端部署在zkSync 2.0测试网alpha版上的dAPP。用户可以通过uni.zksync.io页面领取测试代币测试此dAPP。

MatterLabs表示,自6月1日zkSync 2.0测试网alpha版上线后,solidity编译器状态很稳定,而且完成了带有额外的Layer2特定功能的Web3 API的开发,实现了首个EVM兼容的zkRollup。

MatterLabs官方还透露,zkSync 2.0测试网将很快上线,正通过“zkSync 2.0 Testnet: North Star”计划欢迎项目方入驻。这也意味着zkSync 2.0主网越来越近了。

金色财经汇总了关于zkEVM和zkSync 2.0的最全说明。

什么是zkSync 2.0

zkSync 2.0是由Matter Labs构建的与EVM兼容的ZK Rollup,由Matter Labs开发的zkEVM提供支持。

而zkSync 1.0已上线支付近1.5年,zkSync 1.0

降低主网转帐成本约50倍,

完成近400万笔交易,

在最近的4轮Gitcoin捐款中98%的交易使用zkSync

什么是zkEVM?为什么它很重要?

zkEVM是一种以兼容零知识证明计算的方式执行智能合约的虚拟机。这是构建兼容EVM的ZK rollup,同时保留经过实战测试的代码和在使用Solidity多年后获得的知识的关键。zkEVM保留了EVM语义,但也是ZK友好的,并采用了传统的CPU架构。

zkEVM的推出代表了加密技术的一个重要转折点。直到最近,它仍被认为只是一种理论上的可能性,需要数年时间才能实现。但在过去一年,整个零知识证明生态系统前进的步伐超出了大家的预期。并且由于多项研发突破使zkEVM成为可能,Solidity程序员现在可以最先接触到零知识证明的无与伦比的扩展性、安全性和UX优势。

基础知识

什么是ZK Rollup?

ZK Rollups是2层扩展解决方案,它使用有效性证明来扩展计算:每批交易都带有一个由以太坊智能合约验证的加密证明 (ZK-SNARK)。这样,在区块最终确定之前,所有以太坊完整节点都会对每笔交易进行完全验证。

ZK Rollup安全性如何?

在所有扩展解决方案中,ZK Rollups是最安全的,完全依靠数学,从而完全继承L1的安全性,这对于在高度对抗性环境中的功能至关重要。相反,其他扩展解决方案依赖于经济担保或第三方,因此提供的安全属性要弱得多。

ZK Rollups中状态更改的验证是通过计算零知识证明来完成的:如果任何状态更改无效,则无法生成证明,反过来,这意味着实体验证不能包括无效的状态更改。这就是我们称它们为排序器(sequencers)而不是验证者(validators)的原因:它们不验证交易,以太坊智能合约依靠纯数学来验证。我们不需要信任他们或监控他们的欺诈行为,因为他们不能进行任何欺诈。

ZK Rollup的可扩展性如何?

ZK Rollups可以在峰值负载下提供高达2000的TPS,但它会变得更好。

ZK Rollups也是唯一一个可以让一个系统提供数量级规模扩展的L2,zkPorter可以提供高达20000的TPS。

nDgjafU1nbbgdFMlEhdXqTfMHgTuSQvDST20mOkb.png

zkPorter是什么?

zkPortor将数据可用性——重建状态所需的基本交易数据——放在链下而不是以太坊上。取而代之的是,使用zkSync代币抵押者的权益证明来保护数据可用性。这实现了更高的可扩展性(数万TPS),从而实现了与侧链相当的超低交易费用(几美分)。

zkPorter的安全性仍然优于任何其他L1或侧链。在最坏的情况下,恶意行为者控制排序器和超过2/3的总权益,他们可以签署有效的状态转换,但保留数据。在这种情况下,状态被“冻结”,用户将无法退出,但攻击者的stake也被冻结。因此,拥有大量权益的攻击者没有直接的方式从漏洞利用中获得经济利益。

zkSync中的交易完成(transaction finality)是什么?

排序器将为交易提供快速的链下确认。这种确认是半可信的:排序器不能触发无效的状态更新(例如窃取资金),但在确认后仍可能无法包含交易,或者在短时间内重新排序交易。

当生成零知识证明并将其发布到以太坊时,交易被视为最终交易。根据活动情况,这可能需要 15分钟到3小时不等。

和其他扩容方案的比较

zkSync 2.0和乐观rollup(例如 Arbitrum、Optimism)之间的主要区别是什么?

1) 显著更高的安全性

ZK rollup消除了对观察者(watcher)的依赖,用加密安全取代了博弈论的经济安全——你相信纯数学而不是激励参与者。

2) 更高的资金效率

在OR中,任何资产的原生提款都需要很长时间(最佳情况:1 周)。这是一个安全参数,在安全性没有指数级下降的情况下无法减少。

对于同质化代币,这个问题可以通过在桥的另一边有大量闲置流动性来缓解。为了补偿资金的机会成本,用户需要支付绕过等待期的费用。

对于较小的资金,这可能是可以接受的,但对于专业交易者来说,这已经构成了巨大的成本,并将反映在他们的利润率上。对于需要定期在L1和L2之间转移大量流动性(数十亿)的机构来说,这种解决方案效率不高,因为流动性提供者不太可能让这么多资金闲置。

3) NFT的用户体验

NFT的原生提款无法加速——流动性提供者解决方案不适用,因为NFT是独一无二的。因此,要撤回NFT,用户必须真正等待1周或更长时间。

在zkSync中,任何提款都会在15分钟到3小时之间完成,当活动较多时,提款时间会更快。

4) 交易成本

对于大多数流行的加密用例,ZK Rollups更便宜,因为它需要在链上发布的数据量最少(没有签名和交易参数)。

但是,对于一些常见的用例,成本节省的数量级要大得多。具体来说,ZK Rollups只需要将最终更改发布到状态,并且由于许多交易进入相同的存储槽,因此可以摊销成本。例如,同一区块中的所有交易和预言机更新交易的数据可用性成本为零。

最后,zkSync 2.0将有一个名为zkPorter的扩展,通过将数据放在链下,提供1-3美分的固定交易费用。乐观rollup从根本上不能有这样的链下数据可用性扩展,因为没有公共数据,观察者无法验证每笔交易的有效性。因此,他们不可能向更喜欢超低费用而非安全性的用户提供这样的混合系统。

使用zkSync与侧链(例如Matic/Polygon、BSC、Solana、Avalanche)相比如何?

以太坊侧链是一个单独的L1,具有自己的安全机制以及它与以太坊之间的桥梁。有时桥接验证者与侧链验证者相同并使用相同的抵押机制(例如在Polygon/Matic PoS的情况下)。

关于这个话题最重要的一点是,无论侧链本身如何被保护,当它被用作扩展解决方案时,资产的安全性始终取决于大多数桥接验证者的善意。如果大多数人受到损害,他们可以不可逆转地窃取所有资产。由于大多数网桥在低延迟共识要求下以DPoS模型运行,因此大部分stake通常仅由物理上位于同一数据中心的少数验证者服务器控制。所有这些服务器被入侵的风险是非常重要的,而且不仅仅是理论上的威胁。

zkSync 2.0为其用户提供两种帐户类型:ZK Rollup和zkPorter。对它们中的每一个进行比较:

1) ZK Rollup与侧链

ZK Rollup提供与L1本身相同级别的安全性,但成本更高(大约是L1成本的1/50)。另一方面,侧链依靠诚实多数的假设来实现低得多的费用。

2) zkPorter与侧链

zkPorter提供类似侧链的超低费用,但安全性提高了一个数量级。

zkPorter依靠以太坊来保证交易有效性,依靠zkSync代币抵押者来保证数据可用性。

在最坏的情况下,恶意行为者控制排序器和超过2/3的总stake,他们可以签署有效的状态转换,但保留数据。这将冻结状态,用户将无法撤回,但攻击者的权益也会被冻结。

这仍然是比侧链更有力的保证,因为没有黑客可以直接被利用,被入侵也没有经济利益。此外,监护人节点可以在消费者级别硬件上运行,因此它们不需要DPoS。这意味着更高的去中心化程度,从而带来更高的数字安全性:黑客可能需要破坏数百个甚至数千个守护节点来控制大部分股权stake。

底线

无论用户选择哪种zkSync帐户类型,它都会比侧链安全得多。ZK Rollups将提供最高的安全性,而zkPorter将提供可比的成本。在任何情况下,所有用户都将能够彼此无缝交互,从而形成更大的流动性池。

对开发者意味着什么

zkSync是否支持Solidity智能合约?

是的

大多数DeFi和NFT项目无需更改代码即可运行。但是,在第一个版本中,对SHA256和 Keccak256的调用将被编译器自动替换为电路友好的哈希函数。目前也不支持其他一些加密原语,例如ecrecover和加密预编译。

UI如何与智能合约交互?可以重用当前的前端吗?

可以通过我们的Web3 API和Ethers SDK与智能合约和zkSync网络完全交互:

对于读取请求:任何语言的任何符合web3的框架都可以开箱即用,并具有额外的可选zkSync L2特定功能。

对于写请求(发送交易):由于L1和L2之间的根本区别,将不得不编写一些额外的代码(例如,zkSync支持以任何代币支付费用,因此发送交易将涉及选择代币支付费用) .

所以,是的!开发者只需进行少量更改即可重用当前的前端(发送交易是不同的)。

用户如何提交交易?支持哪些钱包?

对于与智能合约的交互,用户将使用calldata的哈希值签署EIP712消息。由于EIP712基于原生以太坊签名,所有钱包,甚至硬件钱包,都无需任何扩展即可运行。

查看更多