Notă: Această pagină nu este actualizată. Consultați foaia de parcurs pentru planurile actuale.

Mai jos este o discuție mai detaliată (dar încă incompletă) a principalelor domenii de dezvoltare viitoare pe rețeaua I2P de bază, care se întinde pe planul plauzibil planificat de presă. Acest lucru nu include transporturile stego, portarea la dispozitivele fără fir, sau instrumente pentru securizarea mașinii locale și nici nu include aplicații client asta va fi esențial în succesul I2P. Probabil sunt și alte lucruri ce vor apărea, mai ales că I2P primește mai multe recenzii de la egal la egal, dar acestea sunt principalele 'lucruri mari'. Vezi și foaia de parcurs. Vreau sa ajut? A se implica!

Funcționalitatea de bază

  • NetworkDB și politica de ajustare și expunere a profilurilor pentru rețele mari

    În cadrul bazei de date actuale a rețelei și a implementării gestionării profilurilor, am luat libertatea unor scurtături practice. De exemplu, noi nu avem codul pentru a renunța la referințele de la egal la K-găleți, ca noi nu avem suficienți semeni pentru a umple chiar și plauzibil oricare dintre ei, așa că, în schimb, îi păstrăm pe colegi în orice găleată corespunzătoare. Alt exemplu se ocupă cu profilurile de la egal - memoria necesară pentru întreținerea fiecăruia profilul este suficient de mic încât putem păstra mii de profiluri suflate complete în memorie fără probleme. În timp ce avem capacitatea de a folosi tuns profiluri în jos (pe care le putem menține 100 de mii în memorie), noi nu aveți niciun cod care să se ocupe de mutarea unui profil dintr-un „profil minim” la un „profil complet”, un „profil complet” la un „profil minim” sau pur și simplu scoateți un profil cu totul. Pur și simplu nu ar fi practic să scrie asta deocamdată, deoarece nu vom avea nevoie de el de ceva vreme.

    Acestea fiind spuse, pe măsură ce rețeaua crește, vom dori să păstrăm aceste considerente in minte. Vom avea ceva de lucru, dar îl putem renunța pentru mai târziu.

Securitate / anonimat

  • Trasee n-hop complet reduse cu legături de încredere opționale

    Funcționalitatea de rută restricționată descrisă anterior era pur și simplu funcțională problema - cum să-i lase pe semenii care altfel nu ar putea să comunice face acest lucru. Cu toate acestea, conceptul de a permite rute restricționate include suplimentar capabilități. De exemplu, dacă un router nu poate risca să comunice direct cu orice colegi de încredere, pot configura legături de încredere prin acei colegi, folosindu-i pentru a trimite și primi toate mesajele sale. Acei colegi ascunși care doresc să fie complet izolați ar refuza și ei pentru a se conecta la colegii care încearcă să-i ajungă (așa cum demonstrează tehnica de dirijare a usturoiului prezentată anterior) - pot lua pur și simplu usturoiul cuisoare care are o cerere de livrare către un anumit coleg și tunel rotați mesajul din unul dintre linkurile de încredere ale colegilor ascunse cu instrucțiuni pentru a o transmite așa cum a fost solicitat.

  • Hashcash pentru routerIdentitate, destinație și solicitare tunel

    În cadrul rețelei, vom dori un fel de a descuraja oamenii să consume prea multe resurse sau de la crearea atâtor colegi pentru a monta un Sybil atac . Tehnicile tradiționale, cum ar fi un partener văd cine solicită o resursă sau administrarea unui coleg nu sunt potrivite pentru utilizarea în I2P, ca atare acest lucru ar compromite anonimatul sistemului. În schimb, vrem pentru a face anumite cereri „scumpe”.

    Hashcash este o tehnică care putem folosi pentru a crește în mod anonim „costul” desfășurării anumitor activități, cum ar fi crearea unei noi identități de router (realizată o singură dată la instalare), crearea unei noi destinații (realizată o singură dată la crearea unui serviciu) sau solicitând ca un coleg să participe la un tunel (efectuat des, poate 2-300 ori pe oră). Nu cunoaștem costul „corect” al fiecărui tip de certificat totuși, dar cu unele cercetări și experimentări, am putea stabili un nivel de bază care este suficient de scump, dar nu este o povară excesivă pentru oameni cu putine resurse.

    Există câțiva alți algoritmi pe care îi putem explora pentru realizarea acestor solicitări de resurse „non-free”, iar cercetările ulterioare pe acest front sunt corespunzătoare.

  • Funcționare avansată a tunelului (batching / mixing / throttling / padding)

    Pentru observatori externi pasivi puternici, precum și pentru coluzionări interne mari observatori, rutarea standard a tunelurilor este vulnerabilă la atacurile de analiză a traficului - pur și simplu urmărind dimensiunea și frecvența mesajelor trecute intre routere.Pentru a ne apăra de acestea, vom dori să transformăm în esență unele tunele în propria cascadă de amestec - mesajele de întârziere primite la poarta de intrare și trecerea lor în loturi, reordonându-le după caz, și injectarea de mesaje dummy (nedistinguibile de la alt tunel „real” mesaje ale colegilor din cale). A existat o cantitate semnificativă de cercetare pe acești algoritmi pe care ne putem apleca înainte de a implementa diversele strategii de amestecare a tunelurilor.

    Pe lângă aspectele de anonimat ale funcționării mai variate a tunelului, există și o dimensiune funcțională. Fiecare coleg are doar o anumita cantitatea de date pe care le pot orienta către rețea și pentru a păstra orice anume tunel de la consumul unei porțiuni nerezonabile din lățimea de bandă, ei va dori să includă câteva accelerații pe tunel. De exemplu, un tunel poate fi configurat să se accelereze singur după trecerea a 600 de mesaje (1 pe al doilea), 2.4MB (4KBps) sau care depășește o medie în mișcare (8KBps pentru ultimul minut). Excesul de mesaje poate fi întârziat sau eliminat sumar. Cu acest tip de agitație, colegii pot oferi suport QoS asemănător la ATM tuneluri, care refuză să fie de acord să aloce mai multă lățime de bandă decât cea peer disponibil.

    În plus, este posibil să dorim să implementăm cod pentru reorganizarea dinamică a tunelurilor pentru a evita colegii eșuati sau pentru a injecta hamei suplimentare pe cale. Acest se poate face prin usturoiul dirijând un mesaj către orice coleg particular dintr-un tunel cu instrucțiuni de a redefini următorul salt în tunel.

  • Stop & go mix cu w/ usturoi & tuneluri

    Dincolo de strategia de amestecare și amestecare per tunel, există mai multe capacități de protecție împotriva atacatorilor puternici, cum ar fi permiterea fiecare pas dintr-o cale rutată cu usturoi pentru a defini o întârziere sau o fereastră în care ar trebui să fie transmis mai departe. Aceasta ar permite protecția împotriva îndelungatului termen de atac de intersecție, deoarece un coleg ar putea trimite un mesaj care arată perfect standard pentru majoritatea colegilor care îl transmit, cu excepția oricărui coleg în care cuiul expus include instrucțiuni de întârziere.

Performanță

Îmbunătățirile legate de performanță sunt enumerate pe Pagina de performanță.