Về tính toán FRI phân tán

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

Trong ghi chú này, chúng tôi thảo luận về tính toán phân tán của giao thức FRI. Trong thực tế, chúng ta thường cần phân phối công việc của người chứng minh trên nhiều máy chủ. Trong trường hợp sử dụng hệ thống chứng minh dựa trên FRI, điều này dẫn đến việc tổng hợp đắt đỏ các chứng minh thu được hoặc trao đổi dữ liệu, kích thước của nó tương đương với kích thước của mạch. Dưới đây, chúng tôi mô tả một mẹo kỹ thuật cho phép chúng tôi tối ưu hóa việc thu được một chứng minh cuối cùng duy nhất.

Batched FRI

Phiên bản batched của giao thức \mathtt{FRI} cho phép ước tính mức độ gần gũi của mỗi hàm f_1, \dots, f_L với mã \mathsf{RS}. Để làm điều này, \mathtt{Verifier} lấy mẫu và gửi một \theta \in \mathbb{F}_p ngẫu nhiên cho \mathtt{Prover}. Sau đó, \mathtt{Prover} tính toán một tổ hợp tuyến tính

F = \theta^1 \cdot f_1 + \theta^2 \cdot f_2 + \dots + \theta^L \cdot f_L

Sau đó, \mathtt{Prover}\mathtt{Verifier} thực hiện phiên bản thông thường của giao thức \mathtt{FRI} để kiểm tra F. Sự khác biệt duy nhất là mỗi khi F được truy vấn tại điểm x, \mathtt{Verifier} cũng thực hiện một bài kiểm tra tính nhất quán:

F(x) = \theta^1 \cdot f_1(x) + \theta^2 \cdot f_2(x) + \dots + \theta^L \cdot f_L(x).

Nếu \mathtt{Verifier} chấp nhận ở cuối giao thức, thì tất cả f_i đều gần với mã \mathsf{RS}.

Distributed FRI

Bây giờ hãy xem xét một cài đặt phân tán trong đó n=L \cdot M đa thức có độ lớn tối đa d được chia giữa M \mathtt{Provers}. Đầu ra của giao thức phải là một chứng minh rằng tất cả các đa thức f_1, \dots, f_n đều gần với mã \mathsf{RS} đủ gần. Một cách tiếp cận ngây thơ sẽ là gửi tất cả các đa thức dưới dạng văn bản cho một trong những người chứng minh, người sau đó sẽ thực hiện giao thức \mathtt{FRI} batched. Hãy xem cách giải quyết vấn đề này một cách hiệu quả hơn.

\mathtt{Provers}Các nhà chứng minhProvers tạo ra \mathsf{Merkle~ Tree}Cây MerkleMerkle Tree cam kết đối với các đa thức của họ và gửi chúng đến \mathtt{Master~Prover}Nhà chứng minh chínhMaster Prover (chức năng này có thể được thực hiện bởi một trong các nhà chứng minh, để đơn giản hóa, chúng tôi sẽ giả định rằng đây là một thực thể riêng biệt). \mathtt{Master~Prover}Nhà chứng minh chínhMaster Prover nhận được một thách thức ngẫu nhiên \thetaθ từ \mathtt{Verifier}Bên xác minhVerifier và phát sóng nó giữa tất cả \mathtt{Provers}Các nhà chứng minhProvers. Bây giờ mỗi \mathtt{Prover}Nhà chứng minhProver P_iPi, biết số của mình ii, có thể tạo ra "phần của tổ hợp tuyến tính" của mình và gửi nó đến \mathtt{Master~Prover}Nhà chứng minh chínhMaster Prover.

F_i = \sum_{j=1}^{L}\theta^{(i-1) \cdot L + j}f_{(i-1) \cdot L + j}.
Fi=Lj=1θ(i1)L+jf(i1)L+j.

\mathtt{Master~Prover}Nhà chứng minh chínhMaster Prover chạy một phiên bản thông thường của \mathtt{FRI}FRIRI cho đa thức \sum_{i=1}^{M}F_iMi=1Fi. Tuy nhiên, nó không thể cung cấp các đánh giá đa thức và đường dẫn xác thực Merkle để kiểm tra tính nhất quán trong giai đoạn truy vấn của giao thức đối với các đa thức riêng lẻ, vì vậy nó yêu cầu \mathtt{Prover}Nhà chứng minhProver tương ứng cho từng trong số chúng.

\mathtt{Master~prover}Nhà chứng minh chínhMaster prover có thể dễ dàng phát hiện hành vi độc hại của từng \mathtt{Provers}Các nhà chứng minhProvers. Điều này được đạt được do sự thực rằng các tổ hợp tuyến tính riêng phần F_iFi thuộc mã \mathsf{RS}RSS. Thuộc tính này đặc biệt hữu ích trong quá trình tạo SNARK phân tán, vì nó cho phép thực hiện các biện pháp kinh tế để trừng phạt những người tham gia vì hành vi sai trái.

Dễ dàng thấy rằng độ phức tạp thời gian của \mathtt{Provers}Các nhà chứng minhProversO(d\log d)O(dlogd). Chi phí truyền thông (đây là truyền thông giữa các nhà chứng minh và nhà chứng minh chính) được chi phối bởi việc gửi một tổ hợp tuyến tính riêng phần, có kích thước O(d)O(d) phần tử từ \mathbb{F}_pFp. Hơn nữa, số lượng lời gọi băm cần thiết để xác minh bằng chứng cuối cùng ít hơn nhiều so với cần thiết để xác minh MM bằng chứng độc lập.

Bạn có thể tìm thấy mô tả chi tiết hơn tại đây 2. Cảm ơn bạn đã chia sẻ ý kiến của mình!

'Hash' phải được dịch thành 'Hash'. 'Script' phải được dịch thành 'Script'. 'TPS' phải được dịch thành 'Số lượng giao dịch trên mỗi giây'. 'ATH' phải được dịch thành 'Cao nhất mọi thời đại'. 'AR' phải được dịch thành 'Thực tế tăng cường (AR)'. 'ICE' phải được dịch thành 'Intercontinental Exchange (ICE)'. 'ROA' phải được dịch thành 'ROA'. 'TRON' phải được dịch thành 'TRON'. 'Mina' phải được dịch thành 'Mina'. 'Amp' phải được dịch thành 'Amp'. 'Dent' phải được dịch thành 'Dent'. 'Ren' phải được dịch thành 'Ren'. 'ETH' phải được dịch thành 'ETH'. 'DOT' phải được dịch thành 'DOT'. 'SOL' phải được dịch thành 'SOL'. 'UNI' phải được dịch thành 'UNI'. 'CRO' phải được dịch thành 'CRO'. 'HT' phải được dịch thành 'HT'. 'THETA' phải được dịch thành 'THETA'. 'XEC' phải được dịch thành 'XEC'. 'MINA' phải được dịch thành 'MINA'. 'BAT' phải được dịch thành 'BAT'. 'OP' phải được dịch thành 'OP'. 'COMP' phải được dịch thành 'COMP'. 'ENS' phải được dịch thành 'ENS'. 'AR' phải được dịch thành 'AR'. 'XCH' phải được dịch thành 'XCH'. 'AMP' phải được dịch thành 'AMP'. 'ACH' phải được dịch thành 'ACH'. 'PLA' phải được dịch thành 'PLA'. 'RON' phải được dịch thành 'RON'. 'REQ' phải được dịch thành 'REQ'. 'ONG' phải được dịch thành 'ONG'.

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