BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

zkSync 2.0: Xin chào Ethereum

Block unicorn
特邀专栏作者
Bài viết này có khoảng 4066 từ, đọc toàn bộ bài viết mất khoảng 6 phút
Đối mặt với thách thức kỹ thuật lớn nhất, chúng tôi đang bắt đầu chạy nước rút để triển khai các hợp đồng thông minh trong môi trường tương thích với EVM.
Tóm tắt AI
Đối mặt với thách thức kỹ thuật lớn nhất, chúng tôi đang bắt đầu chạy nước rút để triển khai các hợp đồng thông minh trong môi trường tương thích với EVM.

giới thiệu

giới thiệu

tiêu đề cấp đầu tiên

Thành tựu chính

Về mặt mật mã, tập lệnh của zkEVM đã hoàn tất và cả hai quá trình triển khai đều hoàn tất: trong mạch và trong môi trường thực thi.

Về phía trình biên dịch, các hợp đồng thông minh được viết bằng Solidity và Zinc hiện có thể 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à hợp đồng thông minh đã biên dịch có thể được triển khai và thực thi thành công.

Mặc dù cơ sở hạ tầng zkEVM và lõi 2.0 đã sẵn sàng để ra mắt, 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 biên. Để 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 lõi ngay khi trình biên dịch đáng tin cậy 100%.

zkSync 2.0 so với Ethereum

tiêu đề cấp đầu tiên

Hợp đồng thông minh Solidity

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

  • Các opcode ADDMOD, SMOD, MULMOD, EXP và CREATE2 không được hỗ trợ trong bản phát hành này nhưng sẽ có trong tương lai.

  • 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 tới nó bằng các lệnh gọi tới một hàm băm chống va chạm khác. KECCAK256 sẽ được giới thiệu sau dưới dạng tiền biên dịch.

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

  • trị giá

trị giá

tiêu đề cấp đầu tiên

Web3 API

Bản phát hành tiếp theo sẽ bao gồm việc triển khai API Web3 của chúng tôi, API 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. Các sự kiện sẽ hoạt động hiệu quả và tất cả các dịch vụ có thể được tích hợp dễ dàng.

zkSync bao gồm các tính năng mà L1 không có, chẳng hạn như khái niệm về các khối đã cam kết và đã hoàn thiện. Do đó, sẽ có những cách khác để cung cấp cho các nhà phát triển quyền kiểm soát chính xác hơn đối với dữ liệu. Mã máy khách Web3 sẽ nhận 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_`.

tiêu đề cấp đầu tiên

ký thỏa thuận

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):

  • Người dùng có thể ký 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 thông báo EIP712.

  • tiêu đề cấp đầu tiên

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

biên dịch trước

biên dịch trước

tiêu đề cấp đầu tiên

hạn chế hơn nữa

Lần lặp lại đầ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 cơ chế kế toán phù hợp được triển khai.

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

Có thể có 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 tuyệt đối trong bản phát hành cuối cùng.

Tìm hiểu thêm về kiến ​​trúc zkSync 2.0

Bạn có thể đã nghe nói về bộ ba bất khả thi của chuỗi khối, nhưng khi nói đến việc mở rộng quy mô Ethereum, có một yếu tố thứ tư: 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 tồn tại trong phạm vi hy sinh một số bảo mật, phân cấp và khả năng lập trình để 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 để tối đa hóa cả 4 chức năng:

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

  • Mô tả hình ảnh

(hình ảnh từ zkSync)

Vì zkEVM và zkPorter có thể tương tác và kết hợp với nhau nên zkSync 2.0 có thể 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.

tiêu đề cấp đầu tiên

cây nhà nước

Cây trạng thái zkSync 2.0 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 tiểu bang. 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 về vốn chủ sở hữu.

Trường hợp 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 dẫn đến việc tiền của bạn bị đóng băng. Tuy nhiên, tính hợp lệ của tài khoản zkRollup và zkPorter đều được đảm bảo bằng bằng chứng không kiến ​​thức và Ethereum. Nói cách khác, tiền trong zkPorter chỉ có thể bị đóng băng, không bị đánh cắp.

mật mã

mật mã

Máy ảo 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, nhưng đượ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 kiến ​​thức trong các mạch một cách hiệu quả.

Điều này đã được thực hiện mà không có bất kỳ thay đổi lớn nào đối với hệ thống bằng chứng của chúng tô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 rất thuận lợi vì hệ thống bằng chứng đã được thử nghiệm thực tế từ tháng 6 năm 2020 trong zkSync 1.0 cũng như các dự án khác sử dụng cùng một hệ thống bằng chứng.

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

Có một sự khác biệt quan trọng ở đây: việc thực hiện trong mạch và môi trường thực thi 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 hiện và cung cấp nhân chứng, nhưng điều 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 trạng thái rỉ sét, 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 hiện, 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 giải quyết các giao dịch ngay lập tức trên zkSync.

tiêu đề cấp đầu tiên

Mô tả hình ảnh

(hình ảnh từ zkSync)

Chúng tôi đang làm việc đồng thời trên hai giao diện người dùng của trình biên dịch cho zkEVM: Yul và Zinc. Yul là một đại diện Solidity trung gian biên dịch thành mã byte cho các chương trình phụ trợ khác nhau. Kẽm 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 bằng chứng không có kiến ​​thức cho mục đích chung.

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

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

  • 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 phải thay đổi phần phụ trợ của trình biên dịch.

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

Bảo mật trình biên dịch là vô cùng quan trọng đối với chúng tôi và đã vượt qua một số bộ kiểm tra:

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

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

  • Một bộ kiểm tra mở rộng được tích hợp từ kho lưu trữ Solidity cho các công cụ kiểm tra tích hợp của chúng tôi.

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

2 trình biên dịch của chúng tôi đã 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ữ. Nhưng có nhiều tối ưu hóa hơn cần được thực hiện, 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 trình biên dịch cho đến khi nó ở trạng thái mạnh mẽ hơn.

tiêu đề cấp đầu tiên

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

Cốt lõi của zkSync 2.0 bao gồm một số tác nhân chính:

nút đầy đủ

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

  • Trạng thái có sẵn trong vòng vài giây sau khi giao dịch được gửi,

  • lọc ra các giao dịch rõ ràng là không chính xác (ví dụ: giao dịch không đủ tiền) có thể dẫn đến phình to khối,

  • Thực hiện các giao dịch và tạo các khối trong mempool.

người chứng nhận

  • Các nhân chứng nhận khối và tạo bằng chứng không có kiến ​​thức,

  • một giao diện chứng minh để tạo bằng chứng song song,

  • Một trình tự động kiểm chứng tùy chỉnh tạo và chấm dứt các máy kiểm chứng khi cần thiết.

người tương tác

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

  • Phí giao dịch được tính dựa trên giá mã thông báo, chi phí tạo ZKP và giá gas L1.

màn hình hoang tưởng

Prometheus, đàn hồi, 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à dịch vụ kiểm tra tình trạng tùy chỉnh. Cơ sở hạ tầng cốt lõi này có đầy đủ chức năng và đã được tích hợp trình thực thi zkEVM.

BTC
ETH
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký:
https://t.me/Odaily_News
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina