介紹
克服了最困難的技術挑戰之后,我們進入了這項工作的沖刺階段:在兼容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操作碼,但是未來的版本會支持。
zksync Era主網跨鏈橋已正式上線:3月24日消息,根據社區消息,zksync Era主網跨鏈橋正式上線,目前可以進行交互,[2023/3/24 13:24:53]
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的Fair Onboarding Alpha主網上線,zkSync 2.0更名為zkSync Era?:據官方消息,以太坊二層網絡zkSync宣布Fair Onboarding Alpha主網上線,在此階段,主網對最終用戶保持關閉,注冊項目可以在系統向外部用戶開放之前在封閉環境中部署和測試應用程序。同時,zkSync 2.0更名為zkSync Era?,zkSync 1.0更名為zkSync Lite。zkSync Era?完全開源,開發者可自由查看、修改和分叉代碼。
此外,zkSync表示將推出新路線圖,更新協議下一個里程碑的概述。[2023/2/16 12:11:42]
對交易進行簽名
zkSync2.0中的交易可以通過兩種方式進行授權(除了優先級隊列機制):
1.用戶可以通過對一個EIP712信息簽名,從而用他們普通的以太坊錢包(如Metamask或者任意的WalletConnect錢包)對交易進行簽名。
2.任何賬戶都可以設置一個公鑰來創建我們的內部Schnorr簽名來對交易進行簽名。這允許基于智能合約的錢包與zkSync2.0進行交互,而無需額外的成本發送L1的信息。
存儲效率提升
每個區塊只能對存儲槽覆寫一次。這意味著,如果多個用戶與單個AMM合約交互,那么該AMM合約的存儲槽只會被覆寫一次。這允許排序者稍后向用戶退還單次寫入的共享成本。
預編譯
“預編譯”機制是在計劃中的,但將在稍后發布。我們計劃首先支持keccak256、sha256哈希和ECDSA恢復原語。此外,我們會根據需求和復雜性考慮包含其他預編譯,例如Blake2f輪函數(以當前形式在以太坊中幾乎無法使用)。
Layer 2去中心化交易所ZKSwap V2已上線REI和zUSD:基于以太坊的Layer 2去中心化交易所ZKSwap宣布,ZKSwap V2已經于UTC時間8月5日7點(北京時間15點)上線Zerogoki原生系統代幣REI,支持充值、提現和兌換。此外,據報道,ZKSwap于同一時間開啟Zerogoki穩定幣zUSD的充值、提現和兌換服務。據悉,Zerogoki Protocol是基于以太坊的衍生品平臺。(U.Today)[2021/8/5 1:36:28]
進一步的限制
zkSync2.0的第一次迭代可能會增加一個額外的限制,即每筆交易只能調用32次智能合約,直到可以實現恰當的記賬機制。
執行跟蹤將有硬限制,但它將與以太坊區塊大小目前的限制相當,不應影響大多數。
可能會有更多的限制,但我們的目標是在最終版本中將這些限制盡可能減少到最低限度。
深入了解zkSync2.0的架構
你可能聽說過“區塊鏈的不可能三角”,但當談到擴容以太坊時,還有第4個因素:可編程性。所有當前的擴容解決方案都犧牲了一些安全性、去中心化和可編程性來實現可擴展性。zkSync2.0的設計結合了下列兩大技術突破,旨在最大化實現上面說到的四個特性:
1.zkEVM:為兼容EVM的zkRollup提供支持的引擎,這是同時提供L1安全性以及支持solidity智能合約的解決方案。
2.zkPorter:一個鏈下數據可用性系統,其可擴展性比rollups高出兩個數量級。
ZKSwap的8000萬枚ZKS空投已基本完成:官方消息,ZKSwap官方宣布1:1空投的8000萬個ZKS已基本發放完成,社區持有的ZKS流通量從8000萬個增加到1.6億個ZKS,空投后整體市值提升35%左右。用戶若在快照前持有ZKS,空投后持有的ZKS數量將翻倍,由此引起的市場價格的波動為正常反應。今日ZKS在火幣最高報11.6666 USDT,空投后最低跌至5.2 USDT,現報5.74 USDT。[2021/2/25 17:50:45]
由于zkEVM和zkPorter是可互操作以及可組合的,zkSync2.0顯著優于所有其他擴容解決方案。
目前的共識是:Eth2數據分片將在2022年底上線,在不犧牲去中心化的前提下提供更大的數據可用層。結合了Eth2數據分片的zkRollup技術是zkSync的最終目標,在不犧牲4個因素中任意一個的前提下達到10萬以上的TPS。
狀態樹
zkSync2.0狀態樹覆蓋了以太坊全部的160位地址空間。每個帳戶將存在于zkRollup部分或zkPorter部分的狀態中。zkRollup和zkPorter帳戶完全相同,除了一點不同:獲取數據可用性的地方不同。zkRollup交易數據通過數據調用發布到以太坊主網中;而zkPorter的交易數據發布到zkSyncGuardian網絡中,其中,zkSync代幣持有者能夠參與該網絡的PoS機制。
L2 Labs在以太坊測試網Ropsten上推出Layer2 平臺ZKSwap:L2 Labs昨日在以太坊測試網Ropsten上推出了Layer2去中心化交易平臺ZKSwap。據悉,ZKSwap通過ZK-Rollup技術把所有ERC-20 token轉移到Layer2上,再基于不斷生成的零知識證明來保證Layer1和Layer2狀態的一致性。ZKSwap有這樣幾個特點:零gas費用;TPS理論上達到每秒6000筆;所有交易都遷移到Layer2,所以可以實現實時交易。[2020/11/17 21:04:23]
選擇在哪里發布數據,是在成本和安全性兩者間做出權衡。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
1.BTC是創造美好未來的唯一工具在邁阿密舉行的2021年比特幣大會上,本文作者就BTC全球應用、貨幣和社交媒體未來等問題,采訪了Square和Twitter?CEOJack?Dorsey.
1900/1/1 0:00:00By:yudan@慢霧安全團隊 據慢霧區消息,2021年06月16日,以太坊DeFi項目Alchemix的alETH合約疑似出現安全問題.
1900/1/1 0:00:00盡管加密貨幣市場從5月份開始出現暴跌,但加密貨幣的總市值在過去一年內增長了400%,達到了約1.4萬億美元的高度.
1900/1/1 0:00:00原標題:《LindaXie新作:可組合性就是創新》撰文:LindaXie,ScalarCapital聯合創始人 翻譯:blcold 加密貨幣投資公司ScalarCapital的聯合創始人Lind.
1900/1/1 0:00:00在過去數月里,以太坊核心開發者一直在進行倫敦網絡升級的工作。它是繼柏林升級后的一次升級。盡管各個網絡的升級區塊高度目前還未定,但納入倫敦升級的EIP已經確定了.
1900/1/1 0:00:00花5000美元買一雙「虛擬球鞋」,但這雙球鞋在現實中摸不著,也穿不了,買家只有通過定制的AR濾鏡,才能在虛擬世界體驗「穿上」它的樣子.
1900/1/1 0:00:00