Cải thiện sự lan truyền của cột bằng cách xóa/mã hóa mạng theo ô

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

Fork Fusaka sẽ giới thiệu việc lấy mẫu khả năng sẵn có dữ liệu dựa trên cột 1D, trong đó mỗi mẫu là một cột được tạo thành từ các ô và bằng chứng từ tất cả các blob. Sau Fusaka, việc cải thiện việc truyền các cột là một trong những phương thức chính để tăng thêm xuất lượng blob, và các công cụ được đề xuất để làm như vậy cho đến nay đã là chuyển từ gossip dựa trên đẩy sang một hybrid thông báo và kéo/đẩy, và giới thiệu một số hình thức mã hóa, như RS hoặc RLNC. Trong bài viết này, chúng tôi khám phá các cách khác nhau để thực hiện điều sau, đồng thời làm cho các ô riêng lẻ trở thành đơn vị truyền. Cảm ơn @asn, @dankrad, @potuz, @MarcoPolo , @vbuterin về cuộc thảo luận và phản hồi.

(Phần còn lại của văn bản được dịch tương tự, giữ nguyên các thẻ HTML và các liên kết)

Về nguyên tắc, chúng ta có thể tránh lặp lại việc tính toán tại mỗi nút. kzg_commitments trong HeaderSidecar có thể chứa tất cả các cam kết, bao gồm cả các cam kết mở rộng. Những cam kết này cần được xác minh tính nhất quán với các cam kết ban đầu, nhưng việc này có thể được thực hiện nhanh hơn so với việc tính toán lại, bằng cách chọn một vector vô hướng ngẫu nhiên r và kiểm tra r^TC' = (r^T M_{RS}) \cdot C. Điều này chỉ yêu cầu hai phép nhân điểm MSM trong G1, khoảng 2ms. Tất nhiên, sự đánh đổi là về băng thông, vì điều này có nghĩa là thêm khoảng 6 KB trong HeaderSidecar.

Chi phí tính toán

Hoạt động tốn kém nhất là nội suy các bằng chứng ban đầu để tính toán các bằng chứng mở rộng. Đối với mỗi cột, đây là phép toán chính xác mà chúng ta đã thảo luận về việc mở rộng các cam kết KZG, tức là 128 (một cho mỗi bằng chứng) điểm MSM trong G1, để tính toán \pi_j' = M_{RS} \cdot \pi_j trong đó \pi_j = (\pi_{1j}, \dots, \pi_{128j}), vector các bằng chứng ban đầu cho cột j. Người đề xuất phải thực hiện điều này cho mỗi cột, trong đường quan trọng, hay nói cách khác, phải thực hiện một điểm MSM 128 cho mỗi bằng chứng. Điều này dường như quá tốn kém, vì nó phải tính toán 128 \times 256 = 32768 bằng chứng. Sử dụng các số từ zka.lc, nó sẽ mất khoảng 34 giây ngay cả khi đa luồng. Một tốc độ tăng thêm khoảng 3 lần có thể đến từ việc thay thế phép nhân với M_{RS} bằng 2 FFT, nhưng điều này vẫn để lại chúng ta xa rời chi phí chấp nhận được. Lưu ý thêm rằng, ngay cả khi chúng ta từ bỏ ý tưởng đặt CellSidecar trong một gói duy nhất, chúng ta không thể xuống thấp hơn 128 cột, điều này sẽ chỉ giảm một nửa chi phí.

Loại bỏ chi phí tính toán cao như vậy tại bước xuất bản chính xác là lý do tại sao việc tính toán bằng chứng cho các blob ban đầu đã được di chuyển ra khỏi đường quan trọng bằng cách thuê ngoài nó cho người gửi tx. Mặt khác, việc tính toán bằng chứng cho phần mở rộng dọc không thể được thuê ngoài hay tính toán trước vì chúng ta nhận được các blob từ mempool, bởi vì chúng ta cần tất cả các blob sẽ đi vào block để thực hiện điều đó.

RS + cell roots

Hãy xem xét một cách tiếp cận khác, loại bỏ chi phí cao của việc tính toán các bằng chứng mở rộng, bằng cách sử dụng một cách đơn giản hơn để cam kết. Mã hóa xóa bỏ lỗi được giới hạn ở các ô, và tương ứng, xác thực gossip không yêu cầu xác minh bằng chứng KZG (thậm chí không phải cho các ô ban đầu). Thay vào đó, nó dựa vào việc kiểm tra so với một danh sách cell_roots được gửi riêng biệt trong cùng một chủ đề, như một phần của ColumnSidecar. Ngược lại, điều này được xác minh so với một danh sách các gốc sidecar cột, được đưa vào trong HeaderSidecar và cam kết trong block.

[Phần còn lại của bản dịch tương tự, tuân theo các quy tắc đã nêu]

RLNC + KZG

Chúng ta có thể tận dụng tính chất tuyến tính của các cam kết và bằng chứng KZG để cho phép RLNC cho việc lan truyền cột, đồng thời duy trì tính xác minh của các khối được tái kết hợp được liên kết trở lại với các cam kết hàng KZG ban đầu:

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
2
Thêm vào Yêu thích
Bình luận