TL;DR
Như đã đề cập trong bài viết trước Xin chào, OlaVM!, tầm nhìn của OlaVM là xây dựng một ZKVM hiệu suất cao. Bài viết này sẽ tập trung vào một trong những công cụ cho phép OlaVM đạt được hiệu suất cao, đối số Tra cứu. Đối số tra cứu đóng vai trò quan trọng trong việc giảm kích thước mạch nhằm nâng cao hiệu suất của ZK, được sử dụng rộng rãi trong thiết kế mạch của ZKVM, qua bài viết này các bạn có thể tìm hiểu:
1. Đối số Tra cứu sẽ đóng vai trò gì trong ZKVM?
2. Nguyên tắc giao thức Plookup.
3. Nguyên tắc giao thức đối số Tra cứu của Halo 2.
tiêu đề cấp đầu tiên
The roles in ZKVM
Cái gọi là ZKVM trên thực tế sử dụng ZK để hạn chế tất cả quá trình thực thi của VM, quá trình thực thi của VM nói chung có thể được chia thành: thực thi lệnh, truy cập bộ nhớ, thực thi chức năng tích hợp, v.v. Có vẻ hơi không thực tế khi triển khai các ràng buộc đối với các hoạt động này trong một dấu vết. Đầu tiên, các ràng buộc của các loại hoạt động khác nhau tương ứng với các độ rộng theo dõi khác nhau. Nếu độ rộng theo dõi tương ứng với một trong các ràng buộc là đặc biệt lớn, nó sẽ gây ra các ràng buộc còn lại để tương ứng với độ rộng vết.lãng phí; sau đó, nếu có quá nhiều loại hoạt động khác nhau trong một vết, nhiều bộ chọn hơn sẽ được đưa vào, điều này sẽ không chỉ làm tăng số lượng đa thức mà còn tăng thứ tự của các ràng buộc; cuối cùng, do giới hạn thứ tự của nhóm, dòng theo dõi Số lượng không thể vượt quá thứ tự của nhóm này, do đó, nên giảm thiểu số lượng dòng theo dõi bị chiếm bởi một số loại hoạt động.
Vì vậy, để đơn giản, chúng ta cần:
a. Chia các loại hoạt động khác nhau thành nhiều dấu vết phụ, sau đó chứng minh một cách riêng biệt rằng cần có đối số Tra cứu giữa dấu vết chính và dấu vết phụ để đảm bảo tính nhất quán của dữ liệu.
B. Đối với một số tính toán không thân thiện với ZK, chúng tôi có thể giảm kích thước của dấu vết thông qua công nghệ đối số Tra cứu, chẳng hạn như các phép toán bit.
tiêu đề phụ
Lookup between trace tables
Mô tả hình ảnh

Hình 1. Tra cứu giữa các dấu vết
tiêu đề phụ
Lookup for ZK-unfriendly operations
Như đã đề cập trước đó, bằng chứng của mỗi dấu vết phụ là độc lập, do đó, việc có được một dấu vết càng nhỏ càng tốt sẽ nâng cao hiệu quả của phép chứng minh. Lấy bitwise làm ví dụ, các thao tác bitwise bao gồm AND, XOR, NOT ba thao tác. Nếu bạn chỉ muốn thực hiện các ràng buộc đối với các hoạt động theo bit thông qua các mạch, điều bạn cần làm có thể là chia mỗi op thành nhiều nhánh nhị phân.Nếu các op này rộng 3 2 bit, chúng sẽ được chia thành 32 nhánh. Sau đó, bạn cần phải hạn chế:

Tổng cộng có 3 + 32 * 3 = 99 ô theo dõi được sử dụng và số ràng buộc là 3 kiểm tra tổng + 32 theo bit = 35.
Mô tả hình ảnh

Hình 2. Tra cứu trong Phép tính số học
tiêu đề cấp đầu tiên
tiêu đề phụ
tiêu đề phụ

tiêu đề phụ

tiêu đề phụ

tiêu đề phụ

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




tiêu đề phụ
tiêu đề phụ

tiêu đề phụ

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

Extend - 1 : Vector Lookup

Extend - 2 : Multi-tables

Links between Plookup and Lookup
Cả giao thức Plookup và giao thức tra cứu Halo 2 đều có thể chứng minh f⊂t, nhưng ý tưởng của hai giao thức là khác nhau và sự khác biệt như sau:
Plookup cần sử dụng f và t để xây dựng một dãy mới s, các phần tử trong f và t xuất hiện ít nhất một lần trong s, sau đó chứng minh rằng s⊂t bằng cách so sánh các tập hợp khoảng cách khác 0 của các phần tử trong s và t bằng nhau , và cuối cùng f⊂s⊂t→f⊂t.
Tra cứu của Halo 2 chứng minh trực tiếp f⊂t mà không cần xây dựng một chuỗi mới, ngắn gọn hơn so với tra cứu.
tiêu đề cấp đầu tiên
đề cập đến
1.Hello, OlaVM!:https://hackmd.io/@sin 7 y/H 1 yPj_J 8 i
2.OlaVM:https://olavm.org/
3. Giao thức Plookup:https://eprint.iacr.org/2020/315.pdf
về chúng tôihttps://zcash.github.io/halo 2/design/proving-system/lookup.html
về chúng tôi
Cộng đồng: http://t.me/sin 7 y_labs
Trang web chính thức: https://sin 7 y.org/
Sách trắng: https://olavm.org/
Cộng đồng: http://t.me/sin 7 y_labs
Tài khoản công khai WeChat: Sin 7 y
Tài khoản công khai WeChat: Sin 7 y
E-mail: contact@sin 7 y.org
Bài báo nghiên cứu (EN): https://hackmd.io/@sin 7 y
Github:Sin 7 y


