Mặt khác ZK-PoW V2.0: Hỗ trợ khai thác ZKP đa chuỗi và đa cuộn

1. Giới thiệu Opside ZK-PoW
Opside là nền tảng ZK-RaaS (ZK-Rollup as a Service) phi tập trung và mạng khai thác ZKP (Bằng chứng không kiến thức) hàng đầu trong ngành. ZK-RaaS (ZK-Rollup dưới dạng Dịch vụ) có thể cung cấp cho bất kỳ ai dịch vụ chỉ bằng một cú nhấp chuột để tạo ZK-Rollup. Opside cung cấp cơ sở khởi chạy ZK-Rollup chung, qua đó các nhà phát triển có thể dễ dàng triển khai các loại ZK-Rollup khác nhau cho các chuỗi cơ sở khác nhau.
Chuỗi cơ sở, bao gồm Ethereum/chuỗi Opside/chuỗi BNB/Polygon PoS và các chuỗi công khai khác.
Các loại ZK-Rollup, bao gồm zkEVM như zkSync, Polygon zkEVM, Scroll, StarkNet và các loại ZK-Rollup khác.

Opside ZK-PoW Cloud sẽ được triển khai trên nhiều chuỗi, bao gồm nhưng không giới hạn ở Ethereum, Chuỗi BNB, Polygon PoS và chính Opside Chain. Trong thiết kế của Opside, các nhà phát triển có thể triển khai ZK-Rollups trên các chuỗi cơ sở khác nhau được đề cập ở trên. Với sự trưởng thành dần dần của công nghệ ZK-Rollup, hàng trăm ZK-Rollup có thể ra đời trong tương lai, điều này sẽ mang đến nhu cầu rất lớn về sức mạnh tính toán ZKP. Opside sử dụng cơ chế ZK-PoW để thúc đẩy Thợ mỏ cung cấp sức mạnh tính toán ZKP, từ đó cung cấp cơ sở phần cứng hoàn chỉnh cho ZK-Rollup.
2. Kiến trúc tổng thể của ZK-PoW V 2.0
Kiến trúc tổng thể của ZK-PoW V 2.0 bao gồm một số thành phần chính:
Đám mây ZK-PoW: Đây là cơ sở hạ tầng đám mây do Opside cung cấp để tính toán ZKP. Nó được triển khai trên nhiều chuỗi bao gồm Ethereum, Chuỗi BNB, Polygon PoS và Chuỗi Opside. ZK-PoW Cloud chịu trách nhiệm điều phối và quản lý các tác vụ tính toán ZKP.
Nút khai thác: Đây là các nút được vận hành bởi những người khai thác đóng góp sức mạnh tính toán của họ để thực hiện các phép tính ZKP. Người khai thác có thể tham gia vào mạng ZK-PoW bằng cách chạy phần mềm chuyên dụng trên phần cứng khai thác của họ.
Phân phối nhiệm vụ ZKP: ZK-PoW Cloud phân phối các nhiệm vụ tính toán ZKP cho các nút khai thác. Việc phân phối được thực hiện theo cách phi tập trung để đảm bảo tính công bằng và hiệu quả. Nhiệm vụ ZKP bao gồm tạo và xác minh bằng chứng không có kiến thức cho các ZK-Rollup khác nhau.
Tính toán ZKP: Các nút khai thác nhận nhiệm vụ tính toán ZKP và thực hiện các phép tính cần thiết để tạo ra bằng chứng cần thiết. Điều này liên quan đến việc thực hiện các thuật toán mã hóa và thực hiện các phép tính phức tạp.
Gửi và xác minh bằng chứng: Sau khi quá trình tính toán ZKP hoàn tất, nút khai thác sẽ gửi bằng chứng được tạo tới Đám mây ZK-PoW để xác minh. Cơ sở hạ tầng đám mây xác minh tính chính xác của bằng chứng để đảm bảo tính hợp lệ và tính toàn vẹn của nó.
Cơ chế khuyến khích: Người khai thác được khuyến khích tham gia vào mạng ZK-PoW bằng cách được khen thưởng cho những đóng góp tính toán của họ. Hệ thống phần thưởng được thiết kế để thúc đẩy các thợ mỏ và duy trì tính bảo mật và ổn định của mạng.
Nhìn chung, ZK-PoW V 2.0 kết hợp tài nguyên điện toán của thợ đào với cơ sở hạ tầng đám mây để cung cấp sức mạnh tính toán ZKP hiệu quả và có thể mở rộng cho nhiều ZK-Rollup khác nhau.
Aggregator là một mô-đun thành phần quan trọng của Prover, nó chịu trách nhiệm phân phối các nhiệm vụ chứng minh ZKP và nhận kết quả nhiệm vụ, cụ thể là bằng chứng ZKP, quản lý bằng chứng ZKP và gửi bằng chứng ZKP đến Chuỗi cơ sở để nhận phần thưởng. Do đó, phiên bản mới của Bộ tổng hợp được chia thành ba mô-đun phụ dựa trên các chức năng, đó là: Trình tạo bằng chứng, Trình quản lý bằng chứng và Người gửi bằng chứng.

Mô-đun Proof Generator trong hộp gạch ngang trong hình trên sẽ chịu trách nhiệm đưa ra các nhiệm vụ bằng chứng cho người hoạt động (máy khai thác PoW) và chấp nhận kết quả nhiệm vụ: bằng chứng ZKP, sau đó lưu bằng chứng ZKP vào cơ sở dữ liệu DB. Người quản lý bằng chứng chịu trách nhiệm quản lý việc hoàn thành bằng chứng ZKP, đóng gói bằng chứng ZKP để tải lên nhiệm vụ gửi và giao nó cho Người gửi bằng chứng mô-đun. Mô-đun Người gửi Bằng chứng hoàn thành chuỗi bằng chứng ZKP, nghĩa là gửi bằng chứng cho hợp đồng zkevm được triển khai trên Chuỗi Cơ sở.
Ba mô-đun được mô tả dưới đây:
Proof generator
Chuỗi tổng hợp gói một số lượng giao dịch nhất định thành một lô, sau đó gói một số lô (theo nhiều yếu tố như tần suất giao dịch) thành một chuỗi và sau đó gửi nó đến Chuỗi cơ sở, vì vậy chúng ta có thể nói rằng mỗi khi dữ liệu trên chuỗi Đơn vị là trình tự. Mỗi chuỗi bao gồm nhiều lô và bằng chứng ZKP là để chứng minh tính hợp pháp của chuỗi được gửi, vì vậy lô là đơn vị nhỏ nhất của nhiệm vụ chứng minh.
Tùy thuộc vào lô có trong trình tự, các nhiệm vụ chứng minh cần hoàn thành cũng khác nhau, như sau:
Số lượng lô bằng 1 và quy trình chứng minh BatchProofTask ----> FinalProofTask cần hoàn thành các nhiệm vụ chứng minh BatchProofTask và FinalProofTask theo trình tự.
Trình tự này chứa số lô lớn hơn 1 và quy trình chứng minh có nhiều tác vụ chứng minh BatchProofTask ---->AggregatorproofTask ---> FinalProofTask. Cần phải hoàn thành nhiều tác vụ chứng minh BatchProofTask, AggregatorproofTask và FinalProofTask theo trình tự.
Để cải thiện hiệu quả của việc tạo bằng chứng nhiều nhất có thể và để tăng thu nhập của những người khai thác PoW, chúng tôi tạo ra bằng chứng song song nhiều nhất có thể. Cụ thể ở hai khía cạnh sau:
Mỗi trình tự chứng minh rằng việc tạo không có sự phụ thuộc vào bối cảnh hoặc trạng thái và có thể được thực hiện đồng thời.
Nhiều BatchProofTask trong cùng một trình tự có thể được thực hiện đồng thời.
Bằng cách này, tài nguyên sức mạnh tính toán của người chứng minh có thể được sử dụng tốt hơn, do đó có thể tạo ra bằng chứng hiệu quả hơn.
Proof manager
Mô-đun này chủ yếu chịu trách nhiệm quản lý chứng chỉ ZKP và kiểm soát việc xác minh chuỗi chứng chỉ ZKP. Chủ yếu được chia thành ba mô-đun
submitPendingProof: Mô-đun này chỉ được thực thi một lần mỗi khi Bộ tổng hợp được khởi động, với mục đích gửi bằng chứng ZKP chưa được hoàn thành trước khi dịch vụ Bộ tổng hợp cuối cùng bị dừng. Đây là trường hợp proofHash được gửi và những người khai thác khác gửi bằng chứng. Về proofHash, việc giới thiệu bằng chứng đề cập đến Người gửi bằng chứng.
tryFetchProofToSend: Trong quá trình thực thi coroutine, hãy thêm bằng chứng ZKP được tạo mới nhất và trình tự tương ứng với bằng chứng chưa được xác minh vào bộ đệm của Người gửi bằng chứng và chờ liên kết.
processResend: Được thực thi trong coroutine, mục đích là gửi lại trình tự chưa được xác minh thành công ngoài khoảng thời gian.
Proof sender
OpsideThuật toán gửi hai bước ZKP được đề xuất để hiện thực hóa sự phân quyền của người chứng minh. Thuật toán này không chỉ có thể ngăn chặn các cuộc tấn công chạy trước ZKP mà còn cho phép nhiều người khai thác hơn nhận được phần thưởng, từ đó khuyến khích nhiều người khai thác trực tuyến hơn và cung cấp sức mạnh tính toán ZKP ổn định và liên tục.
Bước 1: Để một trình tự nhất định tạo ra bằng chứng PoW được ghi làm bằng chứng, trước tiên hãy tính Hash (bằng chứng / địa chỉ), ghi lại dưới dạng proofHash và gửi nó vào hợp đồng. Nếu trình tự chưa gửi proofHash trước đó, hãy mở proofHash khoảng thời gian gửi T 1. Những người khai thác trong khối T 1 tiếp theo có đủ điều kiện để gửi trình tự và bằng chứng chỉ có thể được gửi sau khối T 1.
Bước 2: Gửi bằng chứng Sau khối T 1, bật gửi bằng chứng và giới hạn gửi trong khối T 2. Nếu sau khối T 2, tất cả những người khai thác gửi bằng chứng không vượt qua được quá trình xác minh thì tất cả những người khai thác đã gửi proofHash trước đó sẽ bị trừng phạt. Nếu proofHash có thể được gửi thành công trong cửa sổ thời gian T 1, nhưng bằng chứng không thể được gửi thành công trong cửa sổ thời gian T 2 và những người khai thác khác gửi bằng chứng thành công trong cửa sổ T 2, họ vẫn có thể tiếp tục gửi bằng chứng. Ngoài các tình huống trên, hãy thực hiện lại quy trình gửi hai bước.
Như được hiển thị trong hình bên dưới, Người gửi bằng chứng thực hiện gửi hai bước dựa trên ba bộ đệm được sắp xếp theo mức độ ưu tiên và an toàn theo luồng. Ba bộ đệm này được sắp xếp dựa trên chiều cao ban đầu của chuỗi, đảm bảo rằng chiều cao của chuỗi tương ứng với các phần tử thu được từ ba bộ đệm này mỗi lần đều ở mức thấp nhất và các phần tử trong ba bộ đệm này sẽ được loại bỏ trùng lặp. Chiều cao của chuỗi tương ứng càng thấp thì mức độ ưu tiên càng cao.
FinalProofMsgCahce: Lưu trữ thông báo FinalProof được gửi bởi Trình quản lý bằng chứng để hoàn thành bằng chứng ZKP.
monitPHTxCache: Lưu trữ các giao dịch để theo dõi proofHash.
ProofHashCache: Lưu trữ các thông báo bằng chứng để chứng minh trên chuỗi.
Như được hiển thị bên dưới:

Sau khi mô-đun Người gửi bằng chứng được khởi động, ba coroutine sẽ bắt đầu sử dụng ba dữ liệu được lưu vào bộ nhớ đệm tương ứng.
Quá trình đơn giản là:
Coroutine 1 chịu trách nhiệm sử dụng thông báo FinalProof trong FinalProofMsgCahce và tính toán proofHash. Nếu nó đáp ứng các điều kiện trên chuỗi (trong điều kiện T 1), nó sẽ đặt proofHash vào chuỗi và đưa giao dịch proofHash vào monitPHTxCache.
Coroutine 2 sử dụng thông báo giao dịch proofHash của monitPHTxCache. Nếu trong khoảng thời gian T 2, điều kiện bằng chứng trên chuỗi được đáp ứng, thì lệnh này sẽ tạo một thông báo bằng chứng và lưu trữ nó trong ProofHashCache.
Coroutine 3 sử dụng thông báo bằng chứng và bằng chứng được tải lên chuỗi.
So với mô-đun cũ, cấu trúc rõ ràng hơn và tiết kiệm chi phí tài nguyên.
3. Tóm tắt
So với phiên bản 1.0
V 2.0 chia dịch vụ ban đầu thành ba mô-đun phụ. Ba mô-đun này lần lượt chịu trách nhiệm tạo chứng chỉ, quản lý chứng chỉ và chuỗi chứng chỉ. Cấu trúc rõ ràng hơn. Ba mô-đun có khả năng ghép nối thấp và độ bền cao.
So với phiên bản cũ, Proof Generator đã thêm tham số startBatch để tạo điều kiện cho những người khai thác mới bắt kịp tiến độ khai thác nhanh hơn.
Mô-đun quản lý bằng chứng Proof Manager tốt hơn và cải tiến hơn phiên bản cũ: nếu người khai thác khởi động lại dịch vụ hoặc các lý do khác khiến bằng chứng không được gửi hoặc gửi không thành công, bằng chứng sẽ được gửi lại sớm nhất có thể để đảm bảo lợi ích của người khai thác; đồng thời, cơ chế gửi lại không chỉ dành cho việc gửi bằng chứng không thành công mà còn dành cho Nếu tất cả lần gửi bằng chứng không thành công hoặc không được gửi, khoảng thời gian sẽ được khởi động lại để đảm bảo tính bảo mật của Chuỗi tổng hợp.
Mô-đun gửi bằng chứng Proof Sender thực hiện gửi giao dịch hai bước dựa trên ba bộ đệm ưu tiên an toàn theo luồng, giúp giảm việc sử dụng khóa chung so với phiên bản trước, đảm bảo rằng bằng chứng cấp thấp có thể được gửi càng sớm càng tốt và đảm bảo lợi ích của thợ mỏ. Đồng thời, toàn bộ quy trình dịch vụ rõ ràng hơn, số lượng luồng giảm và mức tiêu thụ tài nguyên trong quá trình thực hiện chương trình cũng giảm.
Kết quả kiểm tra áp suất:
Phiên bản 2.0 sử dụng 10 máy 64 lõi để hoàn thành 566 bản proof hàng loạt, mất 7 giờ, 38 phút và 40 giây và trung bình là 48,62 giây để hoàn thành một bản proof. Trong kịch bản nhiều công cụ khai thác, so với V 1.0, hiệu suất tạo bằng chứng zk của V 2.0 đã tăng tổng thể lên 50%
Nói tóm lại, Opside ZK-PoW V 2.0 tối ưu hóa quá trình nhiều người khai thác tham gia tính toán ZKP, cải thiện việc sử dụng phần cứng, cải thiện tính khả dụng của dịch vụ và thân thiện hơn với người khai thác. Quan trọng hơn, trong kịch bản nhiều thợ mỏ, việc tính toán ZKP được rút ngắn xuống còn chưa đầy một phút, giúp tăng tốc đáng kể thời gian xác nhận của ZK-Rollup.


