Nombres aléatoires et réseaux décentralisés : application pratique

Introduction

«La gĂ©nĂ©ration de nombres alĂ©atoires est trop importante pour ĂȘtre laissĂ©e au hasard»
Robert Cavyu, 1970

Cet article est consacrĂ© Ă  l'application pratique de solutions utilisant la gĂ©nĂ©ration collective de nombres alĂ©atoires dans un environnement non fiable. En rĂ©sumĂ©, il s'agit de la façon dont et pourquoi le hasard est utilisĂ© dans les blockchains, et un peu sur la maniĂšre de distinguer un « bon » hasard d'un « mauvais ». GĂ©nĂ©rer un nombre vĂ©ritablement alĂ©atoire est un problĂšme extrĂȘmement complexe, mĂȘme sur un seul ordinateur, et a Ă©tĂ© Ă©tudiĂ© depuis longtemps par des cryptographes. Dans les rĂ©seaux dĂ©centralisĂ©s, la gĂ©nĂ©ration de nombres alĂ©atoires devient encore plus difficile et cruciale.

C'est prĂ©cisĂ©ment dans les rĂ©seaux oĂč les participants ne se font pas confiance que la capacitĂ© de gĂ©nĂ©rer un nombre alĂ©atoire indiscutable permet de rĂ©soudre efficacement de nombreuses tĂąches essentielles et d'amĂ©liorer considĂ©rablement les schĂ©mas dĂ©jĂ  existants. De plus, les jeux d'argent et les loteries ne constituent pas du tout la prioritĂ© numĂ©ro un, contrairement Ă  ce que pourrait penser un lecteur non averti.

Génération de nombres aléatoires

Les ordinateurs ne peuvent pas gĂ©nĂ©rer de nombres alĂ©atoires par eux-mĂȘmes, ils ont besoin d'une aide externe. Un ordinateur peut obtenir une valeur alĂ©atoire en utilisant, par exemple, les mouvements de la souris, la quantitĂ© de mĂ©moire utilisĂ©e, les courants parasites sur les contacts du processeur et de nombreuses autres sources, appelĂ©es sources d'entropie. Ces valeurs ne sont pas complĂštement alĂ©atoires, car elles se situent dans une certaine plage ou prĂ©sentent un caractĂšre prĂ©visible de variation. Pour transformer ces chiffres en un vĂ©ritable nombre alĂ©atoire dans une plage donnĂ©e, on applique des cryptotransformations afin d'obtenir des valeurs pseudo-alĂ©atoires uniformĂ©ment distribuĂ©es Ă  partir de valeurs d'entropie non uniformĂ©ment rĂ©parties. Les valeurs obtenues sont appelĂ©es pseudo-alĂ©atoires, car elles ne sont pas vĂ©ritablement alĂ©atoires, mais dĂ©terministiquement produites Ă  partir de l'entropie. Tout bon algorithme cryptographique, en chiffrant des donnĂ©es, produit des textes chiffrĂ©s qui doivent ĂȘtre statistiquement indiscernables d'une sĂ©quence alĂ©atoire, donc pour produire du hasard, on peut prendre une source d'entropie qui assure seulement une bonne unicitĂ© et imprĂ©visibilitĂ© des valeurs mĂȘme dans de petites plages ; le reste du travail de dispersion et de mĂ©lange des bits dans la valeur rĂ©sultante sera pris en charge par l'algorithme de chiffrement.

Pour conclure cette brĂšve introduction, il convient d'ajouter que la gĂ©nĂ©ration de nombres alĂ©atoires mĂȘme sur un seul appareil est l'un des piliers de la sĂ©curitĂ© de nos donnĂ©es ; les nombres pseudo-alĂ©atoires gĂ©nĂ©rĂ©s sont utilisĂ©s lors de l'Ă©tablissement de connexions sĂ©curisĂ©es dans diffĂ©rents rĂ©seaux, pour gĂ©nĂ©rer des clĂ©s cryptographiques, pour Ă©quilibrer la charge, pour le contrĂŽle d'intĂ©gritĂ©, et pour encore de nombreuses applications. La sĂ©curitĂ© de nombreux protocoles dĂ©pend de la capacitĂ© Ă  gĂ©nĂ©rer un hasard fiable et imprĂ©visible provenant de l'extĂ©rieur, Ă  le conserver et Ă  ne pas le rĂ©vĂ©ler jusqu'Ă  l'Ă©tape suivante du protocole, sinon la sĂ©curitĂ© sera compromise. Une attaque sur le gĂ©nĂ©rateur de valeurs pseudo-alĂ©atoires est extrĂȘmement dangereuse et met en pĂ©ril tous les logiciels utilisant la gĂ©nĂ©ration de hasards.

Tout cela, vous devez le savoir si vous avez suivi un cours de base en cryptographie, donc continuons sur les réseaux décentralisés.

Aléatoire dans les blockchains

Tout d'abord, je vais parler des blockchains avec support des contrats intelligents, car c'est elles qui peuvent pleinement exploiter les possibilitĂ©s offertes par un alĂ©atoire de qualitĂ© irrĂ©futable. Ensuite, pour plus de simplicitĂ©, je vais appeler cette technologie “Publicly Verifiable Random Beacons” ou PVRB. Étant donnĂ© que les blockchains sont des rĂ©seaux oĂč les informations peuvent ĂȘtre vĂ©rifiĂ©es par chaque participant, une partie essentielle du nom est “Publicly Verifiable”, c'est-Ă -dire que quiconque peut obtenir une preuve par calcul que le nombre obtenu, stockĂ© dans la blockchain, possĂšde les propriĂ©tĂ©s suivantes :

  • Le rĂ©sultat doit avoir une distribution prouvĂ©e Ă©quitable, c'est-Ă -dire reposant sur une cryptographie rĂ©sistante Ă  la preuve.
  • Il est impossible de contrĂŽler l'un des bits du rĂ©sultat. Par consĂ©quent, le rĂ©sultat ne peut pas ĂȘtre prĂ©dit Ă  l'avance.
  • Il est impossible de saboter le protocole de gĂ©nĂ©ration en ne participant pas au protocole ou en surchargeant le rĂ©seau avec des messages attaquants.
  • Tout ce qui prĂ©cĂšde doit ĂȘtre rĂ©sistant aux collusions d'un nombre admissible de participants malhonnĂȘtes au protocole (par exemple 1/3 des participants).

Toute possibilité pour un groupe minoritaire collusionnaire de générer un aléatoire pair/impair contrÎlé est une faille de sécurité. Toute possibilité pour un groupe de stopper la génération d'aléatoire est une faille de sécurité. En général, il y a de nombreux problÚmes, et cette tùche n'est pas facile


Il semble que l'application la plus importante pour le PVRB soit les jeux divers, les loteries, et en général tous les types de jeux d'argent sur la blockchain. En effet, c'est un domaine important, mais l'aléatoire dans les blockchains a des applications encore plus significatives. Examinons-les.

Algorithmes de consensus

Le PVRB pour l'organisation du consensus rĂ©seau joue un rĂŽle immense. Les transactions dans les blockchains sont sĂ©curisĂ©es par une signature Ă©lectronique, donc une "attaque sur une transaction" consiste toujours Ă  inclure ou Ă  exclure une transaction dans un bloc (ou dans plusieurs blocs). La principale tĂąche de l'algorithme de consensus est de convenir de l'ordre de ces transactions et de l'ordre des blocs qui incluent ces transactions. De plus, une caractĂ©ristique nĂ©cessaire pour les blockchains rĂ©elles est la finalitĂ© — la possibilitĂ© pour le rĂ©seau de convenir que la chaĂźne jusqu'au bloc finalisĂ© est dĂ©finitive, et ne sera jamais exclue en raison de l'apparition d'un nouveau fork. En gĂ©nĂ©ral, pour convenir qu'un bloc est valide et, surtout, final, il est nĂ©cessaire de recueillir des signatures de la plupart des producteurs de blocs (ci-aprĂšs BP — block-producers), ce qui nĂ©cessite au minimum de transmettre la chaĂźne de blocs Ă  tous les BP, et de propager les signatures entre tous les BP. Avec l'augmentation du nombre de BP, le nombre de messages nĂ©cessaires dans le rĂ©seau augmente de maniĂšre exponentielle, par consĂ©quent, les algorithmes de consensus nĂ©cessitant la finalitĂ©, comme ceux utilisĂ©s par exemple dans le consensus pBFT de Hyperledger, ne fonctionnent pas Ă  la vitesse requise, mĂȘme avec quelques dizaines de BP, nĂ©cessitant un nombre Ă©norme de connexions.

S'il existe un PVRB incontestable et honnĂȘte dans le rĂ©seau, mĂȘme dans l'approximation la plus simple, il est possible de choisir l'un des producteurs de bloc comme "leader" durant un tour du protocole. Si nous avons N des producteurs de blocs, dont M : M > 1/2 N sont honnĂȘtes, ne censurent pas les transactions et ne construisent pas de forks de la chaĂźne dans le but de mener une attaque de "double dĂ©pense", alors l'utilisation d'un PVRB incontestable uniformĂ©ment distribuĂ© permettra de choisir un leader honnĂȘte avec une probabilitĂ© de M / N (M / N > 1/2)Si chaque leader se voit assigner un intervalle de temps propre pendant lequel il peut produire un bloc et valider la chaĂźne, et si ces intervalles sont Ă©gaux, alors la chaĂźne de blocs des BP honnĂȘtes sera plus longue que celle formĂ©e par les BP malveillants. L'algorithme de consensus, qui s'appuie sur la longueur de la chaĂźne, rejettera simplement la "mauvaise". Ce principe d'attribution d'Ă©gales quantitĂ©s de temps Ă  chaque BP a Ă©tĂ© appliquĂ© pour la premiĂšre fois dans Graphene (prĂ©dĂ©cesseur d'EOS) et permet Ă  la plupart des blocs d'ĂȘtre fermĂ©s par une seule signature, rĂ©duisant ainsi considĂ©rablement la charge rĂ©seau et permettant Ă  ce consensus de fonctionner extrĂȘmement rapidement et de maniĂšre stable. Cependant, les rĂ©seaux EOS doivent actuellement utiliser des blocs spĂ©ciaux (Last Irreversible Block), qui sont validĂ©s par les signatures de 2/3 des BP. Ces blocs servent Ă  garantir la finalitĂ© (l'impossibilitĂ© d'un fork de la chaĂźne commençant avant le dernier Last Irreversible Block).

De plus, dans les mises en Ɠuvre rĂ©elles, le schĂ©ma du protocole est plus complexe : les votes sur les blocs proposĂ©s se dĂ©roulent par Ă©tapes pour maintenir le fonctionnement du rĂ©seau en cas de blocage ou de problĂšmes rĂ©seau. MĂȘme en prenant cela en compte, les algorithmes de consensus utilisant PVRB nĂ©cessitent considĂ©rablement moins de messages entre les BP, ce qui les rend plus rapides que le PВFT traditionnel ou ses diverses modifications.

Le représentant le plus marquant de tels algorithmes est : Ouroboros de l'équipe de Cardano, qui, comme annoncé, possÚde une résistance mathématiquement prouvée à la collusion parmi les BP.

Dans Ouroboros, le PVRB est utilisĂ© pour dĂ©terminer le soi-disant "BP schedule" — un calendrier selon lequel chaque BP se voit attribuer un crĂ©neau horaire pour publier un bloc. Un grand avantage de l'utilisation de PVRB est l'Ă©galitĂ© totale des BP (selon la taille de leurs soldes). L'honnĂȘtetĂ© du PVRB garantit que les BP malveillants ne peuvent pas contrĂŽler le calendrier des crĂ©neaux horaires et, par consĂ©quent, ne peuvent pas manipuler la chaĂźne en prĂ©parant et en analysant Ă  l'avance les forks de la chaĂźne. Pour choisir un fork, il suffit de se fier Ă  la longueur de la chaĂźne, sans recourir Ă  des mĂ©thodes rusĂ©es de calcul de "l'utilitĂ©" des BP et du "poids" de leurs blocs.

Dans tous les cas oĂč il est nĂ©cessaire de sĂ©lectionner un participant alĂ©atoire dans un rĂ©seau dĂ©centralisĂ©, le PVRB est presque toujours le meilleur choix, par rapport Ă  une option dĂ©terministe basĂ©e, par exemple, sur le hachage d'un bloc. Sans PVRB, la possibilitĂ© d'influencer le choix d'un participant conduit Ă  des attaques oĂč l'attaquant peut, en choisissant parmi plusieurs options futures, sĂ©lectionner le prochain participant corrompu ou plusieurs d'entre eux, afin d'obtenir une part plus significative dans la prise de dĂ©cision. L'utilisation du PVRB discrĂ©dite ces types d'attaques.

Mise à l'échelle et répartition de la charge

Le PVRB peut Ă©galement apporter des avantages considĂ©rables dans les tĂąches de rĂ©duction de charge et de mise Ă  l'Ă©chelle des paiements. Il est judicieux de commencer par examiner le document article de Rivestra « Billets de loterie Ă©lectroniques en tant que micropaiements ». L'idĂ©e gĂ©nĂ©rale est que, au lieu de faire 100 paiements de 1 centime du payeur au bĂ©nĂ©ficiaire, on peut jouer Ă  une loterie Ă©quitable avec un prix de 1 $ = 100 centimes, oĂč le payeur, pour chaque paiement de 1 centime, transmet Ă  la banque l'un de ses 100 « billets de loterie ». Un de ces billets rapporte 1 $ Ă  la banque, et c'est ce billet que le bĂ©nĂ©ficiaire peut enregistrer sur la blockchain. L'aspect le plus important est que les 99 autres billets sont transfĂ©rĂ©s entre le bĂ©nĂ©ficiaire et le payeur sans aucune intervention externe, par un canal privĂ© et Ă  la vitesse souhaitĂ©e. Une bonne description du protocole basĂ© sur ce schĂ©ma dans le rĂ©seau Emercoin peut ĂȘtre lue ici.

Ce schĂ©ma prĂ©sente plusieurs problĂšmes, par exemple, le bĂ©nĂ©ficiaire peut cesser de servir le payeur immĂ©diatement aprĂšs avoir reçu le billet gagnant, mais pour de nombreuses applications particuliĂšres, telles que la facturation Ă  la minute ou les abonnements Ă©lectroniques Ă  des services, ces problĂšmes peuvent ĂȘtre ignorĂ©s. La principale exigence est bien sĂ»r l'honnĂȘtetĂ© de la loterie, et pour cela, le PVRB est absolument nĂ©cessaire.

Le choix d'un participant alĂ©atoire est Ă©galement crucial pour les protocoles de sharding, dont l'objectif est l'Ă©volutivitĂ© horizontale de la chaĂźne de blocs, permettant Ă  diffĂ©rents BP de traiter uniquement leur champ de transactions. C'est une tĂąche extrĂȘmement complexe, notamment en ce qui concerne la sĂ©curitĂ© lors de la fusion des shards. Le choix honnĂȘte d'un BP alĂ©atoire pour dĂ©signer le responsable d'un shard spĂ©cifique, tout comme dans les algorithmes de consensus, constitue Ă©galement un dĂ©fi pour le PVRB. Dans les systĂšmes centralisĂ©s, les shards sont attribuĂ©s par un Ă©quilibreur, qui calcule simplement le hash de la demande et l'envoie au destinataire appropriĂ©. Dans les blockchains, la possibilitĂ© d'influencer cette attribution peut conduire Ă  une attaque contre le consensus. Par exemple, le contenu des transactions peut ĂȘtre contrĂŽlĂ© par un attaquant, qui peut dĂ©cider quelles transactions sont intĂ©grĂ©es dans le shard qu'il contrĂŽle et manipuler la chaĂźne de blocs Ă  l'intĂ©rieur. Vous pouvez lire la discussion sur le problĂšme de l'utilisation des nombres alĂ©atoires pour les tĂąches de sharding dans Ethereum. ici
Le sharding est l'une des tùches les plus ambitieuses et sérieuses dans le domaine de la blockchain, et sa résolution permettra de construire des réseaux décentralisés d'une performance et d'une capacité fantastiques. Le PVRB n'est qu'un des blocs importants pour sa résolution.

Jeux, protocoles économiques, arbitrage

Le rĂŽle des nombres alĂ©atoires dans l'industrie du jeu est difficile Ă  surestimer. Leur utilisation explicite dans les casinos en ligne, ainsi que leur utilisation implicite lors du calcul des effets des actions des joueurs, pose des problĂšmes complexes pour les rĂ©seaux dĂ©centralisĂ©s, oĂč il n'est pas possible de se fier Ă  une source centrale de hasard. Cependant, le choix alĂ©atoire peut Ă©galement rĂ©soudre de nombreux problĂšmes Ă©conomiques et aider Ă  construire des protocoles plus simples et plus efficaces. Supposons que notre protocole soit confrontĂ© Ă  des litiges concernant le paiement de certains services peu coĂ»teux, et que ces litiges surviennent relativement rarement. Dans ce cas, s'il existe un PVRB incontestable, les clients et les vendeurs peuvent convenir de rĂ©soudre alĂ©atoirement les litiges avec une probabilitĂ© donnĂ©e. Par exemple, avec une probabilitĂ© de 60 %, le client l'emporte et avec une probabilitĂ© de 40 %, le vendeur. Cette approche, qui peut sembler absurde au premier abord, permet de rĂ©soudre automatiquement les litiges avec des taux de victoire/perte prĂ©cisĂ©s, satisfaisant les deux parties sans avoir besoin d'un tiers et en Ă©conomisant du temps. De plus, le rapport des probabilitĂ©s peut ĂȘtre dynamique et dĂ©pendre de certaines variables globales. Par exemple, si l'entreprise se porte bien, observant un faible nombre de litiges et une haute rentabilitĂ©, elle peut automatiquement ajuster la probabilitĂ© de rĂ©solution des litiges en faveur des clients, par exemple Ă  70/30 ou 80/20, et inversement, si les litiges coĂ»tent cher et sont frauduleux ou inappropriĂ©s, elle peut dĂ©placer la probabilitĂ© dans l'autre sens.

De nombreux protocoles dĂ©centralisĂ©s intĂ©ressants, tels que les registres de jetons organisĂ©s par des utilisateurs, les marchĂ©s prĂ©dictifs, les courbes de bonification et bien d'autres, constituent des jeux Ă©conomiques oĂč un bon comportement est rĂ©compensĂ© et un mauvais est puni. Ces systĂšmes rencontrent souvent des problĂšmes de sĂ©curitĂ©, dont la protection s'oppose les uns aux autres. Ce qui est protĂ©gĂ© contre l'attaque des "baleines" possĂ©dant des milliards de jetons ("big stake") est vulnĂ©rable aux attaques menĂ©es par des milliers de comptes avec de petits soldes ("sybil stake"), et les mesures prises contre une attaque, telles que les frais non linĂ©aires conçus pour rendre le travail d'un grand stake non rentable, sont gĂ©nĂ©ralement discrĂ©ditĂ©es par une autre attaque. Étant donnĂ© qu'il s'agit d'un jeu Ă©conomique, les poids statistiques correspondants peuvent ĂȘtre calculĂ©s Ă  l'avance et il suffit de remplacer les frais par des frais randomisĂ©s avec une distribution adĂ©quate. De tels frais probabilistes sont rĂ©alisĂ©s extrĂȘmement simplement, si la blockchain dispose d'une source de randomisation fiable et ne nĂ©cessitent aucun calcul complexe, compliquant la vie tant pour les baleines que pour les sybils.
Il est Ă©galement important de se rappeler que le contrĂŽle d'un seul bit dans cette randomisation permet de manipuler, en augmentant ou diminuant les probabilitĂ©s de moitiĂ©, si un PVRB honnĂȘte est une composante essentielle de tels protocoles.

OĂč trouver un bon alĂ©a ?

En thĂ©orie, un tirage au sort Ă©quitable dans des rĂ©seaux dĂ©centralisĂ©s peut garantir une sĂ©curitĂ© dĂ©montrable presque pour n'importe quel protocole contre les collusions. La justification est assez simple : si le rĂ©seau s'accorde sur un bit de 0 ou 1, et que moins de la moitiĂ© des participants sont malhonnĂȘtes, alors, avec un nombre suffisant d'itĂ©rations, le rĂ©seau arrivera Ă  un consensus sur ce bit avec une probabilitĂ© fixe. Tout simplement parce qu'un alĂ©a honnĂȘte choisira 51 des 100 participants dans 51 % des cas. Mais c'est dans la thĂ©orie, car dans les rĂ©seaux rĂ©els, pour garantir un tel niveau de sĂ©curitĂ©, comme dans les articles, un grand nombre de messages entre les hĂŽtes est nĂ©cessaire, une cryptographie complexe Ă  plusieurs niveaux, et toute complication du protocole ajoute immĂ©diatement de nouveaux vecteurs d'attaque.
C'est pourquoi nous ne voyons pas encore de PVRB durable dans les blockchains, qui ait été utilisé suffisamment longtemps pour passer les tests d'applications réelles, d'audits multiples, de charges de travail, et bien sûr, d'attaques réelles, sans lesquelles il est difficile de qualifier le produit de véritablement sécurisé.

Cependant, il existe plusieurs approches prometteuses, qui se distinguent par de nombreux dĂ©tails, et l'une d'entre elles rĂ©soudra certainement le problĂšme. Avec les ressources informatiques modernes, la thĂ©orie cryptographique peut ĂȘtre habilement transformĂ©e en applications pratiques. Plus tard, nous serons ravis de parler des implementations de PVRB : il en existe actuellement plusieurs, chacune ayant son propre ensemble de propriĂ©tĂ©s et de caractĂ©ristiques de mise en Ɠuvre, et chacune reposant sur une bonne idĂ©e. Peu d'Ă©quipes travaillent sur les gĂ©nĂ©rateurs de nombres alĂ©atoires, et l'expĂ©rience de chacune d'elles est extrĂȘmement prĂ©cieuse pour toutes les autres. Nous espĂ©rons que nos informations permettront aux autres Ă©quipes d'avancer plus rapidement, en tenant compte de l'expĂ©rience des prĂ©dĂ©cesseurs.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster