Vouch - système de gestion de la confiance pour les contributeurs open source
(github.com/mitchellh)- L’open source a traditionnellement fonctionné sur un modèle de trust and verify
- Avec la généralisation des outils d’IA, la barrière d’entrée à la contribution a pratiquement disparu, et l’ancien modèle de confiance implicite ne fonctionne plus
- Système de gestion de la confiance pour l’open source conçu pour ne permettre la participation qu’après une garantie explicite de confiance (vouch) avant toute contribution
- Les contributeurs de confiance peuvent vouch pour d’autres utilisateurs, et les acteurs malveillants peuvent être explicitement bloqués via denounce
denounceest conservé comme un registre public, que d’autres projets peuvent consulter- Qui peut vouch/denounce, et selon quels critères, est laissé à la décision de chaque projet
- Le système n’impose aucune vision particulière, et les décisions de politique relèvent de la communauté
- Toutes les données de confiance sont versionnées avec le code dans un fichier texte unique (
VOUCHED) au sein du dépôt, garantissant transparence et portabilité - À long terme, la structure vise le partage d’informations de confiance entre projets via une Web of Trust
- Le choix d’accepter tel quel le jugement d’un projet amont revient au projet aval
- Les projets qui multiplient les vouch/denounce de manière inconsidérée peuvent être naturellement exclus du réseau de confiance
- Intégration simple avec GitHub Actions, avec une gestion possible depuis les commentaires d’issue ou de PR via des mots-clés comme
lgtmetdenounce - Ghostty a basculé son modèle de contribution vers un système fondé sur le vouch
- Implémenté en s’inspirant du projet Pi, actuellement au stade expérimental
Commandes fournies
- Fichiers locaux
vouch.nu check <user>: vérifier l’état de vouch/denounce d’un utilisateurvouch.nu add <user>: vouch pour un utilisateurvouch.nu denounce <user>: denounce un utilisateur
- Intégration GitHub
vouch.nu gh-check-pr <pr>: vérifier l’état de l’auteur de la PR et traiter automatiquementvouch.nu gh-manage-by-issue <issue> <comment>: vouch/denounce à partir d’un commentaire d’issue
3 commentaires
J’ai l’impression que le système lui-même devra gagner en autorité pour être accepté.
Comme le sujet suscite de l’intérêt tout en semblant prêter à confusion, une FAQ distincte a été préparée. https://x.com/mitchellh/status/2020628046009831542
Avis sur Hacker News
Je pense qu’il est dangereux de supposer qu’un utilisateur de confiance dans un projet devient automatiquement digne de confiance dans un autre. Ce type de structure peut être exploité pour des attaques sur la chaîne d’approvisionnement. Un attaquant peut gagner la confiance comme « bon contributeur » dans plusieurs projets, puis s’approcher du projet ciblé. Si cette confiance croisée est automatisée, tout compte ayant déjà obtenu la confiance peut devenir une cible. Il vaudrait mieux partir d’une liste de méfiance plutôt que d’une « liste de confiance ».
Je pense qu’il serait bien d’imposer un coût de 1 $ pour soumettre une PR. Si la PR est valable, le mainteneur rembourse. Aujourd’hui, communiquer est devenu trop facile, donc la communication de basse qualité déborde. Ce n’est pas seulement sans valeur, c’est un préjudice qui grignote le temps.
Je me demande comment un nouveau contributeur sans réseau pourrait franchir la barrière à l’entrée. Même s’il y a beaucoup de bruit produit par l’IA, ce n’est pas la bonne solution.
Je ne suis pas d’accord avec l’idée que « l’open source fonctionne sur un système de confiance puis de vérification ». Idéalement, il faudrait pouvoir juger à partir du code lui-même. Quand je regarde une PR, je décide en quelques secondes si elle doit être fusionnée ou non. Le plus difficile, c’est d’écrire poliment les raisons du refus. (Référence : dépôt openpilot)
Je me demande comment le projet Vouch éviterait de devenir une bulle fermée comme Bluesky. Depuis l’élection, Bluesky se contracte progressivement. Ce type de filtrage social peut aussi bloquer de nouvelles contributions.
On ironise sur le fait qu’un tel système ne pourrait évidemment jamais être détourné dans une communauté open source sans aucun drama. Je me demande s’ils partagent carrément une liste noire de développeurs.
Je pense qu’un système fondé sur la confiance ne peut fonctionner que s’il implique nécessairement du risque. Si je garantis quelqu’un et qu’il cause des problèmes, ma réputation doit aussi en souffrir. À l’inverse, si j’accuse quelqu’un sans fondement alors que c’est une bonne personne, ma réputation doit baisser. Sinon, les garanties seront abusées de manière irresponsable.
Ce système me fait penser à une application de rencontre. Il y a trop de candidats surexcités mais inadaptés à filtrer, et on finira probablement par voir apparaître des schémas comme la participation payante, la géolocalisation, la vérification d’identité et la notation sociale. Ces temps-ci, c’est fatigant de voir des gens chercher à gagner de la réputation sur GitHub en multipliant les demandes de contribution sans intérêt.
J’imagine une structure de forge minimale qui ne garderait que ce que Git ne sait pas faire nativement. Le cœur, c’est l’identité (Identity), les attestations signées (Attestation) et la politique (Policy). Parmi ces éléments, Vouch traite des signatures sur les personnes — une signature disant « cette personne est digne de confiance » est structurellement identique à une signature disant « ce commit a passé les tests ». Autrement dit, c’est une couche de politique qui contrôle la participation elle-même. Ce type de fonctionnalité devrait exister comme métadonnées dans le dépôt plutôt que sur une plateforme fermée comme GitHub. Je me demande jusqu’où ce concept évoluera dans cinq ans.
Au début, ça paraissait correct, mais j’ai l’impression qu’au final on retombe sur une structure où seules les personnes de confiance peuvent contribuer.