main things:
- tor relies on volunteers to run nodes that pass traffic to each other. in i2p, everyone is a node.
- i2p can handle high traffic applications like torrenting because everyone is a node. torrenting isn't good for tor.
- tor is more specialized to anonymizing your traffic to regular websites. i2p is for "in-network" things (like you need to run i2p to access them)
- i2p is like a separate internet (or an intranet, i guess)
- tor relies on (9?) centralized (directory authority) servers to maintain a list of nodes. In i2p this is distributed (floodfills).
imagine you have one of those multihop vpns setup, but instead of one connection you have several different multihop vpns running at the same time, and every one of those vpns gets a new server every 10 mins. very roughly, that's how they work. Since there's so many paths, they're very long, and the paths are constantly changing, it's hard for observers to make sense of what goes where. In i2p it's usually 7 hops each way. there may be thousands of connections at a time for each node, all changing every 10 minutes.
with both tor and i2p, we encrypt and decrypt at each hop, so no node in the chain can read messages. an observer can listen in, but they don't know for sure what goes where, and they wouldn't be able to understand what's being said. in tor and i2p, this protects everyone running a node (except for exit nodes), since they maintain plausible deniability regardless of what passes through them.
i2p goes further. with the vpn analogy, you would get 2 sets of vpns: one for outgoing traffic and one for incoming. everyone else is doing the same thing, so if you want to share an image with someone the other person will run their own chain of vpns to meet with your chain of vpns to see it. you never connect directly. where the vpn analogy falls apart is since you're routing traffic for other people in i2p, you're also a server hop for other people. so you mix their traffic in with your own. there's also some random noise added in all to make the life of an observer even more confusing. it's all mixed together like cloves of a garlic bulb to make the life of an observer as hard as possible. traffic mixing and separate outbound/inbound tunnels are the major differences with garlic (i2p) and onion (tor) routing.
since tor doesn't maintain many connections to hide your traffic in the mix with other users, tor uses stream isolation to use a different path for each website so you look like a new person each time. it uses the same set of nodes for up and down traffic like a vpn does. it does not mix traffic with peers. getting to clearnet with tor (and i2p) is a weak link since whoever runs the server has power to snoop your traffic (or inject things). but tor has many exit nodes, all automatically changing for you. there's only 3-4 exit nodes (outproxies) in i2p.