The Invisible Internet Project (I2P) is an anonymous network layer (implemented as a mix network) that allows for censorship-resistant, peer-to-peer communication. Anonymous connections are achieved by encrypting the user's traffic (by using end-to-end encryption), and sending it through a volunteer-run network of roughly 55,000 computers distributed around the world. Given the high number of possible paths the traffic can transit, a third party watching a full connection is unlikely. The software that implements this layer is called an "I2P router", and a computer running I2P is called an "I2P node". I2P is free and open source, and is published under multiple licenses.
Technical design I2P started in 2003 as a fork of Hyphanet, then known as Freenet..
The network is strictly message-based, like IP, but a library is available to allow reliable streaming communication on top of it (similar to Non-blocking IO-based TCP, although from version 0.6, a new Secure Semi-reliable UDP transport is used). All communication is end-to-end encrypted through garlic routing, and even the end points ("destinations") are cryptographic identifiers (essentially a pair of public keys), so that neither senders nor recipients of messages need to reveal their IP address to the other side or to third-party observers.
Although many developers had been a part of the Invisible IRC Project (IIP). and Freenet communities, significant differences exist between their designs and concepts. IIP was an anonymous centralized IRC server. Freenet/Hyphanet is a censorship-resistant distributed data store. I2P is an anonymous peer-to-peer distributed communication layer designed to run any traditional internet service (e.g., Usenet, email, IRC, file sharing, Web hosting and HTTP, or Telnet), as well as more traditional distributed applications (e.g., a distributed data store, a Web proxy network using Squid, or DNS). Although I2P is decentralized, it remains vulnerable to address-based blocking by censors operating only a small number of routers. A study in 2018 showed that a censor could block access to over 95% of known peers using only 10 strategically placed routers.
Many developers of I2P are known only under pseudonyms. While the previous main developer, jrandom, is currently on hiatus, others, such as zzz, killyourtv, and Complication have continued to lead development efforts, and are assisted by numerous contributors.
I2P can use a wide variety of cryptographic protocols, with 2048-bit ElGamal/AES256/SHA256+Session Tags encryption and Ed25519 EdDSA/ECDSA signatures being the default options for services. Starting in version 2.10.0, a hybrid-PQ scheme of MLKEM+X25519 for symmetric encryption in some services is being rolled-out in testing and required to be implemented within I2P implementations, but an individual user must manually switch it from classical defaults.
Releases I2P has had a stable release every six to eight weeks. Updates are distributed via I2P torrents and are signed by the release manager (generally str4d or zzz). I2P Versions Version Release date Release notes 2014-02-08 Support for outproxy plugins, improves lease set lookup security, and reduces memory usage. 2014-03-31 Support for ECDSA and updates to Jetty 8. 2014-05-22 SusiMail improvements and fixes for firewalled router. 2014-07-26 Critical fixes for XSS and remote execution vulnerabilities. 2014-08-09 I2PSnark and console fixes. 2014-09-20 Preliminary support for Ed25519 EdDSA signatures. 2014-11-01 Add support for stronger Router Info signatures. 2014-11-30 Signed news, ECDSA tunnels by default. 2015-02-22 Shortened the startup time, and reduced latency throughout our network protocols. 2015-04-12 Several fixes and improvements for floodfill performance. 2015-06-02 Important bug fixes, and several changes to increase floodfill capacity in the network. 2015-07-31 Contains several changes to add capacity to the network, increase the efficiency of the floodfills, and use bandwidth more effectively. 2015-09-12 Fixes for I2PSnark getting stuck before completion, and begins the migration of router infos to new, stronger Ed25519 signatures. 2015-11-19 Accelerates the rekeying process. 2016-01-27 A new version of SAM (v3.2) and numerous bug fixes and efficiency improvements. The first release to require Java 7. 2016-03-22 A new version of SAM (v3.3), QR codes for sharing hidden services, identicons and router families. 2016-06-07 Major upgrade to the native crypto library, a new addressbook subscription protocol with signatures, and major improvements to the Debian/Ubuntu packaging. 2016-10-17 Improvements in IPv6 transports, SSU peer testing, and hidden mode. 2016-12-12 Updates for a number of bundled software, fixes for IPv6 peer testing, improvements to detect and block potentially malicious peers. Preliminary fixes for Java 9. 2017-02-27 Support for NTP over IPv6, preliminary Docker support, translated main pages. We now pass same-origin Referrer headers through the HTTP proxy. There are more fixes for Java 9, although we do not yet recommend Java 9 for general use. 2017-05-03 Support for Debian Stretch and Ubuntu Zesty, upgraded to Jetty 9 and Tomcat 8, support for the migration of old DSA-SHA1 hidden services to the EdDSA signature type. 2017-08-07 Refreshed the router console to improve readability, improved accessibility and cross-browser support, and general tidying up. 2017-11-07 0.9.32 contains a number of fixes in the router console and associated webapps (addressbook, i2psnark, and susimail). We have also changed the way we handle configured hostnames for published router infos, to eliminate some network enumeration attacks via DNS. Added some checks in the console to resist rebinding attacks. 2018-01-30 0.9.33 contains bug fixes for i2psnark, i2ptunnel, streaming, and SusiMail. Updates for reseed proxying, and default rate limiting. 2018-04-10 0.9.34 contains bug fixes for i2ptunnel, router console, SusiMail, routing and transport along with Changes to SusiMail and UPnP. 2018-06-26 0.9.35 adds support for folders in SusiMail, and a new SSL Wizard for setting up HTTPS on your Hidden Service website. 2018-08-23 0.9.36 implements a new, more secure transport protocol called NTCP2. It is disabled by default, but you may enable it for testing. NTCP2 will be enabled in the next release. 2018-10-04 0.9.37 enables the faster, more secure transport protocol called NTCP2. 2019-01-22 0.9.38 includes a new first-install wizard with a bandwidth tester. We've added support for the latest GeoIP database format. There's a new Firefox profile installer and a new, native Mac OSX installer on our website. Work continues on supporting the new "LS2" netdb format. 2019-03-21 0.9.39 includes extensive changes for the new network database types (proposal 123). We've bundled the i2pcontrol plugin as a webapp to support development of RPC applications. There are numerous performance improvements and bug fixes. 2019-05-07 0.9.40 includes support for the new encrypted leaseset format. We disabled the old NTCP 1 transport protocol. There's a new SusiDNS import feature, and a new scripted filtering mechanism for incoming connections. 2019-07-02 0.9.41 continues the work to implement new features for proposal 123, including per-client authentication for encrypted leasesets. The console has an updated I2P logo and several new icons. We've updated the Linux installer. 2019-08-28 0.9.42 continues the work to make I2P faster and more reliable. It includes several changes to speed up our UDP transport. We have split up the configuration files to enable future work for more modular packaging. We continue work to implement new proposals for faster and more secure encryption. There are, of course, a lot of bug fixes also. 2019-10-22 0.9.43 release continues work on stronger security and privacy features and performance improvements. Our implementation of the new leaseset specification (LS2) is now complete. We are beginning our implementation of stronger and faster end-to-end encryption (proposal 144) for a future release. Several IPv6 address detection issues have been fixed, and there of course are several other bug fixes. 2019-12-01 0.9.44 contains an important fix for a denial of service issue in hidden services handling of new encryption types. 2020-02-25 0.9.45 contains bug fixes. 2020-05-25 0.9.46 contains new ECIES Encryption. 2020-08-24 0.9.47 enables new encryption for some services, now requires Java 8 and Sybil analysis and blocking is now enabled by default. 2020-11-30 0.9.48 enables new encryption for most services, has significant performance improvements. 2021-02-17 0.9.49 improves SSU transport and begins transition to X25519 encryption for routers. 2021-05-17 0.9.50 continues transition to X25519 encryption for routers, enables DoH for reseeding and improves support for IPv6. 2021-08-23 1.5.0 adds short tunnel build messages, continues transition to X25519 encryption for routers and improves performance. 2021-11-29 1.6.1 further accelerates transition to X25519 for routers, enables short tunnel build messages and improves SSU performance. 2022-02-21 1.7.0 improves performance and reliability. 2022-05-23 1.8.0 fixes bugs and adds experimental SSU2 support. 2022-08-22 1.9.0 improves SSU2 support and enables it on Android and ARM devices. 2022-11-21 2.0.0 enables SSU2 for all users and adds RFC 7616 support. 2023-01-09 2.1.0 fixes rare implementation bugs with SSU2 and adds torsocks support. 2023-03-13 2.2.0 adds mitigations for DDOS attacks across the NetDB, Floodfill, and Peer-Selection components. zzz also stepped back as one of the lead maintainers. 2023-04-12 2.2.1 fixes packaging issues created by the previous release and updates components. 2023-06-25 2.3.0 fixes CVE-2023-36325 (context-confusion bug which occurred in the bloom filter), adds mitigations to prevent such issues, adds notbob.i2p and ramble.i2p to the console homepage and allows users to override blocklist expiration with an interval. 2023-12-18 2.4.0 adds DDOS mitigations to NetDB and disables SSU1 support. 2023-12-18 2.5.0 improves compatibility with other Bittorrent clients like qBittorrent. 2024-05-06 2.5.1 adds more mitigations against then ongoing DDOS attacks. 2024-05-15 2.5.2 fixes a bug that truncates HTTP responses. 2024-07-19 2.6.0 increases the minimum version for floodfill routers and disables I2P over Tor. 2024-08-06 2.6.1 fixes a User-Interface bug in the Hidden Services Manager application. 2024-10-09 2.7.0 fixes bugs and improves performance. 2025-02-03 2.8.0 fixes bugs and improves network stability. 2025-03-17 2.8.1 fixes accesses to local sites that were broken in 2.8.0. 2025-03-29 2.8.2 fixes a bug causing SHA256 failures that was introduced in the 2.8.1 release. 2025-03-29 2.9.0 brings general improvements. 2025-03-29 2.10.0 adds support for UDP trackers. 2026-02-09Minimal Java version is now 17. Improved post-quantum cryptography. 2026-04-202.12.0 improved post-quantum cryptography. 2026-7-242.13.0 improved post quantum cryptography, removed SSU1.
Funding The website had stated that "funding for I2P comes entirely from donations" in 2022. Admins and managers of the project said that "the core project itself doesn't take donations. These should instead go to secondary applications or be spent on hiring others, to work on I2P." Support for the onboarding for I2P came from the Open Technology Fund. In 2022, in contrast to The Tor Project, I2P had "not the financial or legal infrastructure to support a network of exit nodes". The reseed servers, a sort of bootstrap nodes, which connect the user with the initial set of peers to join the I2P-network, should be run by volunteers.