2.49 KB
Newer Older
3b7ameed's avatar
3b7ameed committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
tags: ["kovri"]
terms: ["Garlic-Routing"]
summary: "Routing technology as implemented in Kovri"

{% include untranslated.html %}
### The Basics

The term *@garlic-routing* has a diverse history of varying interpretations. As it currently stands, Monero defines *@garlic-routing* as the method in which @Kovri and @I2P create a @message-based anonymous overlay network of Internet peers.

The @Garlic-Encryption of @Garlic-Routing is similar to the @Layered-Encryption of [Onion Routing]( and effectively conceals the IP address of the sender and secures information sent from the sender to its @destination (and vice-versa).

### History

In written form, the term *@garlic-routing* can be seen as early as June of 2000 in Roger Dingledine's [Free Haven Master's thesis]( (Section 8.1.1) as derived from the term Onion Routing.

As recent as October of 2016, [#tor-dev]( has offered insight into the creation of the term *@garlic-routing*:

[Nick Mathewson](,_Inc):
>[I think that there was some attempt to come up with a plant whose structure resembled the 'leaky-pipe' topology of tor, but I don't believe we ever settled on one.]

[Roger Dingledine](
>during the free haven brainstorming, there was a moment where we described a routing mechanism, and somebody said "garlic routing!", and everybody laughed.
so we for sure thought we had invented the name, at the time.

*Note: permission to use the aforementioned quotes was granted by Nick Mathewson and Roger Dingledine*

### In-depth Information

In technical terms, for @Kovri and @I2P, *@garlic-routing* translates to any/all of the following:

- @Layered-Encryption (similar to the @layered-encryption in Onion Routing)
- Bundling multiple @messages together (garlic cloves)
- ElGamal/AES @encryption

*Note: though [Tor]( uses @layered-encryption, Tor does not use ElGamal and is not message-based.*

**Read more in @garlic-encryption.**

### Notes

- In terms of Onion/Garlic Routing, another way to envision layered @encryption is by replacing the onion/garlic with a [Matryoshka doll]( - with each outer/inner doll having a lock and public key to the next/previous doll
- For more technical details on Garlic Routing, read the @Java-I2P entry on [Garlic Routing](