SecureScuttleButt

From Tmplab
Revision as of 08:30, 2 October 2019 by Alban (talk | contribs) (Protocoles et fonctionnement)

Scuttlebutt

> Scuttlebutt in slang usage means rumor or gossip, deriving from the nautical term for the cask used to serve water.

Une explication par Humberto Ortiz-Zuazaga (CC4.0)

Document original

Scuttlebutt n'est pas tant un programme qu'un écosystème, un ensemble de programmes, de protocoles, de serveurs et de personnes qui permettent aux utilisateurs de partager des informations de pair à pair.

Patchwork Le moyen le plus simple de se familiariser avec scuttlebutt consiste à installer Patchwork, un client graphique qui se connecte au réseau scuttlebutt et affiche des messages.

Si vous exécutez un patchwork, un avez un nœud qui exécute scuttlebutt et, si un membre de votre réseau local exécute également un nœud, vous verrez ses publications publiques. Cependant, si personne sur votre réseau local n'exécute un nœud, vous ne verrez rien.

Identités Lorsque vous démarrez un patchwork, cela crée une identité pour vous. Une identité dans scuttlebutt est une paire de clés. Vous diffusez votre clé publique à toutes les parties intéressées. Par exemple, je suis connu sous le nom @xxx = .ed25519

Chaque identité est associée à un flux, et la clé secrète vous permet (et uniquement à vous) de publier dans le flux de votre identité. Le flux est une blockchain, ce qui signifie que vous ne pouvez ajouter qu’à votre flux, et non éditer ou supprimer tout ce que vous publiez.

Pubs Pour voir les publications de quelqu'un d'autre, vous devez pouvoir trouver leurs flux. Pour le moment, le moyen le plus simple de consulter les flux consiste à se connecter à un serveur de publication ou public. Il s’agit de nœuds ssb standard dotés d’adresses IP fixes et exécutant un logiciel permettant de générer des invitations sur le réseau.

Il existe des listes de publications connues et j'utilise une publication sur notre serveur. Visitez un pub, demandez une invitation et vous pouvez coller l'invitation dans le client en patchwork pour connecter votre nœud à ce pub et voir les publications publiques des visiteurs de ce pub. Cliquez sur le bouton "+ Rejoindre Pub" en patchwork pour vous connecter et collez votre code d'invitation.

Messages, votes et chaînes Une fois que vous êtes configuré, vous pouvez écrire un post. Les publications peuvent être aussi longues que vous le souhaitez (non limitées à 140 caractères) et utiliser le formatage Markdown.

Votre client signera votre publication avec votre clé secrète et l’ajoutera à votre flux. Le message sera ensuite propagé à l’un de vos abonnés (au début, uniquement les pubs auxquels vous avez adhéré).

Une forme spéciale de message, un "vote", peut être liée à un autre message et exprimer son approbation (ou son rejet). Patchwork utilise ces messages de vote pour implémenter les goûts.

Si vous souhaitez participer à une conversation plus large, vous pouvez poster dans un canal. Un canal est un sujet lié par un signe #. Vous pouvez parcourir les listes de chaînes récentes, rechercher des chaînes et vous abonner à des chaînes, ce qui permettra ensuite à votre nœud de tirer les publications d'autres utilisateurs qui postent sur les chaînes.

Messages privés Comme tout le monde dans scuttlebutt a une paire de clés et que tout le monde diffuse sa clé publique, vous pouvez envoyer des messages chiffrés directement à chaque destinataire. Aucun service central ne connaît votre clé secrète et, avec la manière dont les messages privés sont implémentés, vous ajoutez votre message crypté à votre flux afin que personne ne puisse même savoir qui est le destinataire du message privé. (Vos amis vont extraire votre message de votre flux et déterminer si c'est pour eux).

Autres clients Il y a plus de clients disponibles pour scuttlebutt. J'aime le patchfoo, car il est très léger et je suis un troglodite. Il exécute un serveur sur votre propre ordinateur et vous vous y connectez avec votre navigateur habituel. Le serveur par défaut se lie à l'adresse IPv6 localhost :: 1. Au moins dans ma version de Firefox, vous devez inclure cette adresse IPv6 entre crochets pour vous connecter http: // [:: 1]: 8027 /

git-ssb Le référentiel patchfoo git réside dans git-ssb, un plug-in pour git qui utilise le réseau scuttlebutt pour le backend. Il prend en charge le stockage de fichiers, les demandes d'extraction et les problèmes de manière totalement distribuée, sans serveur central. Chaque nœud ssb réplique les fichiers des référentiels auxquels il s'intéresse et les partage avec d'autres homologues.

Protocoles et fonctionnement

Les protocoles de SSB sont plus ou moins informels et disponibles sous forme de whitepaper assez arides. Voici une sélection de documents éclairants.

Analyse technique

Scuttlebutt utilise des solutions techniques courantes dans le monde du web décentralisé :

  • Identité cryptographique automatique
  • Chiffrement de la communication
  • Utilisation de relais publics pour connecter des appareils sur Internet

Particularités de ScuttleButt

  • peer id is public key : Identification de la clef crypto comme id
  • data model signed hash chains : Chiffrement chaîné du messages dans le log
  • peers can relay other's messages : Réplication du contenu par "gossip" ou pas besoin d'être directement connecté au système publicateur, ni de récupérer l'ensemble du flux en permanence
  • cannot insert, modify, or reorder messages : La chaîne chiffrée empêche les modifications des messages dans le log

Problèmes soulevés

* Comment entrer dans le réseau alors qu'il faut que les gens vous suivent pour qu'ils vous voient ? Un Pub est nécessaire.
* À l'échelle, les logs grossissent, les graphs aussi, le stockage devient un souci ?
* What ? Scuttlebutt est un composant de Amazon Dynamo DB ? Oui, SSB sert à interconnecter les noeuds de DB entre eux, il suffit d'une connection à un autre noeud pour l'introduire dans le cluster et savoir quelles parties de la DB les autres noeuds ont stocké. 

Code Source

https://github.com/ssbc

Clients

Sources FR

Sources EN