注册送300元打到3000

让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

注册送300元打到3000但我将用一句话来详尽它
发布日期:2023-03-16 08:46    点击次数:117

注册送300元打到3000但我将用一句话来详尽它

原文:A Developer’s Guide to the zkGalaxy注册送300元打到3000

前年夏天,Vitalik 写了一篇博文,概述了不同类型的 zkEVM(零学问以太坊诬捏机)。Vitalik 字据性能和兼容性来界说与衡量。

这是一个相配有用的启发式方法,以分手解救 zkEVM 的方法。可是,zkEVM 是构建零学问应用活动的通盘可能方法的一个子集。对于思要利用 zk 贪图的特有属性,即通俗性、零学问和正确性的活动员来说,zkEVM 可能不是最佳的聘请。通过讲解悉数设备用具集,本文但愿提供一个指南,匡助设备者在决策进程中聘请合适的 zk 堆栈。

抽象复杂度的力量

在往时的一两年中,zk 用具有了弘远的卓越。使得平素软件的设备东说念主员不错利用 zk 的遒劲属性,而不需要深入了解令东说念主生畏的基础数学和工程。另一方面,为高级用户提供的用具激增,使 zk 巨匠好像极其精致地轨则 zk 堆栈。

当代软件是成就在无数的抽象层上的,以最大轨则地提魁伟师的坐褥力。工程中的抽象有许多上风,这些上风在某种进度上是直不雅的--网罗设备者不需要深入了解操作系统的责任旨趣。

成就邃密的、可重叠使用的抽象层的要津是封装一个层的复杂性,然后为堆栈中更高的层提供简便但有进展力的接口。正确的作念法是,这使得具有不同专科领域和学问的设备东说念主员好像在悉数堆栈中成就有用的用具。

绝不奇怪,这些原则也适用于 zk 系统,而且这些抽象层正变得饱和熟悉,一个 zk 生人今天就不错运诓骗用它们并构建应用活动。

zk 堆栈与各层的一些用具/手艺实例

初级别的 zk 设备

Arkworks-rs

Arkworks-rs 是一个 Rust 库的生态系统,它为 zkSNARK 应用活动的子组件提供高效和安全的收场。Arkworks 为设备者提供了必要的接口,以定制 zk 应用活动的软件栈,而无须再行收场与其他现存库的共性。

在 Arkworks 之前,创建一个新的 zk 应用活动的唯一方法是重新运行构建一切。与定制的垂直整合用具比较,Arkworks-rs 的主要上风在于其机动性水平,减少重叠工程,以及减少审计责任。Arkworks 组件之间合理的接口线允许升级的速率,不错使堆栈在 zk 手艺快速改进的进程中保抓策划性,而不会迫使团队重新运行重建一切。

优点

通过模块化收场机动性

减少重叠代码

镌汰工程本钱

减少审计/bug 的名义积

无需紧要重构即可升级任何组件

易于在快速发展的 zk 环境中试验新原语

过失

需要深入了解完整的软件堆栈

如果莫得正确默契,太多的轨则会导致脚枪

精致轨则需要堆栈通盘级别的专科学问。

章子怡的演技对所有人来说都是显而易见的,电影屏幕上的形象一直保持着眼前的光彩。有人说章子怡是为电影而生的。不久前,一张章子怡15岁参加舞蹈比赛的旧照片被曝光,照片中的章子怡年轻、可爱、讨人喜欢、身材优美、身材优美、表情丰富。

Arkworks 照实提供了一些合理的默许诞生。

zk 领域专用言语(DSL)

为了创建一个对于某些贪图的解说,当先这个贪图必须以一个 zkSNARK 系统不错默契的式样来抒发。一些特定领域的言语照旧创建了编程言语,允许应用设备者以这种花样抒发他们的贪图。这些言语包括 Aztec Noir、Starknet 的 Cairo、Circom、ZoKrates 和 Aleo 的 Leo 等等。底层的解说系统和数学细节一般不会流露给应用设备者。

设备者的训戒

zkApp 的设备者必须熟练地用特定领域的言语编写活动。其中一些言语看起来很像咱们熟悉的编程言语,而其他言语可能格外难学。让咱们来分析一下其中的几个。

Cairo - Starkware DSL 对于在 Starknet 上构建应用活动是必要的。编译成 Cairo 特有的汇编言语,可由 Cairo zkVM 解释。

ZoKrates - ZoKrates 是一个闲逸 SNARK 常见需求的用具包,包括一种编写电路的高级言语。ZoKrates 在弧线、解说决策和后端方面也有一些机动性,允许设备者通过简便的 CLI 参数进行热交换。

Circom — Circom 是一种用于构建电路的专用言语。面前,它是坐褥电路的本体言语。该言语不是稀零安妥东说念主体工程学,使设备者好坏地意志到正在编写电路。

Leo——Leo 被设备为 Aleo 区块链的言语。Leo 有一些肖似 Rust 的语法,特意用于区块链里面的现象退换。

Noir – 受 Rust 启发的语法。围绕 IR 而不是言语自己构建,这意味着它不错有一个率性的前端。

适用于谁

任何思要在其应用活动中利用 zk 的特有属性的应用活动设备东说念主员。

其中一些言语照旧过数十亿好意思元的实战测试,如在 ZCash 和 Starknet 等链的流动。天然咱们将征询的一些神气还莫得透顶准备好用于坐褥,但使用其中一种言语编写电路是面前最佳的战略,除非需要像 Arkworks 这么的用具包提供的更精致的轨则。

优点

用户不需要了解底层的 zk 细节

有一定的坐褥训戒,今天就不错使用

可在链上考据

生态系统不成知

过失

用户需要学习一个新的 DSL

围绕这些言语的用具和解救齐是零丁的

对底层解说堆栈险些莫得轨则权(面前)。

zkEVMs

zkEVM 的主要规划是采选 Ethereum 现象退换,并使用通俗的零学问正确性解说来解说其灵验性。正如 Vitalik 的帖子中提到的,有许多方法不错作念到这极少,并有深邃的相反和相应的衡量。

通盘这些方法之间的主要手艺区别在于,在言语栈中,贪图究竟在那里被退换为不错在解说系统中使用的式样(算术化)。在一些 zkEVM 中,这发生在高级言语中(Solidity、Vyper、Yul),而其他方法例试图将 EVM 一直解说到操作码级别。这些方法之间的衡量在 Vitalik 的帖子里有深切的敷陈,但我将用一句话来详尽它。在堆栈中发生的退换/算术化越低,性能亏空就越大。

高操作本钱

为诬捏机创建解说的主要挑战是,电路的大小与每条实行教唆的通盘可能教唆的大小成比例地增长。这是因为电路不知说念在每个活动中会实行哪些教唆,是以它需要解救通盘的教唆。

在通用电路中,每条实行的教唆的本钱与通盘解救的教唆之和成正比。

这在试验心仪味着,你要为最崇高的教唆支付(性能本钱),即使你仅仅在实行最简便的教唆。这导致了通用性和性能之间的径直衡量--当你为通用性增多更多的教唆时,你要为你解说的每一条教唆付出代价!这便是通用电路的根柢问题。

但跟着 IVC(增量可考据贪图)等手艺的新发展注册送300元打到3000,这种逝世不错通过将贪图分红更小的块来改善,每个块齐有特意的、更小的子电路。

今天的 zkEVM 收场使用不同的战略来消弱这个问题的影响......举例,zkSync 去掉了更崇高的操作(主如若加密的预编译,如哈希值,以过甚他一些操作)

zkEVM 的理思客户是那些需要比L1以太坊上的来回低廉几个数目级的智能合约应用。这些设备东说念主员不一定有专科学问或带宽来重新运行编写 zk 应用活动。因此,更可爱用熟悉的更高级的言语来写应用活动,如 Solidity。

开阔设备团队

彭胀 Ethereum 是面前 zk 手艺最需要的应用。

zkEVM 是一个以太坊彭胀措置决策,不错无摩擦地缓解逝世L1 dApp 设备者的拥挤问题。

设备者体验

zkEVM 的规划是解救一个尽可能接近面前以太坊设备的设备者体验。透顶解救 Solidity 意味着团队无须成就和嘉赞多个代码库。这在某种进度上是不切本体的,因为 zkEVM 需要交换一些兼容性,以便好像在合理的时候内生成合理畛域的解说。

zkSync 与 Scroll

zkSync 和 Scroll 之间的主要区别在于它们在堆栈中的何处/何时实行算术运算——也便是说,它们从平素 EVM 构造退换为 SNARK 友好默示的位置。对于 zkSync,当他们将 YUL 字节码退换为他们我方的自界说 zk 教唆集时,就会发生这种情况。对于 Scroll 来说,这发生在临了,当本体的实行追踪用本体的 EVM 操作码生成时。

因此,对于 zkSync,在生成 zk 字节码之前,一切齐与与 EVM 交彼此同。对于 Scroll,在实行本体的字节码之前,一切齐是相通的。这是一个深邃的相反,它以性能疏浚解救。举例,zkSync 不会像开箱即用的调试器那样解救 EVM 字节码用具,因为它是透顶不同的字节码。天然 Scroll 很难从教唆聚会赢得邃密的性能,但这并不是为 zk 假想的。这两种战略各故意弊,最终有许多外生身分会影响它们的相对顺利。

zkLLVM 电路编译器

正如防御征询的那样,设备 zk 应用活动有无数不同的聘请,通盘这些齐有我方特有的衡量。此图表将匡助转头此决策矩阵,以便字据您的 zk 专科学问水温暖性能需求,聘请最恰当该责任的用具。这不是一个完整的列表,会跟着 zk 的发展更新。

zkLLVM 被假想为现存 LLVM 基础设施的彭胀,LLVM 基础设施是一个行业尺度用具链,解救许多高级言语,如 Rust、C、C++ 等。

怎么运行

思要解说某些贪图的用户只需用 C++ 收场该贪图即可。zkLLVM 采纳其修改后的 clang 编译器(面前为 C++)解救的高级源代码,并生成电路的一些中间默示。此时,电路已准备好进行考据,但用户可能但愿字据一些动态输入来考据电路。为了处理动态输入,zkLLVM 有一个称为分派器的附加组件,它生成一个分派表,其中包含通盘输入和见证,这些输入和见证已透顶预处理并准备好与电路通盘进行解说。

这两个组件是生成解说所必需的。表面上,用户不错我方生成解说,但由于这是一项有点专科化的贪图任务,可能需要用钱请领有硬件的其他东说念主作念这件事。对于这种来回敌手发现机制,=nil;Foundation 还成就了一个“解说商场”,解说者竞相为支付给他们的用户解说贪图。这种目田商场动态将导致解说者优化最有价值的解说任务。

衡量轻重

由于每个要解说的贪图任务齐是唯一无二的,何况会生成不同的电路,因此解说者需要好像处理的电路数目是无尽的。这种强制的通用性使得单个电路的优化变得用功。解说商场的引入允许对商场觉得有价值的电路进行专科化。如果莫得这个商场,由于这种天然的冷启动问题,劝服考据者优化该电路将是一项挑战。

另一个衡量是经典的抽象与轨则。风物采纳这种易于使用的界面的用户正在祛除对底层加密原语的轨则。对于许多用户来说,这是一个相配灵验的衡量,因为让密码学巨匠为您作念出这些决定频繁更好。

优点

用户不错用熟悉的高级言语编写代码

通盘的 zk 里面结构齐被抽象出来,不受用户影响

不依赖增多很是支出的特定 "诬捏机 "电路。

过失

每个活动齐有一个不同的电路。难以优化。(解说商场部分措置了这个问题)

交换/升级里面 zk 库并非易事(需要分叉)

zkVM

zkVM 神态了通盘 zk 诬捏机的超集,而 zkEVM 是一种特定类型的 zkVM,由于其在现在的流行,值得动作一个单独的主题进行征询。除了定制的加密 VM 除外,还有一些其他神气正在奋勉于构建基于 ISA 的更通用的 zkVM。

系统不错解说不同的教唆集架构 (ISA),举例新 VM 中的 RISC-V 或 WASM,而不是解说 EVM。奋勉于这些通用 zkVM 的两个神气是 RISC Zero 和 zkWASM。

让咱们在这里深入了解一下 RISC Zero,以解说这种战略是如何责任的,以及它的一些上风/罅隙。

Risc Zero

Risc Zero 解说生成的高级架构

RISC Zero 好像解说任安在 RISC-V 架构上实行的贪图。RISC-V 是一个开源的教唆集架构(ISA)尺度,照旧越来越受迎接。RISC(精简教唆集贪图机)的理念是以最小的复杂性成就一个极其简便的教唆集。这意味着堆栈中较高级次的设备者在使用这种架构收场教唆时最终会承担更大的负荷,同期使硬件收场愈加简便。

这种理念也适用于一般的贪图,ARM 芯片一直在利用 RISC 作风的教唆集,并运行主导转移芯片的商场。事实解说,更简便的教唆集也具有更大的能量和芯单方面积收尾。

这个类比对于生成 zk 解说的收尾来说格外适用。正如前边所征询的,在解说 zk 的实行轨迹时,你要为轨迹中每一项的通盘教唆的本钱之和买单,是以更简便、更少的总教唆是更好的。

如何责任

从设备者的角度来看,使用 RISC Zero 来处理 zk 解说,很像使用 AWS Lambda函数来处理后端劳动器架构。设备东说念主员通过简便地编写代码与 RISC Zero 或 AWS Lambda 互动,劳动处理通盘后端复杂性。

对于 RISC Zero,设备者编写 Rust 或 C++(最终是任何针对 RISC-V 的东西)。然后,系统接受编译进程中产生的 ELF 文献,并将其动作诬捏机电路的输入代码。设备者只需调用解说,复返一个收条(包含实行追踪的 zk 解说)对象,任何东说念主齐不错从任何场地调用`考据'。从设备者的角度来看,莫得必要了解 zk 是如何责任的,底层系统处理通盘这些复杂的问题。

为了解救这么一个通用接口,需要大齐的支出(在解说大小和生成速率方面)。

需要对解说生成手艺进行紧要蜕变,以收场对现存库的世俗解救

预建的可重叠使用电路

对于一些对区块链应用或其他场地稀零有用的基本和可重叠使用的电路,团队可能照旧为你构建和优化了这些电路。你只需为你的特定用例提供输入即可。举例,Merkle 包容解说是加密货币应用中广阔需要的东西(空投清单、龙卷风现款等)。动作一个应用活动的设备者,你老是不错再诓骗用这些经过实战训练的合约,仅仅在上头修改一些层,以创建一个特有的应用活动。

举例,Tornado Cash 的电路不错再行用于私东说念主空投应用活动或私东说念主投票应用活动。Manta 和 Semaphore 正在构建一个完整的用具包,包括像这么的通用电路小用具,不错在 Solidity 合约中使用,而无需了解或不了解底层的 zk moon 数学。

正如防御征询的那样,设备 zk 应用活动有无数不同的聘请,通盘这些齐有我方特有的衡量。

此图表将匡助转头此决策矩阵,以便字据您的 zk 专科学问水温暖性能需求,聘请最恰当该责任的用具。这不是一个完整的列表,会跟着 zk 的发展更新。

zkGalaxy 应用设备者指南

1. 初级 Snark 库

适用场景

需要对悉数解说堆栈进行精致轨则

幸免重建群众组件

尝试解说决策、弧线和其他初级原语的不同组合

不适用场景

寻找高级解说接口的生人

可选用用具

Arkworks-rs

2. zk DSLs

适用场景

思使用一些久经训练的言语

需要最小的电路尺寸,风物祛除抽象

不适用场景

需要对解说的后端进行精致轨则(面前,不错为一些 DSL 交换后端)

可选用用具

Circom

Aztec Noir

Cairo

ZoKrates

Leo

3. zk 编译器

适用场景

不肯意承担通用电路的支出

思用熟悉的言语编写电路

需要高度定制的电路

不适用场景

思要轨则底层加密原语

需要一个照旧高度优化的电路

可选用用具

nil zkLLVM

4.zkEVM

适用场景

有一个照旧在 EVM 上运行的 dApp

需要为用户提供更低廉的来回

但愿将部署到新链的责任量降到最低

只珍爱 zk(压缩)的通俗性

不适用场景

需要完好的 EVM 等效性

需要 zk 的秘密属性

有一个非区块链用例

可选用用具

zksync 2.0 

Polygon zkEVM

Scroll

Starknet

5.zkVM

适用场景

思用高级言语编写代码 

需要解说该实行的正确性 

需要向考据者笼罩该实行的一些输入信息

险些莫得 zk 方面的专科学问

不适用场景

在蔓延极低的环境中(它仍然很慢)。

有一个弘远的活动(面前)。

可选用用具

RISC Zero

zkWASM

6. 预建的可重叠使用的电路

适用场景

有一个依赖常见的 zk 构建模块的智能合约应用,比如 Merkle 包容。

对 zk 底层的东西险些莫得专科学问

不适用场景

有高度专科化的需求

用例不被预建电路所解救 

可选用用具

Manta Network

Semaphore

论断

zk 处于多项手艺的前沿,构建它需要对数学、密码学、贪图机科学和硬件工程有深切的默契。可是,跟着每天齐有越来越多的抽象层可用,应用活动设备东说念主员无需博士学位即可利用 zk 的遒劲功能。跟着时候的推移,通过对堆栈的通盘级别进行优化,解说时候的逝世会冉冉捣毁,咱们可能会看到针对平素设备东说念主员的更简便的用具。

致谢

本文编译责任赢得 DAOrayaki 社区的解救与响应注册送300元打到3000。



友情链接:

Powered by 注册送300元打到3000 @2013-2022 RSS地图 HTML地图