比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > XMR > Info

零知識證明 | Cairo 語言介紹_CAI

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簡介

徐明星:以太坊2.0和零知識證明技術將使以太坊成為真正的區塊鏈操作系統:金色財經報道,OKX創始人徐明星發推特表示,2023年將非常有趣,以太坊2.0和零知識證明技術將使以太坊成為真正的區塊鏈操作系統。[2022/12/28 22:11:35]

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

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

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

CAIRO字母分別代表的意思是

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

Filecoin:Filecoin網絡已成為最大的零知識證明網絡:Filecoin發表博客稱,目前Filecoin已成為最大的零知識證明(zk-SNARK)網絡。據官方數據顯示,目前Filecoin網絡每日會運行6至7百萬次零知識證明,每一個零知識證明中包含了超過1億個約束電路證明。目前Filecoin網絡的可信配置已支持最高128M大小的電路證明,單個證明最大已超過100M,而Zcash最高僅支持2M。此外,目前Filecoin實現了通過SnarkPack將10個零知識證明捆綁至單次證明中,并正在研究零知識證明聚合以實現將數千個零知識證明聚合至單次證明中。硬件支持方面,Filecoin將零知識證明中高度可并行化的部分交由GPU完成,將CPU和內存釋放出來進行較為復雜的計算,進一步提高了零知識證明的效率。[2021/7/14 0:51:01]

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

金色沙龍 | 燕麗:零知識證明對于協調區塊鏈底層擴容也有很大幫助:在今日舉行的《隱私計算——區塊鏈信息安全守護者》為主題的金色沙龍中,算力智庫創始人燕麗表示,2020年1月1日,中國首部《中華人民共和國密碼法》將正式開始實施,而在這之前一直只有一部 2007年4月23日公布的《商用密碼產品使用管理規定》和《境外組織和個人在華使用密碼產品管理辦法》。很多人把這次《密碼法》和2019年“1024”中央把區塊鏈技術作為國家戰略聯系在一起。區塊鏈技術是完全基于密碼學技術,所以按照這個邏輯,如果政府要完全掌控未來區塊鏈技術的發展,首先就要完全掌控密碼學技術,而這個其中的核心是國家主權范圍之間在所有的通信安全和商業行為之間軍備競賽的升級。區塊鏈有大量擴容壓力,而為了達到這個操作,必然要犧牲系統處理效能和部分隱私。但矛盾的是,區塊鏈前期的應用場景如虛擬貨幣,數字金融等,都需要有更好的隱私保護和不容易被惡意攻擊的防護。所以若想讓區塊鏈技術落地生根,那么提高區塊鏈底層技術來滿足對于高安全性(含高完整性和高保密性)、高性能、高廣義效率的要求,也許是個穩妥做法。所以隱私計算中的零知識證明等對于協調區塊鏈底層擴容也有很大幫助。[2020/4/15]

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

聲音 | V神評價MimbleWimble:只有零知識證明 ZK-SNARKs 等全局匿名集,才能真正保證隱私安全:針對 Dragonfly Capital 的分析師 Ivan Bogatyy 發布的關于闡述 MimbleWimble 協議有重大缺陷、Grin 網絡 96% 的交易可被破譯的文章。

以太坊創始人Vitalik在推特回應稱:如果隱私模型設置了一個中等的匿名集,那么它實際上設置了一個小范圍的匿名集。如果隱私模型的匿名集較小,則其匿名集為 1。只有全局匿名集(例如,使用 ZK-SNARKs 技術進行的加密)才真正具有安全性。[2019/11/19]

這可能有點難懂。如果你有在寫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之間。

Tags:AIRCAIROCAIARKFAIRMOONCAIRO價格CaixaPayarkm幣什么時候上OK

XMR
StarkWare 推出以太坊側鏈和二層擴容方案 StarkEx 之間無需信任的轉賬方案_STAR

鏈聞消息,StarkWare推出以太坊側鏈和二層擴容方案StarkEx之間無需信任的轉賬方案。StarkWare表示,目前以太坊上缺少高效且無需信任的側鏈與二層網絡的互操作性方案,過去的方案包括.

1900/1/1 0:00:00
沈迎月:8.6比特幣早盤多空都難受,以太停手等抄底!_ETH

沈迎月:8.6比特幣早盤多空都難受,以太停手等抄底!??每一個清晨,記得提醒自己:沒有奇跡,只有你努力的軌跡;沒有運氣,只有你堅持的勇氣.

1900/1/1 0:00:00
以太坊完成倫敦升級,開啟「通縮」新紀元_以太坊

作者|秦曉峰 編輯|郝方舟 出品|Odaily星球日報北京時間今晚8點33分,以太坊網絡達到既定區塊高度12,965,000,完成倫敦硬分叉升級.

1900/1/1 0:00:00
Synthetix 創始人:關于 DeFi、NFT、藝術和游戲交叉點的思考_SYN

撰文:KainWarwick,Synthetix創始人 翻譯:盧江飛 最近我一直在思考DeFi、NFT、藝術和游戲的「交叉點」.

1900/1/1 0:00:00
一文盤點深受區塊鏈技術影響的 10 個領域_NFT

暫且不說數字資產/加密貨幣,區塊鏈技術的核心特征包括去中心化、透明化、不可篡改和自動化。這些元素可以應用于各個行業,為行業提供更優質的選擇和更大的價值.

1900/1/1 0:00:00
NFT 創建和發行平臺 Cent 完成 300 萬美元種子輪融資,Galaxy Interactive 等參投_NFT

鏈聞消息,據Variety報道,NFT創建和發行平臺Cent完成300萬美元種子輪融資,GalaxyInteractive、In/VisibleVentures、前迪士尼主席JeffreyKat.

1900/1/1 0:00:00
ads