% Created 2022-09-16 Fr 17:09
% Intended LaTeX compiler: pdflatex
\documentclass[presentation]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fixltx2e}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage[force,almostfull]{textcomp}
\usepackage{marvosym}
\usepackage{wasysym}
\usepackage{amssymb}
\usepackage{hyperref}
\tolerance=1000
     \usepackage{color}
\usepackage{minted}
\usepackage{parskip}
     \newcounter{framenumberwithoutappendix}
\usetheme{Berlin}\usecolortheme{dove}
\newcommand{\carlo}[1]{\color{blue!65!black}{#1}}
\newcommand{\arne}[1]{\color{red!50!black}{#1}}
\setbeamercolor{block body alerted}{fg=orange,bg=darkgray}
\setbeamercolor{block title alerted}{fg=cyan,bg=black}
\setbeamertemplate{blocks}[rounded]
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage[ngerman, english]{babel}
\usepackage{tikz}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.5em}
\usepackage{uniinput}
\DeclareUnicodeCharacter{B7}{\ensuremath{\cdot}}
\usepackage{natbib}
\usepackage{morefloats}
\hypersetup{
colorlinks,
linkcolor={red!50!black},
citecolor={blue!30!black},
urlcolor={cyan}
}
\usepackage{lmodern}
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{pdfpages}
% make PDF reproducible as by https://tex.stackexchange.com/questions/229605/reproducible-latex-builds-compile-to-a-file-which-always-hashes-to-the-same-va/313605#313605
% For pdfTex:
\pdfinfoomitdate=1
\pdftrailerid{}
\pdfinfo{   /Producer () /Creator () }
\usetheme{default}
\author{Dr. Arne Babenhauserheide}
\date{}
\title{Freenet: the long game}
\subtitle{Evolution of Freenet since 2007\\
\alert{15 years in 15 minutes}\\
Mitigating the pitch black attack\\
and other changes}
\setbeameroption{show notes}
\setbeamertemplate{navigation symbols}{}
\hypersetup{
 pdfauthor={Dr. Arne Babenhauserheide},
 pdftitle={Freenet: the long game},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 28.1 (Org mode 9.5.5)}, 
 pdflang={English}}
\begin{document}

\maketitle
\definecolor{bg}{rgb}{0.98,0.98,0.98}


\section{freenet}
\label{sec:org4b7eb0d}
\subsection{freenet}
\label{sec:org52213f7}
\begin{frame}[label={sec:orgdd08799}]{Freenet since 2007}
1999 Freenet started as a thesis by Ian Clarke, known to friends as \emph{sanity}.

In 2007 it added its Darknet-Mode:

\begin{alertblock}{Freenet Darknet}
Friends connect to Friends.

\begin{center}
\includegraphics[height=0.4\textheight]{friend-to-friend.png}
\end{center}
\end{alertblock}
\end{frame}

\subsection{friend-to-friend}
\label{sec:orgd11c40f}
\begin{frame}[label={sec:org1c0ce29}]{Friend-to-Friend like \ldots{}}
The Friend-to-Friend Darknet mode works conceptually \alert{like WhatsApp},
where you give a Facebook server your friends’ phone numbers and then
you can talk \alert{directly}:

\begin{center}
\includegraphics[height=0.6\textheight]{friend-to-friend-chat-whatsapp.png}
\end{center}
\end{frame}


\begin{frame}[label={sec:org7ba8f0a}]{But without the server}
Different from WhatsApp, \alert{Freenet avoids the central server}, so no one
gets your friends’ phone numbers.

\begin{alertblock}{Without the server}
\begin{center}
\includegraphics[height=0.6\textheight]{friend-to-friend-chat-freenet.png}
\end{center}
\end{alertblock}
\end{frame}

\begin{frame}[label={sec:org18a3c21}]{Friend-of-a-Friend routing}
By building a network on friend-connections where others can find what
you write even when you’re offline, Friend-to-Friend Freenet enables
global pseudonymous publishing that is very hard to block.

\begin{alertblock}{FOAF network}
\begin{center}
\includegraphics[width=0.9\textwidth]{friend-to-friend-foaf.png}
\end{center}
\end{alertblock}
\end{frame}

\begin{frame}[label={sec:org8eba6e8}]{Chaos Computer Congress 2005}
The new Friend-to-Friend Freenet was \href{https://player.vimeo.com/video/22488244?title=0\&byline=0\&portrait=0}{presented} by Ian Clarke and Oskar
Sandberg at the 22c3 in 2005, and it showed a beautiful method for
confidential communication and censorship resistance.
\end{frame}

\subsection{chaos}
\label{sec:orgbbc9d87}
\begin{frame}[label={sec:org7b5799a}]{The Attack}
Then Christian Grothoff et al. found a flaw. And \href{http://grothoff.org/christian/pitchblack.pdf}{proved it}.

\begin{center}
\includegraphics[width=.9\linewidth]{pitch-black-paper-screenshot.png}
\end{center}
\end{frame}

\begin{frame}[label={sec:org5b02220}]{“But Opennet works”}
For 14 years we lived in denial, because “Opennet works”.

\begin{alertblock}{The mitigation}
But in 2021 we finally \alert{\href{https://nlnet.nl/project/Freenet-Routing/}{mitigated the attack}}.

\begin{center}
\includegraphics[height=0.5\textheight]{freenet-logo-blue-gpl.png}
\end{center} 
\centering
→ \alert{\href{https://freenetproject.org/freenet-build-1490-released.html}{build 1490: “pitch black streaming”}} ←
\end{alertblock}
\end{frame}

\subsection{15 years}
\label{sec:org4159a25}
\begin{frame}[label={sec:org4e1f9ed}]{15 years}
That’s why now is the time to talk about the changes in Freenet
since 2007. 15 years of continuous improvements to the
Friend-to-Friend Freenet network.

Which is a \colorbox{darkgray}{\textcolor{orange}{Darknet}}, because that
is the only privacy preserving way to make this work:

\begin{alertblock}{protect the privacy of persons sharing data}
\emph{This covers the needs for protection expected from a secure data broker … for Multi-Party Data Exchange in IoT for Health}
--E. Benoit and J. Sliwa, Bern University of Applied Sciences, Switzerland, 2020,
\href{https://www.igi-global.com/chapter/using-freenet-as-a-broker-for-multi-party-data-exchange-in-iot-for-health/257911}{in Applied Approach to Privacy and Security for the Internet of Things}
\end{alertblock}
\end{frame}

\begin{frame}[label={sec:org4af9085}]{14 years to mitigate pitch-black}
In 2005 Freenet showed that an Opennet with \alert{arbitrary connections
cannot ever be secured well enough}, but that a \alert{friend-to-friend model can}
be. In 2007 it was working, but the pitch black attack was published
which showed how to utterly destroy that friend-to-friend network.

It would take us 14 years to mitigate the attack. During that time
Freenet progressed a lot. And Opennet lived far longer than we
expected.
\end{frame}

\begin{frame}[label={sec:org770a802}]{Features and Friction: 15 years of Freenet development}
Those 15 years — 14 years of development plus the one year since the
mitigation was in place — shaped Freenet from a tool for the dedicated
into an easy to use platform that covers the needs of most
communication from Social networking over Blogging to Video-on-Demand
without servers or central point of failure.

But let us begin with the lost: technologies that faltered.
\end{frame}

\section{lost}
\label{sec:org3b1e03e}
\subsection{lost: technologies that faltered}
\label{sec:orgb54671a}
\begin{frame}[label={sec:org8bb7184}]{lost}
In its 22 years of existence, Freenet has seen tools that did not
stand the test of time — either because their model did not work out,
or because they did not see maintenance or were replaced by newer
tools.
\end{frame}

\subsection{the dead}
\label{sec:org0b384d5}
\begin{frame}[label={sec:org9dc3651}]{Commentmaker Plugin}
\end{frame}
\begin{frame}[label={sec:org176a494}]{Activelink freesite-tags}
\end{frame}
\begin{frame}[label={sec:org9b054fa}]{Thaw torrent-alikes}
\end{frame}
\subsection{the undead}
\label{sec:orgf04b26f}
\begin{frame}[label={sec:org2257424}]{Frost}
\end{frame}
\subsection{the sleeping}
\label{sec:orgde002d4}
\begin{frame}[label={sec:org7e257a3}]{Freetalk}
\end{frame}
\begin{frame}[label={sec:org47784f2}]{Spider and Library}
\end{frame}
\section{interactive}
\label{sec:orgfed9674}
\subsection{interactive}
\label{sec:org82b3bc5}
\begin{frame}[label={sec:org7af0ae7}]{interactive}
\end{frame}
\begin{frame}[label={sec:orgd626654}]{}
\end{frame}
\subsection{the long-lived}
\label{sec:org1568bc8}
\begin{frame}[label={sec:org0fb32ce}]{FMS and Flip: Forums and IRC}
\end{frame}
\begin{frame}[label={sec:org80477d7}]{Freemail}
\end{frame}
\begin{frame}[label={sec:orgc726b88}]{WoT: The disruption antidote}
\end{frame}
\begin{frame}[label={sec:orgfc332d5}]{Precisely updating and subscription-based}
\begin{center}
\includegraphics[width=.9\linewidth]{oadsfff-wot-thesis-title.png}
\end{center}

\href{https://github.com/freenet/plugin-WebOfTrust/blob/master/developer-documentation/core-developers-manual/OadSFfF-version1.2-non-print-edition.pdf}{Bachlor-thesis: Optimizing a distributed Spam Filter for Freenet (OadSFfF).pdf}
\end{frame}

\subsection{the easy}
\label{sec:orgad3ce1e}
\begin{frame}[label={sec:org7c97191}]{Sharesite}
\end{frame}
\begin{frame}[label={sec:orgb5c15f8}]{Sone}
\end{frame}
\begin{frame}[label={sec:orgd3dd664}]{Freemail}
\end{frame}
\subsection{the mobile}
\label{sec:orgc87983e}
\begin{frame}[label={sec:org7673c46}]{mobile-node: Freenet on Android}
\end{frame}
\begin{frame}[label={sec:orge3253a3}]{FreeChat}
\end{frame}
\begin{frame}[label={sec:orgd3efe29}]{icicles}
\end{frame}
\section{core}
\label{sec:orga51f153}
\subsection{core}
\label{sec:orga748399}
\begin{frame}[label={sec:orga63ac12}]{core}
\end{frame}
\subsection{assimilated}
\label{sec:org0c73f8d}
\begin{frame}[label={sec:org7a7f47b}]{Activelinks to USKs}
\end{frame}
\subsection{optimized}
\label{sec:org235a90a}
\begin{frame}[label={sec:org15b39d8}]{Long N2Ntms}
\end{frame}
\begin{frame}[label={sec:org8e74a57}]{Scaling Subscriptions for WoT}
\end{frame}
\begin{frame}[label={sec:org2f11380}]{Fast and Slow nodes}
\end{frame}
\section{media}
\label{sec:org17823a0}
\subsection{media}
\label{sec:org7d3f322}
\begin{frame}[label={sec:org14b49d9}]{Improved HTML and CSS}
\end{frame}
\begin{frame}[label={sec:org0816162}]{Audio streaming}
\end{frame}
\begin{frame}[label={sec:org92a899c}]{Video on demand}
\end{frame}
\subsection{networkers}
\label{sec:orgbf836b6}
\begin{frame}[label={sec:orgc7b64f9}]{Indexes}
\begin{itemize}
\item \sout{Linkageddon → nerdageddon}
\item \sout{Babbel flog-linking}
\item \sout{Enzos Index}
\item Spider → Clean Spider
\end{itemize}

\emph{structure: raw → cleaned}
\end{frame}

\section{tools}
\label{sec:orge93ffbe}
\subsection{plugins}
\label{sec:org6faf43b}
\begin{frame}[label={sec:orgb2b67fc}]{Shoeshop}
\end{frame}
\begin{frame}[label={sec:orgd2202c0}]{jfniki}
\end{frame}
\begin{frame}[label={sec:orgcf3b420}]{KeyUtils}
\end{frame}
\begin{frame}[label={sec:org2172ccb}]{Keepalive}
\end{frame}
\begin{frame}[label={sec:orgbe0ef0f}]{Freereader}
\end{frame}

\subsection{commandline}
\label{sec:orgf8169b7}
\begin{frame}[label={sec:org11ad02d}]{pyFreenet}
\end{frame}
\begin{frame}[label={sec:org002bd5a}]{infocalypse}
\end{frame}
\subsection{GUIs}
\label{sec:orgf5e0f96}
\begin{frame}[label={sec:org2fcd38c}]{jSite}
\end{frame}
\section{in the dark}
\label{sec:org782b457}
\subsection{in the dark}
\label{sec:orgf184062}
\begin{frame}[label={sec:orgb4eb275}]{pitch black attack: The mitigation}
\end{frame}
\section{future}
\label{sec:org4f846c2}
\subsection{hope}
\label{sec:orgfb6b0c4}
\begin{frame}[label={sec:org6f5d945}]{open questions}
\begin{itemize}
\item Better routing? Embeddings that do not preserve the uniform keyspace are now possible with the pitch black mitigation
\item Friend-to-Friend over tor and i2p? (needs UDP)
\item Steganography Transport Plugins
\end{itemize}
\end{frame}
\begin{frame}[label={sec:orgeb584ed}]{Plans}
\begin{quote}
No plan survives contact with reality, but a good plan provides
set-pieces for the path you might actually walk.
\end{quote}

\begin{itemize}
\item \href{https://github.com/freenet/wiki/wiki/High-Impact-tasks}{High-Impact Tasks}
\item \href{https://github.com/freenet/wiki/wiki/Roadmap}{High-Level Roadmap} — structured by major version
\item \href{https://freenet.mantishub.io/roadmap\_page.php}{Bugtracker-Roadmap} — very detailed but outdated
\end{itemize}
\end{frame}

\begin{frame}[fragile,allowframebreaks,label=]{High-Impact Tasks}
 \begin{itemize}
\item Fix a \alert{release-blocker} for 8.0 from the \href{https://github.com/freenet/wiki/wiki/Roadmap}{Roadmap}

\item \alert{Packaging}: \href{https://github.com/freenet/debian}{Debian} (\href{https://www.mail-archive.com/devl@freenetproject.org/msg49740.html}{info}), Guix, \ldots{}, beta-channel

\item \alert{Plugin} furbishing: Freemail, Keepalive, Freereader, Shoeshop,
Floghelper, Flircp, JFniki: workflows enjoyable, cope with Freenet
as proxy

\item Port \alert{plugin buildsystems} to gradle for easier CI (\href{https://www.mail-archive.com/devl@freenetproject.org/msg55177.html}{info1}, \href{https://www.mail-archive.com/devl@freenetproject.org/msg55180.html}{info2})

\item \alert{Decentralized programming}: port \href{https://hg.sr.ht/\~arnebab/infocalypse/browse}{infocalypse} to python3, improve its \href{https://github.com/ArneBab/plugin-Infocalypse-WebUI}{WoT integration}

\item \alert{Content filters} for modern codecs can make Freenet viable for live
streaming: \href{https://freenet.mantishub.io/view.php?id=7163}{fix vorbis}, opus for live audio ( \href{https://www.draketo.de/software/stream-over-freenet}{stream into Freenet} ),
webm with vp9 (video) and av1 (video on demand)

\item \alert{\href{https://github.com/freenet-mobile/app}{Freenet Mobile}}: ref exchange as with \href{https://github.com/ArneBab/Icicle}{Icicle}, spread via NFC and
similar, improve \href{https://github.com/DennisRein/free-chat-2}{FreeChat}, spread via Messengers (WhatsApp, Signal,
Telegram, Threema, DeltaChat, \ldots{})

\item Enable \alert{clicking} on \texttt{freenet:...}-Links (and
\texttt{magnet:?xt=urn:freenet:CHK:...}) on websites. Browser-plugin needs
\href{https://bugzilla.mozilla.org/show\_bug.cgi?id=1687099}{allow-listing the freenet: schema (issue)}

\item \alert{Stream}-into-Freenet GUI

\item \href{https://www.reddit.com/r/Freenet/comments/lblvdq/how\_would\_you\_improve\_freenet/gm2yrxs}{Revamp} \alert{F2F workflow} and communication (mobile first).

\item Revamp \alert{initial page}: help sections, links, official plugins.

\item \alert{REST API} (start with \href{https://github.com/Bombe/fresta}{fresta}) and API documentation, examples and
documentation

\item Simplify updating and changing \alert{dependencies} over Freenet.

\item Make the \alert{noderef parser} work \alert{always}, even if linebreaks are lost,
unicode is mis-escaped, or email shows the user 7-bit ASCII
encoding.

\item \alert{Use} Freenet. \alert{Talk} about Freenet. \alert{Spread} Freenet.
\end{itemize}
\end{frame}

\begin{frame}[label={sec:org67964da}]{Easy Issues}
\end{frame}
\subsection{together}
\label{sec:org5a7571b}
\begin{frame}[label={sec:org371cca4}]{Towards another 15 years! \(\ddot \smile\)}
Can you imagine where Freenet will then be?

Will you help to shape it?

Let’s build a better future together!

\centering
→ \alert{\href{https://freenetproject.org}{freenetproject.org}} ←

\vspace{0.5cm}

\begin{quote}
I worry about my child and the Internet all the time, even though
she's too young to have logged on yet. Here's what I worry about. I
worry that 10 or 15 years from now, she will come to me and say
'Daddy, where were you when they took freedom of the press away from
the Internet? --Mike Godwin, \href{https://www.eff.org/}{Electronic Frontier Foundation}
\end{quote}
\end{frame}

\appendix

\subsection{}
\label{sec:orgb31bec5}

\begin{frame}[allowframebreaks,label=]{References}
\bibliographystyle{apalike}
\bibliography{ref}
\end{frame}
\end{document}