BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Sự khác biệt giữa kế hoạch mở rộng Ethereum zkSync2.0 là gì?

Đọc bài viết này mất 612 phút
Mạng thử nghiệm phiên bản zkSync2.0 của kế hoạch mở rộng Ethereum đã được ra mắt. Bài viết này cung cấp một phân tích chi tiết về nó.
Tiêu đề gốc: "zkSync 2.0: Xin chào Ethereum!"
Tác giả gốc: Matter Labs
Bản tổng hợp ban đầu: Block Uincorn 


Giới thiệu


Đối mặt với thách thức kỹ thuật lớn nhất, chúng tôi đang nỗ lực triển khai hợp đồng thông minh trong môi trường tương thích với EVM. Phiên bản đầu tiên của testnet đang hoạt động: bạn đã có thể xem hoạt động trên zkSync 2.0 bằng trình khám phá khối. Trong bài đăng này, chúng tôi sẽ giải thích sâu từng thành phần chính, cung cấp bản cập nhật tiến độ và kế hoạch cho bản phát hành tiếp theo.


Thành tựu chính


· Về mặt mật mã, bộ hướng dẫn của zkEVM đã được hoàn thành và cả hai quá trình triển khai đã được hoàn thành: trong mạch Trung hòa trong môi trường thực thi.

· Về phía trình biên dịch, sử dụng Solidity và Hợp đồng thông minh được viết bằng Zinc hiện có thể được biên dịch thành mã byte zkEVM.

· Về cơ sở hạ tầng cốt lõi, việc tích hợp nút đầy đủ đã hoàn tất và mã được biên dịch có thể thành công triển khai và thực hiện hợp đồng thông minh.

· Trong khi zkEVM và cơ sở hạ tầng Core 2.0 đã sẵn sàng để lộ diện, trình biên dịch cần nhiều công việc hơn để xử lý chính xác tất cả các trường hợp phức tạp . Để cung cấp trải nghiệm toàn diện hơn cho nhà phát triển, chúng tôi đã quyết định mở quyền truy cập vào zkEVM, trình biên dịch và SDK cốt lõi ngay khi trình biên dịch đáng tin cậy 100%.


So sánh giữa zkSync 2.0 và Ethereum


Hầu hết mọi thứ đều trông giống nhau. Dưới đây là một số khác biệt quan trọng:


Hợp đồng thông minh vững chắc


Hỗ trợ số lượng lớn trong Ethereum Hầu hết opcodes! Tuy nhiên, vẫn có một số trường hợp ngoại lệ:


1.Các mã opDMOD, SMOD, MULMOD, EXP và CREATE2 không được hỗ trợ trong phiên bản này nhưng sẽ được hỗ trợ trong tương lai.


2. Chúng tôi hiện không hỗ trợ opcode KECCAK256 nhưng sẽ tự động thay thế tất cả các lệnh gọi đến nó bằng các lệnh gọi đến một hàm băm chống va chạm khác. KECCAK256 sẽ được giới thiệu dưới dạng biên dịch trước sau này.


3. Chúng tôi quyết định không bao gồm opcode SELFDESTRUCT vì Ethereum có kế hoạch loại bỏ nó.


4. Chúng tôi có thể loại bỏ hỗ trợ cho các mã hoạt động XOR/AND/OR 256-bit đầy đủ vì những mã này chỉ tồn tại trong mã Solidity được biên dịch cho bitmasking. Điều này có thể được thực hiện bởi trình biên dịch bằng cách sử dụng các opcode khác.


Phí


Trong zkSync 2.0, có một khái niệm khác về gas. Giá giao dịch sẽ dao động dựa trên giá gas L1 hiện tại (do phát hành dữ liệu cuộc gọi) và chi phí tạo ZKP. Cuộc gọi hợp đồng thông minh sẽ có số lượng tối đa bước zkEVM và tham số ghi lưu trữ.


API Web3


Phiên bản tiếp theo sẽ bao gồm việc triển khai API Web3 của chúng tôi, phiên bản này sẽ tương thích với tiêu chuẩn Web3 được xác định bởi tài liệu Ethereum. Sự kiện Tất cả các dịch vụ sẽ được tích hợp dễ dàng ngay lập tức.


zkSync bao gồm L1 là không có sẵn Các tính năng như khái niệm về khối đã cam kết và khối cuối cùng. Do đó, sẽ có những cách khác để giúp các nhà phát triển kiểm soát dữ liệu chính xác hơn. Mã máy khách Web3 sẽ nhận được dữ liệu giống như Ethereum, nhưng có thể yêu cầu thông tin đặc biệt bằng cách sử dụng không gian tên `zksync_`.


Vì zkSync có nhiều loại giao dịch và sử dụng chữ ký EIP712 nên dữ liệu `eth_sendRawTransaction` Định dạng sẽ là khác với L1. Tuy nhiên, mã hóa tương ứng với Ethereum ABI nên việc hỗ trợ nó không khó.


Ký giao dịch


Các giao dịch trong zkSync 2.0 có thể được ủy quyền theo hai cách (ngoài cơ chế xếp hàng ưu tiên):


1. Người dùng có thể ký các giao dịch bằng ví Ethereum thông thường của họ (chẳng hạn như Metamask hoặc bất kỳ ví WalletConnect nào) bằng cách ký vào tin nhắn EIP712.


2. Bất kỳ tài khoản nào cũng có thể thiết lập khóa chung để tạo chữ ký Schnorr nội bộ của chúng tôi để ký giao dịch. Điều này cho phép các ví dựa trên hợp đồng thông minh tương tác với zkSync 2.0 mà không phải trả thêm phí gửi tin nhắn L1.


Cải thiện hiệu quả lưu trữ


Chỉ áp dụng vùng phủ sóng một lần cho mỗi khối. Điều này có nghĩa là nếu nhiều người dùng tương tác với một hợp đồng AMM thì khe lưu trữ của hợp đồng AMM sẽ chỉ bị ghi đè một lần. Điều này cho phép trình sắp xếp sau đó hoàn trả cho người dùng chi phí chung của một lần ghi.


Đã biên dịch trước


『Được biên dịch trước "The cơ khí được lên kế hoạch nhưng sẽ được phát hành vào một ngày sau đó. Chúng tôi dự định ban đầu hỗ trợ băm keccak256, sha256 và phục hồi nguyên thủy ECDSA. Tùy thuộc vào yêu cầu và độ phức tạp, các phần biên dịch trước khác có thể được xem xét để đưa vào, chẳng hạn như hàm bánh xe Blake2f (ở dạng hiện tại gần như không sử dụng được trong Ethereum).


Các hạn chế khác


Lần lặp đầu tiên của zkSync 2.0 có thể áp đặt giới hạn bổ sung là 32 lệnh gọi hợp đồng thông minh cho mỗi giao dịch cho đến khi có cơ chế Kế toán phù hợp.


Sẽ có giới hạn cứng đối với việc theo dõi thực thi, nhưng giới hạn này có thể so sánh với giới hạn hiện tại đối với kích thước khối Ethereum và sẽ không ảnh hưởng đến hầu hết các giao thức.


Có thể còn nhiều hạn chế hơn nhưng mục tiêu của chúng tôi là giảm chúng xuống mức tối thiểu trong phiên bản cuối cùng.


Hiểu biết sâu sắc về kiến trúc zkSync 2.0


Có thể bạn đã nghe nói về chuỗi khối vấn đề bất khả thi, nhưng có yếu tố thứ tư khi nói đến việc mở rộng quy mô Ethereum: khả năng lập trình. Tất cả các giải pháp mở rộng quy mô hiện tại đều tồn tại trong phạm vi hy sinh một số tính bảo mật, phân quyền và khả năng lập trình để có được khả năng mở rộng. Thiết kế của zkSync 2.0 kết hợp 2 đột phá công nghệ sau để phát huy tối đa cả 4 chức năng:


1.zkEVM: Công cụ hỗ trợ zkRollup tương thích EVM của chúng tôi, giải pháp duy nhất có hỗ trợ hợp đồng thông minh đáng tin cậy và bảo mật L1.


2.zkPorter: Một hệ thống sẵn có dữ liệu ngoài chuỗi có khả năng mở rộng gấp 2 lần so với hệ thống tổng hợp.




( Hình ảnh từ zkSync)


Vì zkEVM và zkPorter có thể tương tác và kết hợp nên zkSync 2.0 vượt trội hơn đáng kể so với tất cả các giải pháp mở rộng quy mô khác.


Sự đồng thuận hiện tại là việc phân chia dữ liệu Eth2 sẽ ra mắt vào cuối năm 2022 để cung cấp lớp sẵn có dữ liệu lớn hơn theo cấp số nhân mà không phải hy sinh khả năng phân quyền. Công nghệ zkRollup của zkSync kết hợp phân chia dữ liệu Eth2 là mục tiêu cuối cùng, đạt được hơn 100.000 TPS mà không phải hy sinh bất kỳ yếu tố nào trong 4 yếu tố.


Cây trạng thái


trạng thái zkSync 2.0 Cây bao phủ toàn bộ không gian địa chỉ 160 bit của Ethereum. Mỗi tài khoản sẽ nằm trong phần zkRollup hoặc phần zkPorter của trạng thái. Tài khoản zkRollup và zkPorter giống hệt nhau ngoại trừ một thành phần: tính khả dụng của dữ liệu được đảm bảo. Dữ liệu giao dịch zkRollup được xuất bản lên Ethereum thông qua calldata, dữ liệu giao dịch zkPorter được xuất bản lên mạng zkSync Guardian và chủ sở hữu mã thông báo zkSync tham gia bằng chứng cổ phần.


Nơi dữ liệu được xuất bản là sự đánh đổi giữa chi phí và bảo mật. Giao dịch zkPorter rẻ hơn nhiều so với giao dịch tổng hợp, nhưng nó có khả năng khiến tiền của bạn bị đóng băng. Tuy nhiên, tính hợp lệ của cả tài khoản zkRollup và zkPorter đều được đảm bảo thông qua bằng chứng không có kiến thức và Ethereum. Nói cách khác, tiền trong zkPorter chỉ có thể bị đóng băng chứ không thể bị đánh cắp.


Khả năng tương tác và khả năng kết hợp của tài khoản zkRollup và zkPorter mang đến cho mọi người dùng cơ hội trở thành công dân hạng nhất trong zkSync. Uniswap được triển khai ở phía zkRollup có thể được truy cập thông qua tài khoản zkPorter để đổi lấy mức phí tối thiểu. zkSync 2.0 là một hệ thống được thiết kế để người dùng tham gia trong phạm vi tài chính.


Mật mã học


VM của chúng tôi, thường được gọi là zkEVM, không phải là bản sao 1:1 của EVM Đúng hơn, nó được thiết kế để có thể chạy 99% hợp đồng được viết bằng Solidity và duy trì hành vi tương tự của chúng, chẳng hạn như trong quá trình khôi phục và ngoại lệ. Trong khi đó, zkEVM được viết để tạo ra các bằng chứng không có kiến thức trong mạch một cách hiệu quả.

Đây không phải là điều gì quan trọng trong hệ thống chứng minh của chúng tôi Xong trong những hoàn cảnh thay đổi, chúng tôi tiếp tục sử dụng PLONK với các cổng và bảng tra cứu tùy chỉnh (thường được gọi là UltraPLONK) và đường cong BN-254 của Ethereum. Điều này là thuận lợi vì kể từ tháng 6 năm 2020, bằng chứng Hệ thống đã được thử nghiệm thực địa trên zkSync 1.0 cũng như các dự án khác sử dụng cùng một hệ thống chứng minh.

Một lần nữa, chúng tôi vui mừng thông báo rằng sau Nhiều tháng nỗ lực: tập lệnh của zkEVM đã được hoàn thành và triển khai trong môi trường mạch và thực thi.

Có một sự khác biệt quan trọng ở đây: mạch điện và cách thực thi Việc triển khai trong môi trường là riêng biệt và phục vụ các mục đích khác nhau. Công việc của mạch là tạo ra bằng chứng về dấu vết thực thi và cung cấp nhân chứng, nhưng việc này rất chậm. Mặt khác, môi trường thực thi là triển khai trực tiếp zkEVM trong Rust , hiệu quả và nhanh chóng. Nếu chúng tôi dựa vào các mạch để tạo bằng chứng và thực thi, các giao dịch sẽ mất hàng giờ để hoàn tất. Việc tách biệt giữa tạo bằng chứng và thực thi đơn giản cho phép các giao dịch trên zkSync được giải quyết ngay lập tức.

Tiếp theo, chúng tôi tập trung vào việc tích hợp zkEVM và kết hợp biên dịch chúng lại với nhau và kết hợp các phép đệ quy với nhau: đệ quy giữa các khối, cho phép chúng tôi đưa ra bằng chứng cho N khối và đệ quy trong một khối, tổng hợp các bằng chứng con cho các phần logic khác nhau của khối. Đây là một Phần đơn giản! zkSync 1.0 có đã sử dụng bằng chứng tổng hợp đệ quy giữa các khối trên mạng chính kể từ tháng 6 năm 2020. Để biết thêm thông tin về đệ quy trong khối và cách zkEVM của chúng tôi hoạt động, hãy xem video giải thích này.


Trình biên dịch



(ảnh từ zkSync)

Chúng tôi cũng đang nghiên cứu hai giao diện người dùng trình biên dịch cho zkEVM: Yul và Zinc. Yul là một biểu diễn Solidity trung gian có thể được biên dịch thành mã byte cho các chương trình phụ trợ khác nhau. Zinc là ngôn ngữ dựa trên Rust của chúng tôi dành cho các hợp đồng thông minh và các mạch chứng minh không có kiến thức cho mục đích chung.


Vì trình biên dịch được xây dựng bằng khung LLVM nên có thể coi nó có giao diện người dùng Yul → LLVM IR và mã byte LLVM IR → zkEVM mặt sau. Việc áp dụng LLVM mang lại một số lợi ích chính:


1. Khung tối ưu hóa LLVM là vô song: nó tạo ra mã byte zkEVM hiệu quả nhất từ LLVM IR.


2. Với các phiên bản mới hơn của Solidity hoặc Zinc, giao diện người dùng của trình biên dịch sẽ xử lý tất cả các thay đổi, trong khi LLVM sẽ giúp chúng ta không cần phải thay đổi phần phụ trợ của trình biên dịch.


3. Trong tương lai, nếu các nhà phát triển muốn viết hợp đồng thông minh bằng Rust hoặc Javascript nguyên gốc, họ chỉ cần xây dựng giao diện người dùng trình biên dịch cho ngôn ngữ đó và các hợp đồng thông minh sẽ hoạt động ngay lập tức trong zkSync.


Sự an toàn của trình biên dịch là rất quan trọng đối với chúng tôi và đã vượt qua nhiều bộ kiểm tra:

1. Kiểm tra từ vựng, cú pháp và ngữ nghĩa trong trình biên dịch Zinc và Yul.


2. Thử nghiệm tích hợp Kẽm và Solidity của riêng chúng tôi trong toàn bộ vòng đời hợp đồng thông minh: từ phân tích mã nguồn đến triển khai hợp đồng và thực hiện giao dịch trên zkSync.


3. Bộ thử nghiệm mở rộng được tích hợp từ kho lưu trữ Solidity cho công cụ thử nghiệm tích hợp của chúng tôi.


Mỗi bộ đã chứa hàng nghìn bài kiểm tra, chúng tôi sẽ tăng con số này lên ít nhất một bậc độ lớn.


2 phần tổng hợp của chúng tôi Máy chủ đã triển khai và thực hiện thành công các hợp đồng thông minh đơn giản bằng cả hai ngôn ngữ. Tuy nhiên, cần phải tối ưu hóa nhiều hơn và một số câu lệnh LLVM IR phức tạp cần được chuyển đổi thành mã byte zkEVM. Do đó, chúng tôi quyết định không phát hành nó cho đến khi trình biên dịch ở trạng thái mạnh mẽ hơn.


Sau khi trình biên dịch hoàn tất, chúng tôi sẽ tập trung vào việc làm cho Zinc trở nên biểu cảm hơn và giàu tính năng hơn, A Sau đó, giao diện người dùng của trình biên dịch Rust được xây dựng để cho phép viết các hợp đồng thông minh bằng Rust gốc.


Cơ sở hạ tầng cốt lõi


Lõi zkSync 2.0 bao gồm một số vai trò chính:


Nút đầy đủ


1. Môi trường thực thi tiền mạch thông qua mã byte zkEVM của máy ảo


2. Trạng thái khả dụng trong vòng vài giây sau khi giao dịch được gửi

1. p>


3. Lọc ra các giao dịch rõ ràng là không chính xác có thể gây ra lạm phát khối (ví dụ: không đủ tiền giao dịch)


4. Thực hiện các giao dịch và tạo các khối trong nhóm bộ nhớ


Nhà cung cấp


1. Nhận nhân chứng của khối và tạo bằng chứng không có kiến thức


2. Giao diện Prover để tạo bằng chứng song song


3. Tùy chỉnh trình chia tỷ lệ tự động của trình chứng nhận, có thể tạo và chấm dứt các máy chứng nhận khi cần


Người tương tác


1. Công cụ để xem và tương tác với Ethereum L1


2. Tính phí giao dịch dựa trên giá token, chi phí tạo ZKP và giá gas L1


Giám sát hoang tưởng


Prometheus, elastic, canh gác, thời gian hoạt động, một số hệ thống thông báo sự kiện độc lập và tự động Xác định dịch vụ khám sức khỏe.


Cơ sở hạ tầng cốt lõi này có đầy đủ chức năng và đã tích hợp bộ thực thi zkEVM.


Liên kết gốc


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi