[00:00.000 --> 00:12.000] So, the next presentation is a NIM mixed net from Yoon Hockblatt. [00:12.000 --> 00:14.000] So, welcome. [00:14.000 --> 00:16.000] Yeah, thank you very much. [00:16.000 --> 00:18.000] Right. [00:18.000 --> 00:20.000] It's great to be here. [00:20.000 --> 00:23.000] And the presentation all seems to be working. [00:23.000 --> 00:27.000] Right, so I'll talk about NIM. [00:27.000 --> 00:33.000] The title is Intro to a New Anonymous Communication Network. [00:33.000 --> 00:39.000] There's quite a lot of overlap in the previous presentation about the concepts involved. [00:39.000 --> 00:42.000] And who am I? [00:42.000 --> 00:47.000] My name is Yoon Hockblatt, or sometimes I go by John for simplicity. [00:47.000 --> 00:49.000] I'm a Swedish developer. [00:49.000 --> 00:54.000] I spend my days writing rusts, back-end type of things. [00:54.000 --> 00:58.000] I do C++ and scientific computing in a previous life. [00:58.000 --> 01:00.000] Yeah, living Stockholm. [01:00.000 --> 01:02.000] Yeah, that's me. [01:02.000 --> 01:07.000] Right, so the NIM mixed net. [01:07.000 --> 01:08.000] What's the NIM mixed net? [01:08.000 --> 01:09.000] So, basics. [01:09.000 --> 01:11.000] I mean, this is obviously free software. [01:11.000 --> 01:14.000] The source code is available on GitHub over there. [01:14.000 --> 01:16.000] It's Apache licensed. [01:16.000 --> 01:18.000] It's mostly written in Rust. [01:18.000 --> 01:20.000] All the back-end stuff is written in Rust. [01:20.000 --> 01:22.000] Some of the front-end things is TypeScript. [01:22.000 --> 01:24.000] This was in the past. [01:24.000 --> 01:29.000] This has been funded by some EU projects. [01:29.000 --> 01:32.000] And currently, there is a Switzerland-based startup [01:32.000 --> 01:35.000] with us, the majority of the development. [01:35.000 --> 01:37.000] But yeah, it's an open project. [01:37.000 --> 01:40.000] And of course, we welcome public contributions. [01:40.000 --> 01:46.000] And yeah, it's quite deeply rooted in university as well, in university research. [01:46.000 --> 01:51.000] We have some, you know, work-loss researchers associated with the project. [01:51.000 --> 01:55.000] So, you know, the concepts aren't things that we sort of, you know, came up ourselves. [01:55.000 --> 02:00.000] This is, you know, state-of-the-art research. [02:00.000 --> 02:03.000] Right, so what is the problem that we're trying to solve? [02:03.000 --> 02:07.000] You know, we had the usual suspects, the, you know, government surveillance [02:07.000 --> 02:09.000] and surveillance capitalism. [02:09.000 --> 02:14.000] And, you know, if these four, which of these two is a problem, you know, [02:14.000 --> 02:17.000] very much depends on where in the world you are. [02:17.000 --> 02:20.000] In some parts of the world, these things aren't that big of a concern. [02:20.000 --> 02:22.000] For other people, this is serious matter. [02:22.000 --> 02:29.000] This is, you know, of grave concern to some people, depending on who you are and where you live. [02:29.000 --> 02:32.000] And what is the aspect that we try to tackle here? [02:32.000 --> 02:40.000] Because there's a lot of privacy platforms that sort of, to sort of, to try to attack this challenge [02:40.000 --> 02:42.000] from different perspectives. [02:42.000 --> 02:47.000] The NMEXnet is a network layer, or it's a transport layer thing. [02:47.000 --> 02:53.000] And the main challenge to be focused on is that it has become clear in the sort of the last ten years [02:53.000 --> 02:59.000] that there's now so much surveillance going on, and there are some entities that collect so much data [02:59.000 --> 03:03.000] on a global scale that they almost get some sort of like a god-sized view of the network. [03:03.000 --> 03:08.000] They can monitor the network on a planet scale, and they can do, they can correlate, [03:08.000 --> 03:14.000] they can correlate using leaked metadata, your transmission patterns, your packet sizes, timings. [03:14.000 --> 03:22.000] They can do end-to-end correlations, even though like your data is sent entirely encrypted the whole way, [03:22.000 --> 03:28.000] or obfuscated, but still, if you can sort of monitor like all endpoints, [03:28.000 --> 03:33.000] you can sort of still draw conclusions, you can identify who talks to who. [03:33.000 --> 03:39.000] And you know, as we know, who talks to who is sometimes more important than what they say from a sort of surveillance perspective. [03:39.000 --> 03:45.000] So that's the sort of the angle, the challenge that we try to talk about this. [03:45.000 --> 03:52.000] And so now I'm sort of taking a step back here, so I'm referring to the NIM platform, [03:52.000 --> 03:59.000] which is, then I use this quote here, a decentralized, incentivized mixed-net plus prior credentials. [03:59.000 --> 04:04.000] And sort of, yeah, my talk here will be to try to unpack what all of this means, [04:04.000 --> 04:11.000] and we're going to start then with what I think is sort of the core part is the mixed-net, the word in the middle there. [04:11.000 --> 04:21.000] I think if you use something like Tor as a starting point, that's sort of a very good first step to understand what it is. [04:21.000 --> 04:26.000] And just like Tor and just like the previous talk, it's an overlay network, [04:26.000 --> 04:36.000] in the same way as I2P uses onion routing, where all packets are wrapped in layers of encryption to sort of hide the fact, [04:36.000 --> 04:40.000] to hide the end destination of each packet. [04:40.000 --> 04:46.000] It's based on the Loupix design, if you know a little bit about mixed-nets, you've probably heard about Loupix. [04:46.000 --> 04:54.000] I put in a few citations here at the bottom, if you want to read a bit more about these things. [04:54.000 --> 05:04.000] It uses Sphinx packets, so that the idea is that all packets are wrapped into these identically looking and identically behaving packets, [05:04.000 --> 05:10.000] to sort of to hide some sizes and timings. [05:10.000 --> 05:18.000] And also, each packet as it moves through, because mixed-net is, I mean, okay, so something I forgot to mention, [05:18.000 --> 05:25.000] mixed-net is very much what it sounds. It's data, you send through data, multiple hops, you mix data as much as you can, [05:25.000 --> 05:28.000] through a cloud of nodes. [05:28.000 --> 05:33.000] At each node, I'm going to have some pictures on the next slide to illustrate it better. [05:33.000 --> 05:41.000] But yeah, on each hop in the network, you add things like random timings, which affect the reorders traffic, [05:41.000 --> 05:49.000] you add cover traffic, which cover traffic can appear in many ways, either between nodes, [05:49.000 --> 05:59.000] but also, for example, if you use a client to connect to network, to transmit data, you emit Sphinx packets at a steady average rate, [05:59.000 --> 06:05.000] so it's not a steady rate, but it's probabilistic how you send the packets. [06:05.000 --> 06:11.000] But you send the steady stream of packets, either fake or real ones, so when you have real data to send, [06:11.000 --> 06:16.000] you just fill up the packet stream, the packets they send out, fill up with real data. [06:16.000 --> 06:22.000] So from the outside, you can't tell when you're actually sending, when you're bursting data. [06:22.000 --> 06:29.000] You attach SERBs, so single-use reply blocks in your packets, so that when you, if you make a request across the network [06:29.000 --> 06:37.000] to get something back, you attach these headers, these metadata, so that the response can be layer encrypted and sent back, [06:37.000 --> 06:46.000] so that on the other side, the server doesn't know where the destination is, so you hide your identity, [06:46.000 --> 06:53.000] but you still allow the other side to reply back to you. [06:53.000 --> 07:00.000] It's a picture, the first step, the first one there, ordinary VPN, and a VPN doesn't give you any anonymity, [07:00.000 --> 07:07.000] it just moves trust, so the guy in the middle there, you can still see where data is coming from, where it is going. [07:07.000 --> 07:12.000] The second one, you have things like Tor, where you have these nodes in the middle, where you open up a circuit [07:12.000 --> 07:17.000] through the swarm of nodes, and you pump data through. [07:17.000 --> 07:25.000] And here you have mixed-net setup, where in each packet is mixed individually, so you don't open up a circuit, [07:25.000 --> 07:29.000] like Tor, for example, you send up, each packet is sent as an individual pass-through. [07:29.000 --> 07:36.000] And the idea here, the crucial thing is that on the other side, you see these packets there, they are now, [07:36.000 --> 07:41.000] they're colored white now instead of red, and they're the same size, and you shouldn't be able to tell, [07:41.000 --> 07:48.000] you can't tell, you can't correlate the data on the other side compared to on the sender side, [07:48.000 --> 07:57.000] which you can in many other systems, because you can't correlate transmission patterns, timing sizes. [07:57.000 --> 08:05.000] So even if you can monitor all the data, all the exit data from this mixed-net cloud, [08:05.000 --> 08:16.000] you still can't correlate who talks to who. That's sort of the key thing here. [08:16.000 --> 08:22.000] And yeah, so if we go back then to this quote, so decentralized, incentivized mixed-net plus price credentials, [08:22.000 --> 08:31.000] what we mean by incentivized, we mean that the network directory, which keeps track of all the mixed-nodes [08:31.000 --> 08:39.000] and gateways are a bit like exit nodes in Tor, they are constantly being monitored. [08:39.000 --> 08:43.000] So the network directory is effectively a set of validators running a consensus protocol, [08:43.000 --> 08:50.000] and they keep track of all the mixed-nodes, how well they mix traffic, how well they contribute capacity to network, [08:50.000 --> 08:58.000] giving them limbs for it, which in turn can be turned around and used to acquire bandwidth credentials, [08:58.000 --> 09:03.000] coconut credentials, it's the academic term. [09:03.000 --> 09:08.000] And the idea is that we also, because this is always a problem when you have something like this, [09:08.000 --> 09:14.000] with volunteers you only get so far, anonymity or privacy, it loves company, you want to disappear in the crowd, [09:14.000 --> 09:20.000] so you want to encourage people to provide capacity to the network at the same time as they're using it, that's the idea. [09:20.000 --> 09:26.000] Because otherwise it becomes difficult to scale up above a sort of base level. [09:26.000 --> 09:33.000] But if you want to make this available for the broader public, you need more capacity. [09:33.000 --> 09:38.000] And this is a way that we hope we can achieve this. [09:38.000 --> 09:48.000] And these private credentials, the idea is that you break the linkability between your identity and your right to use the service. [09:48.000 --> 09:56.000] And there's a very deep topic on its own, there's a citation, there are some cryptographic buzzwords here, [09:56.000 --> 10:02.000] as well as that are re-randomizable, means that if you use the same bandwidth credential multiple times, [10:02.000 --> 10:13.000] it's indistinguishable from multiple people using different credentials from the person redeeming these. [10:13.000 --> 10:23.000] But yeah, the idea is you want to break the link between your identity and your right to use something. [10:23.000 --> 10:31.000] And yeah, okay, so the first word there, decentralized, it's not too much to add there, [10:31.000 --> 10:39.000] we have a running network, it's 500 mix-nodes currently, and yeah, the vision is that this becomes self-running, [10:39.000 --> 10:49.000] it shouldn't have an antifragile funding model, we don't want it to be reliant on a specific company [10:49.000 --> 10:56.000] or some funding body or donations or anything, we want this to have robust, [10:56.000 --> 11:05.000] robustly running on its own, run by the community entirely, long-term, that's sort of the vision here. [11:05.000 --> 11:09.000] Even though currently we have a startup that sort of does the most of the development, [11:09.000 --> 11:19.000] in long-term we should be able to hand this off as sort of the idea. [11:19.000 --> 11:26.000] There's a picture, so this is all running currently, this thing that is currently sort of in deployment [11:26.000 --> 11:31.000] or sort of being rolled out or these credentials currently is free to use the main network, [11:31.000 --> 11:37.000] we have all these clients, there's SoxFi clients, there's Awasom clients, [11:37.000 --> 11:44.000] there's a native running client exposing a web socket, the mix-nodes up there, [11:44.000 --> 11:50.000] when you use a user you connect to the gateway, which is like entry and exit nodes for a tour, [11:50.000 --> 11:56.000] you mix the traffic, you exit on the gateway, you can have service providers, [11:56.000 --> 12:06.000] there's the set of validators keeping track of all the nodes in the system. [12:06.000 --> 12:11.000] Yeah, there's a lot to take in here, probably a lot of details there, [12:11.000 --> 12:16.000] I'm not sure it's all visible towards the end, but yeah, that's pretty much it. [12:16.000 --> 12:17.000] Thank you for your time. [12:17.000 --> 12:27.000] Yeah, thank you a lot for a nice talk. [12:27.000 --> 12:32.000] Yeah, thank you for listening, and I think that we have some time, [12:32.000 --> 12:38.000] so theoretically we could spend it asking a question at least for two minutes here [12:38.000 --> 12:43.000] and then after it we can discuss it outside. [12:43.000 --> 12:53.000] Hi, can you imagine the NIM framework also to be integrated into another proof-of-stake-based cryptocurrency [12:53.000 --> 12:56.000] as a back-end in the future maybe? [12:56.000 --> 12:57.000] What did he say first? [12:57.000 --> 13:03.000] Can you imagine that the main part of the NIM framework like the mix-nodes and everything around it [13:03.000 --> 13:07.000] can also be attached to an existing proof-of-stake-based other cryptocurrency [13:07.000 --> 13:10.000] that is not currently part of your ecosystem? [13:10.000 --> 13:21.000] Well, a big use case of this is that this is sort of on the network layer, [13:21.000 --> 13:24.000] so that means it's a big use case. [13:24.000 --> 13:28.000] You have all these other private systems where in this crypto space [13:28.000 --> 13:31.000] where they have these privacy-preserving services, [13:31.000 --> 13:33.000] but they still leak metadata at the bottom layer. [13:33.000 --> 13:37.000] They still leak metadata when you use broadcast transactions and things like this. [13:37.000 --> 13:42.000] So I think to integrate this in other systems in this space, [13:42.000 --> 13:48.000] then it will be in that layer, sort of the transport layer. [13:48.000 --> 13:53.000] So yes, there's a lot of potential for integrating with other privacy platforms, I think. [13:53.000 --> 13:57.000] In general, there are a lot of privacy platforms, [13:57.000 --> 14:00.000] and I think what we need is a robust ecosystem. [14:00.000 --> 14:03.000] There is no single solution that solves all our problems. [14:03.000 --> 14:07.000] We need a robust ecosystem for different solutions for different types of problems [14:07.000 --> 14:09.000] or different categories of problems. [14:09.000 --> 14:12.000] I mean, I don't see this as a competitor to other systems. [14:12.000 --> 14:14.000] It's more of a complement to each other. [14:14.000 --> 14:19.000] For example, when you add random delays, for example, [14:19.000 --> 14:24.000] that of course means you sort of compromise, you give up a bit of latency, [14:24.000 --> 14:28.000] which works very well for asynchronous communication, [14:28.000 --> 14:33.000] but might not work so well for other categories of applications. [14:33.000 --> 14:36.000] So I think something like this is also the complement store. [14:36.000 --> 14:39.000] It doesn't replace the store. It sort of complements it. [14:39.000 --> 14:42.000] Yeah. [14:42.000 --> 14:44.000] Okay. Thank you again, Yun. [14:44.000 --> 14:46.000] If there's any more questions, just grab me afterwards. [14:46.000 --> 14:59.000] Just go there and ask questions.