Thông báo về zkSharding cho Ethereum

Nâng cao1/29/2024, 2:34:45 PM
zkSharding nhằm cung cấp một giải pháp tăng cường thay thế bằng cách tích hợp nhiều mảnh thành một Lớp thực thi thống nhất Layer2. Bài viết này giới thiệu các tính năng, kiến trúc và kế hoạch tương lai của nó.

TL;DR

  • =nil; là một zkRollup được phân mảnh - một khái niệm L2 mới cho việc mở rộng động và an toàn của Ethereum thông qua việc thực hiện giao dịch song song tại cấp độ giao thức trên các phân mảnh.
  • Với zkSharding, =nil; cung cấp khả năng mở rộng theo chiều ngang mà không ảnh hưởng đến các lợi ích của một lớp thực thi duy nhất, tức là tính thanh khoản thống nhất và an ninh kinh tế.
  • =nil; cung cấp ứng dụng khả năng hoàn toàn tương thích với Ethereum thông qua việc truy cập dữ liệu Ethereum minh bạch và xác thực được.
  • =nil; giới thiệu một Type-1 zkEVM được biên soạn với zkLLVM.
  • Tạo chứng minh nhanh được đảm bảo thông qua sự cạnh tranh thị trường mở qua Proof Market - một thị trường tạo chứng minh không cần phép tác.

Giới thiệu về zkSharding

Hôm nay, các giải pháp tầng 2 đổi lấy tính khả năng mở rộ cho việc phân mảnh trạng thái. Chúng tôi giới thiệu một thiết kế tầng 2 (L2), =nil;, mà đẩy giới hạn của tính mở rộ của Ethereum mà không đánh đổi các lợi ích của môi trường thực thi thống nhất. Giải pháp kết hợp cơ chế phân mảnh động với quyền truy cập có thể xác minh vào dữ liệu Ethereum, được bảo vệ bởi công nghệ không chứng minh. Các yếu tố chính bao gồm:

  • zkRollup với Sharding: Lõi của =nil; là một giao thức phân mảnh có thể chứng minh, cho phép mở rộng theo chiều ngang mà không đảm bảo an ninh hoặc hiệu suất. Cách tiếp cận này giải quyết một số hạn chế hiện tại của việc tăng cường theo chiều dọc (L3, L4, vv.), cụ thể là phân mảnh dữ liệu và thanh khoản.
  • Truy cập dữ liệu Ethereum trực tiếp: Khả năng gọi dữ liệu gốc của Ethereum từ các ứng dụng L2 cho phép chúng ta tái sử dụng các ứng dụng đã triển khai. Truy cập trực tiếp vào dữ liệu L1 từ L2 đảm bảo môi trường thống nhất và liền mạch hơn.

Thông qua zkSharding =nil; hǣnđợc lợi ích từ các ưu điêm của cả thiện mônôlít và thiết kế modul, bao gồm:

  • Khả năng mở rộng

    • Không giới hạn về khả năng mở rộng vì việc thực thi là song song. Lượng xử lý ước lượng ở mức khoảng 60k giao dịch ERC-20 mỗi giây với khoảng 400 node.
    • Thị trường chứng minh cạnh tranh thông qua Proof Market cung cấp L1-finality nhanh nhất và chi phí tạo chứng minh rẻ nhất.
  • Môi trường thực thi thống nhất

    • Môi trường thực thi thống nhất đảm bảo không có sự phân mảnh về bảo mật/tính thanh khoản vì mỗi phân mảnh là một phần của cụm toàn bộ.
    • Giảm cần phải di dời thanh khoản từ Ethereum như =nil; cung cấp quyền truy cập minh bạch vào dữ liệu của nó cho ứng dụng thông qua việc bắt buộc mỗi người xác minh viên duy trì một trạng thái Ethereum đầy đủ như một phần của triển khai cho phép ứng dụng truy cập dữ liệu ngay từ zkEVM của =nil;.
  • Bảo mật

    • Các chuyển đổi trạng thái được bảo mật bằng zkEVM biên dịch thông qua zkLLVM. Nó cung cấp an ninh có thể kiểm tra (ví dụ: an ninh ràng buộc) vì mã nguồn dễ kiểm tra do mạch zkEVM được biên dịch từ một triển khai EVM sử dụng trong sản xuất bằng ngôn ngữ cấp cao và không được viết thủ công.
    • Phân mảnh từ ngày đầu nhờ vào việc tạo ra chứng minh phân mảnh phi tập trung được kích hoạt bởi =nil; Thị trường Chứng minh.
  • Chức năng

    • Một Type-1 zkEVM, fully EVM bytecode-equivalent zkEVM compiled via zkLLVM.
    • Môi trường được tùy chỉnh cho các ứng dụng có yêu cầu cao về thời gian, bộ nhớ và phức tạp thuật toán bằng cách tăng cường tính nhất quán của một shard duy nhất và giới thiệu việc đặt các ứng dụng trên mỗi shard để giảm độ trễ. Ví dụ bao gồm các sàn giao dịch phi tập trung, thị trường chứng minh, các trình xây dựng/thực thi phi tập trung, các ứng dụng chia sẻ trạng thái (còn được gọi là thế giới tự trị v.v).

Tăng tỷ lệ cấu trúc cơ cấu động

Ở cấp độ thấp hơn, trạng thái của =nil; được phân chia thành shard chính và một số shard phụ. Vai trò chính của shard chính là đồng bộ và tổng hợp dữ liệu từ các shard phụ. Nó sử dụng Ethereum cả là Lớp Khả dụng Dữ liệu và là một bộ xác minh cho các chứng minh chuyển trạng thái, tương tự như các hoạt động zkRollups điển hình.

Các mảnh phụ thực hiện vai trò "công nhân", thực thi giao dịch người dùng. Các mảnh này duy trì tính thanh khoản và dữ liệu thống nhất thông qua giao thức nhắn tin giữa các mảnh, loại bỏ bất kỳ phân mảnh nào giữa chúng.

Mỗi phân mảnh được giám sát bởi một ủy ban các nhà xác minh. Có sự xoay vòng định kỳ của những người xác minh này qua các phân mảnh. Ngoài ra, các cập nhật đối với trạng thái của một phân mảnh được xác minh đến phân mảnh chính bằng cách sử dụng zkEVM.

Để minh họa quá trình giao dịch từ việc khởi tạo bởi người dùng đến xác nhận trên Ethereum, hãy xem xét các bước sau:

  • Người dùng ký giao dịch (tx) và gửi nó đến mạng.
  • Những người xác minh trong phân mảnh S, nơi ví của người dùng đặt, đưa giao dịch vào bộ nhớ tạm.
  • Những người xác minh sau đó tạo một khối mới B(1/S)
  • Hash của B(1/S) được ghi lại trên phân mảnh chính trong khối B(1/M)
  • Một bằng chứng chuyển trạng thái cho B(1/S) được tạo ra và xác minh bởi main shard trong khối B(2/M)
  • Một chứng minh chuyển đổi trạng thái cho B(2/M) được gửi đến Ethereum để xác minh và kết hợp với dữ liệu cần thiết để đảm bảo tính sẵn có của dữ liệu.
  • Sau khi quá trình này hoàn tất, giao dịch đạt được xác nhận bởi Ethereum.

Bản dự thảo này giả định rằng giao dịch của người dùng không kích hoạt giao thức tin nhắn chéo shard. Tuy nhiên, trong trường hợp này, luồng giao dịch vẫn giữ nguyên nhưng có sự khác biệt là giao dịch của người dùng có thể kích hoạt tạo ra các giao dịch mới trên các shard khác.

Với tất cả các tài khoản được phân phối trên các mảnh, điều này có vẻ giống với vấn đề phân mảnh dữ liệu được tìm thấy trong phương pháp rollups cụ thể cho ứng dụng. Tuy nhiên, điểm khác biệt chính là cách xử lý giao tiếp giữa các mảnh: nó được tích hợp trực tiếp vào giao thức tổng thể, thay vì được quản lý bởi các cầu nối bên ngoài, riêng lẻ.

Để đảm bảo an ninh của mỗi phân mảnh phụ, ủy ban xác nhận của nó có nghĩa vụ chứng minh các chuyển đổi trạng thái của nó cho phân mảnh chính để đảm bảo rằng không có gian lận xảy ra trong một nhóm xác nhận nhỏ hơn. Mỗi ủy ban xác nhận phân mảnh có các nhiệm vụ bổ sung vượt qua việc bảo trì phân mảnh. Người xác nhận chịu trách nhiệm theo dõi các loại sự kiện cụ thể, cụ thể là các tin nhắn chéo phân mảnh, trong “các phân mảnh gần”. Các phân mảnh gần được xác định dựa trên khoảng cách Hamming trong các định danh phân mảnh.

zkEVM thông qua zkLLVM: Loại 1 An toàn, Kiểm tra được và Hiệu suất cao zkEVM

=nil;s zkEVM là một zkEVM Loại 1 được biên dịch bằng zkLLVM. Để hiểu sự khác biệt giữa các zkEVM truyền thống hơn và zkEVM của =nil;, chúng ta cần thảo luận về các hạn chế liên quan đến quy trình định nghĩa mạch mà là cơ sở của các zkEVM. Mạch zkEVM là một phần quan trọng, chịu trách nhiệm cho việc chứng minh chuyển đổi trạng thái được coi là đúng, thường được định nghĩa với một số zkDSL tùy chỉnh hoặc đơn giản chỉ là một thư viện. Cách định nghĩa mạch như vậy mang lại các vấn đề liên quan đến:

  • Bảo mật: Vấn đềdo kích thước của mạch và sao chép logic EVM thủ công.
  • Khả năng kiểm tra: Hạn chếkhả năng kiểm toánkhả năng kiểm trado sự phức tạp và không rõ ràng của zkDSLs được sử dụng.
  • Khả năng nâng cấp: Độ phức tạp về bảo trì và khả năng nâng cấp do yêu cầu xác định ràng buộc thủ công. Trong trường hợp xảy ra bất kỳ thay đổi EVM nào - phần lớn mạch zkEVM sẽ cần phải được làm lại và kiểm định lại từ đầu.
  • Tính tương thích: Sự phức tạp của việc triển khai mạch zkEVM tương thích với mã bytecode thực (còn được gọi là mạch Type-1) thường dẫn đến các hạn chế cho các ứng dụng do sự khác biệt trong hành vi zkEVM và hành vi thực tế của EVM.

=nil; zkEVM đang hiệu quả giải quyết tất cả những thách thức này bằng cách:

  • Bảo mật: Một mạch điện nên được tự động tạo ra từ mã cấp cao cùng được sử dụng trong các nút Ethereum đang chạy thực tế để đảm bảo không có sự khác biệt về thuật toán.
  • Có thể kiểm tra: Một mạch nên được đại diện bằng một ngôn ngữ lập trình cấp cao (còn gọi là C++ hoặc Rust) mà nên được viết theo cách dễ đọc cho một nhà phát triển trung bình.
  • Có thể nâng cấp: Một mạch điện nên được xác định theo cách sao cho bất kỳ thay đổi nào trong EVM đều có thể dễ dàng dịch chuyển/biên dịch thành một mạch chứng minh/định nghĩa zkEVM chính xác cùng hành vi. Không nên xảy ra tình trạng cần phải biên dịch hoặc kiểm định lại toàn bộ từ việc nâng cấp đó.
  • Tương thích Mã bytecode (còn gọi là Loại 1): Biên dịch mạch từ ngôn ngữ cấp cao mang lại sự tương thích hoàn toàn về mã bytecode và hành vi EVM, giảm đáng kể thời gian ra thị trường cho các ứng dụng EVM và thời gian/công sức phát triển cần thiết để đạt được sự tương thích như vậy.

zkEVM được biên dịch thông qua zkLLVM được thiết kế an toàn, tận dụng evmone để đảm bảo tính nhất quán hoàn toàn với EVM được sử dụng trong sản xuất của Ethereum. zkLLVM (bằng C++ hoặc Rust) tự động biên dịch xuống mạch, có nghĩa là lỗi của con người được loại bỏ khỏi quy trình định nghĩa mạch.

Hơn nữa, vì =nil; zkEVM được biên dịch thông qua zkLLVM, nó tự nhiên linh hoạt hơn (và vì vậy, đảm bảo trong tương lai) so với việc xác định mạch điện thủ công vì nó dễ dàng điều chỉnh và việc tạo mạch là tự động. Nó cũng dễ kiểm tra hơn, có nghĩa là tính bảo mật của nó không phải là một chi phí bao gồm các EIP mới nhất được thêm vào Ethereum.

zkRollup với Bảo mật và Khả năng Truy cập Dữ liệu của Ethereum

Khi các phần mảnh chính và các phần mảnh phụ khác nhau về nhiệm vụ riêng - các phần mảnh phụ tập trung vào xử lý giao dịch trong khi phần mảnh chính tập trung vào đồng bộ dữ liệu - chúng có các phương pháp khác nhau về sẵn có dữ liệu (DA), giúp khôi phục dữ liệu trạng thái trong tình huống khẩn cấp. Điều này có nghĩa là:

  • Shard chính sử dụng Ethereum làm DA.
  • Các mảnh phụ có thể chọn sử dụng Ethereum hoặc không cần có một DA riêng biệt.

Sắp xếp này được thiết lập bằng cách phát hành hai loại phân mảnh vào lúc bắt đầu: những phân mảnh với một giải pháp DA bên ngoài riêng và những phân mảnh không có. Trong những giai đoạn tiếp theo, chỉ có thể hợp nhất các phân mảnh cùng loại DA. Điều này có nghĩa là trong quá trình tạo ra, mỗi tài khoản phải được ánh xạ vào một loại DA cụ thể.

Ngoài ra, khung này có thể được mở rộng để bao gồm các loại DA khác.

Truy cập Dữ liệu Ethereum Trong Suốt

Một trong những mục tiêu chính của chúng tôi là tối ưu hóa cho tính khả năng sáng tạo ứng dụng và ngăn chặn sự phân mảnh thanh khoản, vì vậy cách tiếp cận zkSharding sẽ không hoàn chỉnh nếu thiếu quyền truy cập không tin cậy đến trạng thái Ethereum. Điều này có nghĩa là =nil; cung cấp tính khả năng sáng tạo đầy đủ và tích hợp minh bạch với Ethereum qua mô-đun Data Provider.

Nhà cung cấp dữ liệu hoạt động độc lập từ lưu trữ dữ liệu của shard, đồng bộ thông tin của mình với cơ sở dữ liệu bên ngoài và tiêm vân tay Ethereum của trạng thái cơ sở dữ liệu cuối cùng được giám sát (được đại diện bởi mã băm khối Ethereum) vào khối của shard. Trạng thái mới nhất của cơ sở dữ liệu này nhận được sự xác nhận từ mô-đun xác nhận, sử dụng zkBridge với bằng chứng đồng thuận Casper FFG của Ethereum.

Tiếp theo là gì:

=nil; và zkSharding là kết quả của các sản phẩm mà =nil; Foundation đã phát triển trong suốt 4 năm qua. Mục tiêu của nó là trở thành giải pháp Ethereum L2 zkRollup đầu tiên có thể tổ hợp, mở rộng và phổ quát. Chúng tôi rất háo hức chia sẻ thêm chi tiết triển khai trong vài tháng tới. Đừng quên theo dõi Twitter của chúng tôi để cập nhật thông tin về tiến trình của chúng tôi!

Đối với thiên hướng kỹ thuật, chúng tôi đã phát triển một sách hướng dẫn riêng, toàn diệnmở rộng vào chi tiết của =nil; và zkSharding. Bài viết này là cổng thông tin của bạn để hiểu sâu hơn về những phức tạp đằng sau phương pháp này, được trang bị tất cả các chi tiết kỹ thuật và sơ yếu lý thuyết bạn cần.

Bắt đầu ngay bây giờ với bài hướng dẫn kỹ thuật của chúng tôi và tham gia cuộc trò chuyện trên DiscordTelegramHãy cùng khám phá những khả năng không giới hạn của zkSharding!

Thông báo:

  1. Bài viết này được sao chép từ [nil.foundation]. Tất cả bản quyền thuộc về tác giả gốc [nil.foundation]. Nếu có ý kiến ​​phản đối về việc tái in này, vui lòng liên hệ với Học cửađội và họ sẽ xử lý nhanh chóng.
  2. Bản sao Lời từ chối trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được nêu, việc sao chép, phân phối hoặc đạo văn bản dịch là cấm.

Thông báo về zkSharding cho Ethereum

Nâng cao1/29/2024, 2:34:45 PM
zkSharding nhằm cung cấp một giải pháp tăng cường thay thế bằng cách tích hợp nhiều mảnh thành một Lớp thực thi thống nhất Layer2. Bài viết này giới thiệu các tính năng, kiến trúc và kế hoạch tương lai của nó.

TL;DR

  • =nil; là một zkRollup được phân mảnh - một khái niệm L2 mới cho việc mở rộng động và an toàn của Ethereum thông qua việc thực hiện giao dịch song song tại cấp độ giao thức trên các phân mảnh.
  • Với zkSharding, =nil; cung cấp khả năng mở rộng theo chiều ngang mà không ảnh hưởng đến các lợi ích của một lớp thực thi duy nhất, tức là tính thanh khoản thống nhất và an ninh kinh tế.
  • =nil; cung cấp ứng dụng khả năng hoàn toàn tương thích với Ethereum thông qua việc truy cập dữ liệu Ethereum minh bạch và xác thực được.
  • =nil; giới thiệu một Type-1 zkEVM được biên soạn với zkLLVM.
  • Tạo chứng minh nhanh được đảm bảo thông qua sự cạnh tranh thị trường mở qua Proof Market - một thị trường tạo chứng minh không cần phép tác.

Giới thiệu về zkSharding

Hôm nay, các giải pháp tầng 2 đổi lấy tính khả năng mở rộ cho việc phân mảnh trạng thái. Chúng tôi giới thiệu một thiết kế tầng 2 (L2), =nil;, mà đẩy giới hạn của tính mở rộ của Ethereum mà không đánh đổi các lợi ích của môi trường thực thi thống nhất. Giải pháp kết hợp cơ chế phân mảnh động với quyền truy cập có thể xác minh vào dữ liệu Ethereum, được bảo vệ bởi công nghệ không chứng minh. Các yếu tố chính bao gồm:

  • zkRollup với Sharding: Lõi của =nil; là một giao thức phân mảnh có thể chứng minh, cho phép mở rộng theo chiều ngang mà không đảm bảo an ninh hoặc hiệu suất. Cách tiếp cận này giải quyết một số hạn chế hiện tại của việc tăng cường theo chiều dọc (L3, L4, vv.), cụ thể là phân mảnh dữ liệu và thanh khoản.
  • Truy cập dữ liệu Ethereum trực tiếp: Khả năng gọi dữ liệu gốc của Ethereum từ các ứng dụng L2 cho phép chúng ta tái sử dụng các ứng dụng đã triển khai. Truy cập trực tiếp vào dữ liệu L1 từ L2 đảm bảo môi trường thống nhất và liền mạch hơn.

Thông qua zkSharding =nil; hǣnđợc lợi ích từ các ưu điêm của cả thiện mônôlít và thiết kế modul, bao gồm:

  • Khả năng mở rộng

    • Không giới hạn về khả năng mở rộng vì việc thực thi là song song. Lượng xử lý ước lượng ở mức khoảng 60k giao dịch ERC-20 mỗi giây với khoảng 400 node.
    • Thị trường chứng minh cạnh tranh thông qua Proof Market cung cấp L1-finality nhanh nhất và chi phí tạo chứng minh rẻ nhất.
  • Môi trường thực thi thống nhất

    • Môi trường thực thi thống nhất đảm bảo không có sự phân mảnh về bảo mật/tính thanh khoản vì mỗi phân mảnh là một phần của cụm toàn bộ.
    • Giảm cần phải di dời thanh khoản từ Ethereum như =nil; cung cấp quyền truy cập minh bạch vào dữ liệu của nó cho ứng dụng thông qua việc bắt buộc mỗi người xác minh viên duy trì một trạng thái Ethereum đầy đủ như một phần của triển khai cho phép ứng dụng truy cập dữ liệu ngay từ zkEVM của =nil;.
  • Bảo mật

    • Các chuyển đổi trạng thái được bảo mật bằng zkEVM biên dịch thông qua zkLLVM. Nó cung cấp an ninh có thể kiểm tra (ví dụ: an ninh ràng buộc) vì mã nguồn dễ kiểm tra do mạch zkEVM được biên dịch từ một triển khai EVM sử dụng trong sản xuất bằng ngôn ngữ cấp cao và không được viết thủ công.
    • Phân mảnh từ ngày đầu nhờ vào việc tạo ra chứng minh phân mảnh phi tập trung được kích hoạt bởi =nil; Thị trường Chứng minh.
  • Chức năng

    • Một Type-1 zkEVM, fully EVM bytecode-equivalent zkEVM compiled via zkLLVM.
    • Môi trường được tùy chỉnh cho các ứng dụng có yêu cầu cao về thời gian, bộ nhớ và phức tạp thuật toán bằng cách tăng cường tính nhất quán của một shard duy nhất và giới thiệu việc đặt các ứng dụng trên mỗi shard để giảm độ trễ. Ví dụ bao gồm các sàn giao dịch phi tập trung, thị trường chứng minh, các trình xây dựng/thực thi phi tập trung, các ứng dụng chia sẻ trạng thái (còn được gọi là thế giới tự trị v.v).

Tăng tỷ lệ cấu trúc cơ cấu động

Ở cấp độ thấp hơn, trạng thái của =nil; được phân chia thành shard chính và một số shard phụ. Vai trò chính của shard chính là đồng bộ và tổng hợp dữ liệu từ các shard phụ. Nó sử dụng Ethereum cả là Lớp Khả dụng Dữ liệu và là một bộ xác minh cho các chứng minh chuyển trạng thái, tương tự như các hoạt động zkRollups điển hình.

Các mảnh phụ thực hiện vai trò "công nhân", thực thi giao dịch người dùng. Các mảnh này duy trì tính thanh khoản và dữ liệu thống nhất thông qua giao thức nhắn tin giữa các mảnh, loại bỏ bất kỳ phân mảnh nào giữa chúng.

Mỗi phân mảnh được giám sát bởi một ủy ban các nhà xác minh. Có sự xoay vòng định kỳ của những người xác minh này qua các phân mảnh. Ngoài ra, các cập nhật đối với trạng thái của một phân mảnh được xác minh đến phân mảnh chính bằng cách sử dụng zkEVM.

Để minh họa quá trình giao dịch từ việc khởi tạo bởi người dùng đến xác nhận trên Ethereum, hãy xem xét các bước sau:

  • Người dùng ký giao dịch (tx) và gửi nó đến mạng.
  • Những người xác minh trong phân mảnh S, nơi ví của người dùng đặt, đưa giao dịch vào bộ nhớ tạm.
  • Những người xác minh sau đó tạo một khối mới B(1/S)
  • Hash của B(1/S) được ghi lại trên phân mảnh chính trong khối B(1/M)
  • Một bằng chứng chuyển trạng thái cho B(1/S) được tạo ra và xác minh bởi main shard trong khối B(2/M)
  • Một chứng minh chuyển đổi trạng thái cho B(2/M) được gửi đến Ethereum để xác minh và kết hợp với dữ liệu cần thiết để đảm bảo tính sẵn có của dữ liệu.
  • Sau khi quá trình này hoàn tất, giao dịch đạt được xác nhận bởi Ethereum.

Bản dự thảo này giả định rằng giao dịch của người dùng không kích hoạt giao thức tin nhắn chéo shard. Tuy nhiên, trong trường hợp này, luồng giao dịch vẫn giữ nguyên nhưng có sự khác biệt là giao dịch của người dùng có thể kích hoạt tạo ra các giao dịch mới trên các shard khác.

Với tất cả các tài khoản được phân phối trên các mảnh, điều này có vẻ giống với vấn đề phân mảnh dữ liệu được tìm thấy trong phương pháp rollups cụ thể cho ứng dụng. Tuy nhiên, điểm khác biệt chính là cách xử lý giao tiếp giữa các mảnh: nó được tích hợp trực tiếp vào giao thức tổng thể, thay vì được quản lý bởi các cầu nối bên ngoài, riêng lẻ.

Để đảm bảo an ninh của mỗi phân mảnh phụ, ủy ban xác nhận của nó có nghĩa vụ chứng minh các chuyển đổi trạng thái của nó cho phân mảnh chính để đảm bảo rằng không có gian lận xảy ra trong một nhóm xác nhận nhỏ hơn. Mỗi ủy ban xác nhận phân mảnh có các nhiệm vụ bổ sung vượt qua việc bảo trì phân mảnh. Người xác nhận chịu trách nhiệm theo dõi các loại sự kiện cụ thể, cụ thể là các tin nhắn chéo phân mảnh, trong “các phân mảnh gần”. Các phân mảnh gần được xác định dựa trên khoảng cách Hamming trong các định danh phân mảnh.

zkEVM thông qua zkLLVM: Loại 1 An toàn, Kiểm tra được và Hiệu suất cao zkEVM

=nil;s zkEVM là một zkEVM Loại 1 được biên dịch bằng zkLLVM. Để hiểu sự khác biệt giữa các zkEVM truyền thống hơn và zkEVM của =nil;, chúng ta cần thảo luận về các hạn chế liên quan đến quy trình định nghĩa mạch mà là cơ sở của các zkEVM. Mạch zkEVM là một phần quan trọng, chịu trách nhiệm cho việc chứng minh chuyển đổi trạng thái được coi là đúng, thường được định nghĩa với một số zkDSL tùy chỉnh hoặc đơn giản chỉ là một thư viện. Cách định nghĩa mạch như vậy mang lại các vấn đề liên quan đến:

  • Bảo mật: Vấn đềdo kích thước của mạch và sao chép logic EVM thủ công.
  • Khả năng kiểm tra: Hạn chếkhả năng kiểm toánkhả năng kiểm trado sự phức tạp và không rõ ràng của zkDSLs được sử dụng.
  • Khả năng nâng cấp: Độ phức tạp về bảo trì và khả năng nâng cấp do yêu cầu xác định ràng buộc thủ công. Trong trường hợp xảy ra bất kỳ thay đổi EVM nào - phần lớn mạch zkEVM sẽ cần phải được làm lại và kiểm định lại từ đầu.
  • Tính tương thích: Sự phức tạp của việc triển khai mạch zkEVM tương thích với mã bytecode thực (còn được gọi là mạch Type-1) thường dẫn đến các hạn chế cho các ứng dụng do sự khác biệt trong hành vi zkEVM và hành vi thực tế của EVM.

=nil; zkEVM đang hiệu quả giải quyết tất cả những thách thức này bằng cách:

  • Bảo mật: Một mạch điện nên được tự động tạo ra từ mã cấp cao cùng được sử dụng trong các nút Ethereum đang chạy thực tế để đảm bảo không có sự khác biệt về thuật toán.
  • Có thể kiểm tra: Một mạch nên được đại diện bằng một ngôn ngữ lập trình cấp cao (còn gọi là C++ hoặc Rust) mà nên được viết theo cách dễ đọc cho một nhà phát triển trung bình.
  • Có thể nâng cấp: Một mạch điện nên được xác định theo cách sao cho bất kỳ thay đổi nào trong EVM đều có thể dễ dàng dịch chuyển/biên dịch thành một mạch chứng minh/định nghĩa zkEVM chính xác cùng hành vi. Không nên xảy ra tình trạng cần phải biên dịch hoặc kiểm định lại toàn bộ từ việc nâng cấp đó.
  • Tương thích Mã bytecode (còn gọi là Loại 1): Biên dịch mạch từ ngôn ngữ cấp cao mang lại sự tương thích hoàn toàn về mã bytecode và hành vi EVM, giảm đáng kể thời gian ra thị trường cho các ứng dụng EVM và thời gian/công sức phát triển cần thiết để đạt được sự tương thích như vậy.

zkEVM được biên dịch thông qua zkLLVM được thiết kế an toàn, tận dụng evmone để đảm bảo tính nhất quán hoàn toàn với EVM được sử dụng trong sản xuất của Ethereum. zkLLVM (bằng C++ hoặc Rust) tự động biên dịch xuống mạch, có nghĩa là lỗi của con người được loại bỏ khỏi quy trình định nghĩa mạch.

Hơn nữa, vì =nil; zkEVM được biên dịch thông qua zkLLVM, nó tự nhiên linh hoạt hơn (và vì vậy, đảm bảo trong tương lai) so với việc xác định mạch điện thủ công vì nó dễ dàng điều chỉnh và việc tạo mạch là tự động. Nó cũng dễ kiểm tra hơn, có nghĩa là tính bảo mật của nó không phải là một chi phí bao gồm các EIP mới nhất được thêm vào Ethereum.

zkRollup với Bảo mật và Khả năng Truy cập Dữ liệu của Ethereum

Khi các phần mảnh chính và các phần mảnh phụ khác nhau về nhiệm vụ riêng - các phần mảnh phụ tập trung vào xử lý giao dịch trong khi phần mảnh chính tập trung vào đồng bộ dữ liệu - chúng có các phương pháp khác nhau về sẵn có dữ liệu (DA), giúp khôi phục dữ liệu trạng thái trong tình huống khẩn cấp. Điều này có nghĩa là:

  • Shard chính sử dụng Ethereum làm DA.
  • Các mảnh phụ có thể chọn sử dụng Ethereum hoặc không cần có một DA riêng biệt.

Sắp xếp này được thiết lập bằng cách phát hành hai loại phân mảnh vào lúc bắt đầu: những phân mảnh với một giải pháp DA bên ngoài riêng và những phân mảnh không có. Trong những giai đoạn tiếp theo, chỉ có thể hợp nhất các phân mảnh cùng loại DA. Điều này có nghĩa là trong quá trình tạo ra, mỗi tài khoản phải được ánh xạ vào một loại DA cụ thể.

Ngoài ra, khung này có thể được mở rộng để bao gồm các loại DA khác.

Truy cập Dữ liệu Ethereum Trong Suốt

Một trong những mục tiêu chính của chúng tôi là tối ưu hóa cho tính khả năng sáng tạo ứng dụng và ngăn chặn sự phân mảnh thanh khoản, vì vậy cách tiếp cận zkSharding sẽ không hoàn chỉnh nếu thiếu quyền truy cập không tin cậy đến trạng thái Ethereum. Điều này có nghĩa là =nil; cung cấp tính khả năng sáng tạo đầy đủ và tích hợp minh bạch với Ethereum qua mô-đun Data Provider.

Nhà cung cấp dữ liệu hoạt động độc lập từ lưu trữ dữ liệu của shard, đồng bộ thông tin của mình với cơ sở dữ liệu bên ngoài và tiêm vân tay Ethereum của trạng thái cơ sở dữ liệu cuối cùng được giám sát (được đại diện bởi mã băm khối Ethereum) vào khối của shard. Trạng thái mới nhất của cơ sở dữ liệu này nhận được sự xác nhận từ mô-đun xác nhận, sử dụng zkBridge với bằng chứng đồng thuận Casper FFG của Ethereum.

Tiếp theo là gì:

=nil; và zkSharding là kết quả của các sản phẩm mà =nil; Foundation đã phát triển trong suốt 4 năm qua. Mục tiêu của nó là trở thành giải pháp Ethereum L2 zkRollup đầu tiên có thể tổ hợp, mở rộng và phổ quát. Chúng tôi rất háo hức chia sẻ thêm chi tiết triển khai trong vài tháng tới. Đừng quên theo dõi Twitter của chúng tôi để cập nhật thông tin về tiến trình của chúng tôi!

Đối với thiên hướng kỹ thuật, chúng tôi đã phát triển một sách hướng dẫn riêng, toàn diệnmở rộng vào chi tiết của =nil; và zkSharding. Bài viết này là cổng thông tin của bạn để hiểu sâu hơn về những phức tạp đằng sau phương pháp này, được trang bị tất cả các chi tiết kỹ thuật và sơ yếu lý thuyết bạn cần.

Bắt đầu ngay bây giờ với bài hướng dẫn kỹ thuật của chúng tôi và tham gia cuộc trò chuyện trên DiscordTelegramHãy cùng khám phá những khả năng không giới hạn của zkSharding!

Thông báo:

  1. Bài viết này được sao chép từ [nil.foundation]. Tất cả bản quyền thuộc về tác giả gốc [nil.foundation]. Nếu có ý kiến ​​phản đối về việc tái in này, vui lòng liên hệ với Học cửađội và họ sẽ xử lý nhanh chóng.
  2. Bản sao Lời từ chối trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ là của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được nêu, việc sao chép, phân phối hoặc đạo văn bản dịch là cấm.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!