📜 [專欄新文章] [zkp 讀書會] Cairo 語言介紹
✍️ NIC Lin
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Cairo 是 STARK 證明系統的其中一個編程語言,讓開發者能透過 Cairo 來使用 STARK,撰寫效能更高的 Dapp
Photo by Simon Berger on Unsplash
Warning:本篇會保持在 high level 的介紹,實際深入的部分請見文內附上的文檔或是官方開發者文件
背景介紹
建構於密碼學的零知識證明能提供計算的隱私性,但同時在區塊鏈生態系也被用來提升 Scalability — 我可以用 10 秒的運算資源來驗證原本耗費 1000 秒運算資源的計算過程
如同更多人熟悉的 SNARK,STARK 也是一個零知識證明的證明系統,但當前的 STARK 著重的是在 Scalability ,而非大家比較習以為常零知識證明提供的隱私性特質
其實目前基於 SNARK 的 Rollup 項目,例如 zkSync、Loopring、Aztec、zkopru,除了 Aztec 外,其他都是利用 SNARK 來增加 Scalability — 這些 Rollup 上資料都還是公開、沒有隱私性的
StarkWare 是目前唯一基於 STARK 的開發團隊
STARK 要加上隱私保護不會太難,只是 StarkWare 還沒有把這項功能放在未來規劃中
Cairo 簡介
標榜為圖靈完備的零知識證明系統語言,Cairo 對原本熟悉 Solidity 的開發者來說還是會感到比較難上手和陌生的。再加上套件庫還不夠充足,目前支援的雜湊函式是 Pedersen,數位簽章演算法是 ECDSA(相對於 SNARK,EdDSA 的效能反而比較差所以沒有支援)。
但 Cairo 還在早期開發的階段,相信開發體驗會越來越好的。
另外需要注意的是作為一個證明系統,會有 Prover 和 Verifier 的角色。而 STARK 的 Verifier 是公開的,但 Prover 軟體預計會有 License 保護。Prover 一般情況下不得用於商業用途,除非將 proof 上傳至官方的 Verifier。
最後要提及的是,第一版的 Cairo 是設計來方便開發者將 Dapp 的運算遷移至鏈下。不同於 Rollup,這個鏈下只會有它自己一個 Dapp。這個 Dapp 的項目方自己維護自己 Dapp 的 state。( Rollup 則是 operator 維護所有 Dapp 的 state,Dapp 開發者不需自己操煩)
這可能有點難懂。如果你有在寫 Solidity,想像一下今天你在合約要用到合約裡宣告的 storage 變數時,你要自己提供 merkle proof 上來,證明這個storage 變數真的是這個值。這個就是開發者要自己維護 state 的意思。
而第二版的 Cairo 則是 StarkNet 裡使用的 Cairo(第一和第二版是不同編譯器),這版的 Cairo 就是作為 Dapp 在 Rollup 開發所使用 — 開發者可以在合約裡宣告變數,變數的值不需開發者維護,可以直接假設存在。
註1:StarkWare 不喜歡 Rollup 這個詞,他們覺得 Data Availability 的需求是一段光譜:不一定得要把 data 全都送上 L1,中間有其他方式可以做不同層級的 Data Availability。
註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 裡使用,例如要給你的程式 custom input 時。這時候只能在本地端開發才能使用這個功能。
開發 Cairo 要先安裝python,我將開發者文件整理出來的資料統整在這個 hackmd 文檔裡:https://hackmd.io/w690dpAQTsKeKZv3oikzTQ
裡面包含簡介、設置本地開發環境以及 Cairo 基礎(因為篇幅原因,所以不將內容複製到這裡)
註:我把開發者文件裡的代碼整理到這裡:https://github.com/NIC619/cairo_practice/tree/master/practices
如果不想在研究開發者文件過程中,還要自己手動拼湊裡面例子的話,可以直接用整理好的代碼來執行。同時 repo 裡還有包含一些額外自己測試 Cairo 功能的範例。
深入 Cairo
在那份 hackmd 文檔裡的開頭,可以連結到第二部分 — 深入 Cairo 的部分。裡面也是從開發者文件裡擷取出來我覺得比較重要的部分。如果你要讀開發者文件的話,我建議從 Hello Cairo 開始,它會從例子切入,會比較好知道 Cairo 怎麼使用。接著如果要更深入了解,再去讀 How Cairo Works。
StarkNet Cairo
第二版的 Cairo 其實功能和第一版的 Cairo 是差不多的,所以不必擔心在開發者文件裡學到的 Cairo 在 StarkNet 版本會不能用或差很多。在讀完 Hello Cairo/How Cairo works 後,就可以接著看 Hello StarkNet。會很順利的切換到 StarkNet 版本的 Cairo。
註1:我整理的文檔裡是按照第一版 Cairo 所寫的
註2:如果你從開發者文件一路看下來,體驗過非 StarkNet 版的 Cairo,那你在體驗 StarkNet 版的 Cairo 時一定會發現這更像一般智能合約的使用方式 — 你可以用 view 函式查詢 storage 變數,可以用 external 函式去執行合約(非 StarkNet 版本不是這樣操作 Dapp 的,這邊因為篇幅原因沒有詳細介紹)。
非常建議嘗試兩種版本的 Cairo,你會知道 1. 操作一個單獨在 L2 的 Dapp 和2. 操作與其他 Dapp 共存在 Rollup 上的 Dapp 的不同。這對了解 L2 怎麼運行、需要哪些資料、為什麼需要這些資料非常有幫助。
0.0.2 版的 StarkNet Cairo 目前還缺少一些功能:
函式還沒辦法宣告陣列或 struct 型態的參數
合約和合約之間還沒辦法互動
L1 沒有辦法讀取到 L2 的資料,L2 也沒辦法讀取到 L1 的資料。如果要建立跨 L2 Bridge,這個功能非常重要。
補充及個人心得
STARK 的 proof size 相比於 SNARK 系列的 proof size 大很多,又其證明所包含的交易數量對 proof size 和驗證時間的影響不大,所以把很多筆交易一併做一個 proof 會是對 STARK 非常有利、節省成本的方式(SNARK、STARK 比較表)。但這同時也是一個缺點,如果你的 Dapp 或 Rollup 的 TPS 不高,那就只能等更久時間搜集多一點的交易,要不然就只能提高成本來維持驗證 proof 的頻率。
StarkWare和 zkSync 一樣都有 Rollup 宇宙的概念( Rollup 宇宙的用詞並不精確,因為在他們的宇宙中不會所有子鏈都是 Rollup,而是會有依照 Data Availability 程度不同所區分的子鏈,像是 Validium、zk Porter 的設計),個人覺得能夠有(針對 Data Availability 程度的)選擇是會比只有一個選擇(完全 Data Available) 還好的方式,但實際上的可行性就要等其團隊釋出更多的資訊。
在 Rollup 越趨成熟的情況下,能夠提供快速跨 Rollup 服務的流動性提供者的角色會越來越重要。zk Rollup(StarkNet、zkSync、etc…)比 Optimistic Rollup (Optimism、Arbitrum、etc…)有著短上許多的 finalize 時間,這對降低流動性提供者的風險有很大的幫助,但目前 zk Rollup 支援合約功能甚至 L1 <-> L2 互動的完成度都比 Optimistic Rollup 還低上許多。短期內快速跨 Rollup 的服務應該還是侷限在 Optimitic Rollup 之間。
abbrev
[zkp 讀書會] Cairo 語言介紹 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
「hackmd心得」的推薦目錄:
- 關於hackmd心得 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於hackmd心得 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於hackmd心得 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於hackmd心得 在 thread:[心得] 火箭隊入侵筆記[hackmd共筆] - PokemonGO 的評價
- 關於hackmd心得 在 [心得] 火箭隊入侵筆記[hackmd共筆]- 看板PokemonGO - Mo PTT 的評價
- 關於hackmd心得 在 HackMD - Facebook 的評價
- 關於hackmd心得 在 標籤: Hackmd | Wysiwyg - QWERTY 的評價
- 關於hackmd心得 在 [討論] 大家的hackmd還可以用嗎?好像無法打字? - PTT評價 的評價
- 關於hackmd心得 在 [心得] 火箭隊入侵筆記[hackmd共筆] - Pokemon GO - 寶可夢GO 的評價
- 關於hackmd心得 在 [心得] 火箭隊入侵筆記[hackmd共筆] - 看板PokemonGO 的評價
- 關於hackmd心得 在 十週考上台清交資工所的那些小事- 研究所板 - Dcard 的評價
hackmd心得 在 Taipei Ethereum Meetup Facebook 的最讚貼文
📜 [專欄新文章] Crosslink Taiwan 2019 以太坊技術研討會活動圓滿成功
✍️ Yahsin Huang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
台北以太坊社群舉辦「Crosslink Taiwan」研討會活動,10月20日台北矽谷國際會議中心於圓滿落幕。
台灣區塊鏈界年度盛事之一的「Crosslink Taiwan」由台北以太坊社群(Taipei Ethereum Meetup)主辦,活動吸引 300 餘人參與,共計有 20 位全球開發者和研究者共襄盛舉;同時,由於 Devcon 年度全球規模最大的以太坊開發大會,今年十月在日本大阪舉行,台北以太坊社群把握難得機會,邀集了多位以太坊技術社群重要推手齊聚對談,促進台灣與國際交流合作契機。
「Crosslink Taiwan」以太坊技術研討會於 10 月 19 日星期六及 20 日星期日,為期二天的時間在新北市新店區台北矽谷國際會議中心舉行,今年是首屆,邀請來自美、加、西、澳、日、英、德、荷等國、20 位以太坊開發者和研究者參加,30 場議程,主題聚焦在以太坊 2.0 及擴展性(Scalability)技術研究討論,一同展望以太坊技術最新趨勢,為 2020 年以太坊技術面貌勾勒新藍圖。
台北以太坊社群舉辦「Crosslink Taiwan」研討會活動,10月20日台北矽谷國際會議中心於圓滿落幕,活動吸引 300 餘人參與。
Crosslink 活動第一天上午舉行以太坊基金會台灣「教育專案」及「開發專案」獎學金(Taiwan-specific Wave of Grants)頒獎典禮。
Crosslink Taiwan 研討會的第一天開幕,以太坊基金會策略總監 Albert Ni 及 以太坊基金會首席科學家 Vitalik Buterin 頒發以太坊基金會台灣「教育專案」及「開發專案」獎學金(Taiwan-specific Wave of Grants),以鳳梨作為象徵性的獎狀,祝福受獎者未來研究順利。
值得注意的是,Crosslink Taiwan 主辦單位台北以太坊社群為了增加新手學寫以太坊智能合約的動機,特別設計了一款破解以太坊智能合約漏洞趣味遊戲競賽 CTF (Capture the Flag),CTF 競賽在活動前開跑進行,目的希望讓更多開發者能體驗寫智能合約的樂趣(點此觀看 Crosslink 破解智能合約漏洞 CTF 競賽玩法文章)。
Crosslink Taiwan 活動第一天邀請到以太坊基金會首席科學家 Vitalik Buterin 進行專題演講。
以太坊研究員 Danny Ryan 在第一天議程中,分享了 以太坊 2.0 研究進展及挑戰,包括以太坊 2.0 的架構、新的分片提案、執行環境 (Execution Environments, EE),以及雙向橋接 (Two-Way Bridge) 等議題。(點此觀看 Danny Ryan 演講的回顧文章)。
CYBAVO 技術長徐千洋,是台灣著名駭客會議 HITCON 與台灣駭客技術社群 CHROOT 創辦人,會談私鑰的安全與保護(點此觀看徐千洋演講的回顧文章)。Pelith 創辦人陳品(Ping Chen),同時也是區塊鏈技術專欄 CryptoCow 的創辦人,談區塊鏈系統中的使用者體驗(點此觀看陳品演講的回顧文章)。
Crosslink Taiwan 活動第一天座談聚焦技術社群文化建立。
第一天的座談交流聚焦技術社群文化建立,由以太坊研究員梁智程(Chih-Cheng Liang)主持,與談人以太坊基金會策略總監 Albert Ni 提及,在區塊鏈領域幾乎沒有硬門檻(hard gate),例如學位或年紀,但是存在許多軟門檻(soft gate),例如初學者常需要在缺乏指導下摸索前進。(點此觀看第一天對談 HackMD 共同筆記)。
活動的第二天聚焦在以太坊 2.0 技術未來發展。上午議程由加拿大籍講者 Liam Horne,同時是 L4 Ventures 共同創辦人、ETHGlobal 共同創辦人,分享狀態通道的開發經驗。(點此觀看 Liam Horne 演講的回顧文章)。來自歐洲的 Wizard Amigos 創辦人 Nina Breznik 與 Alexander Praetorius 在現場用 2 小時的時間,手把手帶領會眾寫智慧合約。其中一場議程特別安排討論點對點網路層 libp2p 框架,邀請到技術主管 Raúl Kripalani 來分享(點此觀看 Raúl Kripalani 演講的回顧文章)。
Crosslink Taiwan 活動第二天座談聚焦以太坊 2.0 挑戰和未來發展。
第二天的座談交流聚焦以太坊 2.0 挑戰和未來發展,主持人以太坊研究員王筱維(Hsiao-Wei Wang),談及 eth1 和 eth2 間可組合性問題(Composability)。與談人以太坊研究員 Danny Ryne 說,可組合性是一大顧慮,但不至於太嚴重。他認為需要有更好的程式語言和開發工具。以太坊基金會首席科學家 Vitalik Buterin 說,運作方式有所不同,必須更努力的去想,但你仍然有可組合性。(點此觀看第二天對談 HackMD 共同筆記)。
活動同時安排進階工作坊給已經有開發經驗的會眾參與,包括 Aragon Luis Cuende 的 DAO 實作工作坊。 DAO 是去中心化自治組織,是利用智慧合約去管理組織治理的業務邏輯,(點此觀看Luis Cuende演講的回顧文章)。
Crosslink Taiwan 第二天安排數個工作坊活動,參加者能與講者近距離互動及發問。
AMIS 首席科學家陳昶吾,在政治大學開設區塊鏈課程,活動第二天的工作坊中,介紹權益證明中熱門的密碼學元件「可驗證延遲函數(VDF)」。政大資訊科學系助理教授郭桐惟介紹了分散式系統的研究,以及政大資訊管理系的陳恭教授介紹跨醫院資料共享的應用(點此觀看陳恭教授演講的回顧文章)。
會後採訪 Crosslink 活動總召 Phini Yang,她說,今年的 Crosslink 非常成功,特別謝謝活動籌備組長和志工,把所有的細節都照顧到,使得活動圓滿成功。明年預期也將舉辦第二場 Crosslink 以及區塊鏈黑客松活動,期待促發更多的交流與合作機會。
Crosslink Taiwan 2019 以太坊技術研討會活動圓滿成功 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
hackmd心得 在 Taipei Ethereum Meetup Facebook 的最讚貼文
📜 [專欄新文章] Crosslink 就是明天了!參加活動前,你需要注意的事項都在這邊。
✍️ Phini Yang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
謝謝各位踴躍參加 Crosslink 2019 Taiwan 研討會,我們非常興奮能看到台灣區塊鏈技術社群如此積極參與。希望這兩天你也能跟我們一起學習到區塊鏈最新發展。
接下來,請讓我跟大家說明活動中所需要注意各種事項。
如果有任何問題,請寫信至 [email protected] 詢問,或是於 Crosslink Telegram 官方頻道中詢問。
研討會時間與議程
10.19 (六) 9:00 AM — 5:00 PM
10.20 (日) 10:00 AM — 5:00 PM
場地將於週六早上 9:00 開放報到。本次活動將提供中午便當與休息時段也會有點心飲料。響應環保,建議參與者自行攜帶裝水容器。
💪 完整會議議程請看:第一天 |第二天
💪 太多議程?不知道要選擇哪一場嗎?我們也貼心列出部分議程重點精華,提供你做參考:第一天 |第二天
抽獎活動
我們邀請你留下來跟我們一起參與活動閉幕,為了獎勵陪我們留到最後一刻的朋友,將會有驚喜抽獎活動,現場抽出幸運兒,只限有在現場的你唷。
🇹🇼 官方 After Party 資訊 🇹🇼
不夠時間跟區塊鏈愛好者認識?沒關係。主辦單位邀請每位參加者於研討會後,來參加 After Party,一同來吃吃喝喝,認識新朋友。
時間:10.20 (日) 6:30–9:30 PM
地點:有名堂 台粵菜 海鮮料理 (新北市新店區北新路三段153號)
費用:研討會購票者免費(請攜帶手環以供查證)
報到流程
請直接向報到工作人員秀出活動票券 QR code,以利審核。
註冊後,參與者將配發一枚手環,請帶在手上方便,以示你有購買票券,並方便進出研討會。
❗請注意 ❗
購買學生票的參與者,活動當天請準備好學生證,以供註冊組工作人員查證。如果忘記帶到學生證,需要現場「補付」活動差價唷。
2. 請務必妥善保管手環,遺失手環主辦單位將「不再」補發。屆時,您將無法進入活動會場。
活動地點與交通
此次活動場地位於「台北矽谷國際會議中心」,地址為新北市新店區北新路三段 223 號 2F。請注意,活動場地在二樓。
位於新店矽谷園圍有許多大樓,請找出下圖的圓形外貌大樓,並從入口走進去。
【捷運族】
請於大坪林站一號出口出來,沿著北新路三段走到台北矽谷國際會議中心
【停車資訊】
請搜尋「台北矽谷二期停車場」,地下 B3 有收費停車場可使用。
**參加會議者享有停車優惠,一天最高收費 $160 元。請於活動服務台索取優惠卷。
場地平面圖
活動議程分為主會場 (B廳) 與工作坊 (C廳) ,如同圖中所示。
官方活動 App — Opass
主辦單位特別推出手機版本 App 供參與者方便查看各種資訊。
iOS 下載處 |Andriod 下載處
HackMD 官方共筆文章
感謝 HackMD 支持 Crosslink 活動,將提供活動專頁讓參加者可以共筆紀錄活動重點。
歡迎你加入記錄行列:Crosslink 活動共同筆記
常見問題 Q&A
票券問題:
Q1: 我遺失了活動通寄出的研討會票券怎麼辦?
A1: 請到報到處找特殊情況處理人員補發票券。
Q2: 我可以到現場買票嗎?可以付現金嗎?
A2: 歡迎你到現場購票,但我們不會在現場收現金,還是請你連到活動通售票頁面購票(刷卡或超商繳費),購票確認完成後,就能參加活動。所以,事先購票對你來說還是最方便的喲。
Q3: 我需要正式發票收據,以向公司請款,我可以在哪裡提供相關資訊?
A3: 需要開發票的參加者,請協助填寫此份表單,我們會在活動後寄出發票。
Q4: 我遺失/忘記帶手環,怎麼辦?A4: 手環是購票證明,沒有手環的人一律不能進入會場。請妥善保管你的手環,忘記帶或是不小心遺失,主辦單位皆「不會」補發,那你將不能進入活動會場。
Q5: 為什麼我沒帶學生證就要補差價?
A5: 學生票價是一般票價的五折左右,如果無法查證你學生身份,將對其他購買一般票的參加者造成不公平待遇。請你一定要記得帶學生證,提供現場人員查證!
其他問題:
Q1: 我想報名手把手工作坊,有需要什麼準備嗎?
A1: 主辦單位將提供 WIFI 與電源插座供使用,你只需帶電腦過來就好。不需要事先報名。
Q2: 參加完活動後,非常有收獲,特地寫了一篇文章,我可以發表在哪邊嗎?
A2: 請直接聯繫 Taipei Ethereum Meetup Facebook 粉絲頁小編,會有專人與你聯繫。
Q3: 活動現場有錄影嗎?會直播嗎?
A3: 有的,我們有安排專業錄影公司協助紀錄。會於活動後 2–3 週,將影片分享於 Taipei Ethereum Meetup Youtube 官方頻道上。
🇹🇼 歡迎追蹤 Taipei Ethereum Meetup 🇹🇼
Facebook FanPage https://www.facebook.com/pg/eth.taipei
Facebook Group https://www.facebook.com/groups/taipei.ethereum.meetup
Meetup page https://www.meetup.com/Taipei-Ethereum-Meetup/
Youtube https://www.youtube.com/channel/UCVmRAQeesq4TA3rdvbz-IkQ
如果有任何問題,請寫信至 [email protected] 詢問,或是於 Crosslink Telegram 官方頻道中詢問。
Crosslink 就是明天了!參加活動前,你需要注意的事項都在這邊。 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
hackmd心得 在 [心得] 火箭隊入侵筆記[hackmd共筆]- 看板PokemonGO - Mo PTT 的推薦與評價
抽空寫了這個共筆有要補充或是修正的歡迎在頁面留言提出(點上方的鉛筆圖示後,每個段落的右邊會有個留言符號) 也歡迎直接登入後編寫共筆火箭隊入侵筆記: ... ... <看更多>
hackmd心得 在 HackMD - Facebook 的推薦與評價
HackMD is a collaborative NOTE based on Markdown, focusing on real-time ... HackMD. 歡迎Primer 分享使用心得&改善建議 · HackMD. 2023年5月27日. ... <看更多>
hackmd心得 在 thread:[心得] 火箭隊入侵筆記[hackmd共筆] - PokemonGO 的推薦與評價
‹ 看板
精華區
最舊
‹ 上頁
下頁 ›
最新
[心得] 火箭隊入侵筆記 [hackmd共筆]
... <看更多>