Le système de vote électronique Suisse contient des failles !

Le système de vote électronique fait par l'entreprise espagnole Scytl et promu en Suisse par la poste contient au moins 2 failles sérieuses de conception !

.. Ça fait des années que la 1ère faille est connue (depuis 2017) et les concepteurs ne semblent pas pressés de combler la faille! pourquoi ?

faille vote électronique suisse 9 juin 2013
Votation du 9 juin 2013 via le système de e-voting neuchâtelois développé par Scytl

Les hackers éthiques n'ont pas le droit de parler des failles !

Pire.... un concours de hacker a été lancé en février mars 2019 pour trouver les failles... mais selon les termes du contrat, impossible de révéler au grand public l'existence des failles !!

... alors c'est hors concours qu'une experte en sécurité électronique dénonce cette faille.

black hat et white hat vote electronique
Chez les Hacker (bidouilleur en français), il y a les Black Hat, les chapeaux noirs qui oeuvrent pour le côté obscure. Et il y a les White hat, les chapeaux blancs qui sont engagés pour tenter de pirater des systèmes afin de les mettre à l'épreuve de découvrir les failles pour le corriger.

1ère faille de système de vote de Scytl concernant la vérifiabilité complète

Voici l'article de swissInfo qui nous parle de la découverte de cette erreur de conception du système de vote électronique de SYTL utilisé en Suisse.

Cette erreur de conception du système de vote de SCYTL permet de créer de fausses preuves de vote ! On peut donc réaliser l'équivalent électronique d'un bourrage d'urne. Ajouter des votes sorti de nulle part !

Il semble que cette erreur est présente depuis 2017 !! Rien n'a été fait pour corriger cette erreur ? Pourquoi ?

urne transparente vote

Pour les Geeks voici l'article scientifique (pdf) qui décrit la faille découverte:
The use of trapdoor commitments in Bayer-Groth proofs
and the implications for the verifiabilty of the
Scytl-SwissPost Internet voting system∗

*Depuis la publication de cet article, il a été découvert que la même faille du système de vote électronique Suisse de la poste avait aussi été découverte par Thomas Haines etRolf Haenni de la HES bernoise. Voici leurs articles scientifiques....

Seconde faille du système de vote de Syctl concernant l'anonymat du vote

One more thing....

Depuis que le monde s'intéresse à ce code. Une seconde faille a été découverte par une chercheuse de l'université de Melbourne en Australie qui utilise le même système de vote électronique de Scytl.

Cette seconde faille agit au niveau du chiffrage d'un vote. La méthode est sensée ne laisser aucune connaissance sur la clé de déchiffrage. Ce qui permet de garantir l'anonymat de votant. Mais voilà que cet algorithme laisse une trace de la clé.

faille securite vote electronique scytl e-voting anonymat

Donc il est possible d'imaginer qu'une personne puisse cibler des votes en particuliers et les rendre inactifs en les mettant dans un état "impossible".

Cette attaque laisse une trace, mais fait son effet quand même. Il est possible de faire disparaitre des votes. Que faire si c'est détecté ? tout revoter ? Ce serait la meilleure solution... mais ça montre que le système actuel de Scytl ne fonctionne pas.

Voici le détail de cette faille dans un article scientifique en pdf...

relation argent martouf billet 1000 chf

Plusieurs voix s'élèvent contre le vote électronique

Alors que le débat était très silencieux ces dernières années, que les opposants au vote électronique étaient surtout des personnes issues du parti pirate, j'observe que ces derniers temps le débat prend de l'ampleur.

2008_02_06_17_48_744px_Pirate_Flag_of_Rack_Rackham_svg

L'Etat de Genève abandonne sa plateforme de vote électronique

Fin 2018 l'Etat de Genève annonce la fin de sa plateforme de vote électronique. Il ne restera donc plus que le système de la poste développé par l'entreprise espagnole Scytl. Cette perspective de monopole du vote électronique par une entreprise privée étrangère doit y être pour pas mal dans le réveil des conscience.

Ceci juste au moment où le conseil fédéral annonce qu'on arrive dans la phase finale de développement du vote électronique et que fin 2019 la solution de la poste/scytl sera certainement certifiée pour être utilisée avec 100% de la population !

vote electronique suisse

Baisse d'intérêt des cantons pour le vote électronique

Vaud

Le conseil d'Etat du canton de vaud, en apprenant les failles trouvées dans le logiciel de vote de la Poste/Scytl se déclare opposé à la modification de la loi sur les droits politique pour y inclue le vote électronique.

C'est aussi la perspective d'un monopole d'une entreprise étrangère qui ne convainc pas le conseil d'Etat vaudois.

Neuchâtel

Ça bouge aussi en terres neuchâteloise, là où le vote électronique a débuté en 2005.

chateau-de-Neuchâtel-au-lever-du-soleil

Le canton de Neuchâtel a été le tout premier client de l'entreprise Scytl dès 2004 avant qu'elle ne s'étendant de l'Australie aux USA, en passant par la norvège, l'Inde, la Russie, le Mexique, le Canada et l'Equateur, ainsi que dans de nombreuses entreprises comme McDo....

Il semble d'ailleurs que Scytl a fait quelques magouilles dans l'attribution d'un fond de 1.5 millions d'euro donné par le gouvernement espagnol pour développer des collaborations avec d'autres universités espagnoles. Cet argent aurait été utilisé exclusivement pour réaliser un prototype pour convaincre le canton de Neuchâtel !

C'est ce que nous révèle le magasine Suisse Republik, dans une enquête fouillées sur l'histoire et les pratiques pas toujours très nettes de SCYTL....

Par exemple, il semble que Scytl a eu des expériences désastreuses il y a 10 ans avec des machines à voter en Equateur. Que la Norvège a utilisé son système de vote électronique, puis découvert une faille et cessé de l'utiliser. Dans sa communication Scytl dit que la Norvège est heureuse de son système...

vote electronique bns

Quand il s'agit de publier le code source, exigence de l'art 7a de l'ordonnance sur le vote électronique, il semble qu'à priori Scytl n'en a pas envie du tout.... pourtant c'est un des fondements de tout système de sécurité informatique !

Nos amis Australiens sont très heureux que la loi Suisse ait permis de voir le code source de la solution de Scytl utilisée également en Australie. Ainsi ils ont enfin le droit de voir le code de l'outil qu'ils utilisent. Ils remercient le gouvernement Suisse !

Bref... Scytl est une entreprise commerciale. Elle a été financée par plusieurs fonds d'investissement pour 120 millions de $ .... Elle va chercher à rentabiliser son commerce, elle n'a pas envie de montrer le coeur de son activité... ce qui est contraire aux fondements de la sécurité informatique et très discutable pour une fonction aussi stratégique que le vote, dans autant de pays !

La Suisse étant un potentiellement un bon marché l'entreprise fait certainement des concessions !

bulletin vote electronique 17 juin 2007

Du coup, à Neuchâtel, il y a une interpellation qui a été déposée pour savoir le coût du système de vote Scytl et les détails du contrat qui ne sont pas connu. Surtout avec le fait que c'est le canton de Neuchâtel qui avait développé la solution de vote avec Scytl et qu'ensuite c'est la poste qui a repris la solution. Est-ce que le canton de Neuchâtel s'est fait voler son boulot?

Il y a un vrai manque de transparence ! Pas bon pour le vote !

De plus Scytl ne semble pas répondre quand on pose des questions à propos d'attaque par dénis de services: DDOS. (le concept est simple, c'est envoyer tellement de requêtes au serveur qu'il fini par être inutilisable. C'est souvent utilisé par les pirates pour rendre inutilisable un service qu'on arrive pas pirater.)

pirate informatique vote electronique scytl

Il est à noter que la question du coût du système de vote de Scytl est aussi sortie au conseil national, mais que l'on ne saura rien de plus, le vote étant de la compétence des cantons et que la confédération bien qu'étant propriétaire de la Poste n'a pas le droit de le dire si la Poste ne le veut pas !

Zurich

Du côté de Zürich, il y a un ralentissement à propos de l'intérêt pour le vote électronique. C'est trop cher pour ce que ça apporte. Il faudrait se mettre à jour tout le temps pour éviter de se faire pirater. Donc les budgets qui étaient prévu pour le vote électronique sont gentiment gelés.

Argovie

Dans le canton d'argovie une motion a été déposée pour demander de cesser le projet pilote d'élection fédérale par vote électronique.

Jura

En décembre 2018, le parlement du canton du Jura, après avoir de justesse accepté le texte en première lecture, a refusé le vote électronique en seconde lecture.

Le gouvernement du canton voulait proposer le vote électronique comme moyen officiel de vote dans la loi sur les droits politique. Ça ne sera pas le cas.

Les raisons évoquées pour refuser le vote électroniques sont, les failles de sécurité, les coûts et le fait que l'analyse du vote électronique est transmise à des experts qui ne sont pas élus. On perd un fondement démocratique.

Glaris

Le canton de Glaris a testé le vote électronique depuis 2015. La Landesgemeinde de 2017 a fourni un cadre légal pour aller plus loin. L'idée était de permettre aux citoyens d'utiliser le vote électronique pour les élections fédérales de 2019.

Fin 2018 c'est le système de la Poste/Scytl qui a été choisi. Mais voilà que le projet de vote électronique a été suspendu pour une durée indéterminée. Le vote électronique ne sera pas disponible pour les élections fédérales de 2019.

suisse moderne de 1848

Une initiative populaire fédérale demande un moratoire sur le vote électronique

Un comité comprenant des personnes de tout bords politiques a lancé une initiative populaire fédérale pour un moratoire sur le vote électronique a été lancée le 13 mars 2019...

Si ça t'intéresse Tu peux télécharger ici le matériel de signature...

L'ancien conseiller national Jean-christophe Schwaab discute pas mal de vote électronique ces temps. C'est une source à voir...

Au vue de tout ce qui précède, on voit que le vote électronique a du plomb dans l'aile.... Il est possible que le peuple se prononce en votation sur le sujet ! (et il faudra décider par vote électronique ? A Genève ça a été fait, il était possible de voter par vote électronique pour savoir si l'on veut du vote électronique !! :p )

bureau de vote electronique

Les grands principes du vote électronique

Il y a des grands principes qui sont valables dans le monde de la sécurité informatique et dans le monde du chiffrage des données. (souvent appelé cryptage)

Ainsi le vote électronique doit remplir un certain nombres de critères pour être considéré comme bien conçu. C'est pour ça que la mise en place du vote électronique avance gentiment depuis une quinzaine d'année.

Il y un cadre légal qui n'autorise qu'une portion de la population a participer au vote électronique

La vérifiabilité individuelle

La vérifiabilité individuelle, est la capacité personnelle à pouvoir vérifier que tout le processus de vote s'est passé de manière correcte pour un individu et que son avis sera bien pris en compte.

C'est l'équivalent de voir son bulletin de vote dans l'urne, et avoir l'assurance qu'il sera bien comptabilisé tel quel.

Cette vérification se pratique avec une comparaison de code qui sont fourni sur le papier reçu par la poste et sur le code reçu en fin de processus informatique.

accuse de réception vote électronique suisse scytl
code fourni lors d'un scrutin sur le système neuchâtelois en 2013

Pourquoi des codes transmis sur papier ? c'est pas le but du vote électronique de se débarrasser du papier ?

Bonne question... ici, l'idée c'est d'avoir un canal de communication différent. Ainsi on ne peut que très difficilement se faire passer pour quelqu'un d'autre !

Mais il est vrai que pour les gens étant en voyage, ça complique nettement le principe du vote !!! On pourrait certainement imaginer envoyer ces codes par SMS ? Le SMS étant souvent considéré comme un canal passablement sûr.

C'est ce que fait Scytl avec le même système de vote électronique en Australie, mais la Poste Suisse ne veut pas du canal SMS... (peut être par ce que c'est la poste qui fait les envois ... postaux !!! un manque à gagner ? 😛 )

Voici l'explication de la vérifiabilité individuelle du vote en vidéo:

La théorie liée au processus de vérifiabilité du système de la poste/scytle est décrite dans ce document pdf..

Tous les documents et argumentaires pour le vote électronique sont disponibles sur cette page de la poste...

La vérifiabilité complète

Le but est actuellement de tendre à la vérifiabilité complète d'une urne. C'est à dire que l'on peut vérifier que tous les bulletins de vote sont bien dans l'urne et qu'ils n'ont pas été modifiés !
(donc que les bulletins soient les mêmes, sans modification... et aussi pas de bulletins sortis de nulle part !!)

On procède ainsi de façon mathématique à cette vérifiabilité complète.

e-voting hacked vete electronique

La faille de sécurité qui a été découverte dans le système de la poste/scytl est justement un problème de conception lié à la vérifiabilité complète.

Il est possible d'ajouter ou de supprimer des votes en cours de route sans que le système ne voit de problème ! C'est le principe du bourrage d'urne !

Voici un petit exemple de bourrage d'urne en Russie, (à Lioubertsi) la madame en bleu ne savait peut être pas qu'il y avait une caméra dans le bureau de vote !!?
(urne transparente et caméra pour assurer la transparence du processus .... une condition de base de tout système... on y reviendra ci-dessous)


Le gouvernement Suisse avait pour ambition de certifier le système de la poste scytl pour une utilisation avec potentiellement 100% des votants en 2019. Mais voilà que la découverte de cette faille remet en cause l'idée d'y arriver dans ces délais.

Ainsi les essais de vote électronique se poursuivent en Suisse, sur la base légale actuelle, comme depuis 2003, et donc avec une autorisation seulement partielle de la population, par paliers et pour 10 cantons. Ceci sans avoir de système qui garanti une vérifiabilité complète.

La chancellerie fédérale nous explique les base du vote électronique, notamment la "vérifiabilité individuelle" et la "vérifiabilité complète".

La publication du code source

Une des règles fondamentales en sécurité informatique et en chiffrage de contenu est que la sécurité repose sur des clés secrètes et non sur un mécanisme secret.

Comme la serrure de ta maison. C'est par ce que tu as la clé que tu peux entrer, pas par ce que ta serrure est cachée.... (et c'est pour cette raison que les DRM ça ne fonctionne pas pour protéger des livres ou de la musique !!!)

cle

Ainsi le code source, le mécanisme d'un système de vote doit être connu de tous. Il doit être transparent (comme les urnes... ah c'est pas le cas en suisse ? pourquoi ?).

Donc quand on parle de mécanisme informatique, il s'agit du code source de l'application.

C'est ainsi qu'en février 2019, la poste Suisse a enfin décidé de publier son code source (développé par Scytl)

Le code source du système de vote de la poste/scytle est disponible sur ce dépôt de code, pour autant de s'identifier auprès de la poste. Je vois qu'il y a plus de 1600 personnes qui comme moi s'intéressent au projet... mais aucune ne semble voir quoi que ce soit du code !!

Car avant il faut faire une demande d'accès, fournir sa profession et les motifs de sa demande d'accès. Ainsi que son identifiant de compte gitlab. Il est précisé que c'est destiné aux chercheurs.

Dans les conditions d'accès je lis:
" ACCORD D’ACCÈS AU CODE SOURCE DE LA SOLUTION DE VOTE ÉLECTRONIQUE L’accès au dépôt est limité à la durée du programme. Les accès au dépôt seront consignés. "

=> ça veut dire quoi "limité à la durée du programme" ? la campagne de hacking ? ou autre chose ?

C'est bien mais pas top tout ça !

Quant au code du système de vote électronique genevois il est disponible par ici sur github sans avoir à s'identifier...

geek ecodev code source terminal

Personnellement je déplore que très très souvent, les systèmes de votes électronique sont totalement opaques ! Ce sont souvent des machines à vote dont on te dis justement que leur sécurité dépend du fait que seule une entreprise a le droit de voir le code !!!!

C'est une totale contradiction par rapport aux règles fondamentales de la sécurité informatique. Si t vois un tel système. Il est fort probable que ce soit pour tricher qu'il est utilisé !! C'est pas pour le bien des citoyens.

Dans le même genre on peut se poser la question de pourquoi c'est toujours l'armée française qui transportes les urnes par hélicoptères dans les anciennes colonies française africaines ?
Comment garantir que leur contenu n'est pas modifié en vol ?

Exemple de piratage du système de vote électronique genevois (2013)

Voici une conférence très intéressante de Sébastien Andrivet qui nous explique, en 2013, comment il s'est documenté sur le système de vote créé par l'Etat de Genève, comment il a monté chez lui une réplique de ce système de vote et comment il a trouvé le moyen de pirater ce système.

Il a réussi à bidouiller le système (Hacker en anglais) pour changer le vote de l'utilisateur à son insu !

Le principe utilise le fait que ce système de e-voting Genevois présentait la possibilité de changer de vote ! (contrairement à la version standard de glisser un bulletin dans une urne)

C'est ainsi la moitié du travail, fait pour hacker le système et changer le vote de l'utilisateur à son insu !

Sébatient Andrivet prétend qu'il a procédé ainsi car c'est le plus simple, mais qu'il y avait aussi des failles permettant également de changer le vote sans avoir à utiliser cette fonction permettant de changer son vote !


Mais... pourtant il y a eu des rapports et des audit qui montre que le système est sûr !!!???
En effet, mais en regardant bien, ces audits se sont concentrés sur le système de serveur interne à l'Etat. Mais en aucun cas au maillon réputé le plus faible... le matériel de l'utilisateur !

En effet, c'est bien souvent le navigateur web d'un utilisateur qui n'est pas à jour et c'est l'utilisateur final qui n'a pas forcément les compétences pour détecter une attaque.

Si on le fait utiliser un code qui n'est pas le bon. L'utilisateur ne va probablement rien voir. Et c'est la technique qu'a utilisée Sébastien Andrivet.

On parle ici d'une erreur de conception de l'application. Une erreur de design, d'architecture. Ce n'est pas banal, c'est difficile à corriger car il faut changer le fonctionnement, le principe même de l'application.

C'est pas juste une erreur de Cross-Site scripting (exécution d'un script issu d'un autre site) ou de buffer overflow du à l'emploi d'un mauvais type de variable ou la non vérification de la forme des données reçues. Soucis rapidement corrigé.

Quand c'est le principe de base qui ne fonctionne pas que faire ?

C'est exactement le même problème de design auquel est confronté le système de Scytl qui fait grand bruit ces jours. Si l'erreur n'a pas été corrigée depuis 2017, c'est que sa correction implique le changement du fonctionnement de l'application !!

Un système de vote à base de Blockchain

Au milieu de tous ces remous autour du vote électronique. Il y a aussi la notion de Blockchain qui sort des les discussions. Cette approche n'avait pas été pensée au début des travaux sur les systèmes de vote électronique, vu que la notion de blockchain est arrivée plus tard.

La blockchain est surtout connue pour être utilisée dans les cryptomonnaie comme le bitcoin. Voici un article dans lequel je tente de vulgariser un peu comment fonctionne une blockchain et qui peut prendre des décisions dans l'accès à cette forme de base de données.

dazibao
Une blockchain est finalement identique à un panneau d'affichage public

La blockchain est une base de données gérée de manière décentralisée. Chaque noeud d'un réseau dispose d'une copie de la Blockchain. Ainsi pour mettre à jour cette base de données, il faut suivre un protocole.

Très souvent c'est la preuve par le travail qui est utilisée. C'est à dire qu'on suppose que la majorité des noeuds du réseaux sont gentils. Ils investissent de l'énergie pour garantir que la base de données est fiable.

Un pirate qui veut modifier la base de données doit recalculer la chaine sur un bon nombre de transactions, ainsi il doit investir exponentiellement plus d'énergie que les autres participants. Ce qui est physiquement impossible sur une blockchain comme celle du bitcoin qui est arrivée au limites physiques des calculateurs. Ainsi la base de données est inviolable.

Une information qui y est inscrite ne pourra pas être modifiée. C'est ainsi un principe qui peut être fiable pour gérer une urne électronique.

blockchain

C'est sur ce principe que le canton de Zoug, (Surnommé parfois Crypto Valley) a testé une solution de vote électronique basé sur une blockchain. (avec 72 votants ! Le risque est pas gros.) C'était une démonstration faites en présence d'invités venus de Corée du Sud.

Oui, mais.... Le soucis que je vois avec une blockchain, c'est comment garantir le secret du vote ? Si chaque ajout dans la blockchain est tracé, alors le vote n'est pas secret. Avec le bitcoin pour avoir de l'anonymat on change d'adresse à chaque transaction. Il doit y avoir des moyens, mais c'est pas si simple !

Il semble y avoir des détracteurs qui trouvent qu'un système de vote électronique basé sur une blockchain peut être pire....

La sécurité du vote électronique n'est pas toujours critique là où on l'imagine....

D'une manière générale, en tant qu'ingénieur en télécom et conscient de la sécurité informatique, je suis très sceptique sur le vote électronique.

Finalement pas tant à cause de la technique. Il n'y a pas de solution fiable à 100%, il y a toujours un risque de fraude. Mais c'est pareil avec les systèmes sur papier. Et finalement comment se prémunir de la propagande électorale ? Ne serait-ce pas plus dangereux que la technique de vote elle même ?

affiche élections héros art-urbain

Personnellement je vois que le système de vote électronique se perfectionnent, qu'il devient plus sûr, qu'enfin le code source DOIT être publié selon la l'ordonnance sur le vote électronique, art 7., dès qu'on vise à avoir un système qui garanti la vérifiabilité complète (donc que l'urne ne soit pas bourrée !)

Seul un système qui garanti le secret du vote, la vérifiabilité individuelle et la vérifiabilité complète a le droit d'être utilisé avec 100% de la population. Sinon l'ordonnance sur le vote électronique ne permet qu'à une partie de la population de pouvoir utiliser le vote électronique.

Le risque de centralisation de l'urne

Donc en une vingtaine d'années de développement, j'ai bon espoir que les systèmes de vote électronique soient d'un niveau acceptables, tout comme les systèmes bancaires le sont devenus. Tout en sachant qu'un système parfait n'existe pas.

Cependant.....

Personnellement, je suis donc sceptique du vote électroniques surtout à cause de la centralisation du système. La corruption est plus simple avec UN système de vote au lieu d'un par commune...

Dans le canton de Neuchâtel par exemple, il y a une commission de 6 personnes à huis-clos qui dépouille le vote électronique de tout le canton. (4 députés, une juriste et la chancelière) C'est peu de monde à corrompre.... peu importe le système informatique utilisé ! Le risque est ailleurs !

Depouillement vote electronique geneve

La plateforme de vote électronique genevoise dont on vient d'apprendre qu'elle va être abandonnée gère dans la même urne, les votes électroniques de 4 cantons: Genève, Bern, Bâle ville et Lucerne... C'est contraire à la décentralisation structurelle de la Suisse !

Ainsi comme le relevait le parti pirate en 2012: Dans le cas du système de Genève, il suffirait d’avoir trois personnes dans la poche pour manipuler les résultats.

La plateforme de vote électronique genevoise a eu régulièrement des soucis, notamment lors des votations fédérales du 11 mars. Un électeur enregistré dans le canton de Lucerne avait alors pu voter deux fois via Internet avec la même carte de vote !

En mars 2015 un journaliste a montré qu'il avait pu voter 2 fois !! Comme récompense de ce rôle de lanceur d'alerte il a été condamné par un tribunal pour tricherie !!!!
Heureusement il a fait recours au tribunal fédéral et a été finalement acquitté !

Le leurre de l'augmentation de la participation

Très souvent je vois comme argument pour le vote électronique qu'il ferait augmenter le taux de participation des citoyens, notamment des jeunes !

Capture d’écran 2010-10-30 à 16.42.45 taux de participation élections complémentaire au conseil d'etat

Faux !

Les études sur ce sujet qui ont été réalisées à Genève, tout comme en Estonie, montrent que non. Ça ne change rien !

Le vote électronique ne va pas tout d'un coup rendre plus intéressant de donner son avis sur un scrutin... ou de choisir entre la peste ou le choléra à une élection !

taux abstention votation art urbain graffiti

Je pense que bien au contraire, si l'on reviens à la Landesgemeinde, à la grande manifestation publique qui réuni toutes la population d'un lieu le même jour au même endroit, comme ça se pratique encore rarement en Appenzell et à Glaris, et bien là on aura une augmentation de la participation.

Landsgemeinde_-_Glarus_2014_-_1

Permettre de voter depuis son canapé c'est d'une certaine manière désacraliser le vote, lui enlever le fait de faire partie d'une communauté et donc d'avoir un droit de décision dans cette communauté.

En quoi si je ne participe pas à la communauté je me sens concerné par les décision qu'elle prend ?

Le taux de participation à une votation est une question d'éducation civique, de vision du monde, de temps pris pour cette activité et non pas d'un moyen technique !

Si tout tes potes vont à la grande fêtes qu'est la Landesgemeinde personne ne va organiser en même temps une autre activité ce jour là. Personne ne va organise un week-end loin de là un jour de Landesgemeinde.

J'ai déjà observé quand j'étais gosse et au début de ma vie civique, quand le vote par correspondance n'existait pas que les dimanche matins de votation on allait boire l'apéro avec les gens qu'on croisait au bureau de vote. C'était un plaisir d'aller voter et ça créait du lien.

De nos jours, c'est plutôt le stress de devoir amener l'enveloppe de vote dans les délais... même si on a quasi 3 semaines pour ça !

Bref, une démocratie vivante ne se résout pas à coup de lien internet, mais plutôt avec du vrai lien social !

Un système informatique est forcément opaque et non intuitif

Nous vivons dans le monde réel (qu'est ce que LA réalité ? 😛 ), le monde de la matière. Nous avons des sens qui sont habitués à une certaine représentation du monde, avec des objets. Nous n'avons pas les capacités de bien se représenter les outils informatiques.

Ça reste toujours une boite noire (ou plutôt une boite jaune dans le cas du système de vote électronique de la poste !! 😉 ). Même si des mathématiciens ont posé des concepts mathématiques et que des informaticiens les ont utilisés pour créer des algorithme permettant de créer une foule d'applications. L'informatique reste toujours une sorte de magie abstraite !

urne voite electronique boite jaune poste suisse scytl

Même avec des concepts de vérifiabilité individuelle et complète. Ce n'est en rien pareil de comparer des codes dont on ne sait pas d'où il sortent et de voir son bulletin arriver une urne transparente scellée au milieu de scrutateurs humain de différents bords politiques.

récepicé vote 17 juin 2007

Quand une foule d'une landesgemeinde vote à main levée. C'est difficile de tricher !... Par contre il y a le biais de la pression sociale vu que le secret de vote n'existe pas.

vote a main levée

Publier le code source d'un système de vote électronique c'est très bien. Mais qu'est-ce qui me garanti que c'est bien le code source que j'ai vu qui est utilisé et pas un autre le jour de la votation ? Pas si simple à vérifier !!!

Encore une fois nous n'avons pas de capacité intuitive pour vérifier facilement ce genre de système de vote électronique !

J'ai également entendu une histoire racontée par une personne du parti pirate à propos du système de vote genevois. Je ne sais pas si cette histoire est véridique mais elle me parait tellement plausible qu'il faut en tenir compte.

Il semble que lors d'un scrutin, la commission de dépouillement observe le fonctionnaire chargé de dépouiller l'urne électronique, il ouvre un fichier. Le résultat s'affiche. Tout le monde repart.

Puis le fonctionnaire remarque qu'il s'est trompé de fichier !!! C'est le vote du scrutin précédent !!!

Il rappelle tout le monde et on recommence, en ouvrant un autre fichier informatique !!!

Est-ce que la commission de dépouillement sert à quelque chose ? Rien ne ressemble plus à un fichier informatique qu'un autre fichier informatique !!

icon fichier urne vote electronique
icon fichier urne vote electronique

Pour moi ce genre de récit est inquiétant !! C'est pas la démocratie Suisse vivante que j'ai envie de voir !

Conclusions: oui, mais non...

Ainsi j'observe de près le développement du vote électronique. Je l'ai testé personnellement depuis les tout début. Je n'y suis pas fondamentalement opposé. Mais n'y suis pas très favorable.

Je vois que techniquement il y a des améliorations. Je vois que juridiquement la Suisse a conçu un cadre légal qui est meilleur que dans bien des endroits dans le monde. On dirait que la démocratie semi-directe Suisse est toujours en avance.

tradition suisse cervela invisible pour les yeux

Mais malgré tout. Le vote électronique ne me fait pas du tout rêver.

Je pense que c'est une bonne solution marginale qui permet de faire voter les expatriés. Il y a là une réelle demande. En novembre 2018, l'organisation des Suisses de l'étranger a déposé une pétition avec 11 492 signatures de suisses de l'étranger (sur les 172 100 Suisses de l'étrangers inscrits dans des registres électoraux) qui demandent à pouvoir utiliser le vote électronique d'ici 2021.

Pourquoi pas pour ce cas précis. Même si c'est techniquement difficile, car les Suisses de l'étranger sont affiliés à une commune en particulier. Ainsi ils dépendent de nombreux cantons et communes avec des législations différentes et forcément c'est décentralisés. On devrait alors centraliser les votes des Suisse de l'étranger ?

Je trouve que le vote électronique est une solution tout à fait acceptable pour les expatriés. Mais j'ai vraiment tendance à me méfier de la généralisation d'un système de vote électronique qui par essence n'est pas intuitif.

Je suis nettement plus pour créer du lien social, un sentiment de communauté qui décide de son avenir et ainsi inclus le droit de vote dans cette vision. Là je pense que le moyen technique n'a aucune raison de se faire par un vote électronique.

Je suis pour une totale décentralisation du vote, qu'il soit électronique ou non. C'est là pour moi le risque majeur du vote électronique. C'est qu'on en profite pour faire une seule urne pour plusieurs cantons !!!

Une seule commission est trop vite corruptible par rapport à 2255 communes qui ont chacune leur commission !

centralisation decentralisation distribue reseau

Pour terminer j'aimerai aussi prendre de l'altitude, pourquoi est-ce que le vote serait le bon moyen de décider ?

Personnellement, plus ça avance, moins j'arrive à voter, car justement c'est ce principe que je trouve injuste.

bataille politique bastion carte suisse
Le vocabulaire est parlant, on utilise le mot "bataille"

En fait on a rien changé depuis l'époque à laquelle deux armées se battaient sur un champ de bataille. Très souvent les plus nombreux gagnaient.

On a fini par supprimer la violence physique, on ne fait plus que compter les soldats de chaque côté. Le camp qui a le plus de monde gagne et l'autre n'a qu'à se taire.

bataille légion romaine vote sans violence

Est-ce un bon moyen de décider ? L'avantage de la bataille, c'est qu'à la fin, il n'y avait plus de minorité d'un avis différent. On était tous du même camp!

Personnellement, je me suis beaucoup intéressé à d'autres moyens de prise de décision comme la sollicitation d'avis (décision par une seule personne mais obligation d'avoir l'avis des personnes concernée et parfois de spécialiste.) et le consentement (personne ne dit non).

Ce sont des techniques de plus en plus utilisés en gouvernance partagée dans les organisations dites Opales. Elles permettent de faire grandir la conscience de communauté et de son propre pouvoir de décision en harmonie avec la communauté. On sort des clivages politique habituels des affrontement tout ou rien !
Ce sont des techniques beaucoup plus constructives.

En ce qui concerne les élections. J'aime bien le principe de l'élection par jugement majoritaire qui évite les stratégies de vote utile et d'avoir un élu qui ne représente que 20% de la population. On peut nuancer les seconds choix.

jugement majoritaire vote présidentielle france 2017

Il y a aussi l'élection sans candidat, qui permet d'éviter le classique: Pourquoi donner le pouvoir à ceux qui le demandent ?
Finalement en Suisse on a souvent une variante de l'élection sans candidat pour les élections aux exécutifs. C'est le cas de l'élection au conseil fédéral, mais aussi par exemple au conseil d'Etat vaudois. Une personne qui n'est pas candidate peut être élue !

De plus, je m'intéresse aussi beaucoup à la notion de tirage au sort en politique. Si on veut des représentants de la population, la meilleure manière d'avoir une bonne représentation statistique c'est de tirer au sort !

Je pense que ce genre de mode de décision et d'élection avancent bien et ils vont finir par se répandre dans la gouvernance d'Etat.

Les utopies nous font avancer !

Réflexion sur l’implémentation d’un protocole de Système Monétaire Equilibré totalement décentralisé

L'idée est ici d'imaginer l'implémentation d'un système de comptabilité de flux économique comme le SME, Système Monétaire Equilibré:

Un protocole plutôt qu'un code

Le SME décrit les paramètres de base d'un système "monétaire". On peut donc observer de nombreux fonctionnement en fonction des paramètres et voir au profit de qui se fait le système.

Ex: le taux de retour à l'équilibre peut être au profit de chaque personne ou du banquier. Suivant l'angle sous lequel on regarde, il est possible de voir que la création monétaire est le fruit de chaque individu ou des banquiers.

Le SME est donc un protocole plus qu'un logiciel, un code monétaire. Le SME est un outil pour évaluer un système monétaire et le comparer avec un autre.

Dans notre cas, l'idée est de réaliser un système de comptabilité de flux économique de type crédit-mutuel, avec contraction qui génère une avance de crédit: le revenu de base.

On va donc ici choisir des paramètres et un fonctionnement qui va dans ce sens. Mais logiquement, théoriquement une certaine place est laissée pour que de nombreux types de code monétaire puissent interagir entre eux.

système monétaire équilibré

Pour bien comprendre la théorie qui est là derrière et son contexte historique. Je t'invite à lire mon article sur l'histoire de la monnaie..... c'est 11 épisodes en vidéos. On part il y a plus de 5000 ans... et on passe en revues tous les systèmes économique, don, troc, reconnaissance de dette entre individus sur bâton de comptage, sur tablette d'argile, banque commerciale, banque centrale, monnaie fondante,  blockchain, Théorie Relative de la Monnaie, G1,.... et enfin le SME...

Un protocole décentralisé de comptabilité de flux économiques

Idéalement, un bon protocole de comptabilité de flux économiques doit être décentralisé et réparti.

Attention, il est utile d'expliciter les mots. Le débat actuel sur les cryptomonnaies montre que souvent c'est mal compris.

On nous présente souvent les cryptomonnaies basées sur une blockchain comme étant décentralisée. Mais ce n’est pas tout à fait juste.

Prenons l'exemple du bitcoin. Il y a UNE blockchain. Donc c'est centralisé. Toutes les transactions sont dans la même base de données et pour y avoir accès ce sont les noeuds qui décident.

Cependant, la gouvernance entre les noeuds est décentralisée. Il n'y a pas un noeud qui a plus de poids qu'un autre, qui peut décider à la place d'un autre.

À la base, chaque utilisateur devait pouvoir être un noeud du système. Je l'ai testé en 2011, avec le bitcoin où il suffisait de télécharger un blockchain de 20Mo.

En septembre 2017, la blockchain du bitcoin fait ~ 130Go .... Il y a de plus en plus d'utilisateurs. Mais en proportion le nombre de noeuds est très limité. (~10 000)

Ainsi, une blockchain centralisée est très ennuyante en terme de ressources. De plus, la méthode de décision pour savoir qui a le droit d'ajouter des blocks à la blockchain est problématique. La méthode la plus courante est la preuve de travail. (PoW). On doit prouver que l'on gaspille de l'énergie pour avoir accès à la base de données. Ceci, car on suppose que les gentils qui veulent le bien du réseau ont un avantage à fournir cette puissance de calcul, mais que les méchants qui veulent tricher doivent mettre exponentiellement plus de ressources. Donc c'est virtuellement impossible.

L'idée que nous avons ici est très différente. On veut un système qui est réellement décentralisé.

Tout comme l'est l'internet. Tout comme l'est le web. Tout comme l'est le e-mail.

On est dans une logique de réseau. Il n'y a pas qu'une seule base de données, même si elle est copiée à de multiples exemplaires.

Si je veux ajouter un bout d'internet, il suffit que je connecte un réseau de télécom sur le réseau internet existant. J'ai étendu Internet sans demande à personne.

Si je veux ajouter un site web, hormis le nom de domaine, il n'y a rien à demander à personne. Je crée un site et le rends accessible.

Si je veux une boite e-mail. Il me suffit d'installer un serveur e-mail accessible par un nom de domaine et par un bout de réseau. Et voilà, c'est fait. Je n'ai demandé à personne.

Ainsi l'idée ici, c'est d'ajouter un service disponible sur le web qui permet de comptabiliser les flux économiques.

Toute personne peut le faire sans demande à quiconque. Elle peut choisir ses propres paramètres. Elle doit juste utiliser le même "protocole" pour échanger avec les autres.

Donc il est possible de faire plusieurs logiciels totalement différents qui fonctionnent entre eux via un protocole.

On peut même imaginer fonctionner avec des cartes sur papier ou sur tablette d'argile. C'est peut-être moins pratique et automatisable. Mais pour que l'on ait vraiment un protocole décentralisé, ça doit fonctionner.

WordPress comme plateforme de base

Une idée qui peut aider à la diffusion massive de ce mode protocole de comptabilité des flux économique est d'utiliser une plateforme simple pour mettre en place un "serveur" SME.

Ainsi, wordpress semble un bon choix.

En 2017, wordpress détient près du tiers de "part de marché" des sites web.

Ainsi fournir une application sous forme d'un plugin wordpress ouvre les portes à un large réseau.

On peut imaginer également faire des modules de paiements pour les e-commerce. Notamment, toujours sur wordpress Woocommerce. Ains en plus de pouvoir transférer de la "monnaie", il sera aussi possible de payer directement sur les magasins en ligne avec le SME.

Adressage

Chaque personne qui veut participer au réseau doit pouvoir être accessible.

Ainsi il y a la notion d'adressage qui intervient.

Comme toute personne qui a un compte en banque l'a dans la banque en question. Ici chaque personne qui a un "compte" SME, doit l'avoir chez un noeud qui est localisé quelque part.

On se retrouve dans le même principe que le e-mail. Soit une boite e-mail est chez un hébergeur de e-mail.  toto@hebergeur.com

Ici un compte SME est chez un hébergeur SME.

Sur le web, on peut donc utilise la logique des noms de domaine qui est bien connue pour réussir à localiser le noeud. (url = Universal Ressource Locator donc un moyen de trouver une ressource)

Il nous faut donc identifier les deux parties d'une transaction. Donc, ce qui semble le plus évident, c'est:

  • un nom d'utilisateur
  • l'adresse du noeud hébergeur.

En version papier on peut avoir:

  • toto
  • chemin du petit bois 12, Jolibois.

En version web on a:

  • toto
  • https://martouf.ch/wp-admin/admin.php?page=SME

ou des versions simplifiées...

  • https://martouf.ch/wp-admin/admin.php?page=SME&user=toto
  • https://martouf.ch/SME/toto  (qui redirige sur la précédente)

Le format simplifié du genre e-mail est aussi possible: user@provider.com

C'est un peu le principe avec la média social Mastodon. Mon compte mastodon est accessible sur : https://mastodon.social/@Martouf
Quand je veux m'abonner à un utilisateur qui est sur une autre instance de mastodon, je dois indiquer mon identifiant: martouf@mastodon.social qui va permettre au système de me retrouver...

(Dans le cas d'un système monétaire on pourrait imaginer avoir un autre symbole.. pour pas le confondre avec un e-mail... du genre... heu... $ ?? il est surtout les claviers. => martouf$martouf.ch .... est-ce qu'on veut se lier à l'égrégore derrière ce symbole ? )

Le souci d'une telle approche, c'est que l'on serait obligé de faire un nouveau service TCP-IP et donc ça interdit le fait de passer par le web. (qui est déjà le service TCP-IP sur le port 80)

(Les services TCP-IP connus sont le e-mail, le web, ftp... un service peut écouter un port en particulier. Le web est déjà une couche au-dessus. Dans l'optique de faire un plugin wp pour assurer une bonne diffusion l'url d'un service web est un bon moyen d'adressage.)

Ainsi on identifie l'utilisateur, autant la source que la destination d'une transaction par une URL.

(ou autre type d'adresse pour la version papier... c'est le moyen de joindre l'utilisateur.)

Base de données personnelle des transactions

Le système étant en réseau. Où sont les données ?

Et bien, chaque personne détient la base de données de ses propres transactions.

Évidemment comme on ne fait pas une transaction tout seul. On a aussi un bout de la base de données de la personne avec qui on fait une transaction.

Il est nécessaire pour le fonctionnement du protocole de définir le minimum de ce que contient la base de données.

Transactions

Chaque personne détient sa base de données de transaction.

C'est un peu comme le crédit mutuel (crédit social):

Que font-ils avoir comme champ pour définir une transaction ?

  • id local (nombre auto-incrémenté)
  • id-global un moyen d'identifier la transaction une url qui pointe sur la transaction et permet d'obtenir les informations dessus.
  • la date et heure
  • type de transaction est-ce que c'est un transfert de solde (normal) ou une contraction du solde. (vu que la transaction contient les paramètres du référentiel et qu'elle est datée et chainée dans une relation d'ordre, on peut vérifier que la contraction est effectuée correctement)
  • le hash de la transaction précédente ainsi on garde une relation d'ordre entre les transaction. (voir le principe en schéma dans les blockchain quantic_schema-1_300.jpg)
  • Libellé texte court...
  • Source url de l'utilisateur source. Ex: https://martouf.ch/SME/martouf
  • Destination url de l'utilisateur destinataire. ex: https://yopyop.ch/SME/toto
  • montant todo: dans quel référentiel ? la source la destination ?
  • État validé, en attente, refusé.
    • origine souvent 0Les paramètres du référentiel de chaque partie donc origine, TRE, période, revenu de base (ceci pour contextualiser la transaction, sinon on ne sait pas de quel référentiel on parle et il peut évoluer.) (D'une manière globale, tout référentiel est défini par le sens, l'origine et l'échelle.)
    • revenu de base un nombre qui indique l'échelle ex: 100
    • TRE taux de retour à l'équilibre ex: 10% = 0.1
    • Période d'application du TRE 1 mois (on va utiliser une unité plus pratique... le jour.)

(En mode papier on sépare le montant en 2 colonnes: achat et vente. Ainsi on peut calculer le solde plus facilement.)

Paramètres du système

Chaque utilisateur doit également enregistrer et mettre à disposition des vérificateurs les paramètres de son système.

Ces données sont liées à un utilisateur.

Quand on tape l'adresse d'une personne sur le web on a directement ses paramètres accessibles pour un humain.

Ex: https://martouf.ch/SME/martouf

On peut y placer toute sorte d'informations de profil pour augmenter la confiance et certifier que c'est bien la bonne personne à qui l'on va faire un versement. (lien avec un compte facbook, twitter, etc..)

On peut y placer un bouton avec lien pour directement faire un paiement..

Une machine doit également pouvoir récupérer les données facilement via un fichier json, juste en précisant le format dans l'adresse:

Ex: https://martouf.ch/SME/martouf.json

En plus des informations sur la personne, on a surtout besoin des informations sur les paramètres du système pour pouvoir les vérifier et faire les changements de référentiel.

Le fichier json contient une série d'entrées de type clé valeur qui permettent de savoir où récupérer les informations et comment effectuer une transaction.

  • version du protocole 1.0
  • id utilisateur url de l'utilisateur ex: https://martouf.ch/SME/martouf
  • solde fiable le solde du compte pour toutes les transactions qui sont validées.
  • solde temporaire solde du compte pour toutes les transactions émises. (qui peuvent être en attente)

Un référentiel complet est défini par 4 paramètres:

  • où se trouve l'origine. (on a vu dans la discussion ci-dessus qu'on peut la déplacer et que chaque personne a ses préférences !)
  • le niveau du revenu de base. (qui donne l'échelle quantitative à tout le système, et le sens de lecture + ou -)
  • le facteur de zoom qui est en fait 2 variables: le Taux de Retour à l'Equilibre par unité de temps choisie. (la période. en général le mois)
  • La limite de crédit maximale (qui est déduite des valeurs précédentes pour faire un bon système)

Le limite de crédit maximale = (1/ Taux de Retour à l'Equilibre)  * le revenu de base  +  le revenu de base

Ainsi une personne qui vérifie la transaction peut demander les paramètres pour s'assurer que la limite de consommation à crédit n'est pas dépassée.

Voici un exemple de paramètres:

  • origine = 0
  • montant du revenu de base = 100 (c'est la quantité de monnaie dont on a besoin dans la période donnée)
  • Taux de retour à l'équilibre = 10% / mois
  • Limite = 1/ (10/100) * 100 + 100 = 10 * 100 + 100 = 1100

Toile de confiance

Le coeur de toute notion de monnaie c'est la confiance.

Mais ici c'est encore plus vrai.

Le SME tel que nous l'implémentons ici offre un potentiel de création monétaire et un revenu de base à chaque personne.

Ainsi dans tout système dans lequel la création monétaire se fait par les individus, il est nécessaire de vérifier qu'un individu ne dispose pas de plusieurs comptes. Qu'un individu ne puisse pas toucher plusieurs fois sa part de création monétaire et plusieurs revenu de base.

Ainsi il est nécessaire d'identifier chaque utilisateur et de s'assurer qu'il n'y a pas un utilisateur qui a plusieurs identités.

Pour résoudre ce problème, on tombe directement dans un problème d'autorité.

Dans la vie de tous les jours. Une personne obtient une pièce d'identité de la part de l'État. C'est l'autorité de certification.

Notre but est ici de créer un système qui est totalement décentralisé, il serait donc stupide de créer un protocole décentralisé et d'être obligé de passer par une autorité centralisée pour pouvoir l'utiliser.

Donc au lieu d'avoir un autorité centralisée qui identifie les gens. Nous allons ici utiliser la notion de toile de confiance (Web Of Trust) qui a été  inventée pour les besoins du logiciel de messagerie chiffré PGP qui ne voulait pas non plus recourir à des certificats issus d'autorité centralisées pour attester qu'une clé appartient bien à une personne.

https://fr.wikipedia.org/wiki/Toile_de_confiance

On a ainsi un moyen décentralisé d'accorder de la confiance à des identités.

Chaque personne est associée à un niveau de confiance.

Chaque personne peut accorder une confiance totale ou partielle à des identités.

Le stock de certifications d'identité est limité.

La durée des certifications est limitée. (la confiance évolue dans le temps)

J'observe que l'on se retrouve dans un système quasiment similaire au SME. Au lieu d'avoir un stock de "monnaie", de potentiel d'achat. On se retrouve avec un stock de confiance.

L'idéal serait de pouvoir choisir de donner sa confiance en ajustant les paramètres: quantité et durée. Soit dans les extrêmes, une confiance totale, mais pas longtemps ou une confiance limitée, mais longtemps.

Ceci n'est pas simple à faire dans un système décentralisé, car pour protéger le système de comptabilité de flux, on crée une toile de confiance, et pour protéger la toile de confiance on crée quoi ? On ajoute une couche ?

Si chaque personne peut créer son propre logiciel pour utiliser le protocole, il faut se rendre compte qu'il y a des fonctions qui peuvent être implémentées différemment et même dans le but de tricher. (avoir un stock infini de confiance à donner....) Donc plus on ajoute de fonctions, plus la communauté doit donc vérifier des paramètres supplémentaires.

Une des difficultés à résoudre quand on identifie les gens, c'est la création de fausses identités qui vont être utilisées pour certifier d'autres fausses identités. On appelle ceci une attaque Sybil.

Il y a donc un risque d'avoir des gens malveillants qui se créent leur propre sous réseau d'identités malveillantes. Ainsi il est aussi important d'avoir une indication supplémentaire qui est la distance entre nous l'identité à vérifier.

Ainsi on peut voir si l'identité est bien intégrée dans la communauté ou si elle est sur un sous-réseau séparé, car artificiel, créé pour tricher.

On est là dans la théorie du monde petit. Testé dans les années 1960 par Stanley Milgram. À l'époque, chaque personne dans le monde était séparée de six degrés de séparation.

Cependant, de nos jours le réseau de Facebook permet de rétrécir encore plus le monde.

En 2011, la moyenne était à 4.7 degrés et en 2016 à 3.5 degrés.

toile de confiance amis_facebook_martouf_grandes_communautes

Pour voir le problème sous un autre angle, voici des infos sur la toile de confiance de duniter:
=> état des lieux en septembre 2017 de la toile de confiance de duniter.

 

Voici quelques plug-ins intéressants autour de la notion de toile de confiance, de création de clé PGP.

Vérification des transactions

Chaque transaction doit être vérifiée.

Elle augmente le solde d'un utilisateur et diminue le solde d'un autre.

Il faut donc que chacune des parties signe la transaction pour dire qu'elle est juste.

Que le solde de chaque côté est correct.

Cependant, ça ne suffit pas. Il faut d'autres vérificateurs. Car on peut très bien imaginer que 2 personnes s'accordent pour tricher.

Ainsi une autorité externe doit vérifier la transaction.

Dans un système décentralisé, on retombe sur le même problème d'autorité.

On a donc ici une autorité décentralisée. Il nous faut agir dans ce sens.

Le plus juste est de lancer un appel à la vérification à d'autres noeuds du système.

Les hébergeurs (qui sont toujours en ligne) peuvent faire les vérifications pour le compte de leurs hébergés. (ce qui force les hébergés à avoir confiance dans leur hébergeur et leur demander des comptes)

Il y là aussi une notion de tirage au sort à introduire pour éviter que seuls les complices des fraudeurs répondent.

Au bout d'un certain nombre de vérifications concordantes, on peut déclarer une transaction comme acceptée.

Dans le processus, on peut imaginer que dès qu'une personne veut faire une transaction, elle inscrit sa transaction dans sa base de données personnelle. Elle la signe, et signe aussi la seconde partie de la transaction (le double qui est inscrit dans la base de données de l'autre partie de la transaction).

(todo: ce qui pose la question de ce qu'est techniquement une transaction. Car une transaction est toujours un contrat entre 2 parties. Là on a un objet qui est dupliqué dans au moins 2 bases de données.)

Puis, la personne fait un appel public à validation de transaction.

Idéalement, le système fonctionne toujours de pair à pair. Ce sont toujours les individus qui doivent signer les transactions. Ce sont les individus qui ont des identités.

Cependant, un utilisateur va certainement toujours passer par son hébergeur de compte pour réaliser la procédure de validation. On peut se demander comment il fait ? Est-ce qu'il peut déléguer la validation à son hébergeur ? La rendre automatique ?

Je vois la chose un peu comme cela se pratique avec les commentaires qui arrivent sur un blog. Il y a quelques indications et la personne dit si elle valide où non.

Ça peut très vite devenir un problème de spam ! Et du coup, l'idée va devenir rapidement de faire confiance au code de l'hébergeur pour évaluer et valider automatiquement les transactions qui sont correctes.

Et voilà, encore une fois, il faut faire confiance à son hébergeur et au code installé ! Que faire si un hébergeur devient très gros (Par analogie on pense à gmail et hotmail qui hébergent beaucoup de mail !), il prend un poids énorme pour la validation.

Donc comme toujours dans tout système de confiance, on suppose que la majorité des gens veulent le bien du système !

(comme avec les 51% de la puissance de calcul de la preuve par le travail du bitcoin. Si 51% de la puissance de calcul est détenue par le même noeud.... ce dernier peut faire ce qu'il veut. Gash.io est arrivé à 43% de puissance de calcul avant que la communauté s'inquiète..)

C'est là qu'il faut un algorithme qui s'assure de la diversité des sources des validations.

Il faut éviter que tout vienne d'un seul hébergeur. (l'algorithme doit donc maintenir une liste des hébergeurs qu'il connait et s'assurer une moyenne par rapport à cette liste.)

On peut également imaginer des pénalités dans la confiance que peut accorder un hébergeur si il s'est avéré qu'il a massivement validé de fausses informations. Mais là c'est très difficile de déterminer ce qu'est "massivement" et ce qui est "faux". Que faire quand il y a 2 avis différents ? Est-ce que la majorité à toujours raison ? Si un système est majoritairement corrompu, il va péjorer les gentils. Même si l'information est fausse !

Donc attention à ne jamais mettre en place de solutions qui peut se retourner contre soi-même !

(Ce que les partisans de la peine de mort devraient imaginer...)

L'algorithme précis de validation reste à être bien clarifié.

Vérifier qu'un compte agit dans le respect de son référentiel

Au-delà de la vérification des transactions, il faut aussi vérifier le cadre dans lequel elles se passent.

Si une transaction modifie le solde et qu'il faut vérifier le changement de solde.

Une transaction ne doit pas non plus se faire si la limite de consommation a crédit est atteinte.

Cependant la limite évolue en fonction de l'application du taux de retour à l'équilibre (TRE). Il faut donc vérifier que cette contraction du solde est appliquée comme elle se doit.

La meilleure manière que je vois pour vérifier l'application de la contraction est de réaliser une transaction spéciale qui change le solde. Comme l'objet transaction continent les paramètres du référentiel, est datée, et contient une relation d'ordre, on peut vérifier que la contraction est bien effectuée.

Cette vérification devrait être faite par chacune des parties qui veulent faire une transaction avec une autre.

Petit rappel sur le Taux de Retour à l'Equilibre

Une dette est annulée dans un temps donné qui est une fonction du taux de retour à l'équilibre. (TRE)

Comme pour la décharge du condensateur où l'on considère que le condensateur passe d'un état transitoire à un état stable en 5 constantes de temps RC, ici on considère que toute dette est annulée dans un temps de 5/TRE. Ceci dans l'unité choisie. (le mois par exemple)

(comme on a une exponentielle décroissante, le retour à l'origine est encore long. Mais on a avec 5/TRE 99.3% de la dette qui est annulée.)

Ex: un TRE de 1/100 par mois va nous donner: 5/ (1/100) = 5*100 = 500 mois. 41 ans et 8 mois.

(Ce qui donne étonnamment une valeur très très proche de la moitié de l'espérance de vie humaine en suisse !)

Donc en fonction des paramètres de base que sont le Taux de Retour à l'équilibre pour ce qui est lié au temps et le montant du revenu de base (l'avance de crédit récurrente) pour l'échelle on peut déterminer la limite de consommation à crédit autorisée.

la limite de consommation à crédit = revenu de base * 1/TRE + le revenu de base.

Comparaison entre deux référentiels

La grande difficulté à laquelle nous ne sommes pas habitués avec le SME, c'est le fait que chaque personne peut avoir les paramètres de son choix, et donc un référentiel totalement différent. (Même des paramètres qui correspondent à un système de monnaie prédatrice comme celle des banques commerciales qui configurent les paramètres pour transformer le revenu de base en intérêt pour banquiers...)

Ainsi c'est une des libertés garanties par le SME, c'est que chaque personne a le droit de choisir ses paramètres. C'est ainsi que le SME est un protocole de gestion, de comptabilité, et d'enregistrement des flux économiques et pas un logiciel, un code monétaire.

Petite clarification à propos des "monnaies libres" qui se basent sur la Théorie Relative de la Monnaie de Stéphane Laborde.

Ce dernier s'est inspiré du monde du logiciel libre qui définit des libertés fondamentales qu'un logiciel doit respecter pour être considéré comme logiciel libre. (le droit de connaitre le code source par exemple).

Il a transposé cette idée dans le monde de la monnaie. Il a défini un certain nombre de libertés monétaires et économiques fondamentales qui servent de critères pour savoir si une monnaie est libre ou non.

La liberté 0 est celle-ci:

0: L’individu est libre du choix de son système monétaire

Dans la pratique, avec la création de la monnaie Ğ1, on observe qu'une poignée de fondateurs ont choisi les paramètres du système. Puis il est impossible de les changer.

Ainsi face à la liberté 0. Oui, l'individu est libre de choisir son système monétaire... mais s’il ne choisit pas les paramètres il fait quoi ?

Et bien, il n'a d'autre choix que de créer sa propre monnaie à côté de l'autre. C'est la réponse officielle de ce groupe.

Mais si on pousse la réflexion un peu plus loin, ça veut dire que l'on peut créer un grand nombre de monnaies qui toutes ont leur dividende universel. Et ainsi je cumule les dividendes. Est-ce que c'est juste ? Est-ce que c'est ça qu'on veut ?

Ainsi il faut bien comprendre que les "monnaies dites libres" ne le sont pas forcément autant que ce qu'elles le prétendent. Ce sont surtout des codes monétaires. Certes, comme dans un logiciel libre, on a accès au code. On peut savoir comment ça marche. Contrairement à la monnaie des banques commerciales dont on ne sait pas grand-chose. Donc le code est une cuisine interne cachée. On ne connait que certaines obligations légales de publication de bilan. Mais entre deux bilans que s'est-il passé ?

Le SME est donc un protocole qui fait communiquer entre eux des codes monétaires. Ainsi je ne peux toucher qu'un seul revenu de base / dividende globalement. Car au moment de chaque transaction les deux parties vont comparer leurs référentiels pour s'ajuster et se mettre sur une même base de discussion.

Donc concrètement, c'est une règle de trois.

Le montant du revenu de base sert d'échelle.

Prenons l'exemple d'un référentiel.

À chaque période, une personne ayant atteint sa limite de consommation à crédit reçoit 100.

C'est le revenu de base de ce référentiel.

Si un prix est de 10.

Que vaut ce prix dans un référentiel où le revenu de base vaut 1000 ?

Dans le premier référentiel, le prix de 10 vaut 1/10 du revenu de base.

Donc dans le second référentiel, il doit aussi valoir 1/10 du revenu de base propre à ce référentiel, donc 1/10 * 1000 = 100.

On a ainsi une relation claire qui permet de comparer des prix. Mais il est vrai que c'est plus simple si chaque personne n'a pas son propre référentiel, mais plutôt si une communauté entière utilise le même référentiel. C'est quelque chose qui arrive naturellement.

D'une ville à l'autre, les prix de l'immobilier ne sont pas les mêmes. Et ainsi le coût de la vie non plus, et donc le revenu de base non plus.

Mais actuellement cette base est plus ou moins cachée. Là on l'explicite.

J'ai observé personnellement quelques différences de prix entre Genève, (la ville la plus chère du monde !) et Neuchâtel.

Un pain au chocolat à la gare de Genève s'achète à CHF 3.20 et à la Migros à Neuchâtel CHF 1.40.

Les salaires sont différents, les coûts de la vie aussi.

Pour expérimenter cette idée j'ai lancé le Kong, une monnaie de singe !

Concrètement il s'agit d'un carnet sur papier. Qui permet d'enregistrer ses transaction et sa toile de confiance.

(j'aurai aussi pu le faire avec sur un bâton de comptage. ... mais c'est moins courant de nos jours !)

Qui décide des transactions a intégrer dans la blockchain du bitcoin ?

... et pas seulement dans le bitcoin, mais dans toutes les blockchains.
J'ai fais mon enquête... et je vois que finalement la blockchain ne résout de loin pas tout et repose de manière forte la question éternelle... Qui décide ?

Contexte: le bitcoin et la blockchain en bref, c'est quoi ?

Je vois que le bitcoin et ses envolées spéculatives fait beaucoup parler de lui.

Puis de nombreuses autre Blockchain sont apparues. Et certains auteurs parlent déjà de la future révolution des blockchain qui vont coloniser le monde et remplacer tout type de base de données que l'on utilise partout. Voir même de remplacer le web et l'internet.

Pour rappel, une blockchain, c'est pas très compliqué. Ce n'est finalement qu'un tableau d'affichage public géant sur lequel ont peut y déposer des post-it. Mais plus jamais les supprimer.

dazibao

Quand on crée une monnaie comme le bitcoin, ce tableau d'affichage sert à y mettre toutes les transactions qui sont faites. Ainsi il est possible de vérifier que personne ne triche et ne dépense plusieurs fois ces bitcoins.

Mais un tableau d'affichage, ça sert à plein de choses. C'est là que certains imaginent appliquer le principe partout. Comme par exemple pour les actes notariés, les testaments, etc.... Tout ce qui a besoin d'une base de donnée qu'il est impossible de falsifier.

Finalement on retombe très vite dans le problème éternel: qui décide !

Qui décide de quoi afficher sur le panneau ? qui vérifie que personne ne triche ?

C'est toute la question de l'autorité qui remise en question ici.

Dans le bitcoin, c'est la loi du plus fort qui décide

Pour bien comprendre ceci, j'ai eu envie de me plonger à fond dans les détails pour vraiment comprendre comment fonctionnent les blockchains.

Je cherchais à comprendre des aspects très technique sur le fonctionnement de la preuve par le travail des blockchain.... et j'ai trouvé.

J'avais déjà joué avec le bitcoin en 2011... quand la blockchain faisait 20Mo... (elle fait maintenant 120Go) c'était facile... mais j'ai pas laisser tourner mon soft assez longtemps.... avec ce que l'on me promettait à l'époque en bitcoin je serai millionnaire si j'avais continué !!! 

Au delà de bitcoin j'observe aussi le développement de Ethereum qui me semble avoir là le potentiel de la fameuse révolution blockchain dont on nous parle tant...

Ethereum est vraiment une plateforme de developpement. D'ailleurs la version électronique de la monnaie locale le Léman est basée sur ethereum.

Et surtout ethereum a annoncé que la blockchain allait passer de la preuve par le travail à la preuve par l'enjeu.. mais ils cherchent encore l'enjeu !!

Edit le 20 mai 2019... Ethereum n'est toujours pas en mode proof of stake... mais ça bouge. Récemment une version proof of stake de Ethereum a été mise en mode test.... 

Pour en savoir plus, je laisse la parole à Antoine et ses bons tuyaux à propos de l'Ethereum. Il a fait un très bon guide complet à propos de l'Ethereum.

Donc, question ressources, c'est plutôt bon signe. Car la révolution blockchain, à mon avis, ne peut pas se faire avec un tel gaspillage de ressources comme on le voit avec le principe de la preuve par le travail qui demande le gaspillage d'une énergie colossale !

A mon avis, Holochain est aussi un très très bon candidat à vraiment réaliser cette révolution blockchain. Holochain fonctionne totalement différemment. Enfin on en fini avec la version jeton-valeur de la monnaie et on passe au crédit mutuel. Avec ça on peut virer toute forme de contrôle via la preuve of...  n'importe quoi.

On a plus besoin de sécuriser des jetons. C'est surtout l'identité des gens qui doit être connue. La fondation Mozilla s'intéresse beaucoup à Holochain, ceci pour son volet hébergement dans un cloud décentralisé dans chaque ordinateur utilisant holochain. C'est un peu à l'image du réseau bittorent. Un très grand potentiel. Et les personnes qui mettent à disposition de l'hébergement sont récompensée. Ainsi on va récompenser les gens qui économise de l'énergie... et pas ceux qui en grillent un max pour rien !! ... comme c'est le cas avec le bitcoin...

Voici à quoi ressemble une ferme de bitcoin en Islande... pays intéressant car il y fait froid (donc moins besoin de refroidir les ordinateurs) et l'électricité n'est pas chère à cause de sa production en géothermie...

Comment fonctionne la Preuve par le travail (proof of work) ?

Le principe de base, c'est que la chaine de block est unique. (donc centralisée contrairement à beaucoup de gens qui disent qu'une blockchain est décentralisée. Voir à ce propos mon article sur la centralisation du bitcoin)

La blockchain est centralisée, mais répartie. Chaque noeud a une copie. (il y a actuellement ~ 8000 noeuds https://bitnodes.21.co/  ça grimpe un peu.. ça avait chuté drastiquement jusqu'à ~5000)

Comment faire pour décider de qui a le droit d'ajouter des blocs à la blockchain ? En cas de conflit de version de branche qui décide quelle est la vraie chaine, la juste ?

On suppose que les gentils vont mettre plus de ressources à disposition pour protéger la blockchain. C'est le principe de la preuve par le travail.

Ainsi on fait travailler les gens qui utilisent le système. Et ceux qui travaillent plus que les autres ont le droit de choisir les blocs qu'ils ajoutent à la blockchain.

Concrètement, le travail qui est fait c'est de résoudre des hash sha-256

Le hash est une fonction à sens unique qui est très utilisée en informatique. On utilise, md5, sha1 ou sha256...  mais pour comprendre un simple sinus suffit.

Le sinus de 30° = 1/2 ...  mais 1/2 .. c'est le sinus de quel angle ? ..... ça peut être 30°.. mais ça peut aussi être 150° !! et on peut envisager avoir un angle qui fait plusieurs tours du cercle...  donc impossible de savoir quel était la valeur entrée dans la fonction quand on connait seulement le résultat.

C'est ce principe qui est utilisé pour les systèmes de mot de passe. Le système qui vérifie le mot de passe ne connait pas le mot de passe. Il ne connait que le résultat du mot de passe passé à travers une telle fonction.

Ainsi, si la base de données d'un serveur qui vérifie des mots de passe est piratée, ça ne donne toujours pas accès au mot de passe.

Cependant, il y a des gens qui ont fait des dictionnaires de tous les mots et leur correspondance avec le résultat de fonction comme md5...  histoire de faire des attaques dictionnaire !

C'est pour ça que de nos jours, il faut faire des phrases de passe très longues et plus des mots de passe.

Donc pour revenir aux blockchains. Plus particulièrement au bitcoin qui utilise la fonction de hash sha 256. Le but c'est de trouver un hash qui a un résultat qui commence par un certain nombre de 0

Ex: 0000423efa46afc7...

Comme on ne connait pas comment arriver à un résultat voulu. Il faut faire des essais. Il faut arriver à un hash qui correspond à la condition donnée en utilisant les données du bloc et en faisant varier quelques caractères aléatoirement jusqu'à y arriver.

La difficulté s'adapte à la puissance de calcul... (le nombre de 0 qui débutent le hash)

Donc quand il y a une course à la puissance des gens qui gèrent le réseau et reçoivent des bitcoins en échange, et bien on arrive vite aux limites physiques de ce qu'il est possible de faire. Ainsi ce ne sont plus des ordinateurs standards qui sont utilisés pour gérer le bitcoin, comme je le faisait en 2011... mais ce sont des circuits intégrés (ASIC) spécialisés dans le hashage !

Il faut de nos jours en moyenne 200 milliards d'essais pour tomber sur un hash qui correspond au critère qui lui permet d'être accepté.

Ça prend du temps ! et ça consomme beaucoup d'électricité... pour .... rien faire d'utile... sauf montrer que l'on est prêt à gaspiller plus d'énergie que les autres pour assurer que le bitcoin fonctionne correctement.

Voici à quoi ressemble une ferme de minage de bitcoin en chine...  moi ça me fait peur !

Si un méchant forge un bloc qui lui permet de dépenser plusieurs fois le même bitcoin, il doit être très très rapide. Comme les blocs sont chainés, il doit recalculer tous les blocs depuis sa transaction et les imposer tous de manière plus rapide que le reste du réseau de noeuds. Ainsi il doit mettre exponentiellement plus de ressource que les autres qui suivent l'algorithme gentil.

Comme on est aux limites de ce qu'il est possible de faire en calcul. Avoir exponentiellement plus de ressource est impossible. Tout la fiabilité de la preuve du travail repose là dessus.

Mais si il est impossible par ce moyen de tricher.... ça ne veut pas dire qu'il n'y a pas d'autres moyens...

Que se passe-t-il si un méchant contrôle la majorité de la puissance de calcul des noeuds ?

C'est ce que l'on appelle  l'attaque des 51%.

Si la majorité des gens qui ont la puissance de calcul sont gentils ça marche. Mais si un jour un méchant détient au moins 51% des ressources en calcul des noeuds. Alors là... il peut potentiellement faire ce qu'il veut.

C'est pour cette raison que la mutualisation des ressources de différents noeuds dans des fermes de serveur est souvent observée de près. Il y a la crainte que si beaucoup de gens s'associent, ils risquent d'avoir 51% de la puissance de calcul !

C'est ce que l'on observe avec le cas Ghash.io qui a eu tellement de succès en 2014 que cette ferme de noeuds concentrait 42% de la puissance de calcul du réseau bitcoin. Ils ont donc du faire profile bas et on promis de ne jamais dépasser 40%.

Comment se passer de la preuve par le travail ?

Donc quand je vois le gaspillage de ressources qui est fait. Je me dis que le système de preuve par le travail n'est pas viable à long terme. (proof of work) Ethereum va passer à la preuve par l'enjeu. (proof of stake) Mais quel enjeu choisir ? qui a le droit de décider de valider les blocs ?

Il y a des idées de devoir investir un peu de monnaie. D'avoir une certaine ancienneté, de détenir un certain montant dans le monnaie de la blockchain ce qui prouve que l'on veut que le système fonctionne.

Bref, on retombe dans le classique problème de savoir qui dirige. La preuve par le travail, c'est la loi du plus fort. Et celui qui a le plus de monnaie, c'est le vote censitaire de l'époque.

On peut la remplacer par la noblesse. Donc par des autorités désignées par ce qu'elle est sont désignés autorité avant les autres. C'est le cas avec les certificats SSL, avec les Etats... et c'est justement ce que veulent éviter les blockchains.

Dans le cas du FairCoin, qui veut faire la promotion de la coopération, en juillet 2017 le système vient de passer à la ProofOfCooperation...  les noeuds qui décident sont ceux qui coopèrent le plus ! ... mais ça ressemble beaucoup à une aristocratie entre pairs qui se certifient entre eux selon des règles consensuelles...  donc pas simple. Mais ça existe.

Comme il existe le tirage au sort en politique, il y a aussi l'idée de tirer au sort les acteurs qui ont le droit d'ajouter des blocs dans la blockchain, comme dans le système de CICADA.

Il y a plein de pistes. Donc comment faire ?

Ce n'est pas si simple.

La solution est probablement un mélange de tout ça et à adapter à la blockchain en particulier à son utilisation comme monnaie uniquement ou comme plateforme de développement d'application.

Personnellement c'est surtout ce frein qui me fait douter de l'avenir de la révolution Blockchain.

Après, il y a des aberrations comme Macron qui dit qu'il est pour les blockchains, qu'il légifère pour.... et qui veut favoriser la création de blockchain privées.

je ne comprends pas très bien à quoi ça sert ?

Heu... par définition une blockchain est et doit être publique ! .... sinon ça ne marche pas.

On retombe toujours dans qui décide ! ... donc Macron aimerait une blockchain où il peut décider qui y met quoi !?

Petite explication en vidéo si tu n'as pas compris cette importante subtilité....

Pourquoi tout centraliser dans une blockchain ?

La centralisation des transactions dans une seule blockchain me pose aussi des questions. Je ne suis pas trop pour tout centraliser. Est-ce que c'est vraiment utile ?

La base du web est décentralisée, l'idée c'est que chaque personne qui veut publier quelque chose le peut. Sans demander l'avis à personne. Avec une blockchain. Il y a une autorité qui décide de qui va pouvoir publier quoi.

On voit que le qui décide n'est pas clair. Il y a la preuve par le travail et la preuve d'enjeu.

Avec les blockchain privées. C'est juste une base de données privées. Tout à fait classique. Ou alors j'ai mal compris ce que c'est !? le mot désignait autre chose ?
Il me semble que justement ce qui a fait le succès du bitcoin et par là de la blockchain, c'est qu'il n'y a pas d'autorité centrale. Le bitcoin est une monnaie sans banque centrale.

A quoi ça sert d'avoir une base de données dont le contrôle peut se répartir si on veut centraliser le pouvoir ?

Je vois bien arriver les puissants de ce monde qui décident de remplacer le web où toute personnes peut publier quelques chose par une blockchain qui demande une validation. Il seront certainement là pour y mettre un mécanisme qui détermine qu'ils ont leur mot à dire sur le contenu.

On retombe dans les travers, d'avoir un système du même genre qu'un facebook qui sert de principale interface de publication à beaucoup de gens.

Le web, le email, et l'Internet de base sont conçus pour être décentralisés. (et qui se centralisent un peu trop à mon goûts)

Donc on verra de quoi l'avenir sera fait. Si la révolution blockchain aura vraiment lieu ou pas...

Personnellement, je trouve très intéressant les blockchains, mais pas encore franchement abouti, et absolument pas nécessaire dans tous les domaines.

Je pense qu'il y a beaucoup d'autres solutions pour gérer des bases de données. Et aussi beaucoup de solutions tout à fait novatrices pour savoir qui décide dans une organisation....

Remonter