\documentclass{beamer}
%\documentclass[ignorenonframetext,handout]{beamer}
%\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]

\usetheme{JuanLesPins}
\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{bortzmeyer-utils}

\title{Tous à poil !}
\author{Stéphane Bortzmeyer\\\texttt{stephane+pses@bortzmeyer.org}}
\date{Pas Sage en Seine, 26 juin 2014}
% http://www.passageenseine.org/Passage/PSES-2014
% La tendance du moment, dans les réseaux, ce sont les systèmes où les
% transactions sont publiques, de manière à ce que chacun puisse les
% vérifier, évitant ainsi de faire confiance pour cette tâche à une
% entité centrale. Cette idée simple mais géniale a évidemment été
% popularisée par Bitcoin, avec sa « blockchain » publique. D'autres
% systèmes ont repris l'idée, soit avec le même code que Bitcoin
% (comme Namecoin) soit avec des systèmes différents comme la
% Certificate Transparency du RFC 6962. L'avenir est-il au « tous à
% poil » ? Quels problèmes insolubles de sécurité pourraient-ils être
% résolus ainsi ? N'est-ce pas aux dépens de la vie privée ?

% Sur « à poil », voir aussi
% http://www.slate.fr/monde/74668/prism-resignation ...

%\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} 
% \setlength{\parskip}{15pt} 
\setlength{\parskip}{15pt plus 10pt minus 10pt} 

\begin{document}

\maketitle

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}
\includegraphics[scale=0.28]{cope-accuse-peillon-et-ayrault-se-defendent.jpg}
\end{frame}

\begin{frame}
  \frametitle{Un intéressant problème technique}
  \begin{block}
    {Soit des opérations dont on veut prouver qu'elles ont lieu, ou
      qu'elles n'ont pas eu lieu (achats et dépenses, enregistrement d'un nom\ldots) Comment créer de la confiance dans
      le public ? }
    {La méthode traditionnelle est \emph{centralisée} : un acteur « de
      confiance » garde trace des opérations et assure publiquement
      que tout s'est bien passé. L'acteur central joue normalement sa
      réputation et a donc intérêt à respecter les règles.}
  \end{block}
\end{frame}

\begin{frame}
\frametitle{Exemples traditionnels}
\begin{itemize}
\item<1->Domaines de têtes via l'ICANN,
\item<2->Argent via les banques et/ou Paypal. 
\end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Confiance}
N. m. : Phénomène irrationnel et difficile à justifier  
\begin{itemize}
\item<2->Enron, Lehman Brothers, MtGox\ldots
\item<3->Sciences Politiques, premier cours de la première année :
  quand il y a du pouvoir, il n'y a plus d'honnêteté (Montesquieu
  l'avait mieux dit). 
\item<4->Remplacer l'ICANN par Telecomix, FDN ou la Quadrature du
  Net ?
\item<5->Les systèmes centralisés nécessitent toute une supervision,
  des contre-pouvoirs, des mécanismes d'\foreign{accountability}\ldots
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Alternative : tout exposer}
\begin{enumerate}
\item<1->Si tout est public, n'importe qui \emph{peut} vérifier (on ne
  dit pas que tout le monde le fera),
\item<2->Plus besoin de confiance dans un organisme central !
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Exemple : le bitcoincoin}
\begin{block}
  {Bien plus qu'une monnaie, Bitcoin est un système permettant la
    tenue d'un livre d'opérations public : tout le monde peut vérifier
    que les bitcoins n'apparaissent pas ou ne disparaissent pas
    magiquement.}
  {Peut servir de base à bien des choses. Pour la monnaie, peut
    remplacer les banques ? Plutôt remplacer \emph{certains} de leurs rôles.}
\end{block}
\end{frame}

\begin{frame}
  \frametitle{Tous vos bitcoins à poil}
\includegraphics[scale=0.27]{Bitcoin-Address-1HtNJ6ZFUc9yu9u2qAwB4tGdGwPQasQGax.png}
\end{frame}

\begin{frame}
  \frametitle{Détails techniques}
  \begin{itemize}
  \item Chacun signe ses transactions,
  \item Les transactions sont chaînées dans une structure de données
    publique, le \emph{livre des opérations} (\foreign{blockchain}),
  \item Preuve de travail pour éviter l'attaque par déni de service
    contre le livre des opérations (il existe d'autres défenses),
  \item Vérification par tous les noœuds du réseau de l'intégrité du livre.
  \end{itemize}
\end{frame}

\begin{frame}
\frametitle{On n'est pas dans un monde idéal}
\begin{itemize}
\item<1->Taille des données et temps de calcul. On ne peut pas mettre
  le livre des opérations sur son \foreign{smartphone} !
\item<2->Pas mal de « clients légers » qui ne font pas les
  vérifications : ils font \emph{confiance} (au moins, ils choisissent
  à qui).
\item<3->Passage à l'échelle. Bitcoin a moins d'une transaction/s,
  Visa en a des milliers. % https://blockchain.info/charts/n-transactions https://en.bitcoin.it/wiki/Scalability http://www.icepay.fr/methodes-paiement-en-ligne-et-solutions/carte-de-credit-visa http://usa.visa.com/about-visa/our-business/global-presence.jsp http://usa.visa.com/about-visa/our-business/visa-transaction.jsp
\item<4->Logiciel unique : en cas de bogue ?
\end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Tyrannie de la majorité}
  \begin{enumerate}
  \item<1->La majorité n'a pas forcément tous les droits. La
    transparence n'aide pas si les gens veulent fermer les yeux.
  \item<2->Bitcoin est vulnérable à l'« attaque des 51 \% ». Si on a
    la majorité de la puissance de calcul, on contrôle le livre des
    opérations.
  \item<3->Twister (bien moins utilisé et donc bien plus vulnérable) a
    déjà fait l'objet d'une telle attaque le 18 janvier 2014
  \item<4->« L'honnêteté d'une masse indéfinie ? »
  \end{enumerate}
\end{frame}

\begin{frame}
  \frametitle{Le principe peut s'étendre à tout registre}
\begin{itemize}
\item<1->Il n'y a pas que le fric dans la vie : les principes de
  Bitcoin peuvent servir à bien autre chose.
\item<2->Twister (déjà cité) : \foreign{microblogging} avec
  identificateurs dans un livre des opérations public. Pas besoin d'un
  « silo », d'une « plateforme » pour contrôler nos identités.
\item<3->Namecoin : identificateurs uniques, parlants, sécurisés et
  sans aucun acteur privilégié.
\end{itemize}
\end{frame}

\begin{frame}
  \frametitle{\foreign{Certificate Transparency}}
  \begin{itemize}
  \item<1->But : lutter contre les faux certificats X.509 (Diginotar,
    Bercy\ldots)
  \item<2->Méthode : que les AC publient \emph{tous} les
    certificats. Google pourra alors vérifier qu'il n'y a pas de faux
    certificat pour \url{gmail.com}
  \item<3->Normalisation : RFC 6962 \url{http://www.certificate-transparency.org/}
  \item<4->Pas de preuve de travail donc, pour éviter la DoS, un
    acteur privilégié qui décide qui peut écrire (\~{} le choix par le
    navigateur des AC à mettre dans le magasin)
  \end{itemize}
\end{frame}

\begin{frame}
\frametitle{La transparence, une idée plus ancienne que l'informatique}
\includegraphics[scale=0.23]{Urne-Election_presidentielle_2007_Lausanne_MG_2761.jpg}
\end{frame}

\begin{frame}
\frametitle{Élections}  
\begin{block}
  {Un processus transparent, contrôlable par tous}
  {Sauf évidemment si on utilise les machines de vote, qui rendent
    tout opaque}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Un exemple de vote complètement transparent}
\begin{block}
  {Usenet\ldots}
  {Vote non secret et où tout est public \url{http://www.usenet-fr.net/fur/minis-faqs/vote.html}}
\end{block}
\end{frame}

\begin{frame}
  \frametitle{Un dernier exemple de transparence}
  \begin{itemize}
  \item<2->Le protocole BGP est au cœur de l'Internet : il transmet
    les routes entre opérateurs.
  \item<3->Tout routeur BGP voit toutes les annonces. Beaucoup le
    publient (RouteViews, RIS du RIPE, \foreign{looking glasses}\ldots)
  \item<4->N'importe qui peut donc voir, par exemple, que tel
    opérateur annonce des adresses IP qui ne lui appartiennent pas.
  \item<5->Cette transparence contribue beaucoup à la résilience de
    l'Internet : pas de coup en traître dans le routage.
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Vérification effective}
  \begin{itemize}
  \item<1->On peut appeler cela l'« effet HeartBleed ». Tout le monde
    pouvait vérifier OpenSSL. Personne (sauf la NSA ?) ne l'avait fait
    pendant deux ans.
  \item<2->La solution n'est évidemment pas l'opacité, qui est bien
    pire.
  \item<3->Mais il faut réfléchir à des mécanismes encourageant la
    vérification effective.
  \item<4->Twister avait été piraté parce que très peu de gens avaient
    « donné » du temps de calcul pour les vérifications.
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Vie privée}
  \only<2->{\begin{block}
    {Donc, ton truc, c'est comme la NSA, on est à poil ?}
    {Grosses différences : information (on sait que les données sont
      publiques) et symétrie (tout le monde a les mêmes informations).

   Mais, évidemment, ce principe de la transparence n'est pas
   applicable aux données personnelles et/ou sensibles. 

   Pour Namecoin,
    c'est l'équivalent du whois public pour toutes les données, et
    avec historique.}
  \end{block}}
\end{frame}

\begin{frame}
  \frametitle{Solutions pour la vie privée}
  \begin{itemize}
  \item<1->Bitcoin : adresses à usage unique,
  \item<2->Bitcoin : systèmes de brouillage des transactions  \url{http://bitcoinlaundry.com/}
  \item<3->Bitcoin : trucs cryptographiques avancés
    \url{http://zerocash-project.org/}
  \item<4->Namecoin : comme avec le whois de \url{.com} : mentir... 
  \item<5->Namecoin : des réflexions en cours \url{https://forum.namecoin.info/viewtopic.php?f=2&t=1694}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Conclusion}
  \begin{block}
    {Un concept ancien, mais réactivé par des progrès récents, comme
      le livre des opérations Bitcoin}
    {Une alternative aux systèmes centralisés. Mais qui n'est pas
      parfaite et ne convient pas à tous les cas.}
  \end{block}
\end{frame}

\end{document}
