StarkNet Layer2 解決方案主題演講與開發者 AMA。
bilibili 視頻版:https://www.bilibili.com/video/BV1Ab4y1p7ZF?spm_id_from=333.999.0.0
大家好,歡迎參加今天 StarkNet 中文開發者 Meetup。本次 Meetup 由 StarkNet 與 ECN 以太坊中文社區合辦,由 dApp Learning 與登鏈社區提供支持。
本次 Meetup 分為兩部分,第一部分為 StarkNet Layer2 解決方案主題演講,第二部分是 AMA 由 StarkNet 團隊 Henri Lieutaud 回答中文社區問題。第一部分為中文,第二部分為中英文。
主題演講— STARK Validity Rollup 擴容終極解決方案
2008 年的比特幣出現,2015 年的以太坊出現。代表新一代金融基礎設施區塊鏈誕生,但他們處理能力相對支付寶、銀行要慢。
在比特幣之前,我們的商業生活存在一些受信任的機構來負責維護我們的賬本,為它們提供安全性。在這種模式中,為了公正、完整性,我們就需要信任銀行、保險公司,委託責任給會計、財務、法務等專業人士或者實體。這種委託式責任非常高效,且具有排他性。
那麼區塊鏈的誕生,代表新一代金融基礎設施。在區塊鏈裡,沒有任何一個單一實體負責所有交易的執行和維護,每個網絡參與者都必須負責賬本維護,也就是說每個網絡參與者都要對網絡裡的任何東西進行重新執行和重新計算,這也是在區塊鏈上進行交易這麼貴的原因。
我們把這種無需信任任何中心化機構或實體,網絡上每個人對區塊鏈上所有東西都進行驗證的特性稱為 “包容性責任 (inclusive accountability)”。
這種系統具有包容性、安全性和去中心化,但它很貴,很慢,會犧牲隱私性和可擴展性。
這時候我們就要考慮如何保證包容性的同時,進行擴容。
區塊鍊網絡之所以難以擴展,是因為如果想要提高一個網絡的負載,計算賬本的人就需要使用更大型的計算機。而要保證去中心化,就不可能讓每個參與網絡的人都在家運行大型機器。因此,如果你選擇了更高的吞吐量,就會把小型運行者排除在外。小型運行者如果想參與網絡,就只能信任大型運行者,這就會導向中心化。
現在主要擴容方案,一種就是欺詐證明 rollup。欺詐證明 rollup 還是需要依賴大型計算機來處理網絡,給出正確的輸出,但如果他們想篡改交易內容,你會有記錄,你可以追索。有問題的交易可以在挑戰期內回滾。
在欺詐證明 rollup 裡,並不是所有參與者都計算所有的交易,他們基於博弈論假設所有交易都得到正確處理,所以需要有最小信任假設,具有不完全包容性。
另外一種擴容方案就是,有效性證明,代表性的就是 StarkNet 與 zkSync、還有 Aztec。StarkNet 的 zk-rollup 使用的有效性證明,一種新的加密技術,這種技術可以把一定量的計算變成我們稱之為零知識證明的東西,而這種零知識證明確保這些計算都是正確的,而你不需要重新計算。所以我們的網絡會有點不同,我們有不同的參與者,我們仍然有大型參與者集中了大量為所有人做計算的網絡容量,但你會有數學上的保證,這些大型參與者做的計算都是按照規則的。這種方法的精妙之處在於這些證明是可以被驗證的。計算證明就是你告訴別人我做了這些計算,這是證明,這個證明是一些數據,別人可以拿這些數據去驗證,就可以知道你的計算是否正確。這裡很棒的地方在於你可以做很少量的工作就可以驗證,而不需要真的去執行計算。這其實有點像工作量證明。
它的工作機制是這樣的,Prover (證明者) 會接收計算負載,執行所有東西,然後生成一個執行證明(Statement)。這個包含執行和執行結果的證明會被發送到 verifier (驗證者),驗證者可以通過執行某個程序驗證該結果,且執行該程序不可能會得出其他結果。也就是說,並不需要所有人都計算一切才能得到共同的世界狀態。這樣一來,我們可以剩下大量的冗餘,可以有專業化角色,而不需要每個人來進行相同的計算。可以讓少數人為所有人做所有的計算,但每個人都可以從相同的世界狀態受益。這些證明會被發送到以太坊,以太坊上有操作碼可以驗證計算證明,也就是說以太坊本身就可以做驗證,在 StarkNet 和以太坊間不需要有中間角色。
此外證明是不包含任何交易信息,交易金額、交易地址、時間都不包含。只是用來驗證這些交易的可靠性,所以有效性證明不會把交易信息暴露給驗證者。
另外隨著處理交易量增加,證明者處理時間呈線性增長,而驗證者處理時間的增長則非常慢。比如說現在每個區塊處理一萬筆交易,驗證者下載驗證證明需要 170 ms,那麼處理交易量增加一百倍到 100 萬,那麼驗證者處理時間是 400 ms,這樣處理交易量增加 100 倍,驗證者處理時間只增加了 2.5 倍。這樣驗證者數據處理成本更低,更快,所以有很好擴展性。
StarkWare/StarkEx/StarkNet
StarkWare 旗下兩款款產品就是 StarkEx 和 StarkNet。StarkEx 是 2020 年就已經上線,目前 tps 最高的 L2,交易量佔以太坊 1/4。
這時候先來介紹一下背後的團隊,StarkWare 成立於 2018 年。zk-STARK 是由 StarkWare 團隊研發的最新的零知識證明技術,最先應用於 StarkNet 和 StarkEx。Cairo 是圖靈完備的通用計算編程語言,StarkNet 合約和 StarkNet OS 都是基於 Cairo 語言編寫的,使得開發者能夠進行更加輕鬆快捷的代碼開發、審校和維護。StarkNet 提供兩種數據可用性解決方案,Validium 是鏈下方案,Volition 是可選鏈上鍊下的方案。
StarkEx 是利用 zkSTARK 技術針對特定應用定制的擴容方案。使用 StarkEx 擴容引擎的應用有:鏈上永續合約 dYdX、鏈上現貨交易 Deversifi、NFT 市場 Immutable 和 NFT 足球遊戲 Sorare。
StakNet 分四步推出,分別是:基礎設施搭建、行星計劃 (單應用 zk-Rollup)、星群計劃 (多應用 zk-Rollup)、宇宙計劃 (去中心化 zk-Rollup)。
StarkNet 作為去中心化無需許可的通用計算平台,歡迎感興趣的開發者加入到我們的社區當中。歡迎加入 discord,我們團隊會為開發者提供最好的開發體驗。
AMA
問:Polygon、BSC 這些擴容方案方式都很簡單,都採用兼容 EVM 的方式。StarkNet 為什麼選擇一條不同的路,從算法到 Cairo 所有都重構?
答:
STARK 證明的工作原理是這樣的,它基於一種數學方程。當你需要使用一個證明去證明某個事實時,你要證明你滿足了某個數學命題。那怎麼做到呢,基於此類計算構建一種編程語言,並使得其可證明。這意味著你可以從其正確執行下生成一個證明。這不簡單,現在任何其他編程語言都無法做到。這就是為什麼我們需要一個特殊的編程語言來實現一個可證明的程序。
這個問題可以是,為什麼基於 Cairo 語言重新實現 EVM。EVM 是由網絡中所有參與者來運行。而 Cairo 中不需要這麼做,需要有個計算機進行運算,給出一個正確的證明。使用 Cairo 可以進行更複雜的運算,用 Solidity 做不到。
問:開發者如何在 StarkNet 開始開發?他們得從頭開始學 Cairo 嗎?
答:不一定學習 Cairo。Cairo 是通用計算語言,你需要熟悉 StarkNet,但不一定要學 Cairo。我們在開發一個 Solidity <> Cairo 轉譯器 Warp。如果想要學習,有教程,開始非常簡單。也可以部署 ERC-20/721 合約,如果有任何問題可以聯繫我。Warp 目前使用會有些問題 (後續會有持續版本更新)。(轉譯器 Warp 和 Cairo 的學習資料見附錄)
問:StarkNet 與 StarkEx 未來如何發展?
答:StarkNet 已經測試了九個月,一直在測試 Cairo VM 的智能合約通用計算。去中心化方面,今年也在進行。目前主要還是解決性能,預計使 StarkNet 相對於以太坊提升十倍,成本降低百倍,預計今年七月達到。
下半年我們會研究可靠、具體的去中心化方案。去中心化並非一蹴而就,我們不想太急於求成,我們想求穩,今年底會推出具體方案。
我們會引入遞歸證明,推出 L3,形成 “以太坊-> StarkNet -> StarkEx” 這樣的結構。StarkNet 是在以太坊驗證所有交易。未來 StarkNet 實現圖靈完備,應用可以直接在 StarkNet 部署。StarkEx 上的應用可以繼續使用,也可以選擇到 StarkNet 上。就像 StarkNet 建在以太坊上,實現可組合。
問:關於 L2 原生 dApp,是否會出現我們在 L1 從沒見過的應用?
答:當然會。StarkNet 的優勢就是給予開發者無限的計算能力。從這方面講肯定會出現很多新的東西,到底是什麼還很難預測。
遊戲已經有很多有意思的應用。比如說對戰之類在以太坊上很難實現,在 StarkNet 做此類計算很便宜。
另外就是跨鏈應用,StarkNet 有非常多樣化的橋接功能。你可以從 L1 向 L2 發送任何負載。請注意,不是轉賬,而是負載。所以你可以把 dApp 的頭部部署在 L2,在這裡可以進行費用較低的治理或遊戲操作,可以向 L1 的流動性發送指令。就像 L2 是大腦,L1 是肌肉。
問:團隊要遷移 dApp 到 StarkNet 該怎麼做?
答:如果想要在多鏈部署,在 StarkNet 上部署回比較難。因為 StarkNet 的工具完全不一樣,用在 EVM 的東西都不適用於 StarkNet。現在可以用 Warp 轉譯 Solidity 到 Cairo 開始部署。要是有 dApp 在 L1,只是想在 L2 擴展功能,我們有「信息橋 (messaging brige)」,可以從 StarkNet 發送命令給 L1.
附錄
轉譯器 Warp 和 Cairo 學習資料:
https://github.com/NethermindEth/warp https://github.com/l-henri/starknet-cairo-101 https://github.com/l-henri/starknet-erc721 https://starknet.io/docs/hello_starknet/index.html#hello-starknet https://github.com/l-henri/starknet-erc20
StarkNet 致力於開發去中心化、無需許可的通用計算平台,歡迎開發者加入 StarkNet 社區
Discord - https://discord.gg/uJ9HZTUk2Y
中文開發者 Telegram - https://t.me/starknet_zh
免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。