Trong bài viết này mình sẽ giải thích lược đồ commitment bằng đa thức được giới thiệu bởi Kate, Zaverucha và Goldberg. Lược đồ này được áp dụng vào Zero Knowledge Proof trên công nghệ blockchain (Proto-Danksharding EIP-4844) nhằm thu gọn kích thước của proof thành một giá trị cố định mà không quan tâm đến kích cỡ thông điệp như cách dùng merkle tree và merkle path.
Một người có thể tuyên bố rằng người ấy biết message bằng cách commit một giá trị sao cho bất cứ ai cũng có thể dùng để verify điều này, tuy nhiên thông tin của không hề bị tiết lộ hoặc bị làm giả. Nghĩa là, sẽ không thể hoặc rất khó tìm thấy sao có thể dùng để verify cho . Điều này phù hợp với các tính chất của Zero Knowledge Proof (xem lại bài ZKP).
Đối với lược đồ commitment bằng đa thức. Một người có thể chứng minh rằng người ấy biết chính xác một đa thức , nghĩa là người này biết toàn bộ giá trị các hệ số của thay vì là biết thông tin về message .
Bước 1: Thiết lập trust một lần duy nhất. Sau bước này, các bước khác sẽ được lặp lại để chứng minh cho các đa thức khác nhau.
Cho là phần tử sinh (generator) của một group pairing-friendly elliptic curve
Gọi là bậc cao nhất của các đa thức có thể được tạo.
Chọn một giá trị ngẫu nhiên bất kỳ, được gọi là trapdoor
Tính các giá trị . Chú ý rằng được giữ bí mật, không tiết lộ.
Bước 2: Bước này để một người chứng minh rằng anh ta biết một đa thức với bậc nhỏ hơn hoặc bằng . Tuy nhiên để đơn giản, cứ xem như có hệ số với các hệ số .
Ta có:
Tính giá trị thông qua các giá trị đã setup bằng cách tính
Commit giá trị
Bước 3: Thiết lập bằng chứng
Chọn một giá trị bất kỳ, tính
Tính , trong đó . Để ý rằng chỉ có có thể tồn tại nếu và chỉ nếu . Ta có thể dễ dàng chứng minh điều này như sau:
Ta có sẽ luôn tồn tại và vì thế sẽ triệt tiêu mẫu số của . Nếu không ở mẫu số sẽ gây phép chia cho .
Output
Bước 4: Verify
Cần kiểm tra điều kiện , với là một cặp ghép song tuyến tính. Điều này xảy ra vì:
Như vậy, ta thấy chỉ cần hai giá trị - commit và - proof với kích thước xác định, ta có thể chứng minh một người biết đa thức , thay vì phải reveal toàn bộ các hệ số của đa thức này. Phương pháp này giúp tinh gọn kích thước proof so với mô hình Merkle tree, Merkle path.
No comments yet. Be the first to comment!