Deterministic Fixed Point Arithmetic | Dweve Numerus
Numerus: deterministic fixed-point, decimal and integer arithmetic in Rust; same bits under a declared execution contract. Publishing in round two.
Groupes d'algorithmes par type de données
Le registre de ce qui s'est passé, conservé pour pouvoir être relu.
Un solveur SMT, avec un certificat joint à la réponse.
Des règles comme artefacts nommés, avec la raison pour laquelle un contrôle a échoué.
Choisir le contrat numérique avant le premier calcul, conserver le raisonnement qui l'accompagne, et remettre à quiconque le demande un enregistrement qu'il peut relancer sur sa propre machine.
Ce que vous obtenez, c'est la somme effectuée exactement, le même chiffre partout, et un enregistrement de la façon dont elle a été obtenue.
Il est construit en Europe, sous les règles européennes, et son code source est publié sous les termes Apache-2.0 lors du deuxième tour du programme de versions fondatrices de Dweve. Les régulateurs et les organismes de consommateurs pourront inspecter directement l'arithmétique, dès sa mise en service.
La question de savoir si une règle est juste reste une question pour les personnes, et vous avez le droit de la soulever. Ce que cela vous donne, c'est quelque chose de solide pour la soulever : un chiffre qui ressort identique quand quelqu'un le vérifie, un enregistrement écrit de la façon dont il a été obtenu qui ne repose sur la mémoire de personne, et un contrôle qui indique si cet enregistrement a été modifié ensuite.
Si la règle qui vous est appliquée est injuste, cela l'appliquera exactement, au centime près, à tout le monde, à chaque fois. Cela ne rend pas la règle juste, et cela ne peut pas dire que la règle est injuste. Tout ce que cela fait, c'est s'assurer que le chiffre n'est pas faux en plus, ce qui est une promesse plus modeste que celle que vous espériez, mais qui est réellement tenue.
Rien de tout cela ne change la seule chose que vous devez entendre clairement.
Ce qui vous parvient donc, c'est un chiffre avec sa propre marge attachée, ou un vide là où un nombre inventé aurait été. L'endroit où la machine se trouve compte aussi, et plus que ce que les gens pensent. Le même travail effectué en France et en Allemagne donne des chiffres carbone très différents, parce que l'électricité est produite différemment.
Le comptage n'est pas parfait, et le logiciel le dit sans qu'on le lui demande. Les travaux trop petits pour être enregistrés ne laissent aucune trace dessus. Le même travail exécuté deux fois revient un peu différent selon la température de la machine. Sur certains ordinateurs loués, il ne voit rien, et il le dit au lieu de deviner.
Les ordinateurs utilisent de l'électricité pour penser. Tout le monde le sait, et personne n'a jamais pu vous dire combien en a été consommé pour un travail donné. Les processeurs tiennent leur propre compteur de l'énergie qu'ils ont dépensée, et ce compteur peut être lu. Ainsi, un travail peut revenir avec l'électricité qu'il a fallu écrite à côté, et là où la machine ne peut pas le dire, avec rien plutôt qu'une estimation.
Quelque chose que vous pouvez maintenant demander
Il peut aussi répondre à quelque chose que personne ne pouvait demander il y a quelques années : combien la somme a coûté en électricité.
Et rien de tout cela n'a besoin d'appeler où que ce soit. La lecture, la dose, la distance de freinage : le chiffre est calculé là où il est mesuré, donc il n'y a pas de copie qui traîne sur l'ordinateur de quelqu'un d'autre, et rien n'attend une connexion. Cela compte bien plus quand le nombre concerne votre corps que quand il concerne votre eau.
Un compteur est bon marché en partie parce qu'il ne peut pas du tout gérer les fractions, donc il compte en nombres entiers. C'est justement le même comptage qui donne une réponse identique sur toutes les machines. Ainsi, la somme dans votre placard n'est pas une version plus grossière de la somme de la banque parce que la boîte était petite. C'est la même somme.
Le compteur dans votre placard décide ce que vous devez pour l'eau. Une pompe dans un service hospitalier décide quelle quantité d'un médicament est administrée. Une boîte derrière la roue d'une voiture décide à quel point freiner. Personne ne les surveille, et chacune fait le même genre d'arithmétique qu'une banque avec votre argent. Cela peut être fait au même niveau, et la réponse n'a jamais à quitter la pièce où elle a été calculée.
une organisation qui a conservé le travail peut le remettre le jour même
vous demandez le détail du calcul, et c'est une demande légitime
et dans chaque cas, le détail du calcul, pas un résumé
un organisme public, pour une décision concernant votre argent
un hôpital, pour une dose qui a été calculée
votre fournisseur d'énergie, pour une facture que vous contestez
votre banque, pour un chiffre sur votre relevé
Ainsi fait, la réponse n'est pas le simple souvenir de quelqu'un. Les chiffres de départ ont été conservés, ainsi que ce qu'on leur a fait et dans quel ordre. Relancez le calcul et il donne un résultat identique, pas approximatif. Si l'enregistrement a été modifié entre-temps, cela apparaît d'abord, avant même que quiconque ne relance quoi que ce soit.
Vous l'avez probablement posée, et vous avez reçu une mauvaise réponse. Quelqu'un consulte la version actuelle du calcul, l'applique aux chiffres d'aujourd'hui et vous dit que le résultat est à peu près juste. Personne ne cherche à esquiver. Ce qui a produit votre chiffre au printemps dernier n'existe plus, il ne reste donc rien à montrer.
Rien de tout cela ne répond à la question que tout le monde poserait ensuite.
Le mois de mars dernier sort du nouveau système exactement comme il sortait de l'ancien, donc la déclaration que vous avez déposée reste valable et il n'y a pas d'après-midi à perdre. Demandez comment un chiffre a été obtenu et vous obtenez le détail du calcul plutôt qu'un haussement d'épaules. Vous n'avez pas non plus à croire sur parole que le calcul n'a pas été modifié, car toute modification ultérieure apparaît.
Aucune partie de la réponse ne vient de la machine. Il n'y a pas d'arrondi qui va dans un sens sur une puce et dans un autre sur la suivante, et aucun raccourci qu'un ordinateur plus rapide prendrait et qu'un plus lent ne prendrait pas. Changez la machine et le chiffre ne bouge pas, pas plus que le formulaire que vous avez déposé avec elle ou la lettre qui le citait.
Quelque part derrière votre banque, votre fournisseur d'énergie ou le bureau des impôts, le logiciel est remplacé. Personne ne vous le dit, et normalement vous vous en moquez. Vous vous en souciez le jour où le nouveau système additionne l'année dernière et obtient une réponse différente, parce que le formulaire que vous avez déjà déposé ne correspond plus au système qui l'a produit, et c'est vous qui devez l'expliquer.
Une facture est réglée en une semaine. Les documents sont relus un an plus tard.
Ici, le point d'arrondi est écrit une fois, avant que quoi que ce soit ne soit additionné, et chaque copie de votre facture le suit. Donc pas d'appel téléphonique, pas de blocage du compte et pas de trois semaines. Les copies correspondent parce qu'elles ont été calculées de la même manière, pas parce que quelqu'un s'est assis ensuite pour les faire concorder.
La raison est plus petite qu'elle n'en a l'air. Les taxes se calculent en fractions de centime, et quelqu'un doit décider où ces fractions sont arrondies. Un système arrondit sur chaque ligne. L'autre arrondit une fois, sur le total. Les deux sont raisonnables, et ils peuvent différer d'un centime sans que l'un ou l'autre ait tort.
Une facture, trois copies : le reçu dans votre main, la caisse du magasin et celle de votre banque. De temps en temps, deux d'entre elles se terminent sur un centime différent. Rien n'a été volé et personne n'a été négligent, et c'est pourtant vous qui recevez l'appel téléphonique, et vous qui attendez trois semaines pendant que quelqu'un décide quelle copie était la bonne.
Assez petit pour être ignoré, jusqu'au moment où le chiffre est ce que vous devez.
Ici, on compte en nombres entiers, comme on compterait des pièces, donc rien ne reste et rien ne dérive. Ce que cela vous apporte est ennuyeux et précieux. Votre téléphone, le lecteur de carte sur le comptoir du magasin et un ordinateur dans un autre pays aboutissent tous au même chiffre, et le plus ancien des trois n'est pas moins juste que le plus récent.
Un ordinateur écrit un dixième comme vous écririez un tiers en décimal, c'est-à-dire pas tout à fait. À lui seul, l'écart est bien trop petit pour être vu. Il ne reste pas seul : une facture a des lignes, une année a douze factures, et chacun de ces écarts est toujours présent dans le total en bas, qui est le chiffre que l'on vous demande de payer.
Le chiffre qu'on vous a remis est sorti d'une machine, et une autre machine aurait pu vous en donner un légèrement différent. Demandez à un ordinateur un dixième plus deux dixièmes et, si vous lui faites afficher tous les chiffres qu'il retient, la réponse se termine par un quatre parasite. Chaque machine fait cela, donc personne ne le remarque. Chacune range ce quatre parasite à sa manière, et c'est ainsi qu'une même somme, calculée ici et calculée dans un autre pays, aboutit à deux résultats différents.