Curieux à propos de ZeroNet ?

Bonjour à tous,

je m’amuse avec ZeroNet (http://zeronet.io) qui est prometteur, puisque décentralisé (sur bittorrent) et sous licence libre.

Au-delà de son intérêt technique, je cherche à me faire un avis sur son utilisabilité, stabilité, accessibilité, bref, ce qui fait que ça peut devenir intéressant.

Alors si ça intéresse quelqu’un, c’est facile à installer (sur Linux en tout cas) et je propose qu’on teste quelques fonctions (réseau social, mise en ligne de site web, etc) et suivant comment ça se passe, j’écrirai un petit compte-rendu, au moins pour les utilisateurs de framacolibri.

Intéressé.e ?

2 Likes

Salut,

Ce genre de choses m’intéresse, mais tu devrais commencer par décrire ce que c’est.
Tu nous dis que c’est décentralisé, mais on ne sait pas exactement ce que c’est, ce que ça permet de faire, de remplacer, etc.
Aussi, leur page, aussi jolie soit-elle manque de beaucoup d’infos importantes (elle explique beaucoup comment ça marche quand on visite un site, mais pas comment on en héberge un).
Par exemple ils indiquent “aucun coût d’hébergement” alors qu’il y en a au moins au minimum un peu, d’autant qu’ils indique que ça fonctionne avec le système de noms namecoin, ce qui signifie qu’il faut tout de même acheter un nom de domaine.
Il y a aussi d’autres choses qui me chiffonnent, mais on ne va pas rentrer dans les détails.

Bref, ta démarche est intéressante, et il serait intéressant d’en faire un retour (ici par exemple), surtout si ça permet de remonter ça aux développeurs pour qu’ils présentent mieux leur bébé.

Ce que je te propose, c’est d’essayer de mettre en ligne un site web sur ce réseau et de l’indiquer ici, en précisant clairement les étapes que tu as suivies. Les gens intéressés pourront ensuite essayer de le visiter et on verra ce que ça donne.

1 Like

Ok @Obny, je vais décrire tout ça plus en détail dans une prochaine réponse.

Je sers un article de blog (un pair p2p est mon VPS, d’éventuels autres pairs seraient des lecteurs (dont ma machine)).

Pour accéder à cette page, il faut installer ZeroNet:

Pour linux en ligne de commande:

  • télécharger le programme

wget https://github.com/HelloZeroNet/ZeroBundle/raw/master/dist/ZeroBundle-linux64.tar.gz

  • dézipper l’archive

tar xzf ZeroBundle-linux64.tar.gz

  • exécuter le programme

ZeroBundle/./ZeroNet.sh

(Pour les autres systèmes d’exploitation, c’est indiqué sur cette page et il s’agit également de télécharger, dézipper et exécuter.

La page que je sers est accessible à l’adresse

http://127.0.0.1:43110/18zZNJnTry34f681g2Ur7S2gKsYa2LqPTr

Il faut accéder au localost de sa propre machine (http://127.0.0.1:43110) au niveau du port que ZeroNet écoute (43110) où l’indication d’un identifiant (la chaine de caractères à la fin) va exécuter la fonction rechercher la page correspondant à l’identifiant.

En accédant à cette adresse, ZeroNet va émettre des requêtes auprès des autres pairs du réseau p2p pour obtenir les contenus qui correspondent à cet identifiant (dans le cas présent le jour où j’écris cet article, 1 ou 2 pairs, qui sont sur mes machines).

J’ai répondu à quelques questions dans ce post.

Et bien sûr, je colle une copie du post :slight_smile:

Tout d’abord, des généralités sur ZeroNet (et ensuite quelques réflexions sur le lien avec les Frama-services)

Comment ce site est-il servi ?

Pour accéder à ce site, il vous a fallu installer ZeroNet et le faire exécuter.

De mon côté, j’ai créé cet article en utilisant le CMS de base, et cette page est téléchargée via le protocole bittorrent sur les machines de ceux qui viendront lire cette page. Une machine qui a visité cette page sert alors à l’ensemble du réseau le contenu visité.

Comment ce site est-il obtenu et affiché ?

En accédant à l’adresse http://127.0.0.1:43110/18zZNJnTry34f681g2Ur7S2gKsYa2LqPTr, vous avez indiqué au programme ZeroNet qui s’exécute sur votre machine de demander aux pairs du réseau peer-to-peer de vous envoyer les fichiers correspondant à l’identifiant 18zZNJnTry34f681g2Ur7S2gKsYa2LqPTr. Une fois que ces fichiers sont sur votre disque dur, le programme ZeroNet qui est en cours d’exécution les affiche dans votre navigateur. Les pages servies sont des pages en html+javascript, à la manière des pages des sites que vous visitez habituellement.

Le contenu des sites que vous visitez est stocké sur votre ordinateur, de façon à permettre à d’autres utilisateurs de consulter ces sites, ainsi qu’à vous même. Que vous soyez connecté.e à internet ou non, vous pouvez consulter au moins la dernière version de la page que vous demandez.

Si un contenu est modifié par son auteur, alors une notification est envoyée au programme ZeroNet, qui télécharge la nouvelle version du contenu.

###Qu’est-ce que ZéroNet, alors ?

ZéroNet est le programme:

  1. de torrents qui télécharge les contenus que vous demandez
  2. et qui uploade les contenus que vous voulez voir servis

par ailleurs
3. qui affiche les contenus correspondant à l’identifiant que vous avez indiqué

Les deux premières fonctions sont équivalentes à celles d’un logiciel de torrent classique, seulement implémentées pour être utiliséees dans un navigateur.

La troisième fonction est indispensable mais techniquement si le protocole zero:// était adopté par les navigateurs, ce serait probablement géré directement par le navigateur (avis personnel).

Résumé (en anglais) du fonctionnement : http://zeronet.readthedocs.io/en/latest/faq/#how-does-it-work

###Décentralisé ?

Dans l’absolu, oui. Un utilisateur qui installe ZeroNet (avec le port 15441 ouvert), est un pair du réseau peer to peer (p2p) (bittorrent, le plus connu et utilisé). Les contenus auxquels un utilisateur accède par ZeroNet sont servis par des pairs du réseau peer to peer. Si je demande une adresse, tous les pairs qui ont visité cette adresse et gardé le contenu vont m’envoyer le contenu.

Ce caractère décentralisé a deux atouts :

  • (atout confort) plus un site est visité, plus il charge vite (parce que plus de pairs envoient le contenu)
  • (atout redondance) si un des pairs ne peut plus servir les contenus, il en reste toujours un nombre éventuellement grand (pour les sites importants). Cela permet de résister à des attaques type DDOS (il n’y a pas un nœud central), d’éviter la censure (il faudrait censurer tous les pairs).

Le caractère décentralisé ne permet pas en revanche d’outrepasser les points de concentration de fibre optique http://www.submarinecablemap.com/.

###Anonyme ?

Non. Mais si Tor est installé, ZeroNet passe par Tor

Peut-on imaginer servir des Frama-services sur ZeroNet ?

Est-ce facile à installer ?

Oui, c’est l’histoire d’un téléchargement, un dézippage et l’exécution. Fini, ça s’exécute (installation).

C’est écrit en python, installable sur Windows, Mac et bien sûr Linux (donc installable sur un serveur pour auto-hébergement de ses propres services).

Quelles applications sont disponibles

Pour le moment, il y a un petit lot d’applications web généralistes : (pour y accéder, il faut installer et lancer ZeroNet)

###Quelles applications viendront ?

Toute application web peut être servie et affichée par ZeroNet. En revanche, le choix “backend” est restraint.

Un script python créée un site et effectue les taches nécessaires pour que la page puisse être servie sur le réseau p2p. Un autre script publie le contenu sur le réseau p2p, associé à l’identifiant de la page.

Pour gérer un site dynamique, il faut que les données soient diffusées sur le réseau p2p (sauf à vouloir court-circuiter le p2p en effectuant une requête sur un serveur distant).

Pour les services privés, il faut donc ajouter une couche de chiffrement, de façon à ce que seuls les personnes auxquelles sont destinés des contenus puissent lire les contenus. Cela vaut pour un réseau social (pour le moment, celui qui existe permet de suivre n’importe quel utilisateur, mais pas de publier à un réseau limité) comme pour les courriels (qui sont diffusés sur le réseau p2p chiffrés (tout le monde peut accéder aux mails chiffrés) mais seul le destinataire peut déchiffrer son contenu.

Pour résumer, il faut respecter la façon de stocker les données (pas de sql !) et d’indiquer aux autres pairs comment retrouver des contenus (ce qui est géré par un outil fourni avec ZeroNet). Si c’est pour mimer le fonctionnement d’un serveur, avec un seul utilisateur, c’est un peu réinventer la roue, mais s’il s’agit de mettre à disposition des contenus pour un grand nombre de personnes, alors c’est valable.

Quel usage peut-on imaginer ?

Il serait valable pour une famille (comme par exemple les célèbres Dupuis-Morizet) d’avoir un VPS servant quelques services comme un agenda partagé, un service de synchronisation de fichiers etc.

Dans les moments où chacun à son ordinateur allumé (avec ZéroNet en cours d’exécution), alors les services pourront être particulièrement rapides (ce qui est intéressant après un weekend de cousinade, quand la.e photographe du weekend diffuse les photos ; à ce moment, tous les pairs vont servir pour tout le monde ; le dernier à vouloir télécharger les photos les aura en un clin d’œil).

Pendant la nuit, seul le VPS servira des fichiers, ce qui fera que l’insomniaque de la famille aura accès à son agenda un peu moins vite, ce qui l’aidera à s’endormir.

(cette section est plus pour illustrer qu’informer)

Peut-on imaginer servir des Frama-services sur ZeroNet ?

Point de vue de @jibe

Oui pour un utilisateur de ZeroNet.

Et donc, non, la famille Dupuis-Morizet n’utilisera pas ZeroNet tant que leur navigateur web (Firefox en priorité puisque conseillé par Framastoft) ne l’aura pas intégré.

Mais il est possible de servir un site à la fois en http et sur ZeroNet.

Donc c’est au final au développeur d’une application de chosir.

Et les questions de sécurité des données seront plus sensibles (une fois que des données privées non chiffrées sont envoyées aux autres pairs, c’est trop tard).

Point de vue de @Obny (?)

Point de vue de @quiconque

1 Like

Voilà pour une première description (que j’améliorerai pour qu’elle soit la plus exhaustive possible, c’est un premier jet).

Je vais essayer d’avancer sur la question “Dans quelle mesure utiliser ce protocol est un gain et dans quel mesure c’est s’attacher un boulet à la patte”.

Et pas de surprise, la réponse sera dans le style : “Pour des applications où un contenu est diffusé à beaucoup d’utilisateurs, c’est top. Pour une application où j’accède à mes propres données (synchronisation de fichiers par exemple), c’est bien complexe pour peu de choses”.

Est-ce que ça te va, @Obny ? Je vais tacher de prendre ma part dans la partie “pédagogie” mais pour le moment j’essaye de pousser au bout cette piste en prenant en compte surtout mes attentes. Et dès que possible je ferai un retour framadapté pour framaranger ceux qui seraient framattirés par ce protocole/programme.

Voici donc une longue présentation et un post de blog à visiter comme exercice.

Alors si ça intéresse quelqu’un, je réponds à vos questions, et si on peut être au moins deux utilisateurs (ZeroId permet d’avoir un ID), je serais intéressé d’essayer les fonctions qui requièrent un ID, comme le réseau social.

Bien à vous,

Très bien :wink:
En lisant ça, il y a une grosse question qui me reste, et qui pourrait décourager beaucoup de monde d’installer ce logiciel.
Le principe est que chaque utilisateur devient publieur du contenu qu’il a visité. Ça pose donc un problème de responsabilité (morale et légale) : on n’a pas envie (ni le droit) de diffuser n’importe quoi.
Tu me diras que c’est déjà le cas du protocole bittorrent. Sauf qu’avec bittorrent, tu peux facilement te rendre compte que ce que tu diffuses correspond bien à ce que tu attends (oui, c’est possible, mais ça soulève d’autres questions, passons). Avec Zeronet, tu télécharges des pages web, elles-mêmes contenant plein de fichiers divers, et surtout, l’auteur de la page web peut modifier la page à tout moment et elle va être mise à jour automatiquement sur ta machine. Tu n’as donc plus aucun contrôle sur les choses que tu diffuses.

Alors, bien-sûr, on pourrait imaginer un système où l’utilisateur donnerait son approbation avant d’accepter une mise à jour d’un site. Et éventuellement pourvoir donner sa confiance dans un site pour accepter toutes ses mises à jour aveuglément si besoin. Mais l’hypothèse de la confiance par défaut me semble une mauvaise idée.

Aussi, il y a un gros problème de vie privée (je ne parle même pas d’anonymat). Notamment parce que tu diffuses sur le réseau tous les sites que tu as visités et que tu diffuses en retour. C’est le genre de choses qui permettent d’identifier quelqu’un à coup sûr.
Bien sûr, les développeurs suggèrent d’utiliser TOR en plus pour cela, mais il faut savoir que ce n’est pas une garantie absolue (plein de clients bittorents diffusent des informations qui permettent de t’identifier même si tu utilises TOR). Donc j’aimerai bien avec une petite explication/ un schéma de leur part pour me rassurer sur ce point.
Aussi, ça me semble une très mauvaise idée de mettre une charge aussi lourde sur le réseau TOR, qui manque déjà cruellement de nœuds de sortie.

Bref, quelques questions importantes pour moi, mais je ne m’attends pas à ce que tu y répondes :wink:

Voyons voir ce que je vais trouver en creusant dans cette direction. Je ne suis pas calé sur l’anonymat dans un réseau p2p alors je vais creuser ce sujet (je modifierai cette réponse au fur et à mesure et je te @ une fois que ce sera assez avancé)

Il faut savoir que les réseaux pair-à-pair sont difficilement anonymes par défaut (il faut qu’ils soient spécialement conçus pour ça).
C’est notamment pour ça que Hadopi peut exister : pour savoir qui possède un fichier, il suffit d’essayer de le télécharger.

2 Likes