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:

Kiến trúc tổng thể và quy trình thực hiện giao dịch của Polygon zkEVM

Đọc bài viết này mất 233 phút
Giải thích ngắn gọn kiến trúc tổng thể và quy trình thực hiện giao dịch của Polygon zkEVM, đồng thời phân tích và thảo luận cách Polygon zkEVM đạt được khả năng mở rộng điện toán đồng thời kế thừa tính bảo mật của Ethereum.
Tiêu đề gốc: "Dòng zkEVM (1) | Kiến trúc tổng thể và quy trình thực hiện giao dịch của Polygon zkEVM"
Tác giả gốc: 0xhhh, DAO nhị phân


Vào ngày 27 tháng 3, phiên bản thử nghiệm mainnet Polygon zkEVM đã chính thức ra mắt và Vitalik đã hoàn thành giao dịch đầu tiên trên đó.


Bài viết này là bài viết đầu tiên trong loạt bài viết về Polygon zkEVM. Nó giải thích ngắn gọn về kiến trúc tổng thể và quy trình thực hiện giao dịch của Polygon zkEVM, đồng thời phân tích cách Polygon zkEVM thực hiện các phép tính, đồng thời mở rộng và kế thừa tính bảo mật của Ethereum.


Đồng thời, các chi tiết thiết kế của Cầu zkEVM và zkEVM của Polygon zkEVM, cũng như Trình tuần tự phi tập trung tiếp theo của Polygon zkEVM, sẽ được giới thiệu chi tiết trong phần tiếp theo hai bài viết.bản đồ đường đi.


1. Rollup Để đạt được mục tiêu mở rộng điện toán cho Ethereum


Trước hết, chúng tôi cần làm rõ Rollup Nguyên tắc làm việc gần đúng. Sự xuất hiện của Rollup là để đạt được sự mở rộng tính toán cho Ethereum. Phương pháp triển khai cụ thể là thuê ngoài việc thực hiện các giao dịch cho Rollup, sau đó lưu trữ giao dịch và trạng thái sau khi thực hiện giao dịch trong hợp đồng Ethereum. Do các tuyến kỹ thuật khác nhau, nó đã phát triển Có hai loại Rollup:


Optimistic Rollup 


Quan điểm lạc quan được gửi tới Ethereum The Giao dịch tổng hợp và Trạng thái tổng hợp tương ứng đều đúng. Bất kỳ ai cũng có thể thách thức Trạng thái tổng hợp vẫn đang trong giai đoạn thử thách bằng cách cung cấp Bằng chứng gian lận.


Tổng hợp không có kiến thức


ZK sẽ gửi giao dịch Tổng hợp tới Ethereum và The tương ứng Trạng thái tổng hợp cung cấp chứng chỉ hợp lệ (được xác minh bằng hợp đồng trên Ethereum để chứng minh rằng trạng thái sau khi thực hiện Rollup tương ứng với giao dịch là chính xác) .


Tham khảo định nghĩa chính thức về Ethereum


Sự khác biệt lớn nhất giữa Zero-know Rollup và Optimistic Rollup là thời gian đạt đến Finality khác nhau do các cách xác minh khác nhau tính hợp lệ của trạng thái;

p>


Optimistic Rollup tin tưởng một cách lạc quan rằng các giao dịch và trạng thái được gửi tới Ethereum là chính xác, do đó sẽ có khoảng thời gian thử thách 7 ngày ( thời gian để đạt được Tính cuối cùng là 7 ngày), Trong khoảng thời gian này, bất kỳ ai nhận thấy trạng thái tương ứng của một giao dịch trên Ethereum không chính xác đều có thể khiếu nại bằng cách gửi trạng thái chính xác.


Thời gian để Zero-know Rollup (zk-Rollup) đạt tới Finality phụ thuộc vào: bằng chứng hợp lệ (Validity Proof) tương ứng với giao dịch được gửi tới Ethereum và Thời gian cần thiết để hoàn tất quá trình xác minh. Hiện tại, Finality có lẽ là khoảng 1 giờ (vì cần phải tính đến chi phí gas).


2. Quá trình thực hiện đa giác zkEVM


Tiếp theo chúng ta được xác nhận bằng một giao dịch đơn giản Hãy bắt đầu hãy xem cách Polygon zkEVM hoạt động để có sự hiểu biết cụ thể về giao thức tổng thể. Toàn bộ quá trình chủ yếu có thể được chia thành ba bước:


1. Trình sắp xếp chuỗi đóng gói nhiều giao dịch của người dùng vào Batch và gửi chúng vào hợp đồng L1;


2. Prover tạo bằng chứng hợp lệ (Bằng chứng hợp lệ) cho mỗi giao dịch. , và tổng hợp các bằng chứng hợp lệ của nhiều giao dịch thành một bằng chứng hợp lệ


3. Người tổng hợp gửi các bằng chứng hợp lệ tổng hợp nhiều giao dịch (Bằng chứng hợp lệ) vào hợp đồng của L1.

1. Sequencer đóng gói các giao dịch của người dùng vào Batch Gửi tới hợp đồng L1


 1) Người dùng gửi giao dịch đến Bộ sắp xếp thứ tự và Bộ sắp xếp thứ tự sẽ xử lý các giao dịch cục bộ theo thứ tự tốc độ của các giao dịch nhận được (FRFS). Khi Bộ sắp xếp thứ tự thực hiện thành công giao dịch cục bộ, nếu Người dùng tin rằng Trình sắp xếp thứ tự là trung thực thì anh ta có thể coi như thỏa thuận tại thời điểm này đã đạt đến Quyết định cuối cùng. Cần lưu ý ở đây rằng hiện tại hầu hết các Mempool (nhóm giao dịch) trong Sequencer đều ở chế độ riêng tư, do đó MEV có sẵn ở thời điểm hiện tại là tương đối nhỏ.      


    2) Sequencer sẽ đóng gói nhiều giao dịch thành một Batch (hiện tại một Batch chỉ chứa một giao dịch) và sau đó sau khi thu thập nhiều Lô sẽ sử dụng hàm SequenceBatch() của PolygonZKEvm.sol trên L1 để các Lô được gửi cùng nhau đến giao dịch Dữ liệu cuộc gọi của L1.


(Cần lưu ý rằng nhiều Lô được gửi cùng một lúc để giảm mức tiêu thụ Gas của L1 càng nhiều càng tốt)


3) Khi PolygonZkEvm.sol nhận được các Lô do Trình sắp xếp chuỗi cung cấp, nó sẽ tính toán hàm băm của từng Lô trong hợp đồng, sau đó ghi lại hàm băm của Lô trước đó trong Lô tiếp theo, vì vậy chúng tôi có cấu trúc Lô thu được như hình dưới đây.



4) Mỗi đợt thứ tự của các giao dịch trong cũng được xác định, vì vậy khi thứ tự của Lô được xác định, chúng tôi tin rằng thứ tự của tất cả các giao dịch có trong Lô được gửi tới hợp đồng Polygon zkEVM của L1 đã được xác định.



Quy trình thực tế ở trên cũng là công việc cần được hoàn thành bởi L1 đóng vai trò là lớp Rollup DA (chưa có công việc kiểm tra trạng thái hoặc nâng cấp nào được hoàn thành vào thời điểm này).


2. Trình tổng hợp tạo Bằng chứng hợp lệ cho nhiều giao dịch Hàng loạt


1) Khi Bộ tổng hợp phát hiện các lô mới đã được gửi thành công trong hợp đồng PolyonZKEVM.sol của L1, nó sẽ đồng bộ hóa các lô này với nút riêng của nó, sau đó Gửi các giao dịch này tới zkProver.


2) Sau khi nhận được các giao dịch này, zkProver sẽ tạo song song Bằng chứng hợp lệ cho từng giao dịch, sau đó tổng hợp Bằng chứng hợp lệ của các giao dịch có trong nhiều Lô thành một Bằng chứng hợp lệ.


3) zkProver sẽ gửi Bằng chứng hợp lệ tổng hợp nhiều giao dịch tới Bộ tổng hợp.


3. Trình tổng hợp Gửi bằng chứng tổng hợp cho hợp đồng L1 


Trình tổng hợp sẽ gửi bằng chứng hợp lệ này (Bằng chứng hợp lệ) và trạng thái tương ứng sau khi thực thi Lô này tới hợp đồng Polygon zkEvm.sol của L1. Bằng cách gọi phương pháp sau:



Các thao tác sau sẽ được thực hiện trong hợp đồng để xác minh xem chuyển đổi trạng thái có chính xác hay không.




Khi bước này được thực hiện thành công trong hợp đồng L1, tất cả các giao dịch trong đợt này sẽ thực sự đạt được Tính hữu hạn (tương ứng với việc kết thúc thời gian thử thách 7 ngày của OP).


3. Vai trò của Ethereum trong Polygon-zkEVM


Chúng ta đã tìm hiểu về quy trình tổng thể của Polygon zkEVM ở trên. Chúng ta có thể xem lại những gì Ethereum đã làm cho Rollup:


Ở bước đầu tiên, Trình sắp xếp thứ tự thu thập các giao dịch Tổng hợp, đóng gói chúng thành Lô và gửi chúng đến hợp đồng L1. L1 không chỉ cung cấp các chức năng của lớp DA mà còn thực sự hoàn thành một phần chức năng sắp xếp thứ tự giao dịch; khi bạn gửi giao dịch tới Bộ sắp xếp thứ tự, giao dịch không thực sự được sắp xếp theo thứ tự, vì Bộ sắp xếp thứ tự có quyền thay đổi thứ tự của giao dịch theo ý muốn Nhưng sau khi giao dịch được đưa vào Lô và nộp vào hợp đồng L1 thì không ai có quyền sửa đổi trình tự giao dịch.


Ở bước thứ hai, Bộ tổng hợp đề cập đến Bằng chứng hiệu lực cho hợp đồng L1 để đạt được trạng thái mới. Bộ tổng hợp đóng vai trò tương tự như Người đề xuất và hợp đồng đóng vai trò tương tự như Người xác thực ; Bộ tổng hợp cung cấp Bằng chứng hợp lệ để chứng minh Trạng thái mới là chính xác và cho Người xác thực biết lô giao dịch nào có liên quan đến Bằng chứng hợp lệ mà tôi đã cung cấp và chúng tồn tại ở đâu trong L1.


Sau đó, Trình xác thực trích xuất Lô tương ứng từ hợp đồng và kết hợp nó với Bằng chứng hiệu lực để xác minh tính hợp pháp của quá trình chuyển đổi trạng thái. Nếu xác minh thành công, hợp đồng sẽ thực sự được cập nhật lên phiên bản mới trạng thái tương ứng với Bằng chứng Hiệu lực.



4. Cấu trúc cuộn hợp đồng thông minh 


Nếu từ góc độ mô-đun, Polygon zkEVM thuộc loại Tổng hợp hợp đồng thông minh, chúng ta có thể thử giải cấu trúc các mô-đun khác nhau của nó, được đưa ra từ Delphi Trong hình, chúng ta cũng có thể thấy rằng Polygon ZkEVM thực sự đóng vai trò là Lớp đồng thuận của Hợp đồng tổng hợp thông minh. Lớp DA và Lớp thanh toán thực sự được kết hợp trong hợp đồng PolygonZkEVM.sol và không thể phân biệt rõ ràng. Nhưng chúng tôi cố gắng giải cấu trúc từng mô-đun:


Lớp sẵn có dữ liệu: Nơi lưu trữ các giao dịch cuộn lên, cho Polygon-zkEVM  ;, khi Sequencer gọi Sequence Batch()  ; phương thức thực sự bao gồm việc gửi dữ liệu giao dịch đến lớp DA.


Lớp thanh toán: Cụ thể đề cập đến cơ chế dòng tiền giữa Rollup và L1, cụ thể là Polygon- Cầu nối chính thức cho zkEVM (Chi tiết sẽ có được giới thiệu ở bài viết tiếp theo).


Lớp đồng thuận: Chứa thứ tự giao dịch và cách xác định trạng thái pháp lý tiếp theo (lựa chọn nhánh), Sequencer gọi L 1 SequenceBatch( trong hợp đồng ) Công việc phân loại giao dịch đã hoàn tất và khi Bộ tổng hợp gọi TustedVerifyBatches() trong hợp đồng L1, công việc xác nhận trạng thái pháp lý tiếp theo cũng được hoàn thành.


Lớp thực thi: Thực thi giao dịch và nhận trạng thái thế giới mới. Khi người dùng gửi giao dịch đến Sequencer và Sequ The new state thu được sau khi thực hiện quy trình encer (vì vậy chúng tôi thường nói rằng Rollup là mở rộng tính toán, vì L1 thuê ngoài quy trình thực hiện giao dịch để có được trạng thái mới cho Rollup và Sequencer sẽ ủy thác zkProver thông qua Aggregator để giúp tạo Bằng chứng xác thực.



5. Tại sao Polygon-zkEVM kế thừa tính bảo mật của L1


Từ quy trình tổng thể được mô tả ở trên, Sequencer thực sự thực hiện một số việc tương tự như Ethernet Square Công việc của Người đề xuất đề xuất rằng một loạt giao dịch là các giao dịch hợp lệ và đưa ra trạng thái mới của loạt giao dịch này sau khi thực hiện; và logic xác minh của hợp đồng L1 tương đương với việc tất cả Trình xác thực L1 sẽ được thực thi trong các máy khách Ethereum của riêng họ . ., trên thực tế, tất cả các trình xác thực Ethereum đều hoạt động như trình xác thực Rollup, vì vậy chúng tôi tin rằng Polygon zkEVM kế thừa tính bảo mật của Ethereum.


Từ một góc nhìn khác, bởi vì tất cả các giao dịch và trạng thái của Rollup đều được lưu trữ trong Trên Ethereum, vì vậy ngay cả khi nhóm Polygon zkEVM bỏ chạy, bất kỳ ai vẫn có thể khôi phục toàn bộ mạng Rollup dựa vào dữ liệu được lưu trữ trên Ethereum.


6. Cơ chế khuyến khích đa giác zkEVM



Trước tiên, người dùng cần thanh toán phí giao dịch của riêng mình trên Rollup. Phần phí này là Nếu giá được tính bằng ETH, hãy sử dụng Bridged ETH để thanh toán.


Trình tự sắp xếp bạn cần thanh toán. Các lô chứa giao dịch Rollup này được tải lên Calldata của giao dịch L1 (chi phí gọi SequenceBatch(batches())). Đồng thời, một lượng Matic nhất định cần được thanh toán cho Hợp đồng L1 trong khi tải lên lô, sau này sẽ được sử dụng để thanh toán cho Nhà tổng hợp cho các Lô này.


Trình tổng hợp đang gọi VerifyBatches đáng tin cậy Trong khi cung cấp Bằng chứng hợp lệ cho các Lô trong hợp đồng L1 chưa được hoàn tất, bạn cũng có thể rút Mã thông báo MATIC mà Sequencer đã thanh toán trước trong hợp đồng như một phần thưởng cho việc cung cấp Bằng chứng hợp lệ.


Thu nhập của trình sắp xếp chuỗi=  Chi phí Gas tổng hợp cho tất cả các giao dịch - Mạng L1 Chi phí Gas để tải Lô lên L1 - Phí chứng minh được trả cho Bộ tổng hợp (giá MATIC).


Thu nhập của người tổng hợp= Khoản bồi thường MATIC được trả bởi Trình sắp xếp thứ tự - Chi phí gas được gửi tới Bằng chứng hợp lệ tới L1 - Chi phí phần cứng dành cho việc tạo Bằng chứng hợp lệ.


Điều chỉnh khoản thanh toán cho Bộ tổng hợp Đồng thời, để tránh Sequencer bị loại do không có lợi nhuận, cơ chế sau đây được cung cấp để điều chỉnh phí chứng nhận mà Sequencer trả cho Bộ tổng hợp.


Có điều này trong hợp đồng Phương pháp điều chỉnh chi phí cung cấp bằng chứng cho Lô:


hàm _updateBatchFee(uint64 newLastFirstBatch) nội bộ 555">


Nó sẽ thay đổi hợp đồng. Có một biến có tên BatchFee và biến này xác định số lượng Token MATIC mà Trình sắp xếp chuỗi thanh toán cho mỗi Lô.


Cơ chế thay đổi như sau:


được duy trì trong hợp đồng Một biến VeryBatchTimeTarget như vậy thể hiện rằng mỗi Lô dự kiến sẽ được xác minh trong thời gian này sau khi được Trình sắp xếp trình tự gửi tới L1.


sẽ được ghi lại trong hợp đồng Tất cả các Lô chưa được xác minh sau khi vượt quá VeryBatchTimeTarget và tổng số các Lô này được ghi là DiffBatches.


Vì vậy khi có Lô bị trễ sẽ dùng công thức sau để điều chỉnh BatchFee:


MultiplierBatchFee là một Số được giới hạn trong phạm vi 1000~1024 có thể được thay đổi bởi quản trị viên hợp đồng thông qua chức năng setMultiplierBatchFee() :


Hàm setMultiplier BatchFee  ;(uint16newMultiplierBatchFee) chỉ công khaiQuản trị viên img0.555">


 Cần chú ý MultiplierBatchFee và 10^3 được sử dụng ở đây để đạt được độ chính xác điều chỉnh là 3 điểm thập phân.





Tương tự, nếu Lô được nâng cao, cơ chế điều chỉnh Phí lô tương ứng sẽ được kích hoạt: DiffBatches đại diện xác minh sớm trạng thái. Số lượng lô.




Tóm tắt


tại đây Trong bài viết này, chúng tôi đã sắp xếp cơ chế cốt lõi của Polygon zkEVM và phân tích tính khả thi của nó để đạt được mục tiêu mở rộng điện toán Ethereum. Sau khi có bản phác thảo tổng thể, trong các bài viết sau chúng ta sẽ đi sâu vào giao thức và phân tích chi tiết thiết kế của Cầu zkEVM cũng như lộ trình phân cấp của Sequencer, cách triển khai zkProver và các nguyên tắc thiết kế của 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