Freenet: com construir serveis d’internet sense servidors centrals
Freenet proposa substituir el backend centralitzat per una xarxa entre iguals on contractes, delegats i interfícies web formen aplicacions com River, Delta o Atlas. La presentació n’explica l’arquitectura, l’estat actual i els límits.
La idea central: eliminar el punt de control
La presentació parteix d’una diagnosi política i tècnica: bona part d’internet depèn d’empreses que concentren els servidors, les dades i la capacitat de decidir què continua disponible. El ponent cita diversos episodis de pressió institucional sobre plataformes per defensar que aquesta centralització converteix qualsevol servei en un punt fàcil de censurar, intervenir o tancar. Aquests exemples formen part del seu argument; el nucli verificable del vídeo és la resposta arquitectònica que proposa Freenet.
Freenet vol construir serveis digitals sense un servidor privilegiat al centre. Això no significa que no hi hagi ordinadors que emmagatzemin i processin informació. Significa que aquesta funció la reparteixen els dispositius dels participants i que cap empresa controla el backend únic del qual depèn tothom. Si un node desapareix, la xarxa ha de poder trobar altres camins i conservar el servei entre els usuaris interessats.
El navegador continua sent la porta d’entrada. La diferència és que, en comptes de parlar amb un servidor remot d’una companyia, es connecta a un node local de Freenet. Aquest node forma part d’una xarxa entre iguals que localitza, valida i sincronitza les dades necessàries.
Contractes, delegats i interfícies
L’arquitectura separa una aplicació en tres peces. Els contractes contenen l’estat compartit i les regles que determinen si una actualització és vàlida, com es combina amb altres canvis i com se sincronitza. S’executen com a WebAssembly en nodes que no cal considerar fiables. No són contractes financers ni requereixen una cadena de blocs: són estructures de dades replicades amb lògica pròpia.
Els delegats s’executen localment i custodien dades privades, com ara claus criptogràfiques. Una interfície pot demanar a un delegat que signi o desxifri alguna cosa, però no ha de rebre la clau. Aquesta separació limita el dany que podria causar una interfície maliciosa i permet que les dades sensibles es mantinguin al dispositiu.
La tercera peça és la interfície d’usuari. Pot ser una aplicació web convencional, descarregada també des de Freenet, que es comunica amb el node local. També hi pot haver clients natius o eines de línia d’ordres. Segons la documentació del projecte, contracte, delegat i interfície són els tres components bàsics per crear una aplicació descentralitzada sobre la xarxa.
Sincronització sense una autoritat central
En un sistema distribuït, diferents nodes poden rebre canvis en ordres diferents. Freenet exigeix que cada contracte defineixi com resumir l’estat, calcular-ne les diferències i combinar actualitzacions de manera convergent. Els nodes intercanvien resums compactes i només transmeten els fragments que falten, en lloc de copiar tota la informació a cada pas.
El contracte també valida les modificacions. En una sala de xat, per exemple, pot comprovar signatures, membres i permisos abans d’acceptar un missatge. La xarxa transporta i replica l’estat, però és el codi públic del contracte qui en fixa les regles. Aquesta transparència permet auditar la lògica, tot i que llegir o compilar WebAssembly no és una garantia automàtica que una aplicació sigui segura.
Freenet està implementat principalment en Rust i el ponent el compara amb un sistema operatiu per a aplicacions distribuïdes. Per trobar contractes utilitza una topologia de món petit i un encaminament adaptatiu. A la xerrada descriu Renegade, un algoritme de veïns més propers amb una mètrica apresa que intenta predir quin node trobarà més ràpidament un contracte. Cada node aprèn de la seva pròpia experiència i ajusta les rutes sense un coordinador global.
River: xat descentralitzat amb límits explícits
River és l’aplicació més madura que es mostra. Cada sala és un contracte de Freenet i pot continuar disponible encara que el creador es desconnecti. Hi ha sales públiques, invitacions, moderació basada en l’arbre de persones convidades i una eina de terminal anomenada riverctl.
Les sales privades xifren el contingut d’extrem a extrem. El propietari genera una clau simètrica de sala i la distribueix als membres mitjançant criptografia asimètrica. La clau es rota periòdicament i quan s’expulsa algú. Això evita que els nodes que allotgen l’estat puguin llegir els missatges, però no converteix River en una eina d’anonimat total.
El mateix projecte adverteix que les metadades no queden ocultes: altres nodes poden observar que una sala existeix, quan hi ha activitat i una aproximació de la mida o del nombre de membres. La xerrada també compara el model de clau compartida amb protocols com el Double Ratchet de Signal: si la clau d’una sala es filtra, els missatges del període anterior a la següent rotació poden quedar exposats. Per això la pàgina oficial qualifica River i Freenet d’alfa i recomana no emprar-los encara per a comunicacions sensibles.
Delta, Atlas i Git sobre la xarxa
Delta funciona com un constructor descentralitzat de webs i blogs. El contingut s’escriu en Markdown, es publica a Freenet i es pot automatitzar amb una eina de terminal. La idea és oferir una alternativa a serveis com WordPress.com o Squarespace sense lligar la publicació a un proveïdor central.
Atlas aborda el descobriment i la cerca. En lloc d’imposar un únic motor o algoritme de recomanació, vol que cada usuari triï quins rastrejadors, etiquetadors i sistemes de recomanació considera fiables. La presentació ensenya una implementació inicial amb descripcions generades automàticament, però la documentació oficial encara descriu Atlas com una capa en fase de disseny. És, per tant, una direcció de treball més que no pas un cercador descentralitzat consolidat.
Freenet Git permet publicar repositoris, clonar-los i intercanviar canvis a través de Freenet. Recupera el caràcter distribuït original de Git, tot i que encara no incorpora tot l’ecosistema d’una forja com GitHub: incidències, revisió de codi, integració contínua o gestió completa d’organitzacions requeririen altres components.
Entre els projectes futurs, el vídeo esmenta Freenet Mail, una xarxa social anomenada Raven i el mercat Harvest. El ponent els situa en etapes molt primerenques. Harvest no implicaria crear una nova criptomoneda; la intenció declarada és que diferents sistemes de pagament puguin integrar-s’hi.
Una transició pragmàtica, però no del tot descentralitzada
La barrera d’entrada d’una xarxa entre iguals és evident: demanar una instal·lació abans de veure res frena l’adopció. Per això el projecte ofereix una prova de River des del web mitjançant una passarel·la centralitzada. La identitat i les dades privades s’hi desen xifrades, amb una clau conservada al navegador, i després es poden moure a un node local.
És una solució de transició, no la forma final promesa per Freenet. Durant la prova, la disponibilitat depèn d’aquesta passarel·la i, per tant, reapareix un punt central. La versió plenament distribuïda requereix instal·lar el node per a Windows, macOS o Linux. La pàgina d’inici ràpid també avisa que les versions alfa s’actualitzen sovint i envien telemetria de diagnòstic.
Interoperabilitat com a conseqüència del disseny
Un dels arguments més interessants de la xerrada és que els components són combinables per defecte. River podria aportar comentaris a una web de Delta; Freenet Git podria obrir una conversa de River per discutir un canvi; Atlas podria indexar contingut de diferents aplicacions; i una identitat portable podria acumular reputació en més d’un servei.
Aquesta interoperabilitat és possible perquè l’estat i les regles són públics i les aplicacions no queden tancades darrere d’una API empresarial. Però continuarà depenent de formats compatibles, manteniment i bones decisions de seguretat. Que dues peces es puguin connectar no garanteix que la integració sigui correcta ni que els usuaris entenguin els permisos que concedeixen.
Què està resolt i què continua obert
La demostració prova que Freenet ja pot sostenir una xarxa, sincronitzar contractes i executar aplicacions reals. River té usuaris, Delta publica contingut i hi ha eines per desenvolupar i automatitzar aplicacions. El codi és obert i el projecte disposa de documentació tècnica i d’un llibre blanc que diferencia els mecanismes implementats dels experimentals.
Tanmateix, encara és un sistema alfa. L’adopció és petita, hi ha correu brossa, no hi ha client mòbil i algunes peces només són prototips. La moderació, l’abús, la recuperació d’identitats, les actualitzacions de contractes, les metadades i l’experiència d’usuari són problemes importants. A més, una xarxa sense operador central transfereix responsabilitats als dispositius, als desenvolupadors de contractes i a les comunitats que els utilitzen.
La proposta de Freenet no és fer desaparèixer les màquines que donen servei, sinó eliminar-ne el propietari privilegiat. La xerrada presenta una arquitectura coherent i aplicacions que ja la posen a prova. El seu èxit, però, dependrà menys de l’eslògan «sense servidors» que de si pot convertir aquesta descentralització en un sistema segur, comprensible i prou útil perquè la gent vulgui mantenir-lo.
Contrast i context
Fonts consultades
-
01
Freenet Project Freenet Whitepaper
-
02
Freenet Project Building Decentralized Apps on Freenet
-
03
Freenet Project River: group chat with no company in the middle
-
04
Freenet Project Try Freenet: Join River
-
05
Freenet Project Frequently Asked Questions
-
06
GitHub freenet/freenet-core
Font de treball
Transcripció amb marques de temps
Consulta la transcripció
-
0:00
, obre el vídeo en una pestanya nova
Well, thank you so much. Um, I'm actually sanity on slash reddit uh x. Um, pretty pretty much if you see a sanity, it is uh probably me. I've been uh naming myself on the internet for for quite some time now. Um firstly, I'd really like to thank Fudo for uh hosting this talk and for all of their uh wonderful support over the years. Um this is going to be more of an update talk, but I'll I'll get into a little bit how Freenet works just so if you're not familiar with it, you're not completely lost. But if you would like more of a technical deep dive into how Freenet works, I recommend uh going on YouTube and search for Freenet lives and you'll find the talk actually the the last talk I gave here uh back in February and it'll give you uh I think a much better idea of how all the different pieces work and just what the shape of it is. But uh but if you don't know that, don't worry. Uh I'll I'll give a little bit of a background here.
-
1:19
, obre el vídeo en una pestanya nova
The internet's honeymoon is over. uh between the mid90s when I would say the internet originally kind of entered the mainstream and now uh governments at least in the west have taken uh pretty relatively handsoff approach with the internet um which you could certainly contrast with uh countries like China and Iran and Saudi Arabia which uh all have been censoring the internet quite aggressively. uh virtually since it first emerged. Uh but unfortunately that era is over. Uh in the UK in uh two uh 2023 there were 12,000 arrests uh for offensive online posts on platforms like X. That's 33 arrests per day. Um, and in this case, the the process is really the punishment. These people are arrested. They're often dragged out of their homes by the police. Um, and they go through the whole legal process. Um, and it it just blows my mind that this is happening in in a western country. uh uh France uh uh arrested and charged the founder of Telegram uh for what its users were posting on the platform. Uh the European Union has fined X 120 million over uh what they would call uh disinformation. Um, just imagine the the imagine the chilling effect that this would have on anyone operating uh a online chat platform or social network. California has passed a law that will mandate that operating system creators uh include uh age checks and effectively IV IP verification into their operating systems and app stores. So this is not just limited to to Europe. Um, the UK has also recently been talking about their intention to uh shape shape the YouTube recommendation algorithm uh to promote what they would consider trusted sources of information. And this is just the idea of governments quietly modifying recommendation algorithms to hide information they don't like or promote information they do like is particularly insidious because at least with with overt censorship, you know, it's being censored. But with recommendation algorithms, you don't know what those algorithms are doing and you don't know how those algorithms uh are being manipulated. in some cases by governments. So yeah, this is not China or Iran. This is this is all happening in uh western democracies.
-
4:44
, obre el vídeo en una pestanya nova
So what's the solution? Um well I don't claim that that Freenet is the complete solution to this problem but a big part of the problem is that every app on the internet runs on servers that are sitting in data centers that are controlled by a corporation that is uh that is subject to pressure uh and manipulation by governments. Freenet has there are no servers. Uh with freenet you just have peers and no single peer is super important or controls the entire network. So by decentralizing the network and getting rid of these servers which are centrally managed and controlled. Freenet makes it a lot more difficult. It eliminates these single points of failure that make it easier for governments to apply pressure and manipulate what people are doing um on the internet. And so nobody actually runs the network. We create we create the software and we release that software. Um, but the network is decentralized and self-organizing. And so they're really uh I've often said that somebody could put a gun to my head and demand that I remove something from Freenet and I simply wouldn't have the ability to do it. And that in a way that actually protects the creator of of the system because if you can't manipulate it then it's hard for people to pressure you to do that. you can legitimately say we simply can't do it. So where does Freenet fit relative to the internet as it exists today? Uh so
-
6:43
, obre el vídeo en una pestanya nova
with the with the traditional internet the user interacts with a web browser if they're using the web even a lot of uh e even if you think you're using a uh clientside app it's often just a kind of uh custom designed web browser. Uh so users interact with a web browser and that web browser talks to servers sitting in data centers uh over typically the HTTPS or websockets protocol. Um and really the web browser is the user in fact the user's own computer is just a um really an interface to these centralized systems. So with with Freenet uh one of the design goals of Freenet was to make it effectively a kind of drop in relation uh a drop in replacement uh for the worldwide web. So with Freenet you also use Freenet through a web browser. Uh you don't have to but that's kind of one of the most uh common ways to talk to it. uh but in this case your web browser instead of talking to some servers sitting in a remote data center over HTTPS and websockets uh your web browser talks to the freenet pier that's running locally on your computer and that freet pier is an equal part of a global freet network and all of the data that you might access all of the shared data that you might access is distributed across Ross this uh global peer-to-peer network in such a way that its existence doesn't depend on any one uh person server or organization and in fact if you start to uh let's say if you started to shut down freenet nodes the rest of the network would transparently move their workload to other peers in the system and so freet in many respects literally roots around censorship. So what does what does Freenet uh look like today? Uh when I gave my talk back in March, we actually got the network really working in a basic way uh in December of last year and since then we've been uh building the system. So back in February uh when I last spoke uh we have the various different parts of freet.
-
9:24
, obre el vídeo en una pestanya nova
So we have contracts which store shared data on the peer-to-peer network. Uh we have delegates which store private data on your own computer. And this one of the principles that freenet uses is that your private data should stay on hardware that you control. And this of course is in stark contrast to this era of where everything is stored in the cloud. Virtually nothing is stored on hardware uh that users control. So what have what have we been doing since February? Well, we've been doing many things. One of which is we've been building various different apps uh on top of the freenet platform. Um, so probably the most developed of those is called River. Uh, which is a group chat app. Um, that was working back in February, but now it's got all kinds of features like private rooms, private messages, etc., etc. And that's actively used and you can play with it today and chat with people on it. We've we've even started to get spam on it, which uh I guess is kind of a right of right of passage of sorts, but we have mechanisms to deal with that. Uh we've built Delta, which is think of it like a decentralized Squarespace. It makes it very easy to build your own websites on Freenet, share those websites with other people. You can create a blog. Uh it's almost like a a simple version of WordPress. Um we've built uh and I'll go into more depth on these a little bit later on but we built Freenet Git. Uh so those of you who uh may remember that the original Git's original design was actually decentralized where different people could maintain uh their own repositories uh on their own computers and it made it easy for them to share changes and then git kind of like a lot of things got a lot more centralized with the advent of um GitHub and other uh similar forges and uh but the beauty of git is that because it was originally designed to be decentralized it actually works really really nicely with freenet and I'll talk talk a bit about how that works and then there there are other apps that are a little bit further out uh raven which is a social network we're building mail which is an email like system built on freenet uh harvest which is a decentralized marketplace think like Etsy for Etsy, but decentralized. Um, one of the things that we've really been uh thinking a lot about is how do you get people using a system like this uh conveniently? And so we've done a lot of work to make Freenet very easy to install. We've got installers for uh the major desktop operating systems um which work nicely, but a lot of people are are reluctant uh to install software uh from a strange nonprofit they haven't heard of before. So
-
12:57
, obre el vídeo en una pestanya nova
we decided that we would try to give people u way to onboard onto Freenet and to try Freenet out without actually uh having to install anything on their computers. So, you can actually don't do it right now because I'm talking, but uh if you if you wanted to, you could go to freenet.orgtry and in uh another click, you'll actually find yourself in the official River uh chat room for Freenet and it'll just run in your browser. Nothing needs to be installed. It'll work on uh your browser, it'll work on your phone, uh anything like that. Um so uh this mechanism it's it's a little bit contradictory because we're all about decentralization and of course this is this is a centralized mechanism but the goal of this is is to give people the ability to try freet out and and maybe start using it before they go to the trouble of of installing it. Um but the critical idea here is that let's say you use freet here maybe you create an identity on river you do other things with other apps and then you think okay this this works uh I want to be completely decentralized with this and so you can just click a button you can click uh you install freenet on your own computer which is very very quick um takes like less than in a minute uh on most operating systems. And then you just click the move to my peer button and a few seconds later all of your private data um that's stored on our servers will be transferred to your own peer and from that moment on you're operating in a completely decentralized way. Uh, one other thing I'll add is that um the your private data when it's being stored on our uh try.frenet.org server um that private data is encrypted at rest. So when you initially go to this system, it'll create a private cryptographic key um that is stored in your web browser. And so if you're not actively using this service, we can't decrypt your private data. It's only decrypted when you actually use it and when your web browser provides uh its private key to our ser server. So even though it's centralized, uh we go a lot further than most services in terms of uh uh in terms of uh respecting people's privacy and respecting ownership of their data. But obviously the goal is to get them uh to get them to install Freenet and keep their private data on their own computer which is the best place for it in in our opinion. So so one of the one of the key ideas with Freenet is that Freenet is very transparent. um the shared data in Freenet and the rules that govern how that shared data is modified. I guess you might call it the business logic.
-
16:20
, obre el vídeo en una pestanya nova
All of that is in public contracts that anyone can read and audit. And so you could contrast this with uh any any number of companies that for example have recommendation engines uh and you have no idea how these recommendation engines work. You know, you you've no idea how they work internally. And so you would have no idea, for example, if a government was pressuring that company to modify their recommendation engine with the goal of uh manipulating you. And so the the beauty of and then some companies like so for example X I think they've several times they've announced that they're going to open source uh their core algorithm and they've kind of open source some stuff but then it it ends up staying out of date for months and it's hard to believe that they're not updating their co code base in that space of time and I think they recently said that they're going to uh release the code to their algorithm again. But the problem is that you've got really no way to know that the code that's actually running on their servers is the same code that they've published on GitHub. Freenet doesn't have this problem. You can all you can see the contracts on Freenet. Uh you can decompile compile them to web assembly. You can give that web assembly to your favorite large you know most trusted large language model and ask it to vet what the code is doing and so on. And so freet just brings a level of systems transparency that just doesn't really exist today in any other context. Um yeah so so the the kind of important components of freenet the contract this is you could almost think of contracts it's almost like a database table. Uh it's both shared state uh the data that's shared and also the code that governs uh what's whether the state is valid whether the state is uh should be transmitted over the network or can be transmitted over the network. It also governs um it also governs how uh the state is updated and the conditions under which it can be updated and it also uh pro the contract specifies how you efficiently synchronize state across the network uh when it changes and delegates uh delegates are really freenet's approach to privacy. You could think of delegates as being a little bit similar to a web browser's local storage, but delegates are actually far more powerful because kind of like a contract, a delegate is actually web assembly code. And if uh another component of a component of free like let's say with river uh your the group chat your private key is stored in a delegate. Now, if this was a web browser with local storage, uh the JavaScript in your web page would retrieve the private cryptographic key from the local storage and then use it to do encryption and decryption. With delegates, it's different. With delegates, the delegate does not give up the private key. Instead, you have to ask the delegate, hey delegate, can you sign this? And the delegate knows who is sending that request to it. So if that request is coming from the river user interface for example then it might uh then it might trust it. If it's coming from somewhere else it might not. But the point is that by bundling it's almost like an object-oriented uh philosophy where you uh bundle the data together with the code that determines the data's behavior. that applies both to delegates for private data and to contracts for uh shared state on the network. So a critical idea with freenet and I think one of the things that made the worldwide web uh particularly powerful is that and I the first one I can think of that gained widespread adoption is Gmail. Uh Gmail is uh a pretty sophisticated uh piece of software in its own right that's implemented in JavaScript. And so when you go to Gmail uh the Gmail website, you're actually downloading a piece of software to your browser. And then that piece of software in your browser controls your uh uh allows you to interact with the centralized services that store your emails and and so on the different things that Gmail does. Um freenet works in a similar way in that uh a user inter a user interface on freenet like river uh is downloaded to your web browser. uh it's typically implemented in web assembly in in our case although it could be JavaScript and uh it in but instead of talking back to centralized servers uh that user interface talks to your local Freenet pier and through your freet pier interacts with contracts on the network and uh delegates storing local private data and so there's no there's no kind of there's nothing like an app store with freet any more than there's an app store with the worldwide web that's unnecessary um although of course you don't ha you you're not limited to just using freenet through your web browser you can also build native apps so for example we've got a command line tool called riverctl that means that from the command line anything you can do in the river user interface you can do using this command line tool. And that's great news if you want to uh script things, if you want to uh get your uh favorite LLM to interact with River in various different ways. And that's kind of true of a lot of uh a lot of things with Freenet. There's kind of a friendly web user interface, but we also make available command line tools so that everything can be automated and scripted. So, Freenet is almost we think about Freenet almost like an operating system. And so, um when we're designing Freenet, it's it's implemented in Rust. So, it's kind of a low low-level language, a systems programming language uh that allows you to allows your code to be very very efficient. uh it's very good in terms of concurrency and managing thread pools and all of that. So um Freenet is really built kind of like an operating system in that every every aspect of it we've tried to optimize it as much as possible. Certainly far from perfect yet. Um but the way we think about it is really in terms of h how do we how do we make this as efficient as it can possibly be? And so one example of how we do this. So an important part of what Freenet peers are actually doing typically is they are helping other peers find contracts on the network. So my peer if it's looking for a particular contract it it's connected to a bunch of other peers in the network and it will determine it'll say well okay which of these other peers is going to help me find this contract fastest and the I I almost compare this to to the idea of branch prediction um in uh CPU design. So the way that the way that Freenet solves this problem is it actually treats it as a supervised learning problem with machine learning. And we use a uh supervised learning
-
24:58
, obre el vídeo en una pestanya nova
algorithm that I call Renegade that's uh it's been open source for years. Uh also implemented in Rust. Uh, Renegade is a k nearest neighbors um, uh, learning algorithm with a learned metric. So what the what that means is that it it basically works by if it's trying to make a prediction about what will happen in a certain set of circumstances, it will look at past circumstances that were similar in order to uh, predict what will happen in the future. because often, not always, but often the past is the best predictor of of the future. And the reason that I went with K nearest neighbors is that it's it's an algorithm that does really really well at making accurate predictions even when it's got a relatively small amount of data. So the idea is that even when a freenet pier first starts up, it doesn't have any data, but then as it interacts with its neighbors, it starts to learn, oh, you know that this this neighbor is really good at finding this contract or uh it'll kind of try to find patterns that will allow it to predict which of its neighbors will uh will be able to find the contract it's looking for fastest. And so you can kind of think of Freenet almost like u uh this global network of learning peers that are constantly learning how to find things more quickly and also adapting to changing circumstances. So let's let's say if uh let's say if a particular I don't know may maybe a undersea cable uh goes down or gets degraded and certain peers that were really fast in the past are now slower. Uh Renegade will figure that out very quickly and the uh individual freet peers will adapt to that in in their rooting uh very quickly. And if any of you need a uh good generalpurpose supervised learning algorithm, uh Renegade, I think it's under the LGPL license. Um and it's implemented in Rust and you're welcome to use it. My my other design goal with Renegade is I just wanted a supervised learning algorithm that you didn't have to tune that it just performed well with the default settings and you don't need to mess around with uh uh multivariate testing and and all of this kind of thing to get it working well. Um it's it's fast and it just works the first time and it's very efficient. uh particularly it's very data efficient which would contrast it with something like a neural network where you need vast amounts of data to train them and that just wouldn't fly in in this circumstance.
-
28:10
, obre el vídeo en una pestanya nova
So what's up and running today? Um we've got uh River which is our group chat system. Uh we've got Delta which I mentioned which is kind of like our our decentralized Squarespace. you just write stuff in markdown and uh uh you can kind of link between different pages and so on. Um there's Atlas uh which is pretty interesting. Atlas is our discovery and search engine. Um I I would say it it's like maybe the world's first truly decentralized search engine. Uh but you could kind of say that for almost for a lot of the stuff we're doing with freenet. Um but the the Atlas is directly trying to solve that problem I mentioned earlier where the UK government is trying to pressure uh YouTube and other corporations to manipulate uh their recommendation algorithms. And so Atlas, the idea with Atlas is to decentralize that process and empower the user so that ultimately the user can determine what recommendation algorithm they're using and how that recommendation algorithm works. So just imagine instead of just kind of watching whatever videos YouTube happens to serve up to you, you can tell it like enough with the cute puppy videos. I'm I'm all cute, puppied out. Um, and so it it really empowers the user. And then, as I mentioned earlier, we've also uh built a conduit for git that allows people to publish git repositories on freenet. So, yeah. So, so River um I don't know has anyone has anyone tried it yet? Oh, hundreds of hands have gone up here. Um, so River is a a pretty standard group chat. Um, if if you um if you join it, the user interface will will be very familiar. Um, and of course because it's built on Freenet, there's no there's no company behind it. The the everything about the system is decentralized. uh each room on freet each room on river uh is its own freet contract. So they're they're uh it's not all stored in the same place. And uh River's actually been up for a while. Like we've had people using it for months at this point. But what's new is that uh we've supported we've added
-
30:55
, obre el vídeo en una pestanya nova
support for private chat rooms. Um, previously it was kind of more like uh an IRC type thing where where the assumption was that that rooms were fairly public. Um, but uh we now have private rooms. So all messages and uh most of the information in the room is encrypted using a symmetric encryption algorithm. Um the room owner uh determines what that encryption key is and then shares it with all of the members of the room uh using asymmetric cryptography uh to encrypt it so only they can read it. And then we rotate that key. It it it's rotated once a week normally or if anyone is is banned from the room uh then that encryption key is is rotated. Um and so yeah so so uh through this encryption it enables private rooms and we also support direct messages which between users which are also encrypted. Um so but I want to be clear about exactly what uh river uh does do and doesn't do. So it's encrypting the message content. Uh it's uh it encrypts the kind of some room metadata like the room uh description and uh obviously if you're not a member then you don't have the the room symmetric key so you can't uh read any of this stuff and if you get kicked out of the room for whatever reason uh then the symmetric key will be is rotated so you can't read anything going forward. But there are um you do need there are constraints that are imposed by the way freeet works. So uh it doesn't hide the fact that a room exists. So people can see the room contract on the network. They can't really see any of the messages within the room because they're all uh encrypted. But you can see things like the timing of messages and you could guess at guess at the message size. Um, and you can also you can see how many members the room has. Uh, but you can't you can't see their uh you can't see their kind of friendly names because those are encrypted. Um, but it's kind of a mixture. It's not uh uh there is some information that's probably less important does leak. Um and in particular uh so something we don't if you look at signal which is you know the uh uh probably the first thing people think of when they think of uh privacy preserving group chat. So, signal does something uh has a mechanism called a double ratchet and the this is really geared around the idea of what happens if the private symmetric key leaks um is somebody going to be able to read every message that's ever been sent to the room or are they going to be able to see every read every future message that's sent to the room? And the idea of this double ratchet mechanism is that it means that if the message leaks if if the private if the uh symmetric key leaks then people can only uh can only read that one message and they can't then use that symmetric key to go and read all past messages or all future messages. uh River uh River takes uh uh I would say a less of aggressive approach. So if the if the private key leaks and somebody gets it that shouldn't have it, they will be able to read messages up until when that key is rotated, which could be uh up to a week. Uh so I think it's I think it's important to to kind of be transparent about this kind of limitation although I would argue that the things that you really care about being encrypted uh river is encrypting.
-
35:16
, obre el vídeo en una pestanya nova
So, Delta uh which is which is our kind of Squarespace or or um uh it's just it allows you to build websites in markdown and then you can have hyperlinks between these pages. Um and so it's pretty simple. You can embed images, that type of thing. Um it's very good if you want to create a blog or something like that. Um, and there's also a DeltaCTL. So, there's a command line tool, so you can completely automate Delta. Uh, you can have your AI agent update it or or do whatever you need to do. So, it's it's it's very flexible, but also uh very easy to use and of course completely decentralized.
-
36:06
, obre el vídeo en una pestanya nova
So, Atlas, which is our uh discovery search engine, um the problem of discovery, the problem of how people find stuff on the internet, I I think is it's critical. And one of the things that makes it critical is that if the recommendation engine, if the algorithms that are being used to decide what you see are not transparent, then it's very easy to manipulate people. It's very easy to hide things from people and it's it's just very very dangerous. And yet that's how everything works. Nobody outside Google really knows how the Google algorithm works. Um, no. And if Google is pressured by governments to manipulate that algorithm, there's really no easy way for for people to know. So, this is extremely dangerous. And I think decentralizing how we find information, how we're exposed to new information is critical. And that's exactly what what Atlas does. Um, so with that, but at the same time, you want to make it flexible. You want to empower the user, but the user shouldn't need a PhD in order to use the the search engine or the recommendation engine. So we we provide intelligent defaults. So if you were to go to Atlas on Freenet today, um you would uh it we have a default crawler which just kind of crawls everything on Freenet and makes it available and then we use a a large language model to come up with to create a uh neutral uh description of uh the whatever is being linked on atlas. So the beauty of that is that it kind of t the whole SEO thing where people are kind of trying to manipulate you into visiting your website based upon the snippets that appear on Google. That's all irrelevant because a large language model is just describing what these things are in a neutral way and it's just a lot more uh uh pleasant. Um, and of course you don't have to. Maybe you don't like large language mo, maybe you don't like AI, maybe you don't like large language models. You don't need to use that. Uh, the beauty of of Atlas is that it's really up to you. So you can decide which crawlers you trust. You can decide which labelers you trust to characterize the information that you're finding uh on Atlas. Uh so
-
38:50
, obre el vídeo en una pestanya nova
freenet git this is uh uh pretty simple and actually I was surprised by how well it worked. Um but you can install freenet git I think it's just the rep githubfreenetfreenet.git git. Um, and it allows you to publish a Git repository in Freenet completely decentralized. Uh, you can clone, fetch, push, all of the kind of standard uh, git stuff that people do. But I think the bigger picture here is that Freenet Git is hopefully the first step in decentralizing these huge software forges like GitHub uh that most people including including us at the moment uh still use. Um, obviously GitHub does a lot more than just uh uh store Git repositories. It's got a sophisticated web interface. It's got GitHub issues. It's got uh uh continuous integration or all of that kind of thing. So, GitHub definitely does a lot more than what Freenet Git does at the moment. Um but the potential is there and I think Freenet Git illustrates that. um we could eventually uh create an entirely decentralized software forge. Uh and of course we we'll be the first to use it when it's uh uh when it's ready to use. Uh
-
40:32
, obre el vídeo en una pestanya nova
so what's coming next? So uh we've got Freenet Mail which is an email like uh service running on Freenet. This is pre-alpha. We're still testing it. I mean, you you might get it working, but uh uh it it won't be easy. Uh we've got Raven, which is also at a prototype stage. Raven is is a social feed. Think a truly decentralized Facebook or X. Um and uh Harvest is another uh system that's in early design. And Harvest you could think of as ets a entirely decentralized Etsy. So it allows people to to buy and sell things. And so what we're what we're doing with these is it's not we're not naive enough to think that oh wow we're we're going to replace Etsy with Harvest overnight. It's it's it's not really about that. It's it's about demonstrating that you can build all of these critical uh use cases in a completely decentralized way and in a way that's convenient for people to use where it's it's it's not a challenge. But one way in which I think freenet is actually aside from the decentralization part fundamentally better than the way the internet works today is the fact that every system built on freet and every component of every system built on
-
42:07
, obre el vídeo en una pestanya nova
freenet is interoperable by default. It's like all of these systems are kind of being built in Lego and other people building other systems can integrate with either the system as a whole or with some piece of it. So for example, if um uh if Atlas has uh a recommendation uh has a recommendation engine, uh somebody else can integrate with the Atlas recommendation engine and present those recommendations in a way that makes sense uh for them. So this is this is quite different to the way the internet works now where most of these most of the major services that everyone uses are not often deliberately not interoperable with each other. Uh, I think there was a there was a brief moment in time, I think I would pin it at around uh 2007 where all of all of these tech companies decided they needed to build APIs and everything should be an API. And they all did build APIs and then shut them down one to two years later for one of two reasons. The first is it made life a little bit too too easy for spammers and other people doing malicious stuff. And the second reason they shut it down is because it was helping people compete with their business models in some case. So the internet is it could be interoperable but it's not and often deliberately so. But everything in freenet is interoperable by default. I can see the contracts that your app is built on. I can see how they work and if I want to integrate them into my system in order to provide a better service to my users and potentially your users, uh I'm free to do that. And so some examples you could you could see how uh freenet git could be combined with river to allow people to chat about different code changes. Uh you could combine Delta with River to uh build in comment threads on on your Delta blog. Um ghost keys which I haven't mentioned in this talk but uh if you Google freenet ghost keys you'll find uh some talks where I talk about them in detail. Um but ghostskis are think about think of them as a uh decentralized cryptographic capture mechanism. So a way to verify that somebody is real. Uh that unlike captures it it actually works. Um and that could be that could be combined with something like harvest for uh the reputation of a store. And so really what we're building here is apps like River and Delta and so on without platforms. These these apps are they're running on Freenet. Yes. But Freenet is not a platform in the sense that it's not owned. Freenet is a collective of all of the people that are running uh the Freenet software.
-
45:26
, obre el vídeo en una pestanya nova
And uh I would encourage you to try it. Uh if you don't want to, if you're not ready to install Freenet yet, just go to freenet.org/try. Uh you could even do it on your phones and and uh uh should work pretty well. Or if you're ready to install Freenet and try it that way. Just go to freenet.org/quickstart and it is um it's a it's a very quick installation process. Freenet despite its uh sophistication, the binary is only about 11 megabytes. Uh which is kind of one of the nice things about Rust is that it lets you uh do that.
-
46:04
, obre el vídeo en una pestanya nova
And so with that, I'll invite questions. And I think uh for it's better for the YouTube if if uh if you can uh >> Oh, over here. Come over here, everybody. Um, [laughter] why did you um why did you do River before you did the mail app? Seems in terms of killer apps. And >> that's a that's a great question. Um, I think because group chat is something that can be useful even if you're just doing it with four or five friends. Um whereas email is something where it's to be useful, it's got to be a lot more pervasive. Um and so we focused on group chat as our kind of initial stake in the sand because it it kind of scales down as well as scaling up in terms of you know you you can have just two people using River and it's useful to both of them. um as opposed to other thing like a social network for example two people on a social network not very interesting. >> Hey Jack. Hey, what if I have a contract that I want to control who can use it and and maybe even stratified capabilities like anybody can see it exists and this is my cool new app whatever [clears throat] >> but you have to ask me to use it or maybe I only want certain other types of users to touch it can I is there a stratification capability kind of approach >> 100% yeah so so um it depends on what you mean by use but there are several >> my understanding is contract is the code right it's the wom with the state >> and it it's a building block to something potentially bigger >> absolutely yes [clears throat] so the contract so one of the things you you can modify the data that's stored in the contract and the contract itself decides who's authorized to do that so in the case of let's say with river where the contract corresponds to a river room um the contract will only allow people to add messages to the river room if those messages are cryptographically signed by an authorized member of the room. >> And so it's it this is the beauty of of using web assembly. It's just code. You can design it in any way you want and all of that is encap encapsulated within the contract. If you want to limit who can read the data, uh, then you need to encrypt it. Um, and so that's how River does private rooms. Um, it just encrypts the data. >> Cool. Ian, I think I asked this last time, but I kind of forgot. Um, so you obviously, you know, I mean, you're you're doing a lot of this, but what's your developer community like right now in terms what's your critical mass? How's that feeling? because obviously you'd create apps for Freenet, right? >> Yeah. Yeah, absolutely. Um yeah, so we've got so I'm working on Freenet full-time and we have two developers based in Spain that are part-time and then we've got kind of a community of volunteers around that. So people building uh so people have been kind of building apps like somebody built what was it um a paste bin type app uh and so we're it's really kind of start I it's kind of starting to snowball in the sense that we're getting you know probably hundreds of people every day join the room that haven't join our river rooms that haven't been there before. Um, and uh, I think it's when you're when you're trying to popularize a platform, it can often be a kind of slow ramp up, but we've been seeing uh, positive response and people are actually building on it and AI has actually made that a lot easier. So, uh, we've made uh, Claude code skills available that understand all of the complexity of building a uh, a fet app. And so you can just tell Claude, "Hey, I've got this idea for a decentralized app." And of course, using AI is often not quite as simple as just telling it what you want, but you don't need you. You could easily build apps on Freenet using clawed code without knowing Rust, for example. And so that helps a lot as well. Are the payments on the marketplace, are they going to be just in fiat or are you thinking about anything else? >> Yeah, that's that's a great question. So, um, Harvest, we're trying to make it agnostic to the payment mechanism. Uh, I assume that it'll be cryptocurrency just because it's >> it's going to be like a third party handling that. >> Yeah. So, so yeah, we're we're not building a a cryptocurrency, but the the idea is that uh a vendor on Harvest would say like, "Hey, you know, uh here's my Bitcoin address. You can send it." And then there would be an integration with Bitcoin. Uh in order to validate that the payment has been sent, but we're not we're not reinventing cryptocurrencies. Uh but yeah. >> Yeah. just trying to see if if it's going to be beyond fiat or is it just going to be >> Yeah, absolutely. I I expect that that will be primarily cryptocurrencies. >> Okay. >> Thank you. >> Uh Ian, thank you again. Thank you very much. Thank you.