作者: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簡介
LayerZero Labs 與 Polyhedra Network 合作推出基于零知識證明的輕客戶端:5月31日消息,LayerZero Labs 宣布與 Polyhedra Network 達成戰略合作,共同推出基于零知識證明技術的輕客戶端,使得 LayerZero 的開發者只需要更新一個參數配置就可以使用 Polyhedra Network 開發的零知識證明協議。[2023/6/1 11:51:12]
標榜為圖靈完備的零知識證明系統語言,Cairo對原本熟悉Solidity的開發者來說還是會感到比較難上手和陌生的。再加上套件庫還不夠充足,目前支援的雜湊函式是Pedersen,數位簽章演算法是ECDSA。
但Cairo還在早期開發的階段,相信開發體驗會越來越好的。
另外需要注意的是作為一個證明系統,會有Prover和Verifier的角色。而STARK的Verifier是開源的,但Prover軟體預計會有License保護。Prover一般情況下不得用于商業用途,除非將proof上傳至官方的Verifier。
零知識硬件初創公司Cysic完成600萬美元種子輪融資:金色財經報道,零知識 (ZK) 硬件初創公司 Cysic 完成了 600 萬美元的種子輪融資。該輪融資由 Polychain Capital 領投,其他投資者包括 Hashkey、SNZ Holding、ABCDE 和 Web3.com 基金會。[2023/2/17 12:13:48]
CAIRO字母分別代表的意思是
C:CPUAIR:AlgebraIntermediateRepresentationO:OneAIR(verifiersmartcontract)torulethemallC和AIR因為比較偏撰寫零知識證明應用的細節和經驗所以會跳過,但O:OneAIR(verifiersmartcontract)torulethemall代表的是:任何使用Cairo寫的程式都能用同一個Verifier來驗證,每個應用不再需要產生自己也只有自己能用的Verifier合約。
開發者不需要對自己的應用跑trustedsetup,也不需要煩惱Verifier的部分,如果你有開發過基于SNARK的應用的話你會更有感覺。
Polygon聯合創始人:承諾為零知識技術投資10億美元:12月25日消息,Polygon聯合創始人Sandeep Nailwal在接受采訪時表示,根據PolygonScan瀏覽器,Polygon平均出塊時間約為2.3秒,以太坊平均出塊時間則是15秒。然后Gas費大概是0.001 MATIC。
關于投資零知識技術的目標,Nailwal回答稱,“我們承諾為零知識技術投資10億美元,我們認為這是區塊鏈擴展的圣杯。隱私是第二個因素——這是每個人都會感到困惑的一個因素。因此,您可以使用ZK在以太坊上驗證計算,而無需發回全部數據。相反,您只需證明在第二層上所有計算都是正確的,并將一個簡潔的證明放回到以太坊。”
Nailwal還表示,“即使ETH 2.0升級已經實現,也不會提供足夠的可擴展性。明年,PoS升級將保持一切不變;就像以太坊現在每秒有13筆交易(TPS),在PoS之后也許會達到20 TPS,但不會超過這個數字。所以這不會增加任何可擴展性。假設在三到五年內,即使實現分片,我們預測會有64個分片,每個分片每秒處理20筆交易,但總的來說還是每秒1280筆交易,對嗎?這對整個世界來說還是不夠的。”(Cointelegraph)[2021/12/25 8:03:07]
最后要提及的是,第一版的Cairo是設計來方便開發者將DApp的運算遷移至鏈下。不同于Rollup,這個鏈下只會有它自己一個DApp。這個DApp的項目方自己維護自己DApp的state。
Polygon 推出基于STARK零知識證明的擴容方案 Miden,采用Facebook開源技術且兼容EVM:11月16日消息,Polygon宣布推出基于零知識的、與 EVM 兼容的擴容解決方案Miden,同時也將開源其核心組件的早期原型版本Polygon Miden 虛擬機 (VM) 。Polygon Miden 是一個基于 STARK 的 ZK Rollup,Polygon Miden VM 是完全開源的基于 STARK 的虛擬機,它的作用是驗證程序執行并為DApp 部署提供增強的盡職調查。Miden VM 通過利用Facebook的Novi開發的STARK證明器/驗證器Winterfell 對基于Rust語言編寫的零知識虛擬機 Distaff VM進行了擴展。Distaff VM和Winterfell的核心開發人員Bobbin Threadbare將加入 Polygon 作為 Miden Lead,致力于重新整合 Distaff,將 Distaff 和 Winterfell 結合起來,并繼續開發 Miden VM 及其周圍的生態系統。
除Polygon Miden外,Polygon價值10億美元的ZK策略資金還孵化Polygon Hermez和Polygon Nightfall。Polygon Hermez是此前收購的Hermez Network,Polygon Nightfall是與安永共同開發構建的以隱私為重點保護的Rollup。[2021/11/17 21:56:06]
這可能有點難懂。如果你有在寫Solidity,想像一下今天你在合約要用到合約里宣告的storage變數時,你要自己提供merkleproof上來,證明這個storage變數真的是這個值。這個就是開發者要自己維護state的意思。
動態 | 波場社區TRONZ團隊已完成零知識證明匿名交易公測:波場社區TRONZ團隊已完成零知識證明匿名交易公測,測試網已經順利部署。匿名交易即將在波場TRON主網上線,現已開啟主網MPC流程,社區用戶均可參與。Github參考地址可見原文鏈接。[2019/12/31]
而第二版的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:00IPFS通過集成區塊鏈及早期共享網絡協議的多重加密方式打造了更加穩定可靠而且高效的網絡數據通道,通過基于區塊鏈技術突破HTTP協議搭建的中心化樹狀結構網絡.
1900/1/1 0:00:00親愛的大幣網(Dcoin)用戶:由于HTDF節點升級,大幣網(Dcoin)已暫停HTDF的充提幣服務。升級完成后我們將第一時間開放充提幣服務。如有任何問題,請咨詢在線客服.
1900/1/1 0:00:00尊敬的用戶: 為給予社區用戶更多樣的合約交易體驗,BKEX將對“超級合約”產品進行全面升級改造,經BKEX研究決定,“超級合約”產品預計于2021年8月13日全面下架.
1900/1/1 0:00:007月2日,IoTeX三位創始人入駐Reddit,進行了一場別開生面的AMA“你問我答”活動。在這里將此次AMA的文字內容翻譯整理出來,分享給艾坦星中文社區.
1900/1/1 0:00:00封面圖片源于由Art.is.therapy發行,由?AdropinNFTocean?持有的NFT藝術.
1900/1/1 0:00:00