 Thank you. I'm Dean. I'm a researcher at status and I'm gonna quickly introduce a project that I work on on the side with a Bunch of other people called ultralight beam This is the outline. I don't think this is accurate anymore because I like deleted slides in my uber, but we'll see So quickly as Quickly as to what or who is working on ultralight beam It's a project by me and then three guys at chainsafe called Eric Cayman and Greg We started working on it as a project that as New York and have been like working on it since then on the side So it hasn't been getting as much love as it's supposed to get but we'll be working on it again like a pickup speeds pretty soon So firstly, what is ultralight beam ultralight beam is a transport agnostic mannet for sending arbitrary data A mannet is a mobile ad hoc network, which you can think of a bit as a mesh net, but nodes aren't there persistently so a mannet is a network where topology changes like quite a lot so for example if all our phones in this room started Connecting with each other and like nodes keep going all fine and coming back and the topology has to reorganize Every or in short bursts of time that will be considered a mannet yeah, so Here's a more formal definition mannet refers to a continuously self-configuring Infrastructuralist network of mobile devices connected wirelessly Not only mobile devices there can be like bigger things like radios or whatever, but that's just like the rough definition So where do things like mannets become useful? In areas like during protests when an adversary turns off cell towers It's super useful because I can text someone who's in Some accessible range by hopping through multiple phones up until a message reaches the specific period supposed to reach Or like at a festival or at a concert when there's like 40,000 people trying to connect to one cell tower Everyone knows how that is the network is off or if you're in some obscure location Which has happened probably at a ton of Ethereum meet-ups already where there's like a ton of people and you're trying to message someone and it is impossible Or you don't have 3g or whatever Another place is like for example a school building Students love texting, but what's the point of it hitting a cell tower if the person I'm texting is sitting right next to me There's no point in wasting date on that when I can just connect to them directly and send messages peer-to-peer Or in remote villages in the middle of nowhere where there is no cell connection, but there's electronic devices. It can be used There's another interesting research facet there, which is called van nets or vehicle ad hoc networks Or in delay tolerant networks, which are interesting where like if a car goes into these areas It could collect messages and then broadcast it once it hits a cell tower later on which is like email kind of like mail, but still electronic so the goal of this is kind of to be a really simple Library that any app can integrate into their application and the beauty of it is if my app integrates it and your app integrates it They don't need to know about each other, but we'll relay each other's messages So for example if I have WhatsApp and WhatsApp integrates this and someone else uses telegram and telegram integrates this in an ideal world Where there's no adversary what will happen is my message will be Propagated by any other node in the network so that the reach is pretty far as long as people are using this protocol How it works is essentially every phone or every device that runs ultralight beam is a node That has a series of services and a series of transports Services are things like for example, what's that would have its own WhatsApp service or what we've built now is like a Ethereum service so you can get send Ethereum transactions over this and then transports or things for example like Bluetooth would be a transport or Wi-Fi direct or ham radios or whatever and then there's like a delegate Where messages are forwarded to if they were not routed successfully through the services So yeah the transports we have Integrated now or Bluetooth BLE the next thing we're working on is Wi-Fi direct Which has been a little bit of an effort because that is only actually supported on Android and it's supported kind of obscurity And then one of our friends who's like a hobbyist Radio dude is also working on a radio transport so we could send messages a lot further This is just a code example because I took the presentation from Our workshop at DevCon where we were teaching people how to implement their own transports Ideally or as you can see here everything is pretty simple The only thing that a developer is essentially exposed to is a send and a listen function Where send they send some arbitrary message to some address and the listen function Just receives messages that have been sent to that specific device The nice thing is as well devices can send and listen to Multiple transports at the same time So if I'm peered with someone over Bluetooth and they're peered with someone over Wi-Fi direct And I'm trying to send it to that person who the middleman is peered with the message would Hope through the central person who understands the transport that I'm using and then forward it to that other transport Yeah, as said currently we are supporting BLE for a short distance communication That works for computers and mobile phones, so we've done like examples of multiple Macs and iPhones and Android phones connecting and Forwarding and broadcasting messages to each other near futures Wi-Fi direct as well as like the ham radio stuff that I was talking about Services as that are those advertised capabilities of a note and a magnet Here we have some examples, which is like an Ethereum RPC Chat messaging or like if there was a generic state channel interface that works over the entire ham radio So you can send through or sent those through the network This is mostly relevant to the relayer, which is a special kind of node So that it knows how to handle UB messages relays are the ones who would then like for example if it was an Ethereum transaction Broadcast it to the Ethereum network. Those are like the Usually like a laptop that can receive a lot more messages and is connected to some internet Endpoint or whatever Yeah, I said the relayer generally lives on the edge of the mannet so it like is within the Mannet and then has access to like internet or whatever so they can broadcast the messages further. What's interesting with this is Multiple mannets could be connected by use having these edges that then send the message over the internet to another edge that then Propagates it within their own network Yeah, so Bluetooth is what we currently support Wi-Fi direct is what we're working on next There's a github ultralight beam the current implementations that we have are swift and there's a Kotlin one in the process We were also looking at writing a go one But the Bluetooth support there is kind of crappy and every operating system has their own Bluetooth drivers and Bluetooth APIs So it's suboptimal to do something. That's not that device specific For Bluetooth are there any questions? Maybe a little bit about how the messages would be encrypted in this network if and another one Is there any limitation on like normal Wi-Fi in mobile in terms of how how much of a network you can create? Well, so the first question was encryption That's the messages are just arbitrary binary data. So you can have a handshake before where you agree on Signing key and then encrypt the messages end-to-end. We are not doing that per default yet But what we're working on is implementing a lip-p to-p style handshake so that we can do that and then For the limitation of how many devices? Bluetooth devices or BLE devices can centrals can connect to eight other devices at a time and Their distance I think is something like 80 meters uninterrupted. So that's with Bluetooth Wi-Fi direct I think has a cap of 16 devices on Android and the distance there is a lot further I'm not entirely sure the main problem which you have is The packet size because BLE for example limits the packet size but what the Apple implementation does which is used by iPhones and Macs is it already pages those Messages into multiple pages so that you have windows which are then automatically regrouped again on receiving But I don't think the Android version works the same way So we also need a bringing compatibility so that pagination works the exact same way Hi, I wonder how do you do the initial pairing of two devices via Bluetooth low-energy given that Google Doesn't allow getting their own Bluetooth Mac address anymore We don't rely on Mac addresses because those on Bluetooth are invalid anyways Mac addresses on Bluetooth are generated Every time the device is discovered So you need some static peer ID and then you advertise yourself as oh, I am this peer You can find me through this information in Bluetooth and I'll prove to you that I'm that peer by signing a message beforehand So what is the routing like because it's that's the interesting a bit of a hard question So with with man at routing. There's like three specific algorithms I forgot like the exact description of all three that we're doing a ton of research on it So what you can either do is just burst essentially, which is what we're doing now We just broadcast to the entire network then what some other algorithms do is When I receive a message I check my peers and they give me or they always in Short windows tell me who their peers is so I always know where it's gonna go after the next hop And you can start like building more accurate algorithms like that But the routing one is one of the big questions and magnets on how to solve that Yeah, I feel like this kind of thing could have been made like ten years ago Like we had the technology we had the use cases any reasons why that hasn't really been a thing that you know No, there's so there's been examples. There was fire chat Which was used during the umbrella protests in Hong Kong And that was shut down because the guy who developed it work or lives in China and at one point There was a knock on his door which told him to stop working on that application And so he also stopped working on that and then there's Brigify But Brigify is an open source and it only works over Bluetooth So the goal of this one is to be open source work on multiple transports and have multiple implementations So there's already been these like rough experiments But I think I think the main problem is the technological challenge or we've had the stuff for it But there's always been like certain challenges like with Bluetooth implementation Bluetooth was never low energy enough for it to be useful Wi-Fi direct hasn't been stable up until now. You still don't have Wi-Fi direct support In iOS devices natively and so like everything or all the things have been there But to be able to put it all together That's only like kind of come now and then of course the routing problem is huge But there's like a ton of interesting research coming towards that now, and I think there's way more interest in that now Because we've seen like after The Arab Spring and things which are happening now. There's more use case for that Thank you. All right. Thank you very much