[00:00.000 --> 00:13.000] Hi, everyone. This is I2P, major changes of the peer-to-peer network by Conrad Bechler. [00:13.000 --> 00:17.000] Close enough. Enjoy. [00:17.000 --> 00:22.000] Hello, everyone. Thank you for being here. That's my third I2P talk at FOSSTEM. [00:22.000 --> 00:26.000] First one was about DNS. That was the most difficult for me personally. [00:26.000 --> 00:33.000] And now a major changes of the peer-to-peer network of a bunch of programmers, [00:33.000 --> 00:37.000] which are creating I2P, which is an overlay network. [00:37.000 --> 00:44.000] I'm an independent researchers and software architect and developer, [00:44.000 --> 00:52.000] and I'm developing libraries, and I'm working full-time for Diva.Exchange, [00:52.000 --> 00:56.000] which is a small non-profit association in Switzerland. [00:56.000 --> 01:00.000] And there is nothing like a centralized model involved, [01:00.000 --> 01:03.000] because I'm totally living in the peer-to-peer I2P world, [01:03.000 --> 01:08.000] because I really love what the I2P developers and the open sources space are doing. [01:08.000 --> 01:14.000] Since the last 20 years, and I suggest we're looking now at the agenda. [01:14.000 --> 01:21.000] I'll give you a short introduction of I2P, and then we're looking at what the developers did. [01:21.000 --> 01:25.000] As the latest changes of the code. [01:25.000 --> 01:30.000] And we'll focus, since I'm an application developer based on the I2P network, [01:30.000 --> 01:33.000] what is the impact? We're looking at the summary. [01:33.000 --> 01:38.000] And I understood that there are no questions, so if you have questions, [01:38.000 --> 01:41.000] I'll be outside in the hall for a few minutes, [01:41.000 --> 01:49.000] and I'm happy to get in touch with you if you have critical and skeptical questions. [01:49.000 --> 01:53.000] Short thing, what is the role of Diva.Exchange within I2P? [01:53.000 --> 01:55.000] I2P is a developer team. [01:55.000 --> 01:57.000] Diva.Exchange is a developer team. [01:57.000 --> 02:01.000] And the I2P developers are spread all over the world. [02:01.000 --> 02:04.000] The Diva.Developers are spread all over the world. [02:04.000 --> 02:08.000] We're cooperating friendly, but we're not the same. [02:08.000 --> 02:13.000] Diva.Exchange is primarily a library developer and is supporting [02:13.000 --> 02:19.000] official, so-called official, open-source Docker images. [02:19.000 --> 02:20.000] That's what we're doing. [02:20.000 --> 02:24.000] Myself, since I'm a researcher, I'm cooperating with Swiss universities, [02:24.000 --> 02:31.000] and I'm open for all corporations with any university to take a very skeptical perspective [02:31.000 --> 02:34.000] towards our own work. [02:34.000 --> 02:36.000] Now what is the I2P network? [02:36.000 --> 02:39.000] I2P network is an overlay network. [02:39.000 --> 02:44.000] And now please jump to the very last line of this slide. [02:44.000 --> 02:51.000] I2P gives you privacy by design, serious privacy by design. [02:51.000 --> 02:55.000] It means you get confidentiality and total anonymity. [02:55.000 --> 03:02.000] Just as an example, this statement that the network gives you total anonymity [03:02.000 --> 03:08.000] is something which we do research in Switzerland, whether we can break this anonymity. [03:08.000 --> 03:10.000] And that's one of our research approaches. [03:10.000 --> 03:16.000] But currently, at the current state of knowledge, and since I2P is existing [03:16.000 --> 03:23.000] since 20 years, we can say it's confidential and anonymous. [03:23.000 --> 03:24.000] Now a question. [03:24.000 --> 03:29.000] Whoever in this room, in the past presentations, there was around 5% of the audience [03:29.000 --> 03:33.000] have ever gotten in touch and used I2P in their life. [03:33.000 --> 03:38.000] Please, hands up. Wow, that's close to 20%. [03:38.000 --> 03:40.000] Cool, thank you. [03:40.000 --> 03:46.000] So for the others which do not know it, anonymity has a cost attached. [03:46.000 --> 03:49.000] And this cost is called latency. [03:49.000 --> 03:54.000] So when I'm talking about an anonymous network which gives you full confidentiality, [03:54.000 --> 04:02.000] then these messages are multiple time encrypted and hop from peer to peer to its destination. [04:02.000 --> 04:07.000] And through another tunnel, they hop back, the reply hops back. [04:07.000 --> 04:14.000] And this is giving anonymity on a very, very, very high level. [04:14.000 --> 04:16.000] A word to be clear here. [04:16.000 --> 04:21.000] I2P has no storage capability by itself. [04:21.000 --> 04:25.000] It's a transport layer. [04:25.000 --> 04:28.000] Now how to get I2P? [04:28.000 --> 04:31.000] Those which got in touch with it, they know that. [04:31.000 --> 04:34.000] There are the Linux repos, and then there are PPAs, [04:34.000 --> 04:39.000] and then there are the container maintained by Devo Exchange, which you find on Docker. [04:39.000 --> 04:41.000] Now why is there I2P? [04:41.000 --> 04:43.000] And why is there I2PD? [04:43.000 --> 04:49.000] Because there are two versions available from two development teams. [04:49.000 --> 04:51.000] In short, I2P is written in Java. [04:51.000 --> 04:53.000] It has a user interface. [04:53.000 --> 04:58.000] And there are a lot of fans around there which really like that. [04:58.000 --> 05:03.000] And then there is a smaller version, which is I2PD, which is written in C++, [05:03.000 --> 05:07.000] and which is the demon only, so it's rather a bit more for admins. [05:07.000 --> 05:13.000] Devo uses I2PD, and there's also the image maintainer on Docker for this version. [05:13.000 --> 05:17.000] From my point of view, both are equally valid. [05:17.000 --> 05:22.000] Word of warning, please don't trust any binaries which floating around here and there, [05:22.000 --> 05:29.000] which you can't reproduce locally by yourself, please build it yourself if you can, and sure you can. [05:29.000 --> 05:34.000] Because this gives power to the open-source developers. [05:34.000 --> 05:38.000] So if you just consume some binaries, please don't. [05:38.000 --> 05:44.000] It's also dangerous because you have a router running on your local machine. [05:44.000 --> 05:49.000] The whole thing here is it's a peer-to-peer network without any central authority, [05:49.000 --> 05:53.000] without any trust involved. [05:53.000 --> 05:58.000] Now, the latest changes. [05:58.000 --> 06:03.000] Since 20 years I2P is existing and gets developed, [06:03.000 --> 06:11.000] and there are two transport protocols. [06:11.000 --> 06:14.000] TCP and UDP. [06:14.000 --> 06:20.000] TCP as also used within other overlay networks was a long while, [06:20.000 --> 06:28.000] so around four years already upgraded to so-called NTCP2, which is much modernized, [06:28.000 --> 06:33.000] so the TCP communication was already pretty well done in the last four years. [06:33.000 --> 06:39.000] But UDP, which is something where you just blow out messages to the network, [06:39.000 --> 06:46.000] and I'll talk about that in a minute, which is fast for I2P in an I2P context, [06:46.000 --> 06:50.000] was not modernized since 15 years. [06:50.000 --> 06:56.000] And the developer of I2P, they worked one full year on modernizing UDP, [06:56.000 --> 06:59.000] and they call it SSU2. [06:59.000 --> 07:06.000] So when you hear SSU2 in the context of I2P, it's UDP. [07:06.000 --> 07:13.000] If you want to dig deeper, then please take a look at noiseprotocol.org, [07:13.000 --> 07:19.000] that's very important also for other overlay networks you might have heard of, [07:19.000 --> 07:27.000] and the developer team of I2P has borrowed quite some things from WireGuard, [07:27.000 --> 07:32.000] VPN, and also from Qwik, and there are some RFCs around, [07:32.000 --> 07:37.000] so please dig deeper by using these hints. [07:37.000 --> 07:42.000] Then the cryptography had to be updated too. [07:42.000 --> 07:47.000] There will be more work coming in the upcoming years, I know for sure. [07:47.000 --> 07:51.000] But it's now already on a quite good state. [07:51.000 --> 07:53.000] All right, seven minutes to go. [07:53.000 --> 07:56.000] What were the goals? [07:56.000 --> 08:01.000] UDP, the performance, is simply much better in an overlay network [08:01.000 --> 08:05.000] than TCP. [08:05.000 --> 08:12.000] Me as an application developer, which is creating a fully distributed storage layer [08:12.000 --> 08:15.000] on top of the I2P network, [08:15.000 --> 08:22.000] performance to communicate between the nodes in the I2P network is an issue. [08:22.000 --> 08:27.000] So for me, it was always the choice to take UDP, [08:27.000 --> 08:35.000] and I implemented a gossiping protocol to realize this fully anonymous blockchain, [08:35.000 --> 08:38.000] and so this distributed storage layer, [08:38.000 --> 08:44.000] and I needed UDP that the peers could communicate within each other. [08:44.000 --> 08:51.000] So for me, this was really an important goal that they could improve the performance a lot. [08:51.000 --> 08:57.000] Nationally, as you know, there are countries in this world where communication is not that easy [08:57.000 --> 09:00.000] as we have the luck to be here in Europe, [09:00.000 --> 09:03.000] so obfuscation is a topic. [09:03.000 --> 09:07.000] For all those people, for all the whistleblowers and the journalists [09:07.000 --> 09:11.000] which are using I2P in critical countries, [09:11.000 --> 09:13.000] they must not be detected, [09:13.000 --> 09:16.000] and I2P is one of the premier solutions too [09:16.000 --> 09:23.000] for such people which need communication on a very confidential level. [09:23.000 --> 09:25.000] So the obfuscation was a big topic, [09:25.000 --> 09:33.000] and additionally, again, UDP is easily attackable, [09:33.000 --> 09:37.000] so the developers had to look into the security problems they had, [09:37.000 --> 09:41.000] and they did, and they did a good job. [09:41.000 --> 09:46.000] Right. [09:46.000 --> 09:50.000] There are a few other challenges of UDP, like the fragmentation of messages. [09:50.000 --> 09:54.000] You know, you have a long message, you want to send it through the network, [09:54.000 --> 09:58.000] but it gets chopped up into pieces, and UDP is not reliable, [09:58.000 --> 10:04.000] so the developers really had some challenges to solve in the last 12 months. [10:04.000 --> 10:09.000] But the fact is, they have implemented strong solutions, [10:09.000 --> 10:13.000] and today, if you look at the release notes of I2P, [10:13.000 --> 10:20.000] I2P is in a much better state. [10:20.000 --> 10:29.000] And this is what I want you as a core take out of this presentation. [10:29.000 --> 10:35.000] I2P gives you, since 20 years, real privacy by design, [10:35.000 --> 10:38.000] and the developers did a good job the last 20 years. [10:38.000 --> 10:42.000] But now, with this performance improvement, [10:42.000 --> 10:46.000] and that's my personal view on their work, [10:46.000 --> 10:49.000] they really made a major step forward. [10:49.000 --> 10:56.000] Because UDP is for application developers really important within the I2P network. [10:56.000 --> 10:58.000] That's my personal view on it. [10:58.000 --> 11:02.000] Please feel free to criticize me afterwards in the Q&A session outside [11:02.000 --> 11:06.000] if you see this differently, or if you have a different view on it. [11:06.000 --> 11:08.000] I'm happy to hear that. [11:08.000 --> 11:16.000] But these reductions, they are relevant. [11:16.000 --> 11:23.000] For us as application developers, we directly felt this performance impact. [11:23.000 --> 11:27.000] In November, when the release was, so four months ago, [11:27.000 --> 11:29.000] or three and a half months ago, [11:29.000 --> 11:35.000] the performance in our blockchain test network improved very much. [11:35.000 --> 11:39.000] And although I believe from research point of view, [11:39.000 --> 11:44.000] we have quite some work ahead of us to, [11:44.000 --> 11:49.000] skeptically and very critically looking at the latest changes [11:49.000 --> 11:53.000] to see whether some weird box have been introduced. [11:53.000 --> 11:56.000] The first impression of the two months is, [11:56.000 --> 11:59.000] that's a new generation of I2P. [11:59.000 --> 12:04.000] So for me, the performance impact is really, really relevant. [12:04.000 --> 12:08.000] We're on the target. [12:08.000 --> 12:10.000] We're seeing the target line. [12:10.000 --> 12:15.000] Takeouts. [12:15.000 --> 12:23.000] After 20 years of development, I2P is the leading peer-to-peer privacy by design network [12:23.000 --> 12:25.000] which is a transport layer only, [12:25.000 --> 12:28.000] which gives you today very modern cryptography, [12:28.000 --> 12:36.000] very modern possibilities to use as an application developer. [12:36.000 --> 12:48.000] The performance increased significantly since last November. [12:48.000 --> 12:52.000] And if you feel as a researcher too, [12:52.000 --> 12:57.000] or as an application developer to take a closer look at I2P, [12:57.000 --> 12:59.000] now it's a good time. [12:59.000 --> 13:04.000] Either you can invest as a researcher trying to break the anonymity [13:04.000 --> 13:08.000] and present it at an upcoming conference, [13:08.000 --> 13:11.000] or you try to create some applications on top of it. [13:11.000 --> 13:16.000] I believe currently is a good point to take a look again at I2P [13:16.000 --> 13:22.000] because now it's really quite fast to use and it's also fun to use. [13:22.000 --> 13:27.000] On GitHub, so that's in the lower right corner and you'll find it online on GitHub, [13:27.000 --> 13:34.000] you'll find Docker images which help you to get started with I2P really quickly. [13:34.000 --> 13:36.000] You can, because a peer-to-peer network, [13:36.000 --> 13:39.000] to create it as a test network is quite complex. [13:39.000 --> 13:44.000] But we created here simple images for you which you can start with Docker Compose. [13:44.000 --> 13:46.000] You have all the containers running, [13:46.000 --> 13:57.000] your member of the I2P network and you can write your application on top of this network. [13:57.000 --> 13:59.000] Here is a list of sources. [13:59.000 --> 14:03.000] Please do your own research too [14:03.000 --> 14:12.000] because privacy by design also means that we hope to motivate US developers [14:12.000 --> 14:17.000] to take a look, a very close look at the documentation, [14:17.000 --> 14:20.000] a very close look at the source code to be skeptical [14:20.000 --> 14:27.000] because privacy is such an important topic for us as developers. [14:27.000 --> 14:32.000] So we're always very, very pleased if we get critical feedbacks [14:32.000 --> 14:36.000] on the development of the stuff we're doing. [14:36.000 --> 14:39.000] Thank you very much for your time. [14:39.000 --> 14:42.000] Have a great 4STEM. Thank you. [14:48.000 --> 14:51.000] Thanks, Koran. Really nice talk. [14:51.000 --> 14:56.000] Again, if you have questions, please grab them outside and be happy to answer. [14:56.000 --> 14:58.000] I hope. [14:58.000 --> 15:10.000] Thank you.