作者: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简介
OKX将升级储备证明,包括full liability tree披露和用于偿付能力验证的零知识证明:3月2日消息,OKX宣布将在未来几个月内升级其储备证明(PoR),包括full liability tree披露和用于PoR偿付能力验证的零知识证明(ZKP)。升级建立在OKX当前的Merkle tree解决方案之上,以确保最大程度的透明度,同时增强客户隐私,具体安排如下:
- full liability tree:此升级将在即将发布的3月PoR报告中生效,允许任何人下载Full liability Merkle tree,从而提高透明度。同时,它将通过将每个用户的余额分割和转移到几个部分(分割叶节点)来维护帐户余额的隐私;
- 零知识证明:这一升级将在未来几个月生效,是一种防篡改的加密方法,允许用户验证所有客户存款都被计入,并通过比较用户资产净值与交易所储备来保证偿付能力。[2023/3/2 12:39:00]
标榜为图灵完备的零知识证明系统语言,Cairo对原本熟悉Solidity的开发者来说还是会感到比较难上手和陌生的。再加上套件库还不够充足,目前支援的杂凑函式是Pedersen,数位签章演算法是ECDSA。
a16z:零知识证明保护去中心化和隐私,将取得一系列进展:4月15日消息,a16z发文《去中心化的速度:零知识证明的进步》表示,随着区块链吸引了数以百万计的用户,并且它们所承载的应用程序的复杂性不断提高,围绕隐私和可扩展性的两个关键需求已经出现。需要识别的一个关键趋势是,虽然正在为其中许多应用开发专用硬件,但也有一项运动正在优化消费者级硬件的算法,以保护去中心化和隐私。这一趋势的一个特别好的例子是零知识证明。
我们目前正处于一个非常早期的时刻,零知识证明计划将取得一系列进展。我们已经从零知识领域中极少数面向消费者的应用程序,发展到在很短的时间内为隐私和可扩展性提供应用程序和区块链的整个生态系统。像这样的新技术最令人兴奋的一点是,很难预测另一面到底是什么样子。[2022/4/15 14:27:35]
但Cairo还在早期开发的阶段,相信开发体验会越来越好的。
另外需要注意的是作为一个证明系统,会有Prover和Verifier的角色。而STARK的Verifier是开源的,但Prover软体预计会有License保护。Prover一般情况下不得用于商业用途,除非将proof上传至官方的Verifier。
Gate.io研究院发布“零知识证明于区块链中的落地应用”报告:Gate.io研究院于今日发布“零知识证明于区块链中的落地应用”报告。报告指出,在区块链技术加快发展的背景下,多种应用场景应运而生,随之而来的是用户在隐私安全方面的更高需求。当前,众多区块链开发团队提出了多种不同的用户隐私安全保护机制。
其中,零知识证明与区块链技术相结合作为一种新方案为提高区块链隐私安全性提供了更多可能。该报告结合“零知识证明”的采纳项目、区块链系统“Zcash”的相关情况,对“Zcash”加密技术以及零知识证明进行了深入探讨。 详情点击原文链接。[2020/6/28]
CAIRO字母分别代表的意思是
C:CPUAIR:AlgebraIntermediateRepresentationO:OneAIR(verifiersmartcontract)torulethemallC和AIR因为比较偏撰写零知识证明应用的细节和经验所以会跳过,但O:OneAIR(verifiersmartcontract)torulethemall代表的是:任何使用Cairo写的程式都能用同一个Verifier来验证,每个应用不再需要产生自己也只有自己能用的Verifier合约。
声音 | V神:零知识证明技术对Layer 2更有帮助:在万向区块链实验室主办的第五届区块链全球峰会上,当被问及最新进展时,V神表示目前正在关注零知识证明,该技术经过十几年的发展仍然有创新,Zk-SNARKs就取得了一些进步。V神还表示,零知识证明对Layer 2 也许并没有太大帮助,但对Layer 2也许会有帮助。[2019/9/18]
开发者不需要对自己的应用跑trustedsetup,也不需要烦恼Verifier的部分,如果你有开发过基于SNARK的应用的话你会更有感觉。
最后要提及的是,第一版的Cairo是设计来方便开发者将DApp的运算迁移至链下。不同于Rollup,这个链下只会有它自己一个DApp。这个DApp的项目方自己维护自己DApp的state。
这可能有点难懂。如果你有在写Solidity,想像一下今天你在合约要用到合约里宣告的storage变数时,你要自己提供merkleproof上来,证明这个storage变数真的是这个值。这个就是开发者要自己维护state的意思。
动态 | 荷兰国际银行推出区块链隐私零知识技术:据coindesk消息,荷兰国际银行(ING Bank)本周在Sibos银行会议上宣布,将发布其零知识集员(ZKSM)解决方案,将零知识技术应用于区块链隐私。ZKSM允许在指定集合内验证字母数字数据。实际上,这意味着从数字转移到其它类型的数据,比如证明维度和地理位置。[2018/10/22]
而第二版的Cairo则是StarkNet里使用的Cairo,这版的Cairo就是作为DApp在Rollup开发所使用—开发者可以在合约里宣告变数,变数的值不需开发者维护,可以直接假设存在。
注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之间。
区块链是和比特币一直出现的,区块链炒币是违法吗?区块链费劲千辛万苦创造了比特币后,却有人担心区块链炒币是违法吗?当比特币出现一段时间后,区块链技术创造了其他数字货币,比如以太坊.
1900/1/1 0:00:00Tbit是全球首家双重激励交易所,平台由全球衍生品精英团队共同开发制作,立志成为全球最专业的合约衍生品交易平台.
1900/1/1 0:00:00尊敬的虎符用户:为给用户带来更好的交易环境和交易体验,进一步提高网站性能,保证用户使用的便捷,虎符将于2021年8月6日启用三个新的加速节点.
1900/1/1 0:00:00本文来自?Bitcoin.com,原文作者:LubomirTassevOdaily星球日报译者|余顺遂英国渣打银行将通过ZodiaCustody在爱尔兰提供加密货币经纪服务.
1900/1/1 0:00:00尊敬的用户:WBF将在开放区掘金板块上线IPAD/USDT交易对,具体上线时间如下:暂不开启充值交易时间:2021/8/2311:30提币时间:2021/8/2411:30项目介绍:Infini.
1900/1/1 0:00:00亲爱的KuCoin用户:我们很高兴的宣布,KuCoin将上线TribeOne(HAKA)项目并支持交易对HAKA/USDT.
1900/1/1 0:00:00