Addressing selfishness in the design of cooperative systems
Prise en compte et prévention des comportements égoïstes dans la conception de systèmes répartis collaboratifs
Résumé
Cooperative distributed systems, particularly peer-to-peer systems, are the basis of several mainstream Internet applications (e.g., file-sharing, media streaming) and the key enablers of new and emerging technologies, including blockchain and the Internet of Things. Essential to the success of cooperative systems is that nodes are willing to cooperate with each other by sharing part of their resources, e.g., network bandwidth, CPU capability, storage space. However, as nodes are autonomous entities, they may be tempted to behave in a selfish manner by not contributing their fair share, potentially causing system performance degradation and instability. Addressing selfish nodes is, therefore, key to building efficient and reliable cooperative systems. Yet, it is a challenging task, as current techniques for analysing selfishness and designing effective countermeasures remain manual and time-consuming, requiring multi-domain expertise. In this thesis, we aim to provide practical and conceptual tools to help system designers in dealing with selfish nodes. First, based on a comprehensive survey of existing work on selfishness, we develop a classification framework to identify and understand the most important selfish behaviours to focus on when designing a cooperative system. Second, we propose RACOON, a unifying framework for the selfishness-aware design and configuration of cooperative systems. RACOON provides a semi-automatic methodology to integrate a given system with practical and finely tuned mechanisms to meet specified resilience and performance objectives, using game theory and simulations to predict the behaviour of the system when subjected to selfish nodes. An extension of the framework (RACOON++) is also proposed to improve the accuracy, flexibility, and usability of RACOON. Finally, we propose SEINE, a framework for fast modelling and evaluation of various types of selfish behaviour in a given cooperative system. SEINE relies on a domain-specific language for describing the selfishness scenario to evaluate and provides semi-automatic support for its implementation and study in a state-of-the-art simulator.
Les systèmes distribués collaboratifs, en particulier les systèmes pair-à-pair, forment l’infrastructure sous-jacente de nombreuses applications Internet, certaines parmi les plus populaires (ex : partage de fichiers, streaming multimédia). Ils se situent également à la base d’un ensemble de technologies émergentes telles que la blockchain et l’Internet des Objets. Le succès de ces systèmes repose sur la contribution volontaire, de la part des nœuds participants, aux ressources partagées (ex : bande passante réseau, puissance de calcul, stockage de données). Or ces nœuds sont des entités autonomes qui peuvent considérer comme plus avantageux de se comporter de manière égoïste, c’est-à-dire de refuser de collaborer. De tels comportements peuvent fortement impacter les performances et la stabilité opérationnelles du système cible. Prendre en compte et prévenir les comportements égoïstes des nœuds est donc essentiel pour garantir l’efficacité et la fiabilité des systèmes coopératifs. Cependant, cela exige du développeur, en dépit de la grande quantité de techniques et d’approches proposées dans la littérature, des connaissances multisectorielles approfondies. L'objectif de cette thèse est de concevoir et étudier de nouveaux outils théoriques et pratiques pour aider les concepteurs de systèmes distribués collaboratifs à faire face à des nœuds égoïstes. La première contribution, basée sur une analyse exhaustive de la littérature sur les comportements égoïstes dans les systèmes distribués, propose un modèle de classification pour identifier et analyser les comportements égoïstes les plus importants sur lesquels il est important de se concentrer lors de la conception d'un système coopératif. Dans la deuxième contribution, nous proposons RACOON, un framework pour la conception et la configuration de systèmes coopératifs résilients aux comportements égoïstes. Outre un ensemble de mécanismes d'incitation à la coopération, RACOON fournit une méthodologie semi-automatique d’intégration et de calibration de ces mécanismes de manière à garantir le niveau de performance souhaité. RACOON s’appuie sur une analyse du système cible fondée sur la théorie des jeux et sur des simulations pour prédire l’existence de nœuds égoïstes dans le système. RACOON a été étendu en un deuxième framework, RACOON++. Plus précis, plus flexible, RACOON++ offre également une plus grande facilité d'utilisation. Une dernière contribution, SEINE, propose un framework pour la modélisation et l'analyse des différents types de comportements égoïstes dans un système coopératif. Basé sur un langage dédié, développé pour décrire les scénarios de comportement égoïstes, SEINE fournit un support semi-automatique pour la mise en œuvre et l'étude de ces scénarios dans un simulateur choisi sur la base de l’état de l’art (PeerSim).
Origine | Version validée par le jury (STAR) |
---|
Loading...