paint-brush
Mạng Waku: Mở rộng quy mô P2P, Truyền thông tập trung vào quyền riêng tưby@logos
731
731

Mạng Waku: Mở rộng quy mô P2P, Truyền thông tập trung vào quyền riêng tư

Logos10m2024/02/27
Read on Terminal Reader

Mạng Waku là mạng bảo vệ quyền riêng tư và phi tập trung đầu tiên cung cấp các biện pháp bảo vệ Từ chối dịch vụ (DoS) cho nhắn tin ngang hàng. Nó nhằm mục đích nâng cao quyền riêng tư và bảo mật trong giao tiếp ngang hàng bằng cách triển khai các giao thức và công nghệ đổi mới.
featured image - Mạng Waku: Mở rộng quy mô P2P, Truyền thông tập trung vào quyền riêng tư
Logos HackerNoon profile picture

Tháng 12 năm ngoái, chúng tôi đã công bố Mạng Waku .


Mạng Waku là mạng bảo vệ quyền riêng tư và phi tập trung đầu tiên cung cấp các biện pháp bảo vệ Từ chối dịch vụ (DoS) cho nhắn tin ngang hàng. Nó nhằm mục đích nâng cao quyền riêng tư và bảo mật trong giao tiếp ngang hàng bằng cách triển khai các giao thức và công nghệ đổi mới.


Chúng ta hãy tìm hiểu sâu hơn về lý do và mạng Waku là gì.

Nguồn gốc

Nếu bạn đã theo dõi Waku hoặc Status thì có thể bạn đã quen với nguồn gốc của Waku. Ứng dụng di động Status được tạo dưới dạng siêu ứng dụng web3, một cổng dẫn đến hệ sinh thái Ethereum tận dụng ba trụ cột ban đầu: Ethereum để đồng thuận, Swarm để lưu trữ và Whisper để liên lạc.


Nhóm phát triển Trạng thái đã cố gắng xây dựng Trạng thái bằng Whisper, nhưng giao thức này có những hạn chế cơ bản, đặc biệt đối với các thiết bị bị hạn chế về tài nguyên, chẳng hạn như điện thoại di động. Waku được sinh ra như một người kế thừa của Whisper, học hỏi từ những sai sót của nó để cung cấp mạng truyền thông ngang hàng có thể mở rộng phù hợp cho thiết bị di động và trình duyệt.

Thách thức/Thuộc tính mong muốn

Waku đặt mục tiêu vượt qua những thách thức sau:

  • Nhắn tin tổng quát: Waku nhằm mục đích cung cấp các giao thức và mạng cho phép chuyển tải trọng tùy ý. Mặc dù Waku ban đầu được tạo ra cho một ứng dụng trò chuyện, Status, nhưng mục đích là đủ tổng quát để xây dựng bất kỳ ứng dụng truyền thông hoặc tín hiệu phi tập trung nào trên Waku.


  • Nhắn tin tạm thời: Waku nhằm mục đích giải quyết vấn đề liên lạc theo thời gian thực, nhằm mục đích cung cấp độ trễ hợp lý để cho phép một hoặc một số người dùng trao đổi tải trọng dữ liệu nhỏ. Điều này trái ngược với IPFS hoặc các hệ thống lưu trữ phi tập trung khác, cung cấp cách lưu trữ lượng lớn dữ liệu với chi phí về độ trễ và khả năng phản hồi.


  • Chống kiểm duyệt: Waku nhằm mục đích cung cấp giải pháp chống kiểm duyệt trong đó các tác nhân bên ngoài không thể chặn quyền truy cập của người dùng vào cơ sở hạ tầng Waku. Nhưng cũng để các nhà phát triển ứng dụng có thể xây dựng với tư duy không thể làm điều ác , nơi họ không có chìa khóa vương quốc và khả năng hủy bỏ nền tảng của người dùng.


  • Chú trọng đến quyền riêng tư: Để cung cấp khả năng cho các nhà phát triển ứng dụng hoạt động theo nguyên tắc không thể làm điều xấu về việc thu thập dữ liệu và siêu dữ liệu của người dùng của họ. Điều này có nghĩa là ngay cả khi họ muốn hoặc bị gây áp lực thì họ hoặc bất kỳ bên thứ ba nào cũng không thể thu thập siêu dữ liệu như biểu đồ xã hội hoặc mẫu hoạt động từ người dùng của họ.


  • Ẩn danh: Tương tự như quyền riêng tư, đây là khả năng người dùng không liên kết Thông tin nhận dạng cá nhân (PII) với hoạt động của họ trên mạng Waku hoặc ứng dụng sử dụng mạng. PII được xem xét ở đây liên quan đến mạng (địa chỉ IP), blockchain (ví dụ: địa chỉ Ethereum) và định tuyến (tương quan tin nhắn).


  • Các thiết bị bị hạn chế tài nguyên: như đã đề cập trước đây, khi thiết kế Waku, chúng tôi nỗ lực xem xét các môi trường như thiết bị di động và trình duyệt để cho phép các nhà phát triển xây dựng DApp cho các nền tảng này và cung cấp càng nhiều thuộc tính được liệt kê ở trên càng tốt.


  • Khả năng mở rộng: Waku đặt mục tiêu hỗ trợ hàng triệu người dùng trong khi vẫn duy trì các nguyên tắc trên; điều này cần phải được thiết kế và thử nghiệm một cách chu đáo.


Tất cả các thuộc tính trên có nghĩa là các vấn đề khác cần được khắc phục khi thiết kế Waku:

  • Bảo vệ DOS: đảm bảo rằng mạng không thể tràn ngập tin nhắn, khiến những người dùng có ít tài nguyên hơn sẽ bị khởi động khỏi mạng.


  • Tính bền vững và khuyến khích của mạng: Làm cách nào để chúng tôi đảm bảo có đủ tài nguyên trong mạng để cho phép các thiết bị như trình duyệt và thiết bị di động truy cập mạng?


  • Phân cấp: Waku cần được phân cấp ở nhiều cấp độ để kích hoạt các thuộc tính đó. Làm cách nào để chúng tôi duy trì mức độ phân cấp hợp lý để đảm bảo những tài sản đó vẫn tồn tại theo thời gian?

Mạng Waku

Mạng Waku giúp phân phối các thuộc tính trên như thế nào?


Chúng ta hãy xem xét các giao thức Waku khác nhau được kết hợp trong mạng và cách chúng cho phép chúng ta đạt được thành tích này.

Khám phá ngang hàng

Để bất kỳ hệ thống ngang hàng nào trở nên đáng tin cậy và phi tập trung, phải có một cơ chế để tìm các nút hoặc nút ngang hàng mới trong hệ thống nói trên, thường được gọi là khám phá ngang hàng .


Waku sử dụng discv5, tương tự như Ethereum. Những cải tiến nhỏ đối với ENR đã được thực hiện để cho phép nút Waku quảng cáo:


  • phân đoạn mà chúng đang vận hành (xem định tuyến tin nhắn - phân đoạn )
    • giao thức họ đã kích hoạt

    • multiaddr thay thế mà họ có thể có, ví dụ: để trình duyệt kết nối với nút đã nói qua WebSocket.


Discv5 được phân cấp, có thể ngăn chặn các cuộc tấn công sybil tiềm ẩn khi kẻ tấn công cố gắng bao vây nút của nạn nhân để tạo ra một cái nhìn bị thao túng về mạng.


Điều này giúp cho phép ẩn danh, quyền riêng tư và chống kiểm duyệt.


Nhờ giao thức được phục vụ đang được quảng cáo, nó cho phép điện thoại di động và trình duyệt tìm thấy các nút có thể phục vụ chúng.

Định tuyến tin nhắn - Gossipsub

Tương tự như Ethereum, Waku sử dụng libp2p-gossipsub. Điều này mang lại một số lợi ích:

  • cải thiện hiệu suất băng thông so với Whisper: trong GossipSub, các nút tạo thành một nhóm hàng xóm (lưới) để gửi tin nhắn. Một nút nhất định sẽ chỉ cố gắng duy trì kết nối và tích cực trao đổi tin nhắn với các nút khác. Giảm số lần mỗi tin nhắn được tải lên hoặc tải xuống.


  • Độ tin cậy: tin đồn có tính năng dự phòng tích hợp, mang lại độ tin cậy khá cao khi hoạt động trong mạng ngang hàng phi tập trung, nơi không có nút nào có thể được tin cậy là đáng tin cậy hoặc hoạt động tốt.


  • Tính ẩn danh: vì các nút chuyển tiếp tin nhắn từ các nút khác trong lưới của chúng và không có siêu dữ liệu nào trên các tin nhắn riêng lẻ (ví dụ: không có chữ ký văn bản thuần túy), điều này mang lại tính ẩn danh hợp lý vì người quan sát không thể biết liệu hàng xóm của họ có nguồn gốc hay chuyển tiếp hay không một thông điệp. Điều này hoạt động khi được kết hợp với cơ chế khám phá ngang hàng phi tập trung như discv5.


Chúng tôi đặt tên cho cách sử dụng trang tin đồn, giao thức và mạng của Waku. Tiếp sức Waku.

Định tuyến tin nhắn - Sharding

Một trong những hạn chế của Gossipsub là mọi nút trong mạng đều nhận và gửi mọi tin nhắn của mạng với một số khuếch đại. Người ta có thể thấy điều này hạn chế khả năng mở rộng như thế nào: không thể mong đợi quản lý toàn bộ lưu lượng truy cập của mạng từ kết nối internet gia đình.


Để giải quyết vấn đề này, sharding được sử dụng thay vì có một mạng lưới tin đồn. Mạng Waku được chia thành nhiều mạng con hoặc phân đoạn định tuyến tin nhắn riêng biệt. Hiện tại, mạng Waku được chia thành 8 phân đoạn. Điều đó có nghĩa là bất kỳ người dùng ứng dụng Waku nào cũng sẽ chỉ chuyển tiếp lưu lượng của một phân đoạn hoặc một phần tám (xấp xỉ) của toàn bộ mạng.


Tám là một con số nhỏ, tùy ý bắt đầu. Phân tích lý thuyết của chúng tôi cho thấy rằng một phân đoạn có thể hỗ trợ khoảng 10 nghìn người dùng hoạt động trong khi vẫn duy trì yêu cầu băng thông trung bình khoảng 4Mbps, nghĩa là 80 nghìn cho toàn mạng.


Chúng tôi đang nỗ lực chạy thêm các mô phỏng để xác nhận các giả định của mình. Chúng tôi cũng đưa các nhà phát triển và người dùng vào mạng để kiểm tra lý thuyết. Mục đích là tăng số lượng phân đoạn trong mạng theo thời gian.


Nhờ những cải tiến được thực hiện đối với discv5, các nút có thể biết phân đoạn mà các nút ngang hàng khác đang phục vụ trước khi kết nối với chúng.

Định tuyến tin nhắn - Tự động phân chia

Một vấn đề với phân đoạn là người dùng và ứng dụng phải biết nên sử dụng phân đoạn nào.


Một ứng dụng có thể tùy ý quyết định phân đoạn nào họ muốn sử dụng, nhưng việc đó có thể tốn rất nhiều công sức, đặc biệt là khi thêm phân đoạn mới. Đây cũng là một quyết định nữa mà nhà phát triển phải đưa ra; chúng tôi muốn làm cho trải nghiệm của nhà phát triển trở nên dễ dàng nhất có thể. Nó cũng cho phép các nhà phát triển xây dựng các ứng dụng trải rộng trên nhiều phân đoạn mà không cần ủy quyền lựa chọn phân đoạn cho người dùng.


Tự động phân chia là một giao thức đơn giản gửi tin nhắn trên phân đoạn dựa trên ứng dụng.

Định tuyến tin nhắn - Rơle RLN

Waku mang tính tổng quát và bảo vệ quyền riêng tư, nghĩa là mọi loại trọng tải đều có thể được vận chuyển. Do đó, không có định nghĩa chặt chẽ về "thư rác". Cho dù tin nhắn có chứa meme hay ghi chú zk dành cho DeFi riêng tư hay không , Waku thậm chí không nên biết nội dung; siêu dữ liệu và dữ liệu phải được giữ riêng tư.


Do đó, có nguy cơ ai đó đẩy hàng gigabit dữ liệu lên mạng. Đây có thể là một vấn đề ở các cấp độ khác nhau:

  • Việc sử dụng băng thông: Điều này có thể dẫn đến việc băng thông của người dùng bị ngốn và ảnh hưởng đến các dịch vụ khác (phát trực tuyến, đặt cọc) hoặc một hóa đơn bất ngờ.


  • Khả năng kết nối: nếu một nút không có đủ băng thông để gửi/nhận tất cả tin nhắn trên lớp tin đồn, thì hành vi của nó có thể bị các nút khác coi là không chính xác và có thể ngắt kết nối với nó.


  • Độ tin cậy: Nếu lưu lượng truy cập cao hơn băng thông khả dụng, một nút có thể không gửi và nhận tin nhắn một cách đáng tin cậy.


  • Các tài nguyên khác: mức sử dụng bộ nhớ có tương quan với lưu lượng truy cập và dung lượng ổ đĩa cho dịch vụ cửa hàng cũng vậy.


Vì vậy, thay vì xác định thông báo "spam" trông như thế nào, chúng tôi đã đưa ra giới hạn tốc độ trên mạng để cho phép sử dụng hợp lý Waku, với giới hạn mức sử dụng băng thông trên mỗi phân đoạn. Điều này được thực hiện bằng RLN, hay còn gọi là Rate Limiting Nullifier, giới hạn tốc độ tin nhắn mà một nhà xuất bản nhất định gửi. Hiện tại nó được đặt thành 1 msg/s.


Cùng với kích thước tin nhắn tối đa (150kB) và số lượng nhà xuất bản tối đa (80k, TBD), chúng tôi có thể giả định mức sử dụng băng thông tối đa trên mỗi phân đoạn (khoảng 10Mbps).


Việc giới hạn tỷ lệ các nhà xuất bản theo cách chống kiểm duyệt và riêng tư là rất khó; đây là lý do tại sao chúng tôi đang sử dụng công nghệ không có kiến thức:

  1. Người dùng đẩy thông tin đăng nhập RLN của họ vào hợp đồng thông minh (hiện có trên mạng thử nghiệm Ethereum Sepolia).


  2. Các nút theo dõi tất cả các thành viên đã đăng ký trên hợp đồng.


  3. Khi gửi tin nhắn, người dùng đính kèm bằng chứng RLN vào tin nhắn với kỷ nguyên hiện tại (dấu thời gian tính bằng giây).


  4. Các nút có thể xác minh bằng chứng mà không thể liên hệ địa chỉ Ethereum của người dùng (được sử dụng trên hợp đồng thông minh) với tin nhắn được gửi, duy trì tính ẩn danh.


  5. Nếu người dùng cố gắng gửi nhiều hơn 1 tin nhắn/giây, các nút có thể phát hiện điều này và loại bỏ tin nhắn dư thừa hoặc thư rác, bảo vệ mạng.

Phục vụ các thiết bị hầu hết ngoại tuyến và bị hạn chế tài nguyên

Cuối cùng, Waku hữu ích như thế nào đối với các thiết bị bị hạn chế về tài nguyên như điện thoại di động và trình duyệt web? Waku xác định một số [giao thức phản hồi yêu cầu ( https://rfc.vac.dev/spec/10/#requestreply-domain ) để cho phép các thiết bị đó truy cập mạng Waku mà không cần phải luôn trực tuyến hoặc sử dụng nhiều dung lượng. băng thông, tức là không tham gia vào mạng Waku Relay.


Giao thức đẩy nhẹ (liên kết đến tài liệu) cho phép máy khách hạng nhẹ gửi tin nhắn để chuyển tiếp đến mạng Waku Relay, với xác nhận đã nhận được từ nút từ xa. Giao thức lọc cho phép máy khách hạng nhẹ đăng ký một máy ngang hàng từ xa và chỉ yêu cầu một tập hợp con các tin nhắn thay vì tất cả các tin nhắn được truyền trên một phân đoạn.


Cuối cùng, giao thức lưu trữ cho phép các máy khách hạng nhẹcác nút chuyển tiếp truy xuất các tin nhắn lịch sử có thể đã bị bỏ sót.

Đề xuất giá trị của Mạng Waku

Mặc dù chúng tôi đã xác định các thuộc tính và công nghệ mong muốn nhưng điều quan trọng là phải hiểu các trường hợp sử dụng tiềm năng của Mạng Waku. Vấn đề này hiện mô tả một số USP (Đề xuất giá trị duy nhất) và chúng tôi sẽ ghi lại chủ đề này sâu hơn. Một số trường hợp sử dụng đáng chú ý, ngoài việc xây dựng bất kỳ ứng dụng giao tiếp giữa máy với máy hoặc giữa người với người:


  • DApps không có hồng ngoại: kết hợp nhiều công nghệ phi tập trung khác nhau (Waku, Ethereum, IPFS) để triển khai DApp mà không phải trả tiền cho nhà cung cấp dịch vụ lưu trữ tập trung.


  • Khả năng truy cập chống kiểm duyệt vào mạng phi tập trung dành cho các máy khách hạng nhẹ: sử dụng các giao thức phản hồi yêu cầu để cho phép các máy khách hạng nhẹ truy cập vào mạng ngang hàng của bạn mà không cần dựa vào cổng web tập trung, có thể kiểm duyệt.


  • Mạng tín hiệu: Sử dụng Mạng Waku để tìm các đồng nghiệp khác và đàm phán các thông số cụ thể để hình thành mạng ngang hàng của riêng bạn, Waku hoặc không, mạng với các quy tắc khác nhau (giới hạn tốc độ cao hơn, v.v.).

Chúng ta còn trống không?

Chúng tôi đã mô tả các đặc tính mong muốn của Waku và cách Mạng Waku cung cấp các đặc tính đó. Điều đó có nghĩa là Waku có khả năng chống kiểm duyệt, riêng tư, bền vững và có thể mở rộng phải không? Không hẳn.


Bootstrapping là một thành phần của tất cả các mạng ngang hàng mà chúng tôi chưa đề cập đến: làm cách nào một nút mới tìm thấy các nút khác trong mạng? Chúng tôi sử dụng công nghệ Ethereum để khởi động (ENR + DNS Discovery). Tuy nhiên, công nghệ này có thể được phân cấp nhiều hơn. Chúng tôi dự định cải thiện tiềm năng này vào khoảng cuối năm 2024 hoặc 2025.


Nói chung, mạng cần được phân cấp để đạt được các đặc tính mong muốn. Mặc dù một số công nghệ cho phép phân cấp như vậy (và chúng tôi đang nỗ lực cải thiện phần không có tính năng này), nhưng vấn đề này có yếu tố xã hội. Nếu nhóm Waku là nhóm duy nhất đang chạy các nút thì về bản chất, mạng không thể được coi là phi tập trung, do đó có khả năng chống kiểm duyệt, v.v.


Để giải quyết vấn đề này, chúng tôi cần thúc đẩy việc áp dụng mạng Waku để có thể xây dựng cơ sở tốt gồm các nhà điều hành nút và nhà phát triển chạy nút mà không phụ thuộc vào nhóm Waku để làm việc đó.


Chúng tôi đã tăng cường nỗ lực này vào năm ngoái và sẽ tiếp tục trong năm nay. Một khía cạnh khác là cung cấp ưu đãi tiền tệ cho các nhà khai thác nút để chạy các nút để mạng có thể tự bền vững. Chúng tôi không có giao thức như vậy; chúng tôi đang xây dựng PoC đầu tiên.


Mạng Waku đóng một vai trò quan trọng ở đây. Khi có giao thức như vậy, cần có một địa điểm (thị trường) chung để các nhà phát triển/người dùng và nhà điều hành tìm thấy nhau; Mạng Waku sẽ là một nơi như vậy.

Phần kết luận

Waku nhằm mục đích cho phép liên lạc có chủ quyền với các thuộc tính cụ thể. Mạng Waku là một cột mốc quan trọng hướng tới việc đạt được mục tiêu như vậy và tạo ra một mạng chung, phi tập trung mà trên đó các nhà phát triển có thể xây dựng và chúng tôi có thể bổ sung thêm nhiều giao thức hơn. Mặc dù chúng tôi không thể nói rằng Waku là tất cả những gì nó hướng tới ngày nay, nhưng nó đã không được phép và phi tập trung trên nhiều lớp.


Chúng tôi hiện đang nỗ lực không chỉ bổ sung những phần còn thiếu vào giao thức mà còn thúc đẩy việc áp dụng Waku để làm cho nó trở nên phi tập trung trên thực tế, tạo điều kiện cho mọi người có khả năng chống lại sự riêng tư và kiểm duyệt.


Nếu bạn muốn tham gia một cộng đồng có cùng chí hướng tập trung vào việc mang lại khả năng giao tiếp ngang hàng cho hàng triệu người dùng, hãy tham gia Waku Discord hoặc theo dõi chúng tôi trên X .


Đăng ký nhận bản tin hàng tháng của chúng tôi để nhận tin tức của chúng tôi ngay trong hộp thư đến của bạn.


Nếu công nghệ nói chuyện với bạn, hãy xem các vị trí việc làm đang mở của chúng tôi hoặc nhận một số phần thưởng của chúng tôi.

Bạn cũng có thể giúp đảm bảo rằng chúng tôi luôn được phân cấp bằng cách chạy Waku Node của riêng bạn!