Sure thing matey! I am happy to chart a course as you sail through these waters.
In short, i2p is a network within a network. Think of it as being it’s own seedy town within the larger city of the internet. Any information that enters this town is end-to-end encrypted. Now, in this town, to preserve anonymity, people pass along information in paper notes. Each person accepts notes from different sources, encrypts a bundle of it, and passes it along in a chain. (hence the name “garlic routing”. When it hits your “inbound tunnel,” or a set of (usually 2-3) people that have been assigned to pass messages to you, they incrementally un-bundle that message until it hits you, and since you have the private key you can unencrypt the message.
Information that stays within this network are automatically anonymous. These people in your inbound tunnel do not know that the messages are being sent to you, nor do they know any information about the source. They only know that they’re passing these messages along.
One way companies figure out that you’ve been torrenting is that they would torrent a public pirated movie file. Then, they would target the ip addresses that would actually send them that information, because they know they are seeders. These companies cannot do that in i2p, because everybody in i2p is just passing along information!
There are different options for installing i2p:
For windows, there’s the i2p easy install bundle that bundles a firefox profile and automatically installs the i2p router. This uses the java implementation of i2p.
For linux, there’s a java (i2p) or c++ (i2pd) implementation of the i2p router. Basically the same program but in different languages, and i2p routers can still communicate with i2pd routers and vice versa. I recommend starting with java i2p, and after trying it for a while try i2pd. There’s more GUI in the java implementation, but the i2pd version is faster because cryptographic functions run faster in c++. Mental Outlaw has a good video on running i2pd on linux