加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > BTC > Info

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

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

a16z crypto引入Lasso和Jolt工具來增強零知識證明:金色財經報道,風險投資公司 Andreessen Horowitz 的加密貨幣部門 a16z crypto 推出了 Lasso 和 Jolt,這是一對基于簡潔非交互式知識論證(SNARK)的新工具。SNARK 是一種零知識證明,有可能促進第 2 層空間中的可擴展 ZK Rollup,這通常被視為計算密集型。Lasso 是 a16z 兩篇研究論文的主要創新,它采用了“查找參數”機制,有利于更快的零知識證明。它將特定的輸入與相應的輸出相匹配,而不泄露額外的信息。該團隊指出,Lasso 引入了一種簡化的方法來驗證 SNARK,通過對大量結構化表執行查找來避免繁瑣的手動優化電路。[2023/8/11 16:18:58]

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

互操作性協議Rarimo與Polygon ID合作推出首個用于驗證憑證的多鏈零知識證明:金色財經報道,互操作性協議Rarimo宣布與隱私保護ID基礎設施Polygon ID合作,這是鏈上身份向前邁出的革命性一步,每個使用 Polygon ID 的身份提供商都立即實現跨鏈,這不僅是Polygon ID首次成為多鏈,而且由于PolygonID是第一個也是唯一一個允許用戶將鏈外憑證表示為零知識證明 (ZKP) 的解決方案,此次合作標志著數字身份領域的首創。Rarimo表示,既然以太坊已被納入其中,Polygon上頒發的憑證將在未來幾周內在BNB Chain和Avalanche上提供。[2023/7/22 15:51:50]

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

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

螞蟻鏈隱私協作平臺AntChain FAIR引入基于零知識證明的可驗證計算技術:7月8日消息,在2023世界人工智能大會全球區塊鏈產業高峰論壇上,螞蟻鏈宣布隱私協作平臺AntChain FAIR進行全新架構升級,引入零知識證明(ZKP)為核心的可驗證計算技術,從可信數據流轉拓展到計算過程、數據屬性以及身份的可驗證。此外螞蟻鏈FAIR在可信計算架構中加入新型零知識證明虛擬機zkWASM,實現指令級別的可證明特性,可以依托 WASM 多語言生態將多種前端語言編寫的算法程序進行證明轉化,而無需關心底層復雜的算法細節,提升開發應用的友好性。

FAIR 是螞蟻鏈面向數據流轉推出的隱私協作平臺,綜合了區塊鏈和隱私計算的優勢,協作流程由智能合約驅動,數據流轉由隱私計算引擎來解決,并通過區塊鏈技術確權,登記和交易共識,可以解決數據流通過程中,數據共享與隱私保護之間的天然矛盾。目前 FAIR 已經在杭數交、貴數所等多家數據交易所得到應用。[2023/7/8 22:25:31]

CAIRO字母分別代表的意思是

a16z宣布推出使用零知識證明技術的空投領取工具:金色財經報道,加密風投機構a16z在官網宣布推出使用零知識證明技術的空投領取工具,使得加密項目方向活躍貢獻者發放空投時保護貢獻者的地址隱私,特別是根據用戶鏈下活動空投代幣的情況下。

具體而言,潛在的空投接收者可以通過公共渠道(如 Telegram、Discord、Twitter 或 Signal)提供消息(稱為“承諾”);然后,空投者通過將這些承諾散列在一起,構建一個Merkle樹。隨后,潛在的接受者可以通過提供零知識Merkle證明,證明他們是樹內承諾的作者,而無需透露是哪一個,從而聲稱自己的空投份額。

a16z稱,以這種方式申領代幣將收件人的公共地址與所有其他有權空投的用戶的公共地址混合在一起,從而保護他們的匿名性。[2022/3/28 14:21:12]

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

動態 | 以色列理工學院教授違反知識產權規定建立零知識證明技術公司:據Bitcoin.com報道,以色列理工學院教授Eli Ben-Sasson因違反了該學校知識產權規定而被起訴。據報道,Ben-Sasson利用在為該機構工作時開發的知識產權建立了一家零知識證明技術公司。Ben-Sasson是區塊鏈技術初創公司Starkware的聯合創始人兼首席科學家,以色列理工學院在法庭提出要求Ben-Sasson轉讓其在該公司的50%股份。[2019/4/23]

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

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

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

而第二版的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:AIRCAICAIROARKAIRT幣MCAI價格CAIRO幣MARKS

BTC
ZT創新板即將上線CRE,PLAYDAPP_PLA:數字資產

尊敬的ZT用戶: ZT創新板即將上線CRE,PLAYDAPP,并開啟CRE/USDT,PLAYDAPP/USDT交易對.

1900/1/1 0:00:00
對話Solana首批獲基金會支持的DEX Orca:設有收藏品板塊的AMM聚合器_ORCA:SOL幣很垃圾

7月底行情回暖,Solana生態也逐漸起勢,借助極高的TPS,Solana目前效率可達到每秒50000。Solana生態首批獲基金會資助的人性化DEX?Orca在上線半年內達到了4億美元交易量.

1900/1/1 0:00:00
扎克伯格:元宇宙是互聯網的未來_元宇宙:FaceDAO

采寫?|biu 編輯|靖宇 來源|??極客公園 「元宇宙」這個詞正在成為「風口」。這是個29年前就存在的科幻概念,隨著最近幾年吸納了日臻成熟的AI、AR/VR、區塊鏈等技術成果后,突然間就占領了.

1900/1/1 0:00:00
摩根大通表示CBDC不能蠶食商業金融系統_加密貨幣:YOU

據coindesk8月6日報道,摩根大通表示央行數字貨幣不能蠶食各國的商業金融系統。摩根大通策略師JoshYounger周五在一份說明中寫道,這種風險在于銀行客戶將資金從支票賬戶轉移到CBDC賬.

1900/1/1 0:00:00
14.Tbit合約保險基金_USDT:eth價格今日行情USDT

本文主要講述保險基金的作用、保險基金的原則和保險基金的運用規則等一些常見的關于保險基金的基本問題。 什么是保險基金 保險基金用來避免交易者的倉位被自動減倉.

1900/1/1 0:00:00
XT 關于恢復 BEP20代幣 提幣的公告_NEX:NEXT

尊敬的XT用戶: BEP20鏈的錢包升級維護已完成,XT現已恢復BEP20代幣的提幣業務。感謝您對XT.COM的支持與信任!XT.COM團隊2021年8月9日Connext Network宣布與.

1900/1/1 0:00:00
ads