区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > 区块链 > 正文

CAI:零知识证明 | Cairo 语言介绍_ARK

作者:

时间:

作者:NicLin,imToken资深区块链工程师

本文受众:区块链开发者或零知识证明爱好者

Cairo是STARK证明系统的其中一个编程语言,让开发者能透过Cairo来使用STARK,撰写效能更高的DApp。

PhotobySimonBergeronUnsplash

Warning:本篇会保持在highlevel的介绍,实际深入的部分请见文内附上的文档或是官方开发者文件。

背景介绍

建构于密码学的零知识证明能提供计算的隐私性,但同时在区块链生态系也被用来提升Scalability—我可以用10秒的运算资源来验证原本耗费1000秒运算资源的计算过程如同更多人熟悉的SNARK,STARK也是一个零知识证明的证明系统,但当前的STARK着重的是在Scalability,而非大家比较习以为常零知识证明提供的隐私性特质其实目前基于SNARK的Rollup项目,例如zkSync、Loopring、Aztec、zkopru,除了Aztec外,其他都是利用SNARK来增加Scalability—这些Rollup上资料都还是公开、没有隐私性的StarkWare是目前唯一基于STARK的开发团队STARK要加上隐私保护不会太难,只是StarkWare还没有把这项功能放在未来规划中Cairo简介

DoraHacks平台开始支持基于零知识证明的隐私二次方资助:据官方消息,DoraHacks开发者激励平台HackerLink已经完成整合Dora Factory隐私投票模块MACI,并开始支持基于零知识证明的二次方投票和二次方资助轮次。

MACI(最小化抗共谋基础设施)是Dora Factory以太坊工厂的核心模块之一,通过对投票进行加密以及对结果提供零知识证明,实现隐私投票,将链上和链下治理的投票过程转化为非合作博弈,以达到抗共谋的目的。

DoraHacks对MACI代码中的安全性和效率问题进行了系统性优化。ETH Denver 2022将于2月20日与DoraHacks共同推出第一个中等规模的MACI二次方资助轮次,超过2,000名开发者和10,000名参会者将通过DoraHacks平台进行零知识二次方投票,这是MACI和链上隐私投票的第一次中等规模应用。[2022/1/28 9:19:46]

标榜为图灵完备的零知识证明系统语言,Cairo对原本熟悉Solidity的开发者来说还是会感到比较难上手和陌生的。再加上套件库还不够充足,目前支援的杂凑函式是Pedersen,数位签章演算法是ECDSA。

Polygon以4亿美元收购零知识初创公司Mir:金色财经报道,以太坊Layer2扩容解决方案Polygon宣布以4亿美元收购零知识初创公司Mir,这笔交易是通过2.5亿枚MATIC完成的。作为交易的一部分,Mir将更名为Polygon Zero,该项目将基于其ZK-proof技术构建一个ZK-rollup。Polygo联合创始人Sandeep Nailwal在接受采访时表示:“我们希望通过提供一系列解决方案,成为Web3平台的AWS,使开发人员能够在其上进行构建。”[2021/12/10 7:29:15]

但Cairo还在早期开发的阶段,相信开发体验会越来越好的。

另外需要注意的是作为一个证明系统,会有Prover和Verifier的角色。而STARK的Verifier是开源的,但Prover软体预计会有License保护。Prover一般情况下不得用于商业用途,除非将proof上传至官方的Verifier。

CAIRO字母分别代表的意思是

零知识证明研发机构StarkWare将在几周内开源ethSTARK:零知识证明研发机构 StarkWare 称,2018年我们获得以太坊基金会的资助去探索对 STARK 友好的哈希函数以及开源 ZKP 代码。我们将在几周内提前完成我们的工作。ethSTARK代码的运行速度将比现有的任何 ZKP 代码快20倍。注,2018年7月份,StarkWare称获得了以太坊基金会的资助(现金+代币),将研发对STARK 友好的哈希函数和技术,并为生态系统提供开源代码。STARK将允许区块链在兼备隐私和后量子安全的情况下进行大规模扩展(例如分片)。[2020/5/26]

C:CPUAIR:AlgebraIntermediateRepresentationO:OneAIR(verifiersmartcontract)torulethemallC和AIR因为比较偏撰写零知识证明应用的细节和经验所以会跳过,但O:OneAIR(verifiersmartcontract)torulethemall代表的是:任何使用Cairo写的程式都能用同一个Verifier来验证,每个应用不再需要产生自己也只有自己能用的Verifier合约。

动态 | 波场社区TRONZ团队已完成零知识证明匿名交易公测:波场社区TRONZ团队已完成零知识证明匿名交易公测,测试网已经顺利部署。匿名交易即将在波场TRON主网上线,现已开启主网MPC流程,社区用户均可参与。Github参考地址可见原文链接。[2019/12/31]

开发者不需要对自己的应用跑trustedsetup,也不需要烦恼Verifier的部分,如果你有开发过基于SNARK的应用的话你会更有感觉。

最后要提及的是,第一版的Cairo是设计来方便开发者将DApp的运算迁移至链下。不同于Rollup,这个链下只会有它自己一个DApp。这个DApp的项目方自己维护自己DApp的state。

这可能有点难懂。如果你有在写Solidity,想像一下今天你在合约要用到合约里宣告的storage变数时,你要自己提供merkleproof上来,证明这个storage变数真的是这个值。这个就是开发者要自己维护state的意思。

而第二版的Cairo则是StarkNet里使用的Cairo,这版的Cairo就是作为DApp在Rollup开发所使用—开发者可以在合约里宣告变数,变数的值不需开发者维护,可以直接假设存在。

声音 | 常山北明:将为至信链贡献跨链交换、零知识证明、分片共识相关的技术:常山北明(SZ000158)董秘在互动平台回复投资者对于“公司在区块链布局及技术优势”的提问表示,至信链是腾讯、中国网安和北明软件做为核心节点携手发布的区块链。至信链将致力于生态建设,在数据保全、纠纷解决、诉讼辅助等方面做出自己的贡献。北明软件将为至信链贡献跨链交换,零知识证明,分片共识相关的技术和知识的积累。[2019/9/27]

注1:StarkWare不喜欢Rollup这个词,他们觉得DataAvailability的需求是一段光谱:不一定得要把data全都送上L1,中间有其他方式可以做不同层级的DataAvailability。

注2:第一版和第二版实际上在官方版本里是0.0.1及0.0.2,在撰文当前最新版即是0.0.2。

官方网站:https://www.cairo-lang.org?

开发者文件:https://www.cairo-lang.org/docs/?

开发环境

Cairo有提供像是Remix的浏览器IDE:playground。里面提供各种范例练习和挑战,除了可以编译,还可以直接生成并上传proof。

注:但有些功能还是没办法在playground里使用,例如要给你的程式custominput时。这时候只能在本地端开发才能使用这个功能。

开发Cairo要先安装python,我将开发者文件整理出来的资料统整在这个hackmd文档里:https://hackmd.io/w690dpAQTsKeKZv3oikzTQ

里面包含简介、设置本地开发环境以及Cairo基础

注:我把开发者文件里的代码整理到这里:https://github.com/NIC619/cairo_practice/tree/master/practices

如果不想在研究开发者文件过程中,还要自己手动拼凑里面例子的话,可以直接用整理好的代码来执行。同时repo里还有包含一些额外自己测试Cairo功能的范例。

深入Cairo

在那份hackmd文档里的开头,可以连结到第二部分—深入Cairo的部分。里面也是从开发者文件里撷取出来我觉得比较重要的部分。如果你要读开发者文件的话,我建议从HelloCairo开始,它会从例子切入,会比较好知道Cairo怎么使用。接着如果要更深入了解,再去读HowCairoWorks。

StarkNetCairo

第二版的Cairo其实功能和第一版的Cairo是差不多的,所以不必担心在开发者文件里学到的Cairo在StarkNet版本会不能用或差很多。在读完HelloCairo/HowCairoworks后,就可以接着看HelloStarkNet。会很顺利的切换到StarkNet版本的Cairo。

注1:我整理的文档里是按照第一版Cairo所写的

注2:如果你从开发者文件一路看下来,体验过非StarkNet版的Cairo,那你在体验StarkNet版的Cairo时一定会发现这更像一般智能合约的使用方式—你可以用view函式查询storage变数,可以用external函式去执行合约。

非常建议尝试两种版本的Cairo,你会知道1.操作一个单独在L2的DApp和2.操作与其他DApp共存在Rollup上的DApp的不同。这对了解L2怎么运行、需要哪些资料、为什么需要这些资料非常有帮助。

0.0.2版的StarkNetCairo目前还缺少一些功能:

函式还没办法宣告阵列或struct型态的参数合约和合约之间还没办法互动L1没有办法读取到L2的资料,L2也没办法读取到L1的资料。如果要建立跨L2Bridge,这个功能非常重要。补充及个人心得

STARK的proofsize相比于SNARK系列的proofsize大很多,又其证明所包含的交易数量对proofsize和验证时间的影响不大,所以把很多笔交易一并做一个proof会是对STARK非常有利、节省成本的方式。但这同时也是一个缺点,如果你的DApp或Rollup的TPS不高,那就只能等更久时间搜集多一点的交易,要不然就只能提高成本来维持验证proof的频率。

StarkWare和zkSync一样都有Rollup宇宙的概念,个人觉得能够有选择是会比只有一个选择还好的方式,但实际上的可行性就要等其团队释出更多的资讯。

在Rollup越趋成熟的情况下,能够提供快速跨Rollup服务的流动性提供者的角色会越来越重要。zkRollup比OptimisticRollup有着短上许多的finalize时间,这对降低流动性提供者的风险有很大的帮助,但目前zkRollup支援合约功能甚至L1<->L2互动的完成度都比OptimisticRollup还低上许多。短期内快速跨Rollup的服务应该还是局限在OptimiticRollup之间。

标签:AIRCAIARKSTAFAIRCAI币SHARK价格RASTA

区块链热门资讯
USD:关于WBF对已上线币种的下线调整公告(四十三)_ALPHA

尊敬的用户: 为了营造健康的数字资产环境,给用户提供良好的交易体验,根据《WBF交易分区及转板试行管理办法‘退市规则’》规定,WBF审核团队将平台已上线项目进行了全面的市场监测和进展跟踪.

以太坊:沈迎月:8.5比特币多头爆表狼烟起,以太回踩延续多_比特币

沈迎月:8.5比特币多头爆表狼烟起,以太回踩延续多??这个世界,什么都可以安排,唯独你的心。这个世界失去谁都不可怕,不要紧,唯独失去了你自己.

COM:关于ZT创新板即将上线NDC的公告_ZB.com

尊敬的ZT用户: ZT创新板即将上线NDC,并开启NDC/USDT交易对。具体上线时间如下:充值:已开启;交易:2021年8月5日17:30; NDC 项目简介:NanoDoge是一个以社区和慈.

ARK:对话Solana首批获基金会支持的DEX Orca:设有收藏品板块的AMM聚合器_CAIRO币

7月底行情回暖,Solana生态也逐渐起势,借助极高的TPS,Solana目前效率可达到每秒50000。Solana生态首批获基金会资助的人性化DEX?Orca在上线半年内达到了4亿美元交易量.

ORC:Gate.io 将上线 Buying.com(BUY) 交易的公告_SOL

Gate.io将于2021年8月6日16:00上线Buying.com(BUY)交易。Buying.com为希望将产品上传到其原生平台并提供1小时送达服务的企业提供服务.

DAD:ZT将下架部分币种_MAX

尊敬的ZT用户: 为给用户提供更好的交易体验,ZT会对已上线项目进行严格审查,根据项目下架规则,ZT决定对TRU1,TOKAU,EMAX,EMAX-NEW,BFLOKI,ROGE.