以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > XLM > Info

零知識證明 | Cairo 語言介紹_AIR:IcoCryptoMarketCap

Author:

Time:1900/1/1 0:00:00

作者: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簡介

Polygon社區提議將Polygon POS鏈與零知識(ZK)技術兼容:金色財經報道,以太坊擴展解決方案Polygon周二發布了一份提案前(Pre-PIP)討論帖,探討將其Polygon POS鏈與零知識(ZK)技術兼容。升級將使主鏈成為zkEVM validium ,這意味著該鏈仍將與以太坊虛擬機兼容。validium與ZK rollup略有不同,因為它們使用鏈下數據可用性模型,Polygon目前還提供ZK rollup,該rollup于3月上線。

據Polygon聯合創始人Mihailo Bjelic撰寫的博客文章,如果該提案得到Polygon社區的批準,重大升級將帶來更高的安全性,并使區塊鏈的框架更加面向未來。此外,Bjelic認為,這種升級將允許更快的交易確認,并擴展區塊鏈。[2023/6/21 21:50:35]

標榜為圖靈完備的零知識證明系統語言,Cairo對原本熟悉Solidity的開發者來說還是會感到比較難上手和陌生的。再加上套件庫還不夠充足,目前支援的雜湊函式是Pedersen,數位簽章演算法是ECDSA。

歐易OKX宣布將基于全覽默克爾樹、零知識證明升級儲備金證明:3月2日消息,據歐易 OKX 官方消息,平臺宣布在未來幾個月內升級儲備金證明,將基于全覽默克爾樹、零知識證明的技術來證明償付能力。后續將允許任何人查閱默克爾樹中的所有資產情況,但也會通過拆分和洗牌的方式保障用戶隱私。

據了解,除儲備金干凈度為 100% 外,歐易 OKX 是目前唯一一家同時實現默克爾樹開源驗證、錢包地址所有權開源驗證、鏈上資產開源驗證的交易平臺。自去年 11 月份以來,歐易按月定期發布 PoR 報告,持續引領行業提升透明度。[2023/3/2 12:38:51]

但Cairo還在早期開發的階段,相信開發體驗會越來越好的。

另外需要注意的是作為一個證明系統,會有Prover和Verifier的角色。而STARK的Verifier是開源的,但Prover軟體預計會有License保護。Prover一般情況下不得用于商業用途,除非將proof上傳至官方的Verifier。

CAIRO字母分別代表的意思是

以太坊ZK Rollup擴容方案Hermez Network正在開源零知識證明模塊:據官方消息,以太坊ZK Rollup擴容方案 Hermez Network表示,正在開發一個名為Rapidsnark新的zk-SNARKs零知識證明模塊,目前已經發布并開放了源代碼。[2021/2/2 18:43:40]

C:CPUAIR:AlgebraIntermediateRepresentationO:OneAIR(verifiersmartcontract)torulethemallC和AIR因為比較偏撰寫零知識證明應用的細節和經驗所以會跳過,但O:OneAIR(verifiersmartcontract)torulethemall代表的是:任何使用Cairo寫的程式都能用同一個Verifier來驗證,每個應用不再需要產生自己也只有自己能用的Verifier合約。

開發者不需要對自己的應用跑trustedsetup,也不需要煩惱Verifier的部分,如果你有開發過基于SNARK的應用的話你會更有感覺。

波卡生態零知識證明項目Starks Network與KILT Protocol達成合作:據官方消息,2020年12月18日,波卡生態零知識證明項目Starks Network與來自德國柏林的KILT Protocol項目達成戰略合作協議。雙方將在中歐Web3數字身份實驗室的合作框架下,圍繞“自主權數據”與“自證明計算”的主題,并通過波卡區塊鏈的跨鏈功能進行功能交互與應用組合,在去中心化數字身份、可驗證數字憑證、零知識證明與數據隱私保護等方面展開全面合作。[2020/12/19 15:46:29]

最后要提及的是,第一版的Cairo是設計來方便開發者將DApp的運算遷移至鏈下。不同于Rollup,這個鏈下只會有它自己一個DApp。這個DApp的項目方自己維護自己DApp的state。

這可能有點難懂。如果你有在寫Solidity,想像一下今天你在合約要用到合約里宣告的storage變數時,你要自己提供merkleproof上來,證明這個storage變數真的是這個值。這個就是開發者要自己維護state的意思。

Gate.io研究院發布“零知識證明于區塊鏈中的落地應用”報告:Gate.io研究院于今日發布“零知識證明于區塊鏈中的落地應用”報告。報告指出,在區塊鏈技術加快發展的背景下,多種應用場景應運而生,隨之而來的是用戶在隱私安全方面的更高需求。當前,眾多區塊鏈開發團隊提出了多種不同的用戶隱私安全保護機制。

其中,零知識證明與區塊鏈技術相結合作為一種新方案為提高區塊鏈隱私安全性提供了更多可能。該報告結合“零知識證明”的采納項目、區塊鏈系統“Zcash”的相關情況,對“Zcash”加密技術以及零知識證明進行了深入探討。 詳情點擊原文鏈接。[2020/6/28]

而第二版的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之間。

Tags:AIRCAIROCAIARKFairyLand TokenCairo FinanceCaixaPayIcoCryptoMarketCap

XLM
XT即將開通多個ETH交易對_TPS:SBECOM幣

尊敬的XT用戶: XT.COM將于2021年8月6日16:00開通ZEN/ETH交易對,并于2021年8月6日16:10開通AAVE/ETH、ADA/ETH、THETA/ETH、MANA/ETH.

1900/1/1 0:00:00
疫情沖擊全球教育急劇變革,教育公鏈能否成為拐點?_BAB:BABY

2020年,新冠肺炎以本世紀前所未有的速度席卷全球并持續流行,演變成近代最嚴重且擴散規模最廣的全球傳染病大流行病。疫情肆虐之下,學校成了群聚感染和交叉感染的熱點.

1900/1/1 0:00:00
XT關于暫停PIKA 充提的公告_TPS:Compound Ether

尊敬的XT用戶: 由于PIKA錢包升級維護,XT.COM現已暫停PIKA充值與提現業務。恢復時間將以公告另行通知.

1900/1/1 0:00:00
NFT高歌猛進背后,不可忽視的一些理性思考_NFT:VEATHENA價格

封面圖片源于由Art.is.therapy發行,由?AdropinNFTocean?持有的NFT藝術.

1900/1/1 0:00:00
關于Tbit取得雙國牌照的公告_DASH:bybit上海辦公地點

尊敬的用戶: 為了大力發展全球數字資產交易市場,Tbit在成立之初就取得了由美國Finance頒發的MSB合規運營牌照,以及有塞舌爾頒發的IBC國際企業注冊牌照.

1900/1/1 0:00:00
A16z創始人2014年演講:比特幣網絡已反饋出巨大的潛力_比特幣:CRYP

本文節選整理自2014年,當時馬克安德森的風險投資公司AndreessenHorowitz已向與比特幣相關的初創企業投資了近5000萬美元。該公司正在積極尋找更多基于比特幣的投資機會.

1900/1/1 0:00:00
ads