Bởi Thomas Thiery – Ngày 26 tháng 6 năm 2025
Xin cảm ơn Léonard Monsaingeon , Caspar Schwarz-Schilling , Julian Ma , Anders Elowsson , Raúl Kripalani , Yann Vonlanthen , Csaba Kiraly và Marco Munizaga đã phản hồi và bình luận tuyệt vời về các phiên bản trước của bài đăng này.
Tóm lại
Gossipsub cổ điển làm ngập mạng bằng nhiều bản sao, lãng phí băng thông. Wasserstein-Fisher-Rao (WFR) Gossip giải quyết vấn đề này bằng cách coi sự lan truyền là một vấn đề vận chuyển tối ưu: các nút chuyển tiếp các thông điệp theo các liên kết có độ trễ thấp hơn. Trong các mô phỏng với 10.000 nút, WFR-Gossip đã giảm mức sử dụng băng thông xuống khoảng 50% và cải thiện độ trễ xuống 40%, duy trì phạm vi phủ sóng mạng trên 95%.

Giới thiệu
Gossipsub hoạt động theo một nguyên tắc đơn giản và thông minh: đối với bất kỳ chủ đề nào, mỗi nút duy trì một tập hợp nhỏ các đối tác được gọi là "mesh". Khi một nút nhận được một tin nhắn mới, nó sẽ chuyển tiếp toàn bộ tin nhắn đó đến tất cả các đối tác trong lưới của nó ( mesh = 8 trên Ethereum ). Để khám phá các tin nhắn mà nó có thể đã bỏ lỡ, nó sẽ truyền siêu dữ liệu (tức là "Tôi đã thấy tin nhắn X") đến các đối tác khác bên ngoài lưới. Điều này rất tốt cho khả năng chống dự phòng và kiểm duyệt. Nhưng nó có một chi phí ẩn.
Chi phí là sự kém hiệu quả. Trong một mạng lưới dày đặc, thiết kế này dẫn đến một số lượng lớn các thông điệp trùng lặp . Trong khi dữ liệu thực tế từ mạng lưới cho thấy một nút điển hình thấy trung bình 5 bản sao cho một Block beacon, thì trải nghiệm ở phần cuối mới là thứ cho thấy sự căng thẳng: 5-10% các nút kém may mắn nhất nhận được cùng một Block từ 12 đến 16 lần trở lên (xem bài đăng này để biết thêm chi tiết). Trong một thời gian dài, đây là một sự đánh đổi có thể chấp nhận được. Băng thông đủ rẻ và giao thức đã hoạt động . Nhưng trong thế giới ngày nay, chúng ta cần truyền tải khối lượng dữ liệu ngày càng lớn trong khoảng thời gian ngắn hơn. Băng thông không còn chỉ là một chi phí ẩn và sự kém hiệu quả của nó đã trở thành một nút thắt chính đối với việc mở rộng quy mô.
Câu hỏi sau đó trở thành: chúng ta có thể thiết kế một giao thức tin đồn "thông minh hơn" trong khi vẫn giữ được tính phi tập trung và tính mạnh mẽ của Gossipsub không? Hóa ra là chúng ta có thể, và câu trả lời nằm ở một góc toán học có thể áp dụng một cách đáng ngạc nhiên: vận chuyển tối ưu .
Từ ngẫu nhiên đến vật lý
Hạn chế cốt lõi của suy nghĩ hiện tại xung quanh mạng p2p là coi tin đồn là một quá trình cơ bản ngẫu nhiên . Một nút chuyển tiếp cho các nút ngang hàng của nó, các nút ngang hàng đó chuyển tiếp cho nút ngang hàng của họ và cuối cùng, mọi người đều nhận được tin nhắn.
Thay vì là vấn đề truyền thông, chúng ta có thể định hình lại nó thành vấn đề phân phối vật lý .
Hãy tưởng tượng một thông điệp là một đống cát, ban đầu nằm ở một nút duy nhất. Mục tiêu là đưa một hạt cát đó đến mọi nút khác trong mạng. "Chi phí" để di chuyển cát giữa bất kỳ hai nút nào là độ trễ kết nối của chúng. Cách hiệu quả nhất để đạt được sự phân phối này là gì?
Đây chính xác là câu hỏi mà lĩnh vực vận chuyển tối ưu đã nghiên cứu trong hơn 200 năm. Nó cung cấp một khuôn khổ toán học để tìm ra kế hoạch chi phí tối thiểu để chuyển đổi một phân phối khối lượng (toàn bộ đống cát trên nút A) thành một phân phối khác (một hạt cát trên mỗi nút).
Điều này cho thấy rằng thay vì chuyển tiếp tin nhắn dựa trên các quy tắc cố định, ngẫu nhiên để đảm bảo sự lan truyền có khả năng phục hồi, các nút có thể đưa ra quyết định dựa trên việc giảm thiểu chi phí vận chuyển toàn cầu. Tuy nhiên, một phần quan trọng của câu đố vẫn còn thiếu. Vận chuyển tối ưu tiêu chuẩn giả định lượng cát được bảo toàn và các giao thức tin đồn liên tục tạo bản sao và hủy các bản sao.
Vận chuyển tối ưu không cân bằng: sử dụng khoảng cách Wasserstein-Fisher-Rao (WFR)
Đây là nơi một công cụ hiện đại hơn xuất hiện: vận chuyển tối ưu không cân bằng . Cụ thể, một phép đo được gọi là khoảng cách Wasserstein-Fisher-Rao (WFR) .
Nói một cách ngắn gọn, WFR có thể tính toán đường đi hiệu quả nhất giữa hai trạng thái khi bạn được phép không chỉ di chuyển khối lượng mà còn tạo ra và hủy diệt nó, mỗi hành động đều có chi phí liên quan.
Điều này hoàn toàn phù hợp với các tình huống gặp phải trong mạng p2p:
- Khối lượng di chuyển = Chuyển tiếp tin nhắn qua LINK (Chainlink) có độ trễ nhất định.
- Tạo khối lượng = Một nút sao chép một gói tin để chuyển tiếp nó.
- Khối lượng hủy diệt = Một nút nhận được bản sao và loại bỏ nó (loại bỏ bản sao).
Bây giờ chúng ta có một công cụ toán học có thể mô hình hóa thực tế vật lý của một mạng lưới tin đồn. Mục tiêu của WFR-Gossip có thể được nêu một cách chính thức: ở mỗi bước, mỗi nút phải hoạt động theo cách đưa trạng thái phân phối tin nhắn toàn cầu xuống "con đường dốc nhất" hướng tới trạng thái tối ưu, đồng nhất, được đo bằng số liệu WFR này. Chúng ta có thể coi quá trình này như một luồng gradient .
Tổng “năng lượng” của hệ thống tại bất kỳ thời điểm t cũng có thể được mô tả bằng một phương trình trông như thế này:
Tất cả những điều này có nghĩa là: trạng thái tiếp theo của mạng ( μᵗ⁺¹ ) phải là trạng thái ( ν ) giúp giảm thiểu tổng của hai thứ: chi phí WFR để chuyển từ trạng thái hiện tại sang trạng thái tiếp theo, cộng với một số hình phạt ( F(ν) ) vì vẫn chưa đạt được mục tiêu mà mọi người đều có thông điệp.
Làm cho nó thực tế đối với các thiết lập phi tập trung
Tất cả đều hoạt động tốt, nhưng cần một máy tính trung tâm có tầm nhìn toàn cảnh về mạng để tính toán luồng gradient toàn cầu. Sơ đồ phân tách JKO cho chúng ta biết rằng vấn đề tối ưu hóa toàn cầu phức tạp này có thể được xấp xỉ bằng một phương pháp heuristic đơn giản, phi tập trung chỉ dựa trên thông tin mà một nút đã có.
Một nút Ethereum thực sự biết hai điều quan trọng:
- Thời gian khứ hồi (RTT) đến mỗi đối tác trực tiếp của nó, được tìm hiểu thông qua giao thức ping chuẩn.
- Khi nhận được tin nhắn, nó sẽ biết ai đã gửi tin nhắn đó và thời gian phản hồi (RTT) tới người gửi đó.
Chỉ sử dụng thông tin cục bộ này, chúng ta có thể dịch “dòng gradient” phức tạp thành một quy tắc chuyển tiếp hai pha đơn giản cân bằng giữa tính mạnh mẽ và hiệu quả. Tại mỗi bước nhảy, một nút thực hiện phương pháp tìm kiếm lai này:
Chuyển tiếp mạnh mẽ : Để đảm bảo việc truyền tin nhắn không bao giờ kết thúc sớm, một nút luôn gửi tin nhắn đến một số lượng nhỏ các đối tác được chọn ngẫu nhiên (ví dụ: D mạnh mẽ = 3 đối tác ngẫu nhiên). Điều này đảm bảo nhiều đường dẫn độc lập để việc truyền tin không bị đình trệ.
Lọc hiệu quả : Đối với các đối tác ứng viên khác (ví dụ: 5 trong số 8 đối tác ứng viên còn lại), nút sẽ áp dụng bộ lọc thông minh. Nó sẽ chỉ chuyển tiếp tin nhắn nếu LINK (Chainlink) kết đi đến đối tác đó nhanh hơn LINK (Chainlink) đến mà tin nhắn vừa đến. Quy tắc "xuống dốc" đơn giản này (latency_out < độ trễ_in) sẽ cắt tỉa các chuyển tiếp dư thừa dọc theo các đường dẫn chậm hơn, do đó tiết kiệm băng thông. Quan trọng là, đối với bất kỳ nút nào bị bỏ lỡ bởi lần đẩy hiệu quả này, tin đồn lười biếng hiện có của siêu dữ liệu (tin nhắn IHAVE) hoạt động như một điểm dừng, đảm bảo phạm vi phủ sóng mạng cuối cùng là 100%.
Quyết định “xuống dốc” cục bộ trong thực tế
Mỗi nút libp2p đã theo dõi một RTT mới cho mỗi đối tác, được làm mới sau mỗi 10-15 giây theo giao thức ping. Khi bản sao đầy đủ đầu tiên của một tin nhắn đến, nút sẽ ghi lại RTT của LINK (Chainlink) mà nó đi qua (latency_in). Sau đó, nó chỉ chuyển tiếp tin nhắn đến các đối tác có RTT được lưu trữ (latency_out) nhỏ hơn nhiều so với độ trễ_in (tùy chọn trừ đi biên độ an toàn 1-2 ms). Phép so sánh duy nhất này – “ LINK (Chainlink) này có nhanh hơn liên kết vừa sử dụng không?” – thực hiện quy tắc xuống dốc; không cần chế độ xem toàn cục hoặc tín hiệu bổ sung.
Trong tương lai gần, chúng tôi dự định sẽ nâng cao hơn nữa độ chính xác và khả năng phản hồi của phương pháp này bằng cách tận dụng các quan sát RTT gốc của QUIC thay vì chỉ dựa vào các ping định kỳ (h/t Raul). QUIC liên tục giám sát RTT như một phần của giao thức lớp truyền tải, cho phép các nút truy cập dữ liệu độ trễ gần như tức thời mà không cần thêm chi phí. Sự tích hợp này sẽ cải thiện đáng kể khả năng ra quyết định dựa trên độ trễ của WFR-Gossip, cải thiện hiệu quả và khả năng phản hồi trong các điều kiện mạng thực tế.
Sau đây là một ví dụ đơn giản để minh họa cho logic này: Một tin nhắn bắt đầu từ A và được gửi đến B. Hãy tưởng tượng có ba nút trên một đường thẳng: A --(10ms)--> B --(20ms)--> C
- Gossipsub:
Bnhận được tin nhắn và chuyển tiếp nó đến mọi đối tác khác trong mạng lưới của nó (tối đa tám), ngay cả khi một số liên kết đó chậm hơn nhiều. (Nó bỏ qua việc gửi lại tin nhắn trên cùng một kết nối đếnA, nhưng các bản sao vẫn có thể đếnAvà nhiều đối tác khác thông qua các tuyến đường thay thế chậm hơn.) - WFR-Gossip:
Bnhận được tin nhắn từA(latency_in=10ms) và sẽ chỉ chuyển tiếp đếnCvì kết nối của C chậm hơn (latency_out=20ms), dừng đúng cách tin nhắn gửi ngược dự phòng đếnAvì10mskhông nhỏ hơn10ms.
Phương pháp kết hợp này là một thuật toán thực tế đạt được cùng một mục tiêu như toán học trừu tượng: mỗi nút, bằng cách tuân theo các quy tắc cục bộ này, hoạt động như một tác nhân trong một quy trình tập thể đẩy quá trình phân phối thông điệp tới trạng thái tối ưu với nỗ lực lãng phí tối thiểu.
Mô phỏng: Phương pháp và kết quả
Để kiểm tra lý thuyết này trong môi trường được kiểm soát, chúng tôi đã sử dụng mô phỏng sự kiện rời rạc để xây dựng cấu trúc mạng P2P thực tế gồm 10,000 nút bằng mô hình đồ thị không có tỷ lệ với mesh=8 Mỗi LINK (Chainlink) trong mạng ảo này được chỉ định độ trễ dựa trên mô hình khoảng cách địa lý, tạo ra bối cảnh "chi phí" nhất quán.
Chúng tôi đã mô phỏng một sự kiện lan truyền Block đơn, đầu tiên sử dụng các quy tắc của Gossipsub chuẩn (chuyển tiếp đến một lưới ngẫu nhiên gồm ~8 đối tác) để thiết lập đường cơ sở. Sau đó, chúng tôi đã chạy một loạt các thử nghiệm cho WFR-Gossip, lặp lại thông qua tham số D robust của chúng tôi từ 1 đến 8 để đo lường sự đánh đổi giữa chuyển tiếp được đảm bảo (mạnh mẽ) và lọc thông minh (hiệu quả).
Kết quả minh họa cho điểm mạnh của phương pháp mới này:
Hình 1. Đánh đổi hiệu suất của WFR-Gossip theo tham số mạnh mẽ D robust . Bảng A. Đường màu xanh lam liền (trục y bên trái) = tổng số đầu ra mạng trên mỗi Block (MiB) theo WFR-Gossip; đường màu cam liền (trục y bên phải) = vùng phủ sóng mạng (% người nhận đầu tiên). Các đường ngang màu xanh lam và cam đứt nét lần lượt biểu thị đường cơ sở đầu ra và vùng phủ sóng của Gossipsub. Bảng B. Các tam giác màu xanh lá cây liền (trục y bên trái) = độ trễ đến đầu tiên ở phần trăm thứ 90; đường màu đỏ tươi hình tròn đứt nét (trục y bên phải) = độ trễ đến đầu tiên trung bình. Các đường ngang đứt nét tương ứng đưa ra các đường cơ sở của Gossipsub. Các thanh lỗi (nếu hiển thị) hiển thị ±1 σ trên năm mô phỏng Monte-Carlo độc lập.
Như mong đợi, việc tăng D robust trực tiếp cải thiện phạm vi phủ sóng mạng với cái giá phải trả là mức sử dụng băng thông cao hơn. Với dữ liệu mô phỏng được cập nhật, một “điểm ngọt” rõ ràng xuất hiện xung quanh D robust = 3, đạt được phạm vi phủ sóng khoảng 98% trong khi giảm đáng kể tổng mức sử dụng băng thông khoảng một phần ba so với đường cơ sở Gossipsub (4,5 GiB so với 6,8 GiB).
Phạm vi phủ sóng mạng dưới 100% một chút được quan sát thấy ở các giá trị D mạnh mẽ thấp hơn (đặc biệt là dưới 4) là kết quả của thuật toán tìm kiếm eager-push nghiêm ngặt nhưng hiệu quả của WFR-Gossip. Trong thực tế, khoảng cách này sẽ được giải quyết bằng lazy gossip của siêu dữ liệu hiện có (tin nhắn IHAVE), đảm bảo phạm vi phủ sóng đầy đủ cuối cùng. Sự kết hợp này sẽ cung cấp cho giao thức hiệu quả băng thông của eager push của WFR-Gossip cùng với các đảm bảo phủ sóng đầy đủ vốn có trong backstop lazy gossip của Gossipsub.
Điều thú vị là WFR-Gossip luôn cho thấy độ trễ lan truyền thấp hơn Gossipsub đối với các giá trị D robust từ 3 trở lên. Việc giảm độ trễ này chủ yếu đạt được bằng cách giảm đáng kể số lượng bản sao tin nhắn dư thừa, làm giảm tình trạng tắc nghẽn mạng. Ví dụ, ở D robust = 7, WFR-Gossip đạt được phạm vi phủ sóng trên 99,5% trong khi vẫn phù hợp với mức sử dụng băng thông của Gossipsub và giảm độ trễ ở phần trăm thứ 90 khoảng 15%.
Sau đây là kết quả của một số số liệu để làm nổi bật những khác biệt chính giữa Gossipsub và WFR-Gossip đối với D robust từ 1 đến 8 Bạn có thể tìm thấy mã được sử dụng cho mô phỏng tại đây .
| Giao thức | D mạnh mẽ | Độ phủ sóng (%) | P90 Thời gian (ms) | Thời gian trung bình (ms) | Thời gian tối thiểu (ms) | Thời gian chuẩn (ms) | Hoa bia có nghĩa là | Hoa bia P90 | Trung bình trùng lặp | Tổng lượng thoát ra (MB) | Băng thông lãng phí (MB) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Tin đồn | Không có | 99,38 | 424,67 | 350,19 | 0,00 | 62,65 | 5.71 | 7.00 | 6,75 | 6801,68 | 5928.31 |
| WFR-Tin đồn | 1 | 92,25 | 548,39 | 442,21 | 0,00 | 84,62 | 7,78 | 10,00 | 2.31 | 2843.09 | 2032,38 |
| WFR-Tin đồn | 2 | 96,28 | 445,49 | 359,79 | 0,00 | 70,39 | 7.53 | 10,00 | 3.36 | 3802,50 | 2956,38 |
| WFR-Tin đồn | 3 | 97,87 | 389,15 | 314,30 | 0,00 | 60,89 | 6,53 | 8,00 | 4.19 | 4543,15 | 3683.06 |
| WFR-Tin đồn | 4 | 98,88 | 388,56 | 318,49 | 0,00 | 58.10 | 6,76 | 9,00 | 5.01 | 5276,34 | 4407,36 |
| WFR-Tin đồn | 5 | 99,26 | 380,83 | 313,53 | 0,00 | 56,21 | 6.29 | 8,00 | 5.70 | 5880,32 | 5008.01 |
| WFR-Tin đồn | 6 | 99,39 | 371,44 | 305,49 | 0,00 | 55.04 | 6,38 | 8,00 | 6.27 | 6387.71 | 5514.26 |
| WFR-Tin đồn | 7 | 99,58 | 359,66 | 292,73 | 0,00 | 56,28 | 6.06 | 8,00 | 6,75 | 6806.78 | 5931,65 |
| WFR-Tin đồn | 8 | 99,55 | 478,37 | 403,90 | 0,00 | 61,64 | 5,83 | 8,00 | 6,97 | 6999,61 | 6124,75 |
So sánh với các phương pháp hiện có
Điểm ngang hàng của WFR-Gossip so với Gossipsub
Gossipsub v1.1 tối ưu hóa chất lượng lưới thông qua các tham số chấm điểm ngang hàng như p1 , giúp thưởng cho các ngang hàng khi gửi tin nhắn nhanh chóng. Tuy nhiên, cải tiến này chỉ xảy ra thông qua các điều chỉnh lưới dần dần: mỗi tin nhắn vẫn được chuyển tiếp đến tất cả tám ngang hàng lưới, mà không cần cân nhắc đến hiệu quả theo thời gian thực. Ngược lại, WFR-Gossip chủ động đưa ra quyết định chuyển tiếp dựa trên độ trễ cho từng tin nhắn riêng lẻ. Các mô phỏng của chúng tôi cho thấy rằng, với cùng các kết nối ngang hàng, WFR-Gossip làm giảm đáng kể việc truyền tin nhắn dư thừa, giảm cả độ trễ và mức sử dụng băng thông.
WFR-Gossip so với định tuyến dựa trên độ trễ tham lam
Các phương pháp định tuyến dựa trên độ trễ thuần túy, chỉ chuyển tiếp tin nhắn theo các đường dẫn nhanh nhất có sẵn, có thể vô tình tạo ra các nút thắt, cực tiểu cục bộ và lỗ hổng đối với các phép đo độ trễ bị thao túng. WFR-Gossip giải quyết các vấn đề này thông qua phương pháp thử nghiệm lai của nó: tham số độ mạnh (D robust ) đảm bảo nhiều đường truyền độc lập để ngăn chặn tình trạng đình trệ, trong khi bộ lọc độ trễ "xuống dốc" sẽ chọn lọc cắt tỉa các tuyến đường chậm hơn, dư thừa. Ngoài ra, tích hợp với tính năng chấm điểm ngang hàng hiện có của Gossipsub giúp giảm thiểu rủi ro thao túng độ trễ của các ngang hàng độc hại.
WFR-Gossip so với các giao thức nhận biết cấu trúc liên kết
Các giao thức nhận biết cấu trúc, chẳng hạn như Dynamic Optimal Graph ( DOG ), yêu cầu xây dựng và bảo trì rõ ràng các cấu trúc mạng có cấu trúc, làm tăng thêm độ phức tạp, chi phí chung và thách thức trong việc xử lý tình trạng mất kết nối nút. WFR-Gossip tránh hoàn toàn các chi phí chung này bằng cách tận dụng các kết nối mạng ngẫu nhiên hiện có và các phép đo RTT cục bộ nhẹ, giúp đơn giản hơn và có khả năng phục hồi hơn.
Tuy nhiên, tính đơn giản của WFR-Gossip có những đánh đổi. Bằng cách ưu tiên cắt tỉa các liên kết chậm hơn, các nút có băng thông thấp hơn hoặc độ trễ cao hơn có thể phụ thuộc nhiều hơn vào phương pháp dự phòng lazy gossip chậm hơn ( IHAVE / IWANT ), có khả năng làm tăng độ trễ của tin nhắn. Sự phụ thuộc của nó vào các phép đo RTT cục bộ cũng dẫn đến khả năng dễ bị tấn công thao túng RTT. Cả hai vấn đề đều có thể được giảm thiểu thông qua việc điều chỉnh tham số cẩn thận và cơ chế chấm điểm ngang hàng của Gossipsub, nhưng chúng ta cần lưu ý điều này khi thử nghiệm WFR-Gossip trong các điều kiện mạng thực tế hoặc đối đầu.
WFR-Gossip so với phần mở rộng Gossipsub phản ứng ( CHOKE , IDONTWANT )
Các tiện ích mở rộng như CHOKE và IDONTWANT quản lý dự phòng theo cách hồi tố bằng cách hạn chế việc truyền tin nhắn trùng lặp sau khi phát hiện trùng lặp. Thay vào đó, WFR-Gossip chủ động tránh trùng lặp bằng cách đưa ra quyết định chuyển tiếp thông tin trước, dựa trên thông tin về độ trễ cục bộ (RTT). Do đó, WFR-Gossip có thể bổ sung cho các cơ chế phản ứng hiện có này và cung cấp khả năng sử dụng băng thông được cải thiện, giảm độ trễ và cải thiện hiệu suất tổng thể.
Công việc tương lai và câu hỏi mở
- Triển khai WFR‑Gossip đằng sau cờ tính năng trong máy khách (ví dụ: devnets/perfnets) và trình mô phỏng libp2p để thu thập số liệu từ các mạng thực tế hơn
- Đi sâu hơn vào các tương tác giữa WFR-Gossip và các tối ưu hóa Gossipsub gần đây (
IWANT,IDONTWANT,CHOKE) - Khám phá các cơ chế “chủ động” khác giúp cải thiện hiệu quả mà không làm giảm độ bền/khả năng phục hồi







