paint-brush
Waku Ağı: P2P'yi Ölçeklendirme, Gizlilik Odaklı İletişimby@logos
731
731

Waku Ağı: P2P'yi Ölçeklendirme, Gizlilik Odaklı İletişim

Logos10m2024/02/27
Read on Terminal Reader

Waku Ağı, eşler arası mesajlaşma için Hizmet Reddi (DoS) korumaları sağlayan ilk merkezi olmayan ve gizliliği koruyan ağdır. Yenilikçi protokoller ve teknolojiler uygulayarak eşler arası iletişimde gizliliği ve güvenliği artırmayı amaçlamaktadır.
featured image - Waku Ağı: P2P'yi Ölçeklendirme, Gizlilik Odaklı İletişim
Logos HackerNoon profile picture

Geçen Aralık ayında Waku Ağını duyurduk .


Waku Ağı, eşler arası mesajlaşma için Hizmet Reddi (DoS) korumaları sağlayan ilk merkezi olmayan ve gizliliği koruyan ağdır. Yenilikçi protokoller ve teknolojiler uygulayarak eşler arası iletişimde gizliliği ve güvenliği artırmayı amaçlamaktadır.


Waku Ağının nedenini ve ne olduğunu daha derinlemesine inceleyelim.

Menşei

Waku veya Status'u takip ediyorsanız, muhtemelen Waku'nun kökenine aşinasınızdır. Status mobil uygulaması, Ethereum ekosistemine yönelik üç orijinal sütundan yararlanan bir portal olan bir web3 süper uygulaması olarak oluşturuldu: fikir birliği için Ethereum, depolama için Swarm ve iletişim için Whisper.


Durum geliştirme ekibi, Whisper ile Durum oluşturmaya çalıştı ancak bu protokolün, özellikle cep telefonları gibi kaynakları kısıtlı cihazlar için temel sınırlamaları vardı. Waku, Whisper'ın halefi olarak doğdu ve kusurlarından ders alarak mobil cihazlara ve tarayıcılara uygun, ölçeklenebilir bir eşler arası iletişim ağı sağladı.

Zorluklar/İstenen Özellikler

Waku aşağıdaki zorlukların üstesinden gelmeyi amaçlamaktadır:

  • Genelleştirilmiş mesajlaşma: Waku, isteğe bağlı yüklerin aktarımını sağlayan protokoller ve bir ağ sağlamayı amaçlamaktadır. Waku başlangıçta bir sohbet uygulaması olan Status için oluşturulmuş olsa da amaç, Waku üzerinde herhangi bir merkezi olmayan iletişim veya sinyal uygulaması oluşturacak kadar genelleştirilmesidir.


  • Geçici mesajlaşma: Waku, bir veya daha fazla kullanıcının küçük veri yüklerini değiş tokuş etmesini sağlamak için adil gecikme sağlamayı amaçlayan gerçek zamanlı iletişim sorununu çözmeyi amaçlamaktadır. Bu, gecikme ve yanıt verme pahasına büyük miktarda veriyi depolamanın bir yolunu sağlayan IPFS veya diğer merkezi olmayan depolama sistemlerinin tersidir.


  • Sansüre dayanıklılık: Waku, dış aktörlerin kullanıcıların Waku altyapısına erişimini engelleyemediği sansüre dayanıklı bir çözüm sunmayı amaçlamaktadır. Ancak aynı zamanda uygulama geliştiricilerinin, krallığın anahtarına ve kullanıcılarını platformdan çıkarma becerisine sahip olmadıkları kötülük yapılamaz zihniyetiyle geliştirme yapabilmeleri için.


  • Gizliliğe önem veren: Uygulama geliştiricilerine, kullanıcıların verileri ve meta verilerinin toplanması açısından kötü şey yapılamaz ilkesine göre çalışma yeteneği sağlamak. Bu, kendilerinin veya herhangi bir üçüncü tarafın isteseler veya baskı altında olsalar dahi, kullanıcılarından sosyal grafikler veya aktivite kalıpları gibi meta verileri toplayamayacakları anlamına gelir.


  • Anonimlik: Gizliliğe benzer şekilde, bu, kullanıcıların Kişisel Tanımlayıcı Bilgilerini (PII) Waku ağındaki veya ağı kullanan uygulamadaki etkinliklerine bağlamama yeteneğidir. Burada dikkate alınan PII, ağ (IP adresi), blok zinciri (örneğin, Ethereum adresi) ve yönlendirme (mesaj korelasyonu) ile ilgilidir.


  • Kaynak kısıtlı cihazlar: Daha önce de belirtildiği gibi, Waku tasarlanırken, geliştiricilerin bu platformlar için DApp'ler oluşturmasına ve yukarıda listelenen özelliklerin mümkün olduğunca çoğunu sağlamasına olanak sağlamak için mobil ve tarayıcı gibi ortamların dikkate alınması için çaba gösterilmektedir.


  • Ölçeklenebilirlik: Waku, yukarıdaki ilkeleri korurken milyonlarca kullanıcıyı desteklemeyi amaçlamaktadır; bunun dikkatli bir şekilde tasarlanması ve test edilmesi gerekir.


Yukarıdaki özelliklerin tümü, Waku'yu tasarlarken başka sorunların da aşılması gerektiği anlamına gelir:

  • DOS koruması: ağın mesajlarla dolmamasını sağlamak, daha az kaynağa sahip kullanıcıların ağdan başlatılmasına yol açmak.


  • Ağ sürdürülebilirliği ve teşviki: Tarayıcılar ve mobil cihazlar gibi cihazların ağa erişmesini sağlamak için ağda yeterli kaynağı nasıl sağlarız?


  • Merkezi Olmayanlaştırma: Bu özelliklerin etkinleştirilebilmesi için Waku'nun çeşitli düzeylerde merkezileştirilmesi gerekir. Bu mülklerin zaman içinde kalmasını sağlamak için adil düzeyde ademi merkeziyetçiliği nasıl koruyabiliriz?

Waku Ağı

Waku Ağı yukarıdaki özelliklerin sağlanmasına nasıl yardımcı olur?


Ağda birleştirilmiş farklı Waku protokollerini ve bunların bu başarıya ulaşmamızı nasıl sağladıklarını inceleyelim.

Akran Keşfi

Herhangi bir eşler arası sistemin güvenilir ve merkezi olmayan olması için, söz konusu sistemde yeni eşler veya düğümler bulmaya yönelik, genellikle eş keşfi olarak adlandırılan bir mekanizma bulunmalıdır.


Waku, Ethereum'a benzer şekilde discv5'i kullanıyor. Waku düğümünün reklam vermesini sağlamak için ENR'de küçük iyileştirmeler yapıldı:


  • faaliyet gösterdikleri parçalar (bkz. mesaj yönlendirme - parçalama )
    • etkinleştirdikleri protokol

    • örneğin tarayıcının söz konusu düğüme WebSocket yoluyla bağlanması için alternatif çoklu adrese sahip olabilirler.


Discv5 merkezi olmayan bir yapıda olduğundan, bir saldırganın ağın manipüle edilmiş bir görünümünü vermek için kurbanın düğümünü çevrelemeye çalıştığı olası sybil saldırılarını önleyebilir.


Bu, anonimliğin, gizliliğin ve sansüre karşı direncin sağlanmasına yardımcı olur.


Reklamı yapılan protokol hizmeti sayesinde cep telefonlarının ve tarayıcının kendilerine hizmet verebilecek düğümleri bulmasını sağlar.

Mesaj Yönlendirme - Gossipsub

Ethereum'a benzer şekilde Waku, libp2p-gossipsub'u kullanıyor. Bu, çeşitli faydalar sağlar:

  • Whisper'a kıyasla gelişmiş bant genişliği performansı: gossipsub'da düğümler, mesaj gönderdikleri bir grup komşuyu (ağ) oluşturur. Belirli bir düğüm yalnızca bağlantıları sürdürmeye ve diğer düğümlerle aktif olarak mesaj alışverişinde bulunmaya çalışacaktır. Her mesajın yüklenme veya indirilme sayısını azaltmak.


  • Güvenilirlik: Gossipsub yerleşik yedekliliğe sahiptir; bu, hiçbir düğümün güvenilir veya iyi huylu olduğuna güvenilemeyeceği, merkezi olmayan eşler arası bir ağda çalışırken adil güvenilirlik sağlar.


  • Anonimlik: Düğümler ağlarındaki diğer düğümlerden gelen mesajları ilettiğinden ve bireysel mesajlarda hiçbir meta veri mevcut olmadığından (örneğin, düz metin imzası yok), bu, bir gözlemcinin komşusunun kaynaklandığını mı yoksa iletildiğini mi bilmesi mümkün olmadığından adil bir anonimlik sağlar. bir mesaj. Bu, discv5 gibi merkezi olmayan bir eş keşif mekanizmasıyla birleştirildiğinde işe yarar.


Waku'nun dedikodu kullanımına, protokole ve ağa adını verdik. Waku Rölesi.

İleti Yönlendirme - Parçalama

Gossipsub'un dezavantajlarından biri, ağdaki her düğümün, ağdaki her mesajı bir miktar güçlendirmeyle alıp göndermesidir. Bunun ölçeklenebilirliği nasıl sınırladığı görülebilir: Ağın tüm trafiğinin evdeki internet bağlantısından sağlanması beklenemez.


Bu sorunu çözmek için tek bir dedikodu alt ağı yerine parçalama kullanılıyor. Waku ağı birkaç farklı mesaj yönlendirme alt ağına veya parçaya bölünmüştür. Şu anda Waku ağı sekiz parçaya bölünmüş durumda. Bu, bir Waku uygulamasının herhangi bir kullanıcısının yalnızca bir parçanın veya tüm ağın sekizde birinin (yaklaşık olarak) trafiğini aktaracağı anlamına gelir.


Sekiz, başlangıçta küçük ve keyfi bir sayıydı. Teorik analizimiz, bir parçanın yaklaşık 10 bin aktif kullanıcıyı destekleyebildiğini ve ortalama 4 Mbps civarında bant genişliği gereksinimini (tüm ağ için 80 bin anlamına gelir) koruyabildiğini gösteriyor.


Varsayımlarımızı doğrulamak için daha fazla simülasyon çalıştırmaya çalışıyoruz. Ayrıca teoriyi test etmek için ağdaki geliştiricileri ve kullanıcıları da dahil ediyoruz. Amaç zaman içinde ağdaki parça sayısını artırmaktır.


Discv5'te yapılan geliştirmeler sayesinde düğümler, diğer eşlerin hangi parçalara hizmet ettiğini onlara bağlanmadan önce bilebilir.

İleti Yönlendirme - Otomatik Parçalama

Parçalamayla ilgili bir sorun, kullanıcıların ve uygulamaların hangi parçayı kullanacaklarını bilmelerinin gerekmesidir.


Bir uygulama hangi parçayı kullanmak istediğine keyfi olarak karar verebilir, ancak bu, özellikle yeni parçalar eklerken çok fazla çalışma gerektirebilir. Bu aynı zamanda geliştiricinin vermesi gereken bir karar daha; geliştirici deneyimini mümkün olduğunca kolaylaştırmayı tercih ediyoruz. Ayrıca geliştiricilerin, kullanıcıya parça seçimi yetkisi vermeden, birden fazla parçaya yayılan uygulamalar oluşturmasına da olanak tanır.


Otomatik parçalama, uygulamaya dayalı olarak bir parça üzerinde mesaj gönderen basit bir protokoldür.

Mesaj Yönlendirme - RLN Aktarımı

Waku genelleştirilmiştir ve gizliliği korur, yani her türlü yük taşınabilir. Bu nedenle "spam"ın kesin bir tanımı yoktur. Mesajın özel DeFi için bir meme veya zk notu içermesi fark etmez, Waku'nun içeriği bilmemesi gerekir; meta veriler ve veriler gizli kalmalıdır.


Bu nedenle birisinin gigabit veriyi ağa aktarma riski vardır. Bu farklı düzeylerde bir sorun olabilir:

  • Bant genişliği kullanımı: Bu, kullanıcının bant genişliğinin tıkanmasına ve diğer hizmetleri (streaming, staking) etkilemesine veya sürpriz faturalara yol açabilir.


  • Bağlantı: Bir düğüm, dedikodu katmanındaki tüm mesajları göndermek/almak için yeterli bant genişliğine sahip değilse, davranışı, onunla bağlantısı kesilebilecek diğer düğümler tarafından yanlış olarak görülebilir.


  • Güvenilirlik: Trafik mevcut bant genişliğinden daha yüksekse, bir düğüm mesajları güvenilir bir şekilde gönderip alamayabilir.


  • Diğer kaynaklar: Bellek kullanımı trafikle ilişkilidir ve bir mağaza hizmetinin disk alanı da öyle.


Bu nedenle, bir "spam" mesajının neye benzeyeceğini tanımlamak yerine, Waku'nun adil kullanımını sağlamak için, parça başına bant genişliği kullanımının sınırlandırılmasıyla ağ üzerinde bir hız sınırı getirdik. Bu, belirli bir yayıncının gönderdiği mesajların oranını sınırlayan RLN veya Rate Limiting Nullifier ile yapılır. Şu anda 1 msg/s olarak ayarlanmıştır.


Maksimum mesaj boyutu (150kB) ve maksimum yayıncı sayısı (80k, TBD) ile birlikte, parça başına maksimum bant genişliği kullanımının (yaklaşık 10Mbps) olduğunu varsayabiliriz.


Yayıncıları sansüre dayanıklı ve özel bir şekilde hız sınırlaması yapmak zordur; sıfır bilgi teknolojisini kullanmamızın nedeni budur:

  1. Kullanıcılar RLN kimlik bilgilerini akıllı bir sözleşmeye aktarır (şu anda Ethereum Sepolia test ağındadır).


  2. Düğümler sözleşmedeki tüm kayıtlı üyeliklerin kaydını tutar.


  3. Bir mesaj gönderirken kullanıcı, mesaja geçerli dönemi (saniye cinsinden zaman damgası) içeren bir RLN kanıtı ekler.


  4. Düğümler, kullanıcının Ethereum adresini (akıllı sözleşmede kullanılan) gönderilen mesajla ilişkilendirmeden, anonimliği koruyarak kanıtı doğrulayabilir.


  5. Bir kullanıcı 1 msg/s'den daha fazlasını göndermeye çalışırsa, düğümler bunu algılayabilir ve mesaj fazlasını veya spam'ı bırakarak ağı koruyabilir.

Çoğunlukla Çevrimdışı ve Kaynak Kısıtlı Cihazlara Servis Verme

Son olarak Waku, cep telefonları ve web tarayıcıları gibi kaynakları kısıtlı cihazlar için nasıl faydalıdır? Waku, bu tür cihazların her zaman çevrimiçi olmaya veya aşırı miktarda veri tüketmeye gerek kalmadan Waku ağına erişmesini sağlamak için bir dizi [istek-yanıt protokolü ( https://rfc.vac.dev/spec/10/#requestreply-domain )) tanımlar. bant genişliği, yani Waku Relay ağına katılmadan.


Light push protokolü (belgelere bağlantılar), hafif bir istemcinin uzak düğümden alım onayı ile Waku Relay ağına iletilecek bir mesaj göndermesine olanak tanır. Filtre protokolü, hafif istemcinin uzak bir eşe abone olmasını ve bir parça üzerinde iletilen tüm mesajlar yerine yalnızca mesajların bir alt kümesini talep etmesini sağlar.


Son olarak, mağaza protokolü, hafif istemcilerin ve aktarma düğümlerinin gözden kaçırılmış olabilecek geçmiş mesajları almasını sağlar.

Waku Ağının Değer Önerisi

İstenilen özellikleri ve teknolojiyi tanımlamış olsak da Waku Ağının potansiyel kullanım durumlarını anlamak önemlidir. Bu sayıda şu anda çeşitli USP'ler (Benzersiz Değer Önerileri) açıklanmaktadır ve konuyu daha ayrıntılı olarak belgeleyeceğiz. Herhangi bir makineden makineye veya insandan insana iletişim uygulaması oluşturmanın ötesinde bazı dikkate değer kullanım örnekleri şunlardır:


  • No-Infra DApp'ler: Merkezi bir barındırma sağlayıcısına ödeme yapmadan bir DApp dağıtmak için çeşitli merkezi olmayan teknolojileri (Waku, Ethereum, IPFS) birleştirir.


  • Hafif istemciler için merkezi olmayan bir ağa sansüre dayanıklı erişim: hafif istemcilerin merkezi, sansürlenebilir bir web ağ geçidine güvenmeden eşler arası ağınıza erişmesini sağlamak için istek-yanıt protokollerinin kullanılması.


  • Sinyal ağı: Waku olsun ya da olmasın, farklı kurallara (daha yüksek hız sınırı vb.) sahip kendi eşler arası ağınızı oluşturmak için diğer eşleri bulmak ve belirli parametreler üzerinde anlaşmak için Waku Ağını kullanın.

Henüz Boş Muyuz?

Waku'nun arzu edilen özelliklerini ve Waku Ağının bunları nasıl sağladığını anlattık. Bu, Waku'nun sansüre dayanıklı, özel, sürdürülebilir ve ölçeklenebilir olduğu anlamına mı geliyor? Pek değil.


Önyükleme, ele almadığımız tüm eşler arası ağların bir bileşenidir: yeni bir düğüm ağdaki diğer düğümleri nasıl bulur? Önyükleme için Ethereum teknolojisini kullanıyoruz (ENR + DNS Discovery). Ancak bu teknoloji daha merkezi olmayabilir. Bu potansiyeli 2024 sonu veya 2025 yılı sonlarında geliştirmeyi planlıyoruz.


Genel olarak, istenen özellikleri elde etmek için ağın merkezi olmayan bir yapıya kavuşturulması gerekir. Teknolojinin bir kısmı bu tür merkezsizleşmeyi mümkün kılsa da (ve sağlamayan kısmını iyileştirmeye çalışıyoruz), bu sorunun sosyal bir bileşeni var. Düğümleri çalıştıran tek kişi Waku ekibiyse, doğası gereği ağ merkezi olmayan, dolayısıyla sansüre dayanıklı vb. olarak değerlendirilemez.


Bunu çözmek için, Waku ağının benimsenmesi için baskı yapmamız gerekiyor, böylece Waku ekibine bağlı kalmadan düğümleri çalıştıran iyi bir düğüm operatörleri ve geliştiricileri tabanı oluşturabiliriz.


Geçen yıl bu çabamızı artırdık, bu yıl da sürdüreceğiz. Diğer bir husus ise ağın kendi kendini sürdürebilir hale gelebilmesi için düğüm operatörlerine düğümleri çalıştırmaları için parasal teşvik sağlamaktır. Bizim böyle bir protokolümüz yok; ilk PoC'yi inşa ediyoruz.


Waku Ağı burada önemli bir rol oynuyor. Böyle bir protokol mevcut olduğunda, geliştiricilerin/kullanıcıların ve operatörlerin birbirini bulması için ortak bir (pazar) yere ihtiyaç duyulur; Waku Ağı böyle bir yer olurdu.

Çözüm

Waku, belirli mülklerle egemen iletişim kurmayı hedefliyor. Waku Ağı, böyle bir hedefe ulaşma ve geliştiricilerin üzerine inşa edebileceği ve daha fazla protokol ekleyebileceğimiz ortak, merkezi olmayan bir ağ oluşturma yolunda kritik bir kilometre taşıdır. Bugün Waku'nun olmayı amaçladığı tek şey olduğunu söyleyemesek de, zaten izinsiz ve birkaç katmanda merkezi olmayan bir yapıya sahip.


Artık yalnızca protokollere eksik parçaları eklemekle kalmıyoruz, aynı zamanda Waku'nun benimsenmesi için onu fiilen merkezi olmayan hale getirerek herkes için özel ve sansüre karşı direnişi mümkün kılmaya çalışıyoruz.


Milyonlarca kullanıcıya eşler arası iletişim sağlamaya odaklanan benzer düşüncelere sahip bir topluluğa katılmak istiyorsanız Waku Discord'a katılın veya bizi X'te takip edin.


Haberlerimizi doğrudan gelen kutunuza almak için aylık bültenimize kaydolun.


Teknoloji sizinle konuşuyorsa açık iş pozisyonlarımıza göz atın veya ödüllerimizden bazılarını yakalayın.

Ayrıca kendi Waku Düğümünüzü çalıştırarak merkezi olmayan kalmamızı sağlamaya da yardımcı olabilirsiniz!