Données du problème : La "Proof of Authority" (PoA) mise en place par la Société X.
Termes du White Paper de Société X
"Les mineurs deviennent des validateurs : s’ils possèdent un nombre de token supérieur à (xxxxx) et s’ils demandent à devenir Validateur".
5% des revenus du système dans son entier sont reservés aux mineurs. "
I. Introduction.
Définition générale de la "proof of authority".
« Dans un réseau basé sur une "Proof of Authority" (preuve d’autorité), les transactions et les blocs sont validés par des comptes agréés dénommé « Validateurs ». Les Validateurs utilisent des logiciels pour inscrire les transactions dans des blocs. Le processus est automatique et ne demande pas que les validateurs soient constamment en train de surveiller leurs écrans. En revanche, il est nécessaire qu’ils maintiennent l’intégrité de la node-autorité afin d’assurer que le système n’est pas corrompu. Le terme a été conçu par Gavin Wood, co-fondateur d’Ethereum et de Parity Technologies ».
En bref, une PoA implique des “comptes approuvés” (a.) qui « garantissent » (b.) « l’intégrité » (c.) de « la node-autorité » (d.) (le groupe d’ordinateurs qui calcule les algorithmes de cryptage et valide les transactions).
a) Utilisation de la PoA.
Le but initial de la "Proof of Authority" est d’empêcher les fraudes qui pourraient être organisées par un groupe majoritaire de mineurs. En organisant la “pré-validation” des transactions par un groupe limité et choisi de mineurs avant d’enregistrer ces transactions sur une blockchain publique, l’opérateur minimise les risques d’abus ou de fraudes. Les validateurs étant en nombre limité, le contrôle de leurs actions est facilité.
Un usage indirecte mais courant est de réduire les coûts d’enregistrements sur la Blockchain publique, couteuse, en n’y enregistrant une transaction unique. En réalité, cette transaction unique renvoie à un grands nombre de transactions qui ont été préalablement vérifiées, validées et inscrites dans une Blockchain Privée (dont les enregistrements ne sont pas accessibles au public).
Ayant déjà été validées par ailleurs, ces transactions individuelles n’auront pas à être validées à nouveau sur la Blockchain publique et il suffit de valider le groupe ou le bloc qui représente toutes ces transactions individuelles, ce qui permet de diviser le prix par 100, par 1.000 ou par un autre nombre, l’économie réalisée dépendant essentiellement des coûts de fonctionnement de la Blockchain Privée.
b) Implémentation de la PoA.
Jusqu’à aujourd’hui, la "Proof of Authority" a surtout été utilisée dans une stratégie de réduction des coûts en organisant une communication à partir d’une blockchain privée vers une blockchain publique.
Toutefois, divers projets créés en 2018 démontrent qu’il existe différents moyens d’implémenter, d’étendre et de renforcer une "Proof of Authority".
Cette diversité provient du fait que tous les projets ne demandent pas le même « niveau d’autorité effective ».
c) Définition de “authority” selon le Oxford Dictionary.
« Le pouvoir ou le droit de donner des ordres, de prendre des décisions, de forcer l’obéissance. Permission officielle ou sanction ».
Les blockchain et les smart-contracts ne connaissent pas les rapports de force mais demandent plutôt une compatibilité réciproque.
Il est plus simple de visualiser un rapport "requête/acceptation" qu’un rapport hierarchique de type "ordre/obeissance".
II. Différents niveaux d’autorité.
“With great power comes great responsibility” (Ben Parker, oncle de Spiderman)
Un grand pouvoir entraine de grandes responsabilités : s’il n’y a pas de responsabilité, l’Autorité est fragile voire inexistante. Si l’Autorité ne rend de comptes à personne, alors il n’est pas possible de la qualifier d’ « Autorité effective » ni de l’autoriser à produire des conséquences hors de l’écosystème d’une Blockchain en particulier, puisque personne ne répond de la vérité qu’est censée confirmer l’autorité.
Souvent, celà n’a aucune importance puisqu’il s’agit d’authentifications entre des machines, mais d’autres projets sont plus ambitieux.
Une PoA de niveau inférieur ne garantirait pas grand-chose et reste limitée à une utilisation technique : c’est une instruction reconnue par les utilisateurs d’un système, mais qui n’a pas de valeur ou de réelle signification hors de ce système, c’est-à-dire sur une autre Blockchain privée ou dans le monde réel.
Une PoA de niveau supérieur permettrait d’étendre l’autorité à des entités extérieures : il peut s’agir d’une autre Blockchain privée (interconnexions autorisées aux tiers sous certaines conditions telles qu’un certificat commun), ou une interaction avec une autorité du monde physique tel qu’un Tribunal (reconnaissance de preuves, significations, jugements automatisés).
III. Différents niveaux de responsabilité.
Plus l’Autorité doit être forte, et plus elle doit assumer sa responsabilité dans le but de créer un niveau de confiance plus important. La création de rapports de confiance de niveau supérieur est l’objectif premier de la Blockchain.
La responsabilité des validateurs semble donc être un élément nécessaire pour leur conférer une quelconque autorité effective.
Il est aussi vrai qu’en pratique, les PoA sont utilisées dans des buts divers. Il peut s’agir simplement de réduire les couts d’une transaction en connectant deux ordinateurs ensemble, sans chercher à créer absolument une preuve de niveau juridique, mais seulement à réduire des coûts en « faisant avec » les différentes possibilités du système.
IV. La « Proof of Authority » est-elle compatible avec une « Proof of Stake » ?
En d’autres termes, est-il possible à une Autorité d’avoir un intérêt (financier) dans le système dont elle doit garantir le fonctionnement.
Il est normal de recevoir une compensation pour un travail effectué. L’intérêt n’est donc pas incompatible avec l’autorité.
Il peut cependant être difficile de retirer ou réduire l’intéressement, en particulier si celui-ci est important.
La corruption résulte d’un abus d’autorité. Quand la corruption (au sens large) fait profondément partie du système, elle est très difficile à contrôler car l’autorité corrompue n’acceptera pas qu’on lui retire cet avantage qui, à force, est devenu un intéressement et un mode de fonctionnement « normal » du système. Donc l’autorité corrompue est conduite à protéger ce fonctionnement erratique qu’elle considère comme un avantage acquis. A ce point, l’intérêt-corrompu est le moteur du système et le supprimer revient à arreter ce moteur.
Donc, non seulement l’autorité n’est pas incompatible avec l’intéressement, mais il faut en plus que l’intéressement soit suffisant pour ne pas entrainer la corruption du système ou l’arrêt de son fonctionnement.
V. Sur la "Proof of Authority" mise en place par Société X.
La "Proof of Authority" mise en place par la Société X est conçue comme une « Proof of Stake préalable à une Proof of Work », à partir d’une Blockchain privée vers une Blockchain publique.
L’autorité découle de l’intéressement et est nourrie par celui-ci. En effet, on ne peut être validateurs qu’après avoir accumulé un certain nombre de tokens, et la qualité de validateurs permet d’augmenter encore ses gains, en octroyant aux validateurs un pourcentage sur la totalité des revenus du système.
L’Autorité effective (garantie d’intégrité) dépend moins des validateurs que de l’encryption 128bits et d’EVM (Ethereum Virtual Machine).
Les validateurs permettent au système de fonctionner (minage) mais leur intervention n’améliore pas la garantie conférée par les protocoles techniques.
La garantie immédiate est que, pendant un certain temps pendant après l’ICO, « les mineurs sont des personnes physiques ou morales intéressés par la possibilité d’augmenter leurs gains », leur intéressement étant proportionnel aux revenus du système dans son ensemble (5% des revenus globaux), sans parler des possibilités de plus-values en revendant les tokens acquis à prix préférentiel au moment de l’ICO.
Les fondateurs du projet postulent qu’un tel intéressement aura une influence sur le comportement intègre attendu des mineurs et créera ainsi une autorité en qui les usagers du système pourront avoir confiance. Sinon les usagers ne viendront pas et les mineurs ne feront pas de bénéfices.
Ceci est parfaitement logique, mais également partial.
En réalité, les investisseurs peuvent parfaitement avoir investi dans l’ICO justement parce qu’il n’y pas de sanction et que le rôle des validateurs est passif.
La condition selon laquelle les validateurs doivent “s’assurer que le système n’est pas compromis” qui est un rôle actif et non pas un rôle passif, ne semble pas remplie dans ce cas. Les mineurs du projet sont passifs. Le White Paper et l’ICO confirment qu’ils n’ont « rien à faire » en matière de surveillance.
S’il est éventuellement acceptable qu’une PoA reste à ce niveau minimal d’autorité - puisqu’il s’agit avant tout d’un échange cryptographique entre deux nœuds signifiant que des blocs ont été minés correctement sur la Blockchain privée en fonction de critères divers - il faut quand même rappeler que le Projet de la société X concerne des documents appartenant à des individus et des sociétés, c’est-à-dire des données sensibles et très recherchées, d’une valeur potentiellement supérieure à l’intéressement prévu.
De plus, l’objectif de levée de fonds est de (plusieurs dizaines de millions d’euros) en vue d’attirer « un maximum d’utilisateurs » ce qui signifie un nombre très important de documents et de données, d’où un risque encore accru.
Or, le fait que l’intéressement est la seulle condition d’accès au privilège d’autorité ne rend pas impossible la prise de contrôle totale des fonctions de minage via un rachat de la totalité des tokens-de-minage en circulation.
Avec un tel niveau de risque et de responsabilité envers les usagers du système, il ne semble pas acceptable que les fondateurs se soient contentés d’une « Proof of Authority » simplement technique, et qu’ils ne prévoient pas, ni même n’évoquent à aucun moment dans le White Paper, un mécanisme d’évaluation, de destitution, ou de sanction des « mineurs-validateurs » par les usagers et/ou par les autres « mineurs-validateurs » et/ou la Gouvernance de la blockchain privée.