介紹
克服了最困難的技術挑戰之后,我們進入了這項工作的沖刺階段:在兼容EVM的環境中部署智能合約。zkSync推出zkSync2.0首個測試網版本:用戶已經可以使用區塊瀏覽器查看zkSync2.0的交易活動。在本文中,我們將深入解釋每個關鍵組件,公布進度更新以及下一個版本的計劃。
ZKSYNC2.0測試網瀏覽器:
https://zksync2-alpha.zkscan.io/
關鍵成就
在密碼學方面,zkEVM的指令集已經確定下來,并且兩種實現都已經完成:在電路中和在執行環境中。
在編譯器方面,用Solidity和Zinc編寫的智能合約現在可以編譯到zkEVM字節碼中。
在核心基礎設施方面,全節點集成已完成,并且能夠成功地部署和執行已編譯的智能合約。
雖然zkEVM和2.0的核心基礎設施已經準備好向公眾公開,但是該版本的編譯器還需要更多工作進行完善,以應對所有極端情況。為了提供更加全面的開發者體驗,我們決定在該編譯器100%可靠之后,將同時開放對zkEVM、編譯器和核心SDK的訪問。
比較zkSync2.0和以太坊
兩者看起來大部分相同,以下幾點是比較重要的區別:
智能合約
zkSync2.0支持以太坊上的大部分操作碼。然而,有以下這些例外:
1.這次的測試網版本不支持ADDMOD、SMOD、MULMOD、EXP和CREATE2操作碼,但是未來的版本會支持。
Snapshot新增支持zkSync Era:7月25日消息,治理平臺Snapshot宣布現已支持zkSync Era,zkSync Era生態系統中的DAO現在可以使用Snapshot運行其治理,無需支付Gas費用。[2023/7/26 15:58:25]
2.我們將暫時不支持KECCAK256操作碼,而是通過自動調用另一個抗碰撞的哈希函數來替代它的所有調用。KECCAK256之后將作為預編譯引入。
3.我們決定不再包含SELFDESTRUCT操作碼,因為以太坊正計劃將其移除。
4.我們可以移除對完整256位XOR/AND/OR操作碼的支持,因為這些操作碼只存在于那些用于位屏蔽的已編譯的solidity代碼中。這可以由編譯器使用其他操作碼來完成。
Gas
在zkSync2.0中,有一個不同概念的gas。交易費價格將根據當前L1gas費和生成零知識證明(ZKP)的成本而波動。智能合約的調用將有一個最大的zkEVM步驟和存儲寫入參數。
Web3API
下一個版本將包含我們Web3API實現,它將與以太坊文檔所定義的Web3標準兼容。事件將開箱即用,并且所有服務都可以輕松整合。
zkSync包含L1沒有的特性,比如已驗證和已敲定區塊的概念。因此,還會有其他方法讓開發者更精確地控制數據。Web3客戶端代碼將接收與以太坊相同的數據,但可以通過zksync_名稱空間請求特定的信息。
因為zkSync有多種交易類型,并且使用EIP712簽名,所以eth_sendRawTransaction數據的格式與L1不同。然而,編碼與以太坊ABI相對應,所以支持它并不困難。
數據:zkSync Era過去一周漲幅46912.7%:金色財經報道,據L2BEAT數據顯示,Arbitrum網絡TVL達58.1億美元(其原生Token ARB占比為27.59%),過去一周漲幅達49.91%。zkSync Era網絡TVL達3389萬美元,zkSync Era過去一周漲幅達到46912.7%,Layer 2網絡總體TVL達87.6億美元,周漲幅為25.74%。[2023/3/27 13:28:12]
對交易進行簽名
zkSync2.0中的交易可以通過兩種方式進行授權(除了優先級隊列機制):
1.用戶可以通過對一個EIP712信息簽名,從而用他們普通的以太坊錢包(如Metamask或者任意的WalletConnect錢包)對交易進行簽名。
2.任何賬戶都可以設置一個公鑰來創建我們的內部Schnorr簽名來對交易進行簽名。這允許基于智能合約的錢包與zkSync2.0進行交互,而無需額外的成本發送L1的信息。
存儲效率提升
每個區塊只能對存儲槽覆寫一次。這意味著,如果多個用戶與單個AMM合約交互,那么該AMM合約的存儲槽只會被覆寫一次。這允許排序者稍后向用戶退還單次寫入的共享成本。
預編譯
“預編譯”機制是在計劃中的,但將在稍后發布。我們計劃首先支持keccak256、sha256哈希和ECDSA恢復原語。此外,我們會根據需求和復雜性考慮包含其他預編譯,例如Blake2f輪函數(以當前形式在以太坊中幾乎無法使用)。
Sui聯合創始人:Sui已支持Groth16 zkSNARK算法:11月19日消息,Sui Network聯合創始人Kostas Kryptos發推稱,Sui歡迎零知識證明,用戶現已可以其交易事務中附加Groth16 ZKP證明,由于我們的后端結合了Arkworks和BLST,因此這樣做可以提升2倍的驗證性能速度。”與此同時,Kostas分享的Sui Github界面顯示關于Groth16的模塊已于今日提交。
注:Groth16是zkSNARK的典型算法,系Groth在2016年發表的一篇論文中提出,目前該算法在ZCash,Filecoin,Coda等多個項目中均有應用。[2022/11/19 13:24:11]
進一步的限制
zkSync2.0的第一次迭代可能會增加一個額外的限制,即每筆交易只能調用32次智能合約,直到可以實現恰當的記賬機制。
執行跟蹤將有硬限制,但它將與以太坊區塊大小目前的限制相當,不應影響大多數。
可能會有更多的限制,但我們的目標是在最終版本中將這些限制盡可能減少到最低限度。
深入了解zkSync2.0的架構
你可能聽說過“區塊鏈的不可能三角”,但當談到擴容以太坊時,還有第4個因素:可編程性。所有當前的擴容解決方案都犧牲了一些安全性、去中心化和可編程性來實現可擴展性。zkSync2.0的設計結合了下列兩大技術突破,旨在最大化實現上面說到的四個特性:
1.zkEVM:為兼容EVM的zkRollup提供支持的引擎,這是同時提供L1安全性以及支持solidity智能合約的解決方案。
Layer2 DEX ZKSwap V2版本將于48小時內上線:基于以太坊的Layer2去中心化交易所ZKSwap在推特上表示,將于48小時內推出V2版本。[2021/7/26 1:16:46]
2.zkPorter:一個鏈下數據可用性系統,其可擴展性比rollups高出兩個數量級。
由于zkEVM和zkPorter是可互操作以及可組合的,zkSync2.0顯著優于所有其他擴容解決方案。
目前的共識是:Eth2數據分片將在2022年底上線,在不犧牲去中心化的前提下提供更大的數據可用層。結合了Eth2數據分片的zkRollup技術是zkSync的最終目標,在不犧牲4個因素中任意一個的前提下達到10萬以上的TPS。
狀態樹
zkSync2.0狀態樹覆蓋了以太坊全部的160位地址空間。每個帳戶將存在于zkRollup部分或zkPorter部分的狀態中。zkRollup和zkPorter帳戶完全相同,除了一點不同:獲取數據可用性的地方不同。zkRollup交易數據通過數據調用發布到以太坊主網中;而zkPorter的交易數據發布到zkSyncGuardian網絡中,其中,zkSync代幣持有者能夠參與該網絡的PoS機制。
數據:ZKS突破3.66USDT,上線最高漲幅358.25%:MXC抹茶交易數據,ZKS突破3.66USDT,24小時漲23.64%。2月13日,MXC抹茶創新區上線ZKS,開放USDT交易,相比0.8USDT開盤價,上線最高漲幅358.25%。資料顯示,ZKSwap 是一套基于自動化做市商(AMM,Automated Market Maker)的Swap協議。[2021/2/18 17:26:16]
選擇在哪里發布數據,是在成本和安全性兩者間做出權衡。zkPorter的交易費比rollup的交易費要便宜很多,但是用戶的資金可能會被凍結。然而,zkRollup和zkPorter賬戶的有效性是由零知識證明和以太坊來提供保證的。換句話說,zkPorter中的資金只能被凍結,不能被竊取。
zkRollup和zkPorter帳戶的互操作性和可組合性給了每個用戶成為zkSync一流公民的機會。假設,Uniswap部署在zkRollup端,用戶可以通過zkPorter賬戶訪問,并以最低的手續費進行swap。zkSync2.0是一個專門為整個金融領域用戶設計的系統。
密碼學
我們的虛擬機,通常被稱為zkEVM,它并不是完成1:1復刻EVM的。但是,zkEVM旨在能夠運行99%用Solidity編寫的合約,并且在遇到回滾和異常時也能維持同樣的行為。同時,zkEVM能夠有效率地在一個電路中生成零知識證明。
zkEVM的實現不需要我們對此前的證明系統做出重大的變動;我們繼續使用帶有自定義門和查詢表的PLONK?(通常被稱為UltraPLONK)和以太坊的BN-254曲線。這是有利的,因為這個證明系統已經過實戰測試(自2020年6月以來,zkSync1.0和其他項目就開始使用這個證明系統)。
經過幾個月的努力,zkEVM的指令集已完成,并在電路和執行環境中實現。
這里有一個重要的區別:電路和執行環境中的實現是分開的,用于不同的目的。電路的工作是生成執行跟蹤的證明并提供證人,但這個過程十分緩慢。另一方面,執行環境是zkEVM在rust中的直接實現,效率高、速度快。如果我們在生成證明和執行的過程中都依賴于電路,那么敲定交易需要幾個小時。而生成證明和簡單執行的分離使得zkSync上的交易能夠即時結算。
接下來,我們的工作將專注于將zkEVM和編譯器結合在一起,并和遞歸結合在一起:區塊之間的遞歸允許我們為N個區塊發布一個證明;而區塊內的遞歸聚合了區塊不同邏輯部分的子證明。這是簡單的部分!自2020年6月以來,zkSync1.0主網上已經使用了區塊之間的遞歸聚合證明。更多關于區塊內遞歸和我們的zkEVM如何工作的信息,請觀看視頻解釋。
編譯器
我們同時研究兩種針對zkEVM的編譯器前端:Yul和Zinc。Yul是一種Solidity的中間表示,可以為不同的后端編譯成字節碼。Zinc是我們基于rust的語言,用于智能合約和通用零知識證明電路。
因為編譯器是使用LLVM框架構建的,所以可以認為它有一個前端、Yul→LLVMIR和后端、LLVMIR→zkEVM字節碼。LLVM的采用帶來了幾個主要的優點:
1.LLVM優化框架是不匹配的:它從LLVMIR中生成最有效的zkEVM字節碼。
2.有了新版的Solidity或Zinc,編譯器前端將處理所有更改,而LLVM將使我們無需更改編譯器后端。
3.在未來,如果開發者想基于原生的Rust或Javascript編寫智能合約,只需為該語言構建編譯器前端,智能合約就可以在zkSync中開箱即用。
編譯器的安全性對我們來說是至關重要的,并且已經經過了多個套件的測試:
1.Zinc和Yul編譯器中的詞法、語法和語義測試。
2.我們自己針對Zinc和Solidity的集成測試,它貫穿整個智能合約生命周期:從解析源代碼到合約部署,再到在zkSync上執行交易。
3.從Solidity存儲庫集成的廣泛測試套件,適合我們的集成測試工具。
每個套件已經包含了幾千個測試,我們將至少增加一個數量級。
我們的兩編譯器已經成功部署并用兩種語言執行了簡單的智能合約。但是仍然有更多的優化需要完成,一些復雜的LLVMIR語句需要轉換為zkEVM字節碼。因此,我們決定等到我們的編譯器運行狀態更強健再發布。
完成編譯器的工作之后,我們將集中精力完善Zinc的功能,然后構建Rust編譯器前端來允許使用原生Rust編寫智能合約。
核心基礎設施
zkSync2.0核心基礎設施由幾個關鍵部分組成:
全節點
1.利用虛擬機的zkEVM字節碼的預電路執行器環境
2.狀態在交易發送后的幾秒內可用
3.過濾掉明顯無效的交易(例如,沒有足夠的資金進行交易),這些交易可能會使區塊膨脹
4.在內存池中執行交易并生成區塊。
證明者
1.接收區塊的見證者并生成零知識證明,
2.用于并行證明生成的證明者接口
3.自定義的證明者自動縮放器,可根據需要創建和終止證明者機器。
交互器
1.用來監測以及與以太坊L1交互的工具,
2.基于代幣價格、ZKP生成成本以及L1gas費來計算交易費用。
Paranoid監視器
Prometheus、彈性、哨兵、正常運行時間,幾個單獨的事件通知系統以及自定義的安全運行檢查服務。
zkSync2.0的核心基礎設施功能齊全,已經集成了zkEVM執行器。
點擊“閱讀原文”獲取文章內部鏈接!
原文鏈接:
https://medium.com/matter-labs/zksync-2-0-hello-ethereum-ca48588de179
來源|?MatterLabs
納斯達克上市公司MicroStrategy在CEOMichaelSaylor的領導下,已經算“AIIIn”比特幣了.
1900/1/1 0:00:002021年6月18日,一份《四川省發展和改革委員會、四川省能源局關于清理關停虛擬貨幣“挖礦”項目的通知》文件在網上流傳.
1900/1/1 0:00:00來源:財聯社 作者:胡家榮 一項最新調查顯示,至2026年前,對沖基金將大幅增加其對加密貨幣的敞口。這是最近數字資產價格大幅下跌和計劃實施懲罰性新資本規則后,幣圈迎來的一個利好消息.
1900/1/1 0:00:00自2020年底以來,NFT在音樂行業掀起了一場大風暴。隨著疫情讓很多演出擱置,音樂人越發迫切地希望從流媒體服務中賺取更多版稅。隨著需求的增加和新項目的開發,NFT音樂市場正在不斷擴大.
1900/1/1 0:00:00以太坊即將發生巨大的變化,我們會有Eth2.0、EIP-1559,并且會在主要的以太坊協議中越來越多地采用layer2擴展解決方案.
1900/1/1 0:00:00加密市場在國內經歷了三次大的監管,13年11月五部委發布《關于防范比特幣風險通知》強調比特幣不是貨幣,不能當做流通貨幣使用.
1900/1/1 0:00:00