Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Một số suy nghĩ về việc loại bỏ giới hạn bộ nhớ trong ZKEVM
Sin7y
特邀专栏作者
2022-09-21 09:23
Bài viết này có khoảng 2361 từ, đọc toàn bộ bài viết mất khoảng 4 phút
Trong hệ thống ràng buộc của ZKVM, có thể thiết kế cơ chế truy cập bộ nhớ ở cấp VM để giảm quy mô của các ràng buộc zk.

ZKEVM là một máy ảo có thể lập trình dựa trên công nghệ ZK, có thể tạo bằng chứng không kiến ​​thức (bằng chứng zk) cho tất cả các hoạt động được thực hiện bởi máy ảo để chứng minh tính chính xác của hoạt động của máy ảo. Về phần giới thiệu một số sơ đồ triển khai của ZKEVM và so sánh ưu nhược điểm, bạn có thể tham khảo bài viết của V God:The different types of ZK-EVMs; Nếu bạn muốn biết thêm chi tiết về thiết kế, bạn cũng có thể đọc sơ đồ ZKEVM của PSE (cấp độ gốc):privacy-scaling-explorations/zkevm-specsThiết kế ZKEVM của Polygon (cấp bytecode):Polygon zkEVM Documentation; Thiết kế ZKEVM của Sin7y (cấp độ ngôn ngữ):OlaVM: An Ethereum compatible ZKVM. Bất kể giải pháp nào, zk cần được sử dụng để hạn chế tất cả các hành vi của VM, bao gồm:

• Thực thi logic tính toán hợp đồng

• thực hiện truy cập bộ nhớ

• Thực hiện tính toán băm

• Thực hiện cập nhật trạng thái thế giới

• ...

Như chúng ta đã biết, zk có triển vọng ứng dụng tuyệt vời trong lĩnh vực nén điện toán; cho dù tính toán ban đầu có phức tạp đến đâu, quy trình xác minh của nó vẫn rất hiệu quả, đây là kỹ năng cơ bản của tất cả các thuật toán zk. Do đó, zk có thể đóng một vai trò tốt trong phần tính toán (chẳng hạn như logic hợp đồng, tính toán hàm băm, v.v.) Một số dữ liệu cần được đặt trước trong bộ nhớ và sau đó được tìm nạp khi thực hiện các phép tính.

Vì hầu hết các máy ảo đều đọc và ghi bộ nhớ, tính chính xác của các thao tác truy cập bộ nhớ này phải bị hạn chế (ví dụ: kiểm tra tính nhất quán để đảm bảo rằng dữ liệu được đọc từ một địa chỉ nhất định giống với dữ liệu được ghi lần trước); đối với các ràng buộc truy cập bộ nhớ bản thân chúng không phức tạp (có ít trường hợp hơn), nhưng do số lần truy cập bộ nhớ lớn nên bậc của đa thức rất cao, điều này làm cho các ràng buộc liên quan đến bộ nhớ trở nên tốn thời gian.

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

chữ

quaEVMMô tả hình ảnh

chữ

chữ

chữ

•  MSTORE(x,chữ

•  MSTORE8(x,y): Bắt đầu từ địa chỉ x, ghi 8 byte của y (bit bắt đầu thấp hơn) Bạn đọc quan tâm có thể tìmEVM Playgroundchữ

hiện hữu

hiện hữuOlaVMTrong Phần 5.3.5, bạn có thể xem các nguyên tắc thiết kế của Ràng buộc bộ nhớ (Các hướng dẫn liên quan đến bộ nhớ của OlaVM tương tự như EVM).

Trong OlaVM, tất cả các hoạt động của RAM tạo thành một bảng độc lập và nội dung trong bảng bao gồm hai loại: bộ nhớ và lưu trữ. Ở đây, chúng tôi chỉ tập trung vào các ràng buộc về bộ nhớ. Các loại hoạt động bộ nhớ có thể được tạm chia thành ba loại:

• Bắt đầu vận hành

• thao tác ghi

• thao tác đọc

Có ba kịch bản kích hoạt Init, cụ thể là chuyển đổi ctx, thay đổi loại và thay đổi addr; khi bất kỳ một trong các kịch bản được kích hoạt, các ràng buộc được yêu cầu,Loại hoạt động là w (ghi), v (giá trị) là 0。 

Khi ba kịch bản trên không được kích hoạt, nó cần được hạn chế theo loại hoạt động hiện tại;

• Nếu là thao tác w (ghi), cần ràng buộc rằng clk tăng dần (gọi mô-đun kiểm tra phạm vi), và giá trị v được ghi là chính xác (gọi ràng buộc sao chép, trong OlaVM, tất cả các giá trị của hướng dẫn bộ nhớ đến từ các thanh ghi).

• Nếu là thao tác r(read) thì cần hạn chế tăng clk (gọi module rangecheck),Giá trị đọc giống với giá trị ghi cuối cùng

Một số cải tiến về khả năng (thân thiện hơn với zk)

• Đối với thao tác Khởi tạo, bạn có cần giới hạn giá trị khởi tạo của địa chỉ bộ nhớ về 0 không?

Tôi không nghĩ cần phải hạn chế thao tác khởi tạo; thực tế, đối với bất kỳ địa chỉ nào, bạn có thể hạn chế quyền truy cập đầu tiên của nó phải là thao tác ghi, không phải thao tác đọc; và nếu đó là mô hình bộ nhớ ghi một lần, điều này hạn chế sẽ là tự nhiên. Do đó, nếu mô hình bộ nhớ của máy ảo được thay đổi thành mô hình ghi một lần, các ràng buộc truy cập vào bộ nhớ sẽ giảm đi.

• Đối với thao tác đọc, có thể tránh các ràng buộc tương ứng, nghĩa là tránh xác minh rằng giá trị đọc có nhất quán với giá trị được ghi cuối cùng không?

Vì bộ nhớ đọc-ghi của loại bộ nhớ do chính VM xác định không thể được đảm bảo, nên giá trị của địa chỉ bộ nhớ này chưa được sửa đổi trước khi VM đọc giá trị của địa chỉ bộ nhớ này, do đó cần thêm kiểm tra tính bằng, như thể hiện trong hình sau:

Từ đó có thể thấy rằng lý do cốt lõi của hạn chế này là mô hình bộ nhớ là bộ nhớ đọc và ghi, và giá trị của địa chỉ có thể được ghi lại.Do đó, nếu bạn cố gắng sử dụng bộ nhớ chỉ đọc (chỉ ghi một lần ) thì bạn không cần phải ghi vào bộ nhớ Các ràng buộc để đạt được các ràng buộc nhất quán trên.

Lưu ý: Điều này có thể làm tăng độ khó triển khai máy ảo, vì đây là mô hình bộ nhớ không phổ biến; và, trước tiên chúng ta không nên xác định DSL nâng cao trên máy ảo này, vì ngôn ngữ này sẽ hơi xa lạ với các nhà phát triển Dapp Thân thiện cần phải được loại bỏ ở cấp độ trình biên dịch, làm cho những thứ này trở nên không thân thiện và vô hình đối với các nhà phát triển. Do đó, nếu mô hình bộ nhớ trên được áp dụng, các ràng buộc của mô-đun bộ nhớ sẽ chỉ là các ràng buộc đối với thao tác ghi, nghĩa là sử dụng các ràng buộc sao chép để đảm bảo rằng giá trị được ghi là chính xác.không ràng buộc: 

Giá trị đọc bằng giá trị ghi vì bộ nhớ chỉ ghi được một lần

Clk đọc lớn hơn clk ghi, vì nó chỉ có thể được viết trước rồi mới đọc

Bộ nhớ được khởi tạo thành 0 (không cần thiết)

Tài khoản công khai WeChat: Sin7Y

ethereum_evm_illustrated, page 51

về chúng tôi

Sin7y được thành lập vào năm 2021 và bao gồm các nhà phát triển chuỗi khối hàng đầu. Chúng tôi vừa là vườn ươm dự án vừa là nhóm nghiên cứu công nghệ chuỗi khối, khám phá các công nghệ tiên tiến và quan trọng nhất như EVM, Layer2, chuỗi chéo, điện toán bảo mật và các giải pháp thanh toán tự động.

Tài khoản công khai WeChat: Sin7Y

GitHub | Twitter | Telegram | MediumMirror | HackMD | HackerNoon

nhà phát triển
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
Tài khoản chính thức
https://twitter.com/OdailyChina