链资讯 链资讯
Ctrl+D收藏链资讯
首页 > AVAX > 正文

ARK:ZK开发者必读:从入门到高阶的可选工具_StarkNet

作者:

时间:

原文:ADeveloper’sGuidetothezkGalaxy去年夏天,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环境中试验新原语缺点需要深入了解完整的软件堆栈如果没有正确理解,太多的控制会导致脚精细控制需要堆栈所有级别的专业知识。Arkworks确实提供了一些合理的默认设置。zk领域专用语言(DSL)

Mina Protocol计划将ZK智能合约引入主网:金色财经报道,Mina Protocol在社交媒体宣布该协议将迎来重大升级,计划将ZK智能合约引入主网,旨在大幅增加使用Mina构建的社区活动和产品。

升级的主要特点包括:使用o1js更轻松地实现zkApp可编程性;新的证明系统Kimchi增强安全性和效率;取消超额奖励,在主网早期阶段增加质押采用的临时激励措施。

Testworld Mission 2.0.正在进行升级准备工作。[2023/9/9 13:27:52]

为了创建一个关于某些计算的证明,首先这个计算必须以一个zkSNARK系统可以理解的形式来表达。一些特定领域的语言已经创建了编程语言,允许应用开发者以这种方式表达他们的计算。这些语言包括AztecNoir、Starknet的Cairo、Circom、ZoKrates和Aleo的Leo等等。底层的证明系统和数学细节一般不会暴露给应用开发者。开发者的经验

zkApp的开发者必须熟练地用特定领域的语言编写程序。其中一些语言看起来很像我们熟悉的编程语言,而其他语言可能相当难学。让我们来分析一下其中的几个。Cairo-StarkwareDSL对于在Starknet上构建应用程序是必要的。编译成Cairo特有的汇编语言,可由CairozkVM解释。ZoKrates-ZoKrates是一个满足SNARK常见需求的工具包,包括一种编写电路的高级语言。ZoKrates在曲线、证明方案和后端方面也有一些灵活性,允许开发者通过简单的CLI参数进行热交换。Circom—Circom是一种用于构建电路的专用语言。目前,它是生产电路的实际语言。该语言不是特别符合人体工程学,使开发者敏锐地意识到正在编写电路。Leo——Leo被开发为Aleo区块链的语言。Leo有一些类似Rust的语法,专门用于区块链内部的状态转换。Noir–受Rust启发的语法。围绕IR而不是语言本身构建,这意味着它可以有一个任意的前端。

ZK开发商Nil Foundation推出zkLLVM新技术:2月2日消息,ZK技术开发商Nil Foundation发布一项新技术zkLLVM,使开发人员能够使用流行的编码语言Rust和C++来构建零知识电路,从而显着减少工作负载。

LLVM代表“低级虚拟机”,指的是一组开源代码库,开发人员使用这些库将可读代码“编译”为计算机可以解释的格式。

zkLLVM项目还将自动插入Nil Foundation最近宣布的ZK证明市场,它创建该市场是为了帮助ZK团队分担他们的工作,并将某些类型的计算外包给第三方。[2023/2/3 11:44:17]

适用于谁

任何想要在其应用程序中利用zk的独特属性的应用程序开发人员。其中一些语言已经过数十亿美元的实战测试,如在ZCash和Starknet等链的流动。虽然我们将讨论的一些项目还没有完全准备好用于生产,但使用其中一种语言编写电路是目前最好的策略,除非需要像Arkworks这样的工具包提供的更精细的控制。优点用户不需要了解底层的zk细节有一定的生产经验,今天就可以使用可在链上验证生态系统不可知缺点用户需要学习一个新的DSL围绕这些语言的工具和支持都是孤立的对底层证明堆栈几乎没有控制权。zkEVMs

zkEVM的主要目标是采取Ethereum状态转换,并使用简洁的零知识正确性证明来证明其有效性。正如Vitalik的帖子中提到的,有许多方法可以做到这一点,并有微妙的差异和相应的权衡。所有这些方法之间的主要技术区别在于,在语言栈中,计算究竟在哪里被转换为可以在证明系统中使用的形式。在一些zkEVM中,这发生在高级语言中,而其他方法则试图将EVM一直证明到操作码级别。这些方法之间的权衡在Vitalik的帖子里有深刻的论述,但我将用一句话来概括它。在堆栈中发生的转换/算术化越低,性能损失就越大。

高操作成本

ZKSwap公布新产品L2.Cash细节:Layer 2去中心化交易所ZKSwap分享了新产品L2.Cash的细节。该产品可以免费使用,因为ZKSwap的所有Layer 2交易100%免费,用户仅为向Layer 1的存取款支付费用。L2.Cash应被称为零售交易的支付协议,因其是L2 Labs为零售用户和商家开发的第一个“开箱即用”的解决方案。由于zk-proof基础设施允许极低的交易延迟和L1/L2状态的完全一致性,L2.Cash可实现几乎即时的交易,确保所有ERC-20代币最大可达到1000 Tx/s的处理效率,同时声称拥有高效的空投功能:所有基于以太坊的代币都可以通过其工具免费分发,并可每秒钟向10个用户空投代币。此外,L2 Labs团队正在积极研究zk-rollups技术与EVM连接的可能性。在完成部署后,该工具将允许ZKSwap扩展到所有与EVM兼容的区块链。(U.Today)[2021/8/18 22:21:31]

为虚拟机创建证明的主要挑战是,电路的大小与每条执行指令的所有可能指令的大小成比例地增长。这是因为电路不知道在每个程序中会执行哪些指令,所以它需要支持所有的指令。

在通用电路中,每条执行的指令的成本与所有支持的指令之和成正比。这在实践中意味着,你要为最昂贵的指令支付,即使你只是在执行最简单的指令。这导致了通用性和性能之间的直接权衡--当你为通用性增加更多的指令时,你要为你证明的每一条指令付出代价!这就是通用电路的根本问题。但随着IVC等技术的新发展,这种限制可以通过将计算分成更小的块来改善,每个块都有专门的、更小的子电路。今天的zkEVM实现使用不同的策略来减轻这个问题的影响......例如,zkSync去掉了更昂贵的操作

Celer与StarkWare合作开发Layer2.finance的ZKRollup版本:据官方博客文章消息,以太坊二层扩容项目Celer Network宣布与零知识证明研究机构StarkWare达成合作,双方将为扩容方案Layer2.finance开发基于零知识证明的ZKRollup版本。Layer2.finance的v0.1版本最近在以太坊主网启动,借助了Celer基于Optimistic Rollup的解决方案。[2021/4/28 21:05:02]

zkEVM的理想客户是那些需要比L1以太坊上的交易便宜几个数量级的智能合约应用。这些开发人员不一定有专业知识或带宽来从头开始编写zk应用程序。因此,更喜欢用熟悉的更高级的语言来写应用程序,如Solidity。众多开发团队

扩展Ethereum是目前zk技术最需要的应用。zkEVM是一个以太坊扩展解决方案,可以无摩擦地缓解限制L1dApp开发者的拥堵问题。开发者体验

zkEVM的目标是支持一个尽可能接近当前以太坊开发的开发者体验。完全支持Solidity意味着团队不必建立和维护多个代码库。这在某种程度上是不切实际的,因为zkEVM需要交换一些兼容性,以便能够在合理的时间内生成合理规模的证明。zkSync与Scroll

zkSync和Scroll之间的主要区别在于它们在堆栈中的何处/何时执行算术运算——也就是说,它们从普通EVM构造转换为SNARK友好表示的位置。对于zkSync,当他们将YUL字节码转换为他们自己的自定义zk指令集时,就会发生这种情况。对于Scroll来说,这发生在最后,当实际的执行跟踪用实际的EVM操作码生成时。因此,对于zkSync,在生成zk字节码之前,一切都与与EVM交互相同。对于Scroll,在执行实际的字节码之前,一切都是一样的。这是一个微妙的差异,它以性能换取支持。例如,zkSync不会像开箱即用的调试器那样支持EVM字节码工具,因为它是完全不同的字节码。虽然Scroll很难从指令集中获得良好的性能,但这并不是为zk设计的。这两种策略各有利弊,最终有很多外生因素会影响它们的相对成功。zkLLVM电路编译器

疑似FTX创始人Sam地址2小时内在ZKSwap添加2.5亿美金流动性:据zkswap.info数据显示,今日晚间,疑似FTX创始人Sam的地址(0x84d34f4f83a87596cd3fb6887cff8f17bf5a7b83),在两小时内向ZKSwap流动性池添加超2.5亿美金。添加代币对包括USDC/USDT、ETH/USDT、ETH/WBTC、WBTC/HBTC。截至目前,ZKSwap流动性和总资产再创新高,流动性现已达到13.03亿美金,L2总资产则达到了14.56亿美元。据Debank数据,目前ZKSwap锁仓量以及流动性均已接近Uniswap的30%。[2021/3/19 19:02:09]

正如详细讨论的那样,开发zk应用程序有无数不同的选择,所有这些都有自己独特的权衡。此图表将帮助总结此决策矩阵,以便根据您的zk专业知识水平和性能需求,选择最适合该工作的工具。这不是一个完整的列表,会随着zk的发展更新。zkLLVM被设计为现有LLVM基础设施的扩展,LLVM基础设施是一个行业标准工具链,支持许多高级语言,如Rust、C、C++等。怎么运行

想要证明某些计算的用户只需用C++实现该计算即可。zkLLVM采用其修改后的clang编译器支持的高级源代码,并生成电路的一些中间表示。此时,电路已准备好进行验证,但用户可能希望根据一些动态输入来验证电路。为了处理动态输入,zkLLVM有一个称为分配器的附加组件,它生成一个分配表,其中包含所有输入和见证,这些输入和见证已完全预处理并准备好与电路一起进行证明。这两个组件是生成证明所必需的。理论上,用户可以自己生成证明,但由于这是一项有点专业化的计算任务,可能需要花钱请拥有硬件的其他人做这件事。对于这种交易对手发现机制,=nil;Foundation还建立了一个“证明市场”,证明者竞相为支付给他们的用户证明计算。这种自由市场动态将导致证明者优化最有价值的证明任务。权衡利弊

由于每个要证明的计算任务都是独一无二的,并且会生成不同的电路,因此证明者需要能够处理的电路数量是无限的。这种强制的通用性使得单个电路的优化变得困难。证明市场的引入允许对市场认为有价值的电路进行专业化。如果没有这个市场,由于这种自然的冷启动问题,说服验证者优化该电路将是一项挑战。另一个权衡是经典的抽象与控制。愿意采用这种易于使用的界面的用户正在放弃对底层加密原语的控制。对于许多用户来说,这是一个非常有效的权衡,因为让密码学专家为您做出这些决定通常更好。优点用户可以用熟悉的高级语言编写代码所有的zk内部结构都被抽象出来,不受用户影响不依赖增加额外开销的特定"虚拟机"电路。缺点每个程序都有一个不同的电路。难以优化。(证明市场部分解决了这个问题)交换/升级内部zk库并非易事zkVM

zkVM描述了所有zk虚拟机的超集,而zkEVM是一种特定类型的zkVM,由于其在当今的流行,值得作为一个单独的主题进行讨论。除了定制的加密VM之外,还有一些其他项目正在致力于构建基于ISA的更通用的zkVM。系统可以证明不同的指令集架构(ISA),例如新VM中的RISC-V或WASM,而不是证明EVM。致力于这些通用zkVM的两个项目是RISCZero和zkWASM。让我们在这里深入了解一下RISCZero,以证明这种策略是如何工作的,以及它的一些优势/劣势。RiscZero

RiscZero证明生成的高级架构RISCZero能够证明任何在RISC-V架构上执行的计算。RISC-V是一个开源的指令集架构标准,已经越来越受欢迎。RISC的理念是以最小的复杂性建立一个极其简单的指令集。这意味着堆栈中较高层次的开发者在使用这种架构实现指令时最终会承担更大的负荷,同时使硬件实现更加简单。这种理念也适用于一般的计算,ARM芯片一直在利用RISC风格的指令集,并开始主导移动芯片的市场。事实证明,更简单的指令集也具有更大的能量和芯片面积效率。

这个类比对于生成zk证明的效率来说相当适用。正如前面所讨论的,在证明zk的执行轨迹时,你要为轨迹中每一项的所有指令的成本之和买单,所以更简单、更少的总指令是更好的。如何工作

从开发者的角度来看,使用RISCZero来处理zk证明,很像使用AWSLambda函数来处理后端服务器架构。开发人员通过简单地编写代码与RISCZero或AWSLambda互动,服务处理所有后端复杂性。对于RISCZero,开发者编写Rust或C++。然后,系统接受编译过程中产生的ELF文件,并将其作为虚拟机电路的输入代码。开发者只需调用证明,返回一个收据对象,任何人都可以从任何地方调用`验证'。从开发者的角度来看,没有必要了解zk是如何工作的,底层系统处理所有这些复杂的问题。为了支持这样一个通用接口,需要大量的开销。需要对证明生成技术进行重大改进,以实现对现有库的广泛支持预建的可重复使用电路

对于一些对区块链应用或其他地方特别有用的基本和可重复使用的电路,团队可能已经为你构建和优化了这些电路。你只需为你的特定用例提供输入即可。例如,Merkle包容证明是加密货币应用中普遍需要的东西。作为一个应用程序的开发者,你总是可以重新使用这些经过实战检验的合约,只是在上面修改一些层,以创建一个独特的应用程序。例如,TornadoCash的电路可以重新用于私人空投应用程序或私人投票应用程序。Manta和Semaphore正在构建一个完整的工具包,包括像这样的通用电路小工具,可以在Solidity合约中使用,而无需了解或不了解底层的zkmoon数学。正如详细讨论的那样,开发zk应用程序有无数不同的选择,所有这些都有自己独特的权衡。此图表将帮助总结此决策矩阵,以便根据您的zk专业知识水平和性能需求,选择最适合该工作的工具。这不是一个完整的列表,会随着zk的发展更新。zkGalaxy应用开发者指南

1.低级Snark库

适用场景需要对整个证明堆栈进行精细控制避免重建公共组件尝试证明方案、曲线和其他低级原语的不同组合不适用场景寻找高级证明接口的新手可选用工具Arkworks-rs2.zkDSLs

适用场景想使用一些久经考验的语言需要最小的电路尺寸,愿意放弃抽象不适用场景需要对证明的后端进行精细控制可选用工具CircomAztecNoirCairoZoKratesLeo3.zk编译器

适用场景不愿意承担通用电路的开销想用熟悉的语言编写电路需要高度定制的电路不适用场景想要控制底层加密原语需要一个已经高度优化的电路可选用工具nilzkLLVM4.zkEVM

适用场景有一个已经在EVM上运行的dApp需要为用户提供更便宜的交易希望将部署到新链的工作量降到最低只关心zk的简洁性不适用场景需要完美的EVM等效性需要zk的隐私属性有一个非区块链用例可选用工具zksync2.0PolygonzkEVMScrollStarknet5.zkVM

适用场景想用高级语言编写代码需要证明该执行的正确性需要向验证者隐藏该执行的一些输入信息几乎没有zk方面的专业知识不适用场景在延迟极低的环境中。有一个巨大的程序。可选用工具RISCZerozkWASM6.预建的可重复使用的电路

适用场景有一个依赖常见的zk构建模块的智能合约应用,比如Merkle包容。对zk底层的东西几乎没有专业知识不适用场景有高度专业化的需求用例不被预建电路所支持可选用工具MantaNetworkSemaphore结论

zk处于多项技术的前沿,构建它需要对数学、密码学、计算机科学和硬件工程有深刻的理解。然而,随着每天都有越来越多的抽象层可用,应用程序开发人员无需博士学位即可利用zk的强大功能。随着时间的推移,通过对堆栈的所有级别进行优化,证明时间的限制会逐渐解除,我们可能会看到针对普通开发人员的更简单的工具。致谢

本文编译工作获得DAOrayaki社区的支持与反馈。原文:ADeveloper’sGuidetothezkGalaxy

标签:ARKSTARAIRARKNNOAHARK价格star币最新版本下载EthereumFairStarkNet

AVAX热门资讯
比特币:全面解读Polygon zkEVM:Rollup技术指南、代币经济学和生态系统_Tap

2022年7月,PolygonLabs、zkSync和Scroll开始了争夺最佳zkEVM的竞赛,PolygonzkEVM主网将于3月27日启动.

SYN:梳理Synthetix现状:永续合约交易量明显上升,V3更新带来更灵活的定制化服务_Synthetix

链上永续合约市场巨大,竞争也越来越激烈,除dYdX、GMX等龙头之外,近期Synthetix的永续合约交易量明显上升,SynthetixV3也在逐步推出,让SNX再次受到资本的青睐.

CAIRO:Starkware技术架构与生态应用梳理_Marketing Samurai

StarkWare 简介 StarkEx和StarkNet均为StarkWare团队开发的项目,前者类似Iaas,类比应用链.

ARK:下一个热门叙事?全面解读流动性衍生品质押赛道_ZKS

以太坊将在4月12日迎来「Shapella升级」,之前锁定的验证者代币被解锁,将大大增加以太坊的流动性,最近几个月,流动性质押平台吸引了大量关注.

USD:牛回速归?短暂闪现的暴涨是诱多陷阱吗?_USDT价格

过去的一周,加密市场经历了大起大落,由硅谷银行引发的银行业危机,传导到了加密市场。昨日,有市场消息称,美国政府将就硅谷银行事件发布官方公告,以避免进一步影响.

GOX:Mt.Gox被盗事件「剧终」:近14万枚比特币将被释放,债权人会如何获得赔偿?_SDT

历经多次推迟清算及数场官司,Mt.Gox被盗事件总算进入赔付阶段,其债权人有望在今年3月获得首批还款.