So sánh hai hàm Hash cho Tính toán đa bên và zero-knowledge

Bài viết này được dịch máy
Xem bản gốc

So sánh hai hàm băm cho tính toán đa bên và bằng chứng không tri thức
bởi Burcu Yıldız (Anoma - https://anoma.network/) và Mary Maller (Ethereum Foundation - https://ethereum.foundation/)

TL;DR; Trong báo cáo của chúng tôi So sánh hai hàm băm cho tính toán đa bên và bằng chứng không tri thức, chúng tôi so sánh các hàm băm Poseidon và Hydra cho tính toán đa bên (MPC) và bằng chứng không tri thức (ZKP). Nhận xét của chúng tôi cho thấy hiệu quả tốt hơn khi sử dụng Hydra.

MPC và ZKP
Bằng chứng không tri thức (ZKP) và MPC đều là ví dụ về các ứng dụng mật mã học nâng cao hữu ích cho quyền riêng tư và tính toàn vẹn. Trong một bằng chứng không tri thức, một bên duy nhất chứng minh rằng đầu ra của một phép tính đã được tính toán chính xác mà không tiết lộ bất kỳ giá trị đầu vào bí mật nào. Trong một MPC, nhiều bên tính toán đầu ra của một phép tính mà không tiết lộ bất kỳ giá trị đầu vào bí mật nào cho nhau. Việc sử dụng chung các giải pháp ZKP và MPC rất hứa hẹn cho các ứng dụng khác nhau, bao gồm cả giao thức giải quyết riêng tư của Anoma. Các biện pháp hiệu quả chính là số lượng ràng buộc R1CS cho ZKP và số lượng vòng lặp và bộ ba nhân cho MPC, tất cả đều phụ thuộc cơ bản vào số lượng các phép toán phi tuyến. Tuy nhiên, sự phụ thuộc chính xác vào các phép toán phi tuyến, và do đó là các tối ưu hóa, khác nhau đối với MPC và ZKP.

Các hàm băm
Các hàm băm mật mã học là một khối xây dựng quan trọng hàng đầu trong mật mã học và được sử dụng cho nhiều ứng dụng. Hàm băm Poseidon được ưa chuộng rộng rãi cho các ứng dụng không tri thức (ví dụ: FileCoin, Dusk Network, LoopRing), và đã được thiết kế đặc biệt cho mục đích này. Hàm băm Hydra được đề xuất và tối ưu hóa để tính toán trong MPC. Hydra đã được trình bày tại Eurocrypt 2023 và có tổng số vòng lặp và dữ liệu được truyền ít hơn so với các đối thủ cạnh tranh của nó. Chúng tôi trả lời câu hỏi sau trong báo cáo của mình:
Các hàm băm Poseidon và Hydra, được tối ưu hóa cho các ứng dụng không tri thức và MPC tương ứng, thì hoạt động như thế nào cho ứng dụng kia?

Các kỹ thuật của chúng tôi
So sánh Poseidon và Hydra của chúng tôi bao gồm các thành phần lý thuyết và thực nghiệm, nhằm mục tiêu 128 bit bảo mật trên đường cong Pallas (một trường nguyên tố 255 bit). Bằng cách tính độ sâu nhân và độ phức tạp nhân của các thuật toán, chúng tôi ước tính lý thuyết về hiệu quả của các hàm băm thông qua số lượng ràng buộc R1CS cho ZKP; thông qua số lượng vòng lặp và bộ ba nhân cần thiết cho MPC. Kết quả thực nghiệm của chúng tôi bao gồm các bản đo hiệu suất của các giao thức MPC để có được ước tính về tổng thời gian chạy, lượng dữ liệu trao đổi và thời gian CPU của mỗi bên. Chúng tôi trình bày trực quan kết quả của mình liên quan đến các độ dài đầu ra khác nhau, số lượng bên và các tham số của Poseidon, khi chúng áp dụng được.

Hơn nữa, chúng tôi nghiên cứu Poseidon và Hydra như một khối xây dựng cho mã hóa khóa đối xứng. Chúng tôi xem xét khung Duplex Sponge mã hóa xác thực cho Poseidon và mã hóa luồng cho Hydra, như được đề xuất trong bài báo giới thiệu Hydra. Chúng tôi báo cáo các so sánh tương tự như được mô tả trong đoạn trước.

Kết quả
Chúng tôi nhận thấy rằng Hydra, nói chung, vượt trội hơn Poseidon về các biện pháp hiệu quả mà chúng tôi quan tâm. Hydra đặc biệt hiệu quả khi độ dài mong muốn cho băm là dài, ví dụ nếu nó được sử dụng như một PRNG. Mặt khác, Hydra bị giới hạn về độ dài đầu vào nhất định trong khi Poseidon chấp nhận các độ dài đầu vào khác nhau. Các tham số khác nhau của Poseidon cho phép tối ưu hóa hiệu suất nếu độ dài đầu vào/đầu ra được cố định và biết trước; mặc dù Hydra vẫn có vẻ vượt trội hơn.

Hydra hiệu quả hơn để tính toán khi cần mã hóa một đoạn văn bản dài. Tuy nhiên, không có bất kỳ triển khai (lý thuyết hoặc thực tế) nào về mã hóa xác thực dựa trên Hydra, mặc dù một cách được đề cập trong bài báo của nó. Các xem xét của chúng tôi đối với Poseidon đã là về mã hóa xác thực.

Độc giả được mời kiểm tra báo cáo của chúng tôi để biết thêm chi tiết về các hàm băm, cài đặt, kết quả và thảo luận của chúng tôi (bao gồm cả các xem xét về việc xây dựng một hàm băm cho các ứng dụng MPC và ZKP).

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận