ASA Compass · contrat de règlement · état consolidé · sessions hotel-saint-michel-97, 53, puis reprise du 2 septembre 2026 après la gravure de la V8
Sept relectures, dont deux revues en aveugle rendues le 2 septembre, 15 versions gravées. Ce tableau met chaque défaut sur une ligne, avec la version sur laquelle il a été établi, son état aujourd'hui, et surtout sa réparabilité : sur un contrat qu'on ne pourra jamais corriger, un défaut mineur qu'aucun réglage ne referme pèse plus qu'un défaut grave qu'un paramètre corrige. Rien n'est jugé ni corrigé ici ; les contradictions sont écrites comme telles, et la gravité est celle que la source annonce, jamais réévaluée en passant par ce tableau.
Le prix du paquet, en tête et non au milieu
Le contrat est à zéro marge de références sur ses chemins de retour : huit places sur huit, MESURÉ SUR LA V7. Cette limite vient du protocole et ne se réserve pas, contrairement aux pages et à l'état global, élargis avant la gravure. Toute correction future qui demanderait une place de plus sur un chemin de retour est déjà impossible. Sur la V8, le versement du frais fixe a ajouté une référence de compte aux dépôts (mesuré : un lot de trois en monnaie passait à 7 sur 8, mesure prise avant que la borne en monnaie ne descende à deux, K-82) ; les chemins de retour n'ont pas été recomptés en références sur la V8, le balayage du 2 septembre comptait le budget.
C'est le prix de la décision de Karl sur la créance de pièce, et c'est un choix, pas un regret : sans elle il resterait trois places, et une pièce pourrait rester prisonnière du coffre pour toujours. Il a préféré fermer cette porte-là et payer la marge. La conséquence, il l'a acceptée en toutes lettres : la créance de pièce n'expire jamais, et un seul NFT jamais réclamé rend le marché infermable pour toujours. L'asymétrie avec l'argent, qui expire après deux ans, est voulue : l'argent est fongible, une œuvre ne l'est pas.
La seule perte définitive acceptée, nommée et non oubliée : la créance d'ALGO. De deux à dix centièmes d'ALGO partis vers un compte fermé, sans trace et sans réclamation possible. Elle ne se répare pas et personne ne la verra passer.
La V8 est en service : fa74919269d4e64f, 6 429 octets, application 770868027, gravée le 2 septembre à 03 h 10, bytecode et archive du source relus par cette session (chaîne et contrat/versions/V8-fa749192/, les empreintes concordent). Le gel est levé. La V7b (1eadfdf1dda6545e, 770843923) reste debout comme témoin : c'est l'objet exact que les deux revues en aveugle ont relu, chacune octet par octet, et la page d'audits publique le nomme comme vérifiable ; le fermer rendrait faux un document public.
Les deux revues en aveugle ont rendu, et la pente ne descend pas : trois défauts neufs, dont un critique. La première (E) a mesuré E-1, la réserve d'acceptation rendue sur une position jamais refermée, avec témoin, et démenti une borne écrite dans le code même du contrat. La seconde (R4) a mesuré R4-C1, le chemin des offres sans la garde des pièces sous contrôle, ses deux vecteurs, reprise et gel, et R4-C2, la provision retenue à chaque fusion de créances ; elle a aussi mesuré sain ce qu'elle a mesuré sain, et borné le résidu de R-C2. Le zéro du rejeu interne, une semaine de bancs écrits par ceux qui ont écrit le code, n'avait donc pas la portée qu'il pouvait suggérer, et c'est exactement pourquoi les revues venaient après lui.
Huit corrections ont été gravées dans la V8 : les deux vecteurs de R4-C1, la fusion de R4-C2, les deux moitiés de E-1 (K-73), le compteur de monnaies contre R-C5, le frais fixe et son versement (K-77), et la borne des annonces en monnaie (K-82). Sept ont été éprouvées dans les deux sens, chaque banc échouant sur le contrat d'avant puis passant sur le corrigé, chaque refus vérifié par SA PHRASE ; trois bancs ont été rejoués sur l'instance gravée elle-même (corrections 9/9, caution 6/6, C-2 9/9), et le budget balayé, 54 combinaisons, maximum 686 sur 700.
ET VOICI CE QUE LA V8 N'A PAS : la non-régression n'a pas été rejouée sur elle. Les zéros de scenario.py, des lots, des gardes et des bornes valent pour la V7b, alors que le diff entre les deux sources, relu par cette session, touche vingt méthodes, dont toutes les sous-routines de versement et de dépôt. De même, 7 corrections gravées restent sans exercice nommé sur le programme en service, et la colonne « établi sur » de chaque ligne dit sur quelle version sa preuve a été obtenue : une preuve faite sur la V7b n'est pas une preuve sur la V8, et la gravure n'en est pas une non plus.
Ce tableau a été confronté aux deux rapports, en regardant d'abord où ils le contredisent, et ils l'ont contredit trois fois : la description de R-C5 était fausse sur ce code (le vrai chemin passe par le plancher d'une monnaie, pas par une pièce d'édition multiple : K-78) ; R-C4 était classé « non corrigé » pendant que sa garde refusait depuis la V6, sur la foi d'une note périmée (K-74) ; et une recommandation du greffe sur la commission s'était écrite comme une décision de Karl jamais prise, relevée par Karl lui-même (K-77). Les trois démentis sont inscrits dans les lignes, pas effacés.
12 versions sont archivées (V-1, V0, V0b, V1, V2, V3.1, V3.2, V3b, V4, V4d, V5, V6), empreintes relues par cette session dans les archives elles-mêmes et non dans les rapports. Il n'en restait qu'une hors d'atteinte, la V3, dont l'instance est fermée : cette session l'a crue perdue pendant une heure, l'a écrit, puis l'a récupérée dans la transaction qui a créé l'application, que l'indexeur garde après la fermeture. 1 seule version reste perdue (V7), et pour une raison qu'aucune archive ne rattrape : elle n'a jamais été déployée, il n'existe donc aucune transaction où la chercher.
Fermer une instance ne détruit pas une version, et ce tableau a dit le contraire pendant une heure : le programme survit dans sa transaction de création. Passée sur toutes les applications fermées, cette voie a sauvé quatre versions, dont 3 que personne ne savait perdues faute de les connaître (V-1, V3.1, V3.2). Ce qu'elles apprennent sur ce tableau vaut plus que leur contenu : sa séquence de versions n'est pas exhaustive. Elle recense ce que les rapports ont nommé, pas ce qui a existé, et l'une des retrouvées est antérieure à ce que le tableau appelait sa première passe. Cela dépend de surcroît de ce qu'un indexeur public veut bien conserver, ce qui n'est pas une garantie et ne remplace pas une archive. Et 770825195 reste irremplaçable même archivée, puisqu'elle porte la créance gelée : c'est l'instance qu'un nettoyage distrait approcherait en la croyant vide. Voir CH-6.
Ne comptez jamais comme fait ce qui est seulement écrit. Les bytecodes de la V8 et du témoin ont été relus sur la chaîne le 2 septembre par la session qui écrit cette mise à jour (fa74919269d4e64f, 6 429 octets, vivante ; 1eadfdf1dda6545e, 6 136 octets, vivante), l'archive du source de la V8 relue sur le disque (009b183feb6a82df, elle concorde), et le diff V7-V8 refait plutôt que cru sur parole. Les résultats de bancs, eux, viennent des documents du chantier (CORRECTIONS-AVANT-GRAVURE.md, REJEU-APRES-GRAVURE.md) et des deux rapports de revue : cette session ne les a pas rejoués, et chaque ligne nomme sa source.
1 point attend une décision de Karl. Sur les 3 questions de K-40, 3 sont tranchées. 11 défauts restent non corrigés. 7 corrections n'ont jamais été exercées : personne n'a fait refuser leur garde ni rejoué le défaut d'origine, et c'est la liste de travail. 40 défauts sont corrigés et prouvés par exécution, 14 points tranchés par Karl, 6 faits établis par lecture, 4 devenus sans objet.
Ce que ce tableau ne fait pas : il ne dit pas si le contrat peut ouvrir. Il dit ce qu'il reste à trancher, à corriger et à prouver pour que quelqu'un puisse le dire. Et Karl ne met rien en service tant qu'on trouve encore des défauts : le critère n'est pas une date, c'est le tarissement des découvertes. La section 0 est faite pour qu'on puisse le voir venir.
C'est le seul indicateur qui dise si l'on approche de la fin. Pas l'état des lignes, qui s'améliore à chaque correction, mais la vitesse à laquelle il en apparaît de nouvelles. Ce compte porte sur les 20 lignes apparues depuis la V5, c'est-à-dire depuis la version sur laquelle les cinq relectures s'étaient arrêtées. Les lignes plus anciennes n'y figurent pas : leur attribuer un moyen aujourd'hui demanderait de deviner, et une ligne devinée fausserait exactement ce qu'on mesure.
Sur ces 20 découvertes, 14 sont venues de l'exécution ou de la mesure, et 5 de la lecture. Le fait qui compte davantage que la proportion : deux affirmations établies par lecture ont été démenties par l'exécution, dont une du chantier sur son propre code (K-63c, où le défaut n'existe pas dans le cas général et n'existe qu'à une extrémité). Sur ce contrat, la lecture ne prouve plus rien. Une correction lue est une intention ; une correction exercée est un fait. C'est pourquoi ce tableau distingue trois états et non deux, et pourquoi une garde qui a refusé n'y vaut pas la même chose qu'un effet constaté sur la chaîne.
Le rejeu interne de la V7b, 1er septembre : ZÉRO DÉFAUT NEUF SUR NEUF BANCS. Les deux revues en aveugle ont ensuite trouvé trois défauts que ces bancs ne cherchaient pas
Quatre bancs n'avaient jamais vu ce code et ont tous parlé : scenario.py 24 contrôles, scenario-lots.py 27, scenario-gardes.py 22, essai-bornes.py 8. Avec les cinq précédents, neuf bancs, aucun raté. Ce n'est donc pas le silence d'un banc qui n'a pas tourné, et c'est la distinction qui rend ce zéro lisible.
La pente semblait descendre : le rejeu précédent, celui de la V6, avait produit CH-2 et fait tomber sa version en deux heures ; celui-ci ne produisait rien. La suite a montré ce que ce zéro valait : les deux revues en aveugle, qui ne partageaient pas les hypothèses de ces bancs, ont trouvé trois défauts, dont un critique. Le zéro était vrai et ne portait pas sur la bonne question.
ET VOICI CE QUE CE ZÉRO NE DIT PAS, dans les mots du chantier lui-même : il ne couvre que ce que nos bancs savent chercher. Ils éprouvent des défauts connus et des chemins que nous avons pensés. C'est précisément ce qu'une relecture en aveugle va chercher ailleurs, et c'est pour cela qu'elle vient maintenant et pas avant. Un zéro obtenu par ceux qui ont écrit le code mesure la solidité de leurs hypothèses, pas celle du contrat.
Le meilleur résultat de ce rejeu n'est pas dans le contrat, il est dans les outils : cinq instruments ont été corrigés pendant qu'il tournait, et aucun défaut de contrat derrière aucun des cinq. Un banc qui échoue pour la mauvaise raison fabrique un défaut ; un banc qui réussit pour la mauvaise raison en cache un. Il en reste un de la seconde espèce : CH-7 est corrigé dans le banc mais n'a toujours pas été rejoué, ni pendant le gel, ni depuis sa levée.
ET UN CHEMIN QUE PERSONNE N'AVAIT JAMAIS EMPRUNTÉ L'A ÉTÉ. La clôture d'une enchère dont la pièce ne peut pas être rendue était le seul soupçon nommé du chantier, et le banc l'a parcourue de bout en bout : clôture aboutie au round 66894715, créance inscrite, pièce restée au coffre, puis réclamée et récupérée avec sa provision, la boîte disparue. Avec son témoin inversé, sans lequel un contrat qui retiendrait systématiquement aurait passé le banc. I-5 est la première ligne de la journée à passer de « jamais exercée » à « prouvée par exécution », et elle y passe seule : les quatorze autres corrections n'ont pas bougé.
LES DEUX REVUES EN AVEUGLE ONT RENDU : trois défauts neufs, et trois démentis du tableau
La vague qui cherchait là où personne n'avait pensé à regarder a trouvé. La première revue (rapport : asa-revue-securite.pages.dev) a mesuré E-1, avec témoin ; la seconde (relecture-aveugle-4) a mesuré R4-C1, deux vecteurs de bout en bout, et R4-C2 au chiffre près, puis a mesuré la clôture d'enchère, conclusion et repli, et l'a trouvée saine. Après le zéro du rejeu interne, la pente n'était donc pas au tarissement : le zéro mesurait la solidité de nos hypothèses, comme cette page l'écrivait avant leurs rapports.
Les quatre premiers gestes des deux revues valent d'être gardés : chacune a recompilé le source et comparé octet par octet au programme gravé avant de lire une ligne, puis a mesuré sur SA PROPRE instance d'essai au même bytecode (770849722, 770850604). Cinq relevés indépendants concordent donc sur le programme de la V7b. Et chacune a rendu la liste de ce qu'elle n'a pas couvert, qui vaut autant que ses constats : c'est là que se trouve le prochain défaut.
Le gel est levé, les huit corrections sont gravées dans la V8, et l'aveuglement est terminé. Les consignes de silence qui vivaient dans cet encart ont fait leur travail ; elles restent dans l'histoire du dossier, plus dans ses règles.
Ce que ce compte ne dit pas : il compte des lignes de tableau, pas des défauts du monde. Un défaut à trois faces en donne trois (K-63), un défaut fermé par une décision en donne une (K-65). Il ne se lit donc pas comme une mesure absolue, mais comme une pente, d'une version à la suivante.
Empreintes sha256 abrégées à huit caractères. Seule l'empreinte du bytecode fait foi : celle du fichier .teal bouge quand un commentaire change (chantier). Les empreintes de source viennent des rapports eux-mêmes ; celles du bytecode ont été relues sur la chaîne par les relectures, le greffier, ou cette session.
| Version | source | bytecode d'approbation | octets | applications testnet | moment | statut | ce qu'elle porte, et qui a lu quoi |
|---|---|---|---|---|---|---|---|
| V-1 | inconnue | 55fa00ef | 3 459 | 770766914, fermée, créée au round 66850064 | 31 août, avant l'audit | RETROUVÉE, non rattachée | LE TABLEAU COMMENÇAIT APRÈS LE COMMENCEMENT. Cette version précède celle qu'il appelait sa première passe, et elle est plus courte de 272 octets. Retrouvée par le greffe en passant sur TOUTES les applications fermées la voie de récupération ouverte pour la V3 ; empreinte relue par cette session dans la transaction de création. AUCUN RAPPORT NE LA MENTIONNE et personne ne sait ce qu'elle contenait de différent : elle est archivée, pas rattachée |
| V0 | f33e994b | daffd0e7 | 3 731 | 770772292 | 31 août, matin | gravée, archivée | LE TABLEAU METTAIT DEUX BYTECODES DIFFÉRENTS SOUS UNE SEULE LIGNE, et cette session les a séparés en relisant les deux instances sur la chaîne : celle-ci porte daffd0e7bf339bac, 3 731 octets. Audit initial, la première passe QUE LES RAPPORTS CONNAISSENT (six défauts), mais pas la première version : V-1 la précède. Vivante, ARCHIVÉE dans contrat/versions/ |
| V0b | non relevée | 2567aa39 | 4 127 | 770779559 | 31 août, matin | gravée, archivée | SÉPARÉE DE V0 PAR CETTE SESSION : 2567aa399c50190f, 4 127 octets, soit 396 de plus que 770772292. Les deux instances étaient comptées comme une seule version. Vivante, ARCHIVÉE ; aucun rapport ne dit sur laquelle des deux il a lu |
| V1 | a6e79483 | 9885cef9 | 4 254 | 770787592 | 31 août, 18 h 55 | gravée, archivée | L'EMPREINTE QUE CE TABLEAU PORTAIT, ba05406b, N'EST PAS CELLE DU BYTECODE GRAVÉ : le programme de 770787592, relu sur la chaîne par cette session, porte 9885cef93a783751. LA TAILLE CONCORDE, 4 254 octets, donc c'est bien la même version, et ba05406b devait être une empreinte de fichier. Seule l'empreinte du bytecode fait foi, et celle-ci ne s'était jamais fait vérifier ; la comparaison avec la V3, dont l'a009dd51 EST bien un bytecode, montre que les rapports mêlaient les deux natures sans le dire. K-27 corrigé ; K-28, K-29, K-32 mesurés dessus. Vivante, ARCHIVÉE dans contrat/versions/ |
| V2 | a6921771 | 67fd7a87 | 4 522 | 770793296, 770797552 | 31 août, ~21 h | gravée, archivée | les deux instances portent le MÊME programme, 67fd7a8736810d52, 4 522 octets, relu sur la chaîne par cette session : l'empreinte du tableau est confirmée. Vivante, ARCHIVÉE. Gel de K-33 ; audit initial (verdict, retiré) et relecture statique (18 défauts) |
| V3 | b06215f4 | a009dd51 | 4 864 | 770802760, FERMÉE, créée au round 66869285 | 1er sept., ~00 h | fermée, RÉCUPÉRÉE par sa création | CRUE PERDUE PENDANT UNE HEURE, PUIS RÉCUPÉRÉE. Son instance est fermée et l'application ne répond plus ; cette session l'a d'abord constatée perdue en interrogeant les instances anciennes une à une, un contrôle que personne n'avait fait, et l'a écrit sur cette page. PUIS ELLE A CHERCHÉ AILLEURS : le programme vit encore dans LA TRANSACTION QUI A CRÉÉ L'APPLICATION, que l'indexeur conserve après la fermeture. Récupéré au round 66869285, a009dd51630532ed, 4 864 octets, schéma 8 entiers et 2 tranches, 2 pages ; empreinte relue APRÈS la copie. C'est la version de L'AUDIT ADVERSE EN AVEUGLE (C1, C2, M1, F1 à F3), et ses six constats redeviennent rejouables. AU PASSAGE, CECI TRANCHE UNE QUESTION : a009dd51 EST bien une empreinte de bytecode, contrairement au ba05406b de la V1 |
| V3.1 | inconnue | 1f9585c1 | 5 200 | 770816691, fermée, créée au round 66877802 | 1er sept., ~09 h | RETROUVÉE, non rattachée | INTERCALAIRE ENTRE V3 ET V3b, inconnue de tous les rapports. Retrouvée par la voie de la transaction de création, empreinte relue par cette session. Elle et la suivante font 5 200 octets pour des empreintes DIFFÉRENTES : deux déploiements séparés de 927 rounds portaient des programmes distincts de même taille |
| V3.2 | inconnue | 67a4df74 | 5 200 | 770818509, fermée, créée au round 66878729 | 1er sept., ~09 h | RETROUVÉE, non rattachée | INTERCALAIRE, déployée 927 rounds après V3.1 et 20 octets avant V3b. AUCUN RAPPORT NE L'A LUE. Ces trois lignes retrouvées disent quelque chose du tableau lui-même : LA SÉQUENCE N'EST PAS EXHAUSTIVE, elle recense les versions que les rapports ont nommées, pas celles qui ont existé |
| V3b | non relevée | e8f753b9 | 5 220 | 770819337 | 1er sept., 11 h 44 UTC | gravée, archivée | ARCHIVÉE dans contrat/versions/chaine-e8f753b9/, empreinte relue par cette session dans l'archive elle-même : e8f753b906850fb9, 5 220 octets, conforme au programme de 770819337. Elle est aussi gardée exprès SANS le correctif du compte fermé. K-50, 157 contrôles ; le source a bougé 18 min après (relecture informée, §1) |
| V4 | 196123ea | d9d56b60 | 5 243 | 770822000, 770822702 | 1er sept., copie de 08 h 38 | gravée, archivée | ARCHIVÉE dans contrat/versions/chaine-d9d56b60/, empreinte relue par cette session dans l'archive elle-même : d9d56b60b3bd4575, 5 243 octets, conforme au programme de 770822702. Elle est aussi laissée INFERMABLE comme preuve de R-C5. Relecture aveugle 3 (dix constats) |
| V4d | 49f6750d | 4869956f | 5 321 | 770822974 | 1er sept., ~13 h UTC | gravée, archivée | ARCHIVÉE dans contrat/versions/chaine-4869956f/, 4869956f4b7c85b3, 5 321 octets, relue par cette session : c'est la quatrième archive de chaîne, celle que le compte du greffe avait manquée et que le chantier a ajoutée de lui-même. DÉFECTUEUSE (chantier) : premier correctif du compte fermé, qui reproduisait le défaut par une cause qu'il introduisait ; la relecture informée l'a relue |
| V5 | ff47dee0 | 20fd5fc6 | 5 320 | 770824875 (fermée), 770825195 | 1er sept., 10 h 27 (heure locale) | gravée, archivée | ARCHIVÉE dans contrat/versions/chaine-20fd5fc6/, empreinte relue par cette session : 20fd5fc6255b0fe1, 5 320 octets. 770825195 RESTE IRREMPLAÇABLE POUR UNE AUTRE RAISON, et c'est elle qui porte AUSSI LA CRÉANCE GELÉE (2 000 unités de l'actif 770825224) et neuf positions de pièces. Doublement irremplaçable : personne ne la ferme, ne la vide ni ne la réclame. Bytecode relu sur la chaîne par cette session : 20fd5fc6255b0fe1, 5 320 octets |
| V6 | 170f76ba | 79506826 | 6 524 | 770840780, FERMÉE au round 66893127 | 1er sept., 16 h 41 | gravée, puis FERMÉE | A VÉCU MOINS DE DEUX MILLE ROUNDS, créée à 66891383 et fermée à 66893127 : elle portait les onze corrections du paquet et les six décisions de Karl, et le rejeu y a trouvé CH-2. LA SEULE VERSION MORTE DONT LE CODE SURVIT, archivée dans contrat/versions/V6-79506826/ (ARC-56 et TEAL) ; empreinte relue par cette session APRÈS la copie : 79506826f19a6f48, 6 524 octets. Sa fermeture est vérifiée sur l'indexeur, deleted-at-round 66893127 |
| V7 | a86860e1 | 13dad747 | 6 143 | AUCUNE, JAMAIS | 1er sept., source 17 h 19 | MORTE sans avoir été déployée | corrigeait CH-2 et faisait maigrir le contrat de 381 octets. Compilée hors du projet, JAMAIS DÉPLOYÉE ET JAMAIS ARCHIVÉE : son code n'existe plus nulle part. Elle n'a servi qu'à porter la correction jusqu'à la V7b. Inscrite ici parce qu'une version qu'on a cru courante pendant une heure doit rester lisible : plusieurs lignes de ce tableau ont été écrites en la nommant |
| V7b | 208bd5ba | 1eadfdf1 | 6 136 | 770843923 | 1er sept., 18 h 12 | gravée, TÉMOIN des deux revues | GEL LEVÉ LE 2 SEPTEMBRE, ET ELLE RESTE DEBOUT EXPRÈS : c'est L'OBJET EXACT QUE LES DEUX REVUES EN AVEUGLE ONT RELU, chacune ayant recompilé le source et comparé OCTET PAR OCTET au programme gravé (la première sur son instance d'essai 770849722, la seconde sur 770850604, toutes deux au même bytecode), et la page d'audits publique la nomme comme vérifiable par n'importe qui : LA FERMER RENDRAIT FAUX UN DOCUMENT PUBLIC (deploiement.json, relu par cette session). Bytecode 1eadfdf1dda6545e, 6 136 octets, RELU SUR LA CHAÎNE PAR CETTE SESSION LE 2 SEPTEMBRE, instance vivante. Le rejeu du 1er septembre y a rendu zéro défaut neuf sur neuf bancs ; LES DEUX REVUES Y ONT ENSUITE TROUVÉ TROIS DÉFAUTS (E-1, R4-C1, R4-C2), tous corrigés dans la V8. Deux instances jetables AU MÊME BYTECODE ont été condamnées par la mesure de R-C5 (770860721, 770861116) : leur résultat vaut pour ce programme, seule l'instance était jetable |
| V8 | 009b183f | fa749192 | 6 429 | 770868027 | 2 sept., 03 h 10 | gravée | LA COURANTE, EN SERVICE : gravée après les rapports des deux revues en aveugle et la confrontation du greffe. Bytecode fa74919269d4e64f, 6 429 octets, RELU SUR LA CHAÎNE PAR CETTE SESSION ; source 009b183feb6a82df, archivé dans contrat/versions/V8-fa749192/ et relu par cette session (l'empreinte concorde). Elle porte LES HUIT CORRECTIONS DE LA NUIT : la garde des pièces sous contrôle sur le chemin des offres, ses deux vecteurs (R4-C1) ; la provision de boîte retenue à chaque fusion (R4-C2) ; la réserve d'acceptation rendue conditionnelle, ses deux moitiés (E-1 / K-73) ; le compteur de monnaies ouvertes contre R-C5 ; le frais fixe et son versement (K-77) ; la borne des annonces en monnaie à deux pièces (K-82). TROIS BANCS ONT ÉTÉ REJOUÉS SUR L'INSTANCE GRAVÉE ELLE-MÊME : les corrections 9/9, la caution 6/6, C-2 9/9 ; le budget balayé, 54 combinaisons et dix chemins, maximum 686/700. CE QUI N'A PAS ÉTÉ REJOUÉ SUR ELLE, ET IL FAUT LE LIRE AVEC : la non-régression (scenario, lots, gardes, bornes), dont les zéros valent pour la V7b, alors que LE DIFF V7-V8, RELU PAR CETTE SESSION, TOUCHE VINGT MÉTHODES, dont toutes les sous-routines de versement et de dépôt |
L'audit initial cite aussi une « approval 9e0917ca05f74d46 » pour V2, de nature non précisée (fichier ou bytecode) ; la relecture statique a relu le bytecode de V2 sur trois endroits (67fd7a87). La relecture informée a commencé sur un source mouvant et a figé V4d en cours de route ; ses trois premières surfaces ont été établies avant le gel.
La section qui compte le plus. Ces points ne se corrigent pas, ils se tranchent, et ils sont bloquants pour la gravure puisque le contrat est immuable.
| Défaut | De quoi il s'agit | Établi sur | État | Réparabilité | Ce que les sources disent | La décision attendue |
|---|---|---|---|---|---|---|
| K-86 K-86 · chantier, en mesurant le jumeau de K-73 · vérifié par le greffe sur le protocole trouvé par mesure · 2 sept. · chantier (en suivant K-73 jusqu'à la restitution) | Le second déposant d'un même actif verse une caution de 0,1 ALGO que le marché n'immobilise pas, et qui ne lui revient jamais : un prélèvement non annoncé sur les éditions multiples, qui reviendra à Karl à la fermeture gravité selon la source : faible en montant (0,1 ALGO par déposant surnuméraire d'un même actif, rien sur les pièces uniques), mais c'est un prélèvement non annoncé, pas un résidu | V8 fa749192 (770868027) ; le fait de protocole relevé sur un compte réel (196 positions, minimum 19 700 000) | EN ATTENTE D'UNE DÉCISION DE KARL | se tranche, ne se corrige pas | LE FAIT DE PROTOCOLE, MESURÉ ET NON SUPPOSÉ : Algorand immobilise 100 000 µALGO PAR POSITION, pas par unité ni par déposant ; deux vendeurs d'exemplaires du même actif versent 200 000, le coffre n'immobilise que 100 000, le premier qui réclame reprovision seule (18 100), le dernier reprend provision et caution (118 100), et 100 000 ne reviennent JAMAIS. Ce n'est ni un vol ni un blocage ; c'est la conséquence chiffrée de S-09, « chacun paie sa réserve », que Karl a tranché lui-même, et c'est pourquoi LE GREFFE NE DÉCIDE PAS À SA PLACE. Trois voies posées (K-86) : (1) ne rien changer et L'ÉCRIRE là où le vendeur le lira ; (2) ne faire verser la caution que si le coffre doit réellement l'immobiliser ; (3) rendre le résidu à la réclamation, ce qui demande de stocker qui a versé quoi. Le greffe penche pour (1) ou (2), contre (3) | LA DÉCISION DE KARL. Noter que (2) demanderait de regraver : sur le contrat en service, seules (1) et l'attente sont possibles |
Du plus lourd au plus léger : irréparable une fois gravé, puis réparable par discipline, par réglage, hors chaîne. Les corrections jamais exercées sont ici aussi, et elles y sont à leur place : une correction qu'on n'a pas fait refuser n'est pas encore une correction, ce projet l'a appris trois fois. Sur les 7 corrections jamais exercées, 1 n'existent que dans une version qu'aucune instance ne porte ; les autres sont gravées et attendent seulement qu'on les exerce, ce qui n'est pas le même travail. Une preuve obtenue sur une version remplacée ne se reporte pas sur celle qui la remplace quand celle-ci réécrit le mécanisme : la V8 touche vingt méthodes, et seules les huit corrections de la nuit ont leurs bancs rejoués sur elle. La colonne « établi sur » dit, pour chaque ligne, sur quel programme la preuve existe.
| Défaut | De quoi il s'agit | Établi sur | État | Réparabilité | Ce qui a été fait, et où c'est mesuré | Ce qui reste, en une ligne |
|---|---|---|---|---|---|---|
| B-F3 B F3 · R-C7 | Le plancher d'une enchère en jeton déborde en 64 bits pour certains réglages gravité selon la source : faible | V3, encore vrai sur V4 | non corrigé | réparable par une discipline de l'exploitant, que rien n'impose | relecture aveugle 3, C7 : garder le produit des deux planchers sous 1,8 × 10^19 ; les réglages par défaut ne débordent pas | règle d'exploitation à écrire ; ou diviser avant de multiplier dans un nouveau contrat |
| R-C7 R C7 · B F3 | Débordement du plancher d'enchère en jeton gravité selon la source : faible | V4 | non corrigé | réparable par une discipline de l'exploitant, que rien n'impose | voir B-F3 | voir B-F3 |
| R-O2 R, observations | Commission nulle sous cent unités d'une monnaie non exonérée (division entière) gravité selon la source : observation | V4 | non corrigé | réparable par un réglage (méthode d'administration) | par calcul ; dépend des décimales de la monnaie | régler le plancher de chaque monnaie au-dessus de cent unités, ou l'assumer |
| B-F2 B F2 · R-C6 | Le trop-versé (jeton et ALGO) d'une offre en jeton reste au coffre gravité selon la source : faible | V3, encore vrai sur V4 | non corrigé | réparable hors chaîne (site, outillage, documentation) | relecture aveugle 3, C6, mesuré sur V4 : 5 J et 11 000 µALGO perdus ; même chose pour le dépôt d'une mise en vente (script 08). Le contrat vérifie « au moins » et retient « exactement » | hors chaîne : le site verse exactement le dû ; sur chaîne : retenir le versé, dans un nouveau contrat |
| K-52 K-52 | Le gestionnaire d'un actif peut changer ses traits, y compris pendant une vente gravité selon la source : hors contrat | non rattaché (propriété d'Algorand, pas du contrat) | non corrigé | réparable hors chaîne (site, outillage, documentation) | aucune garde ne peut l'annuler sans écarter une part énorme du marché | avertissement dans l'interface au moment d'acheter, trois états (actif, renoncé, non déterminé) |
| K-58 K-58 · greffier, sur un constat du chantier trouvé par exécution · 1er sept. · chantier (en éprouvant A-03 et S-13a) | Redéposer une pièce que le coffre connaît déjà exige une référence de boîte que rien n'annonce, et le vendeur lit « invalid Box reference » en refaisant ce qu'il vient de faire gravité selon la source : faible sur le contrat, réel sur l'usage | V5 20fd5fc6 (770825195), inchangé sur V6 et V7 | non corrigé | réparable hors chaîne (site, outillage, documentation) | LE CONTRAT N'A RIEN À CORRIGER ET SA RAISON EST ÉCRITE DANS SON CODE : il ne lit la boîte p que si le coffre est déjà opté sur la pièce, parce que la lire pour chaque pièce d'un lot mangerait les références dont la vente a besoin. Lire une boîte coûte une référence, lire un paramètre d'actif n'en coûte aucune : c'est la contrainte qui gouverne tout ce contrat. C'est une règle d'appel à respecter, pas un défaut à corriger. LE CAS N'A RIEN D'EXOTIQUE : mettre une pièce aux enchères, annuler, la récupérer, la remettre en vente | AU SITE, deux gestes. Reconnaître le cas AVANT de composer le groupe, en vérifiant si le coffre détient déjà une position sur cette pièce, et ajouter alors la référence p + identifiant. Et ne jamais laisser « invalid Box reference » atteindre l'écran. C'EST LE MÊME SUJET QUE R-C10 SUR UN QUATRIÈME CAS QUE R-C10 NE NOMME PAS, et le plus vicieux des quatre : les trois autres se produisent quand l'utilisateur fait quelque chose d'inhabituel, celui-ci quand il REFAIT EXACTEMENT CE QU'IL VIENT DE FAIRE. L'extrémité à ne pas rater est le lot : deux pièces déjà connues demandent deux références de plus, et le site doit savoir refuser proprement avec une phrase. ET LE CAS S'EST PRODUIT CHEZ CEUX QUI L'AVAIENT DOCUMENTÉ, le soir même : c'est lui qui rendait vert pour la mauvaise raison le contrôle de CH-7. Une règle d'appel qu'on a écrite le matin ne protège pas celui qui l'a écrite |
| R-C10 R C10 | Trois refus courants viennent du protocole, sans motif lisible (acheter sans opt-in, annonce inexistante, monnaie fermée) gravité selon la source : faible | V4 | non corrigé | réparable hors chaîne (site, outillage, documentation) | mesuré ; le site doit traduire ou prévenir | hors chaîne : vérifier avant de composer le groupe ; le contrat ne peut pas parler à la place du protocole |
| R-C6 R C6 · B F2 | Le trop-versé d'une offre en jeton et d'un dépôt de mise en vente reste au coffre gravité selon la source : faible | V4 | non corrigé | réparable hors chaîne (site, outillage, documentation) | voir B-F2 | voir B-F2 |
| R-C8 R C8 · S 11 | L'acceptation de la monnaie ne peut pas voyager dans le groupe de la mise en vente, contrairement au texte du contrat gravité selon la source : faible | V4 | non corrigé | réparable hors chaîne (site, outillage, documentation) | voir S-11 | voir S-11 |
| R-O3 R, observations | Les phrases de refus sont retrouvées par position dans le programme et deviennent fausses en silence dès que le bytecode bouge gravité selon la source : outillage | V4 | non corrigé | réparable hors chaîne (site, outillage, documentation) | vu pendant la relecture, quand les artefacts ont été régénérés | l'outillage lit sa propre carte ARC-56 figée ; à généraliser aux bancs |
| S-11 S 11 · R-C8 | La documentation de lister promet qu'une acceptation de monnaie peut voyager dans le groupe ; le code la refuse (« piece mal adressee ») gravité selon la source : moyen | V2, encore vrai sur V4 | non corrigé | réparable hors chaîne (site, outillage, documentation) | relecture aveugle 3, C8, mesuré sur V4 : toujours refusé. Le site devra faire signer l'acceptation à part (deux signatures sur un portefeuille matériel) | corriger le commentaire, et composer les groupes du site en conséquence ; pour offrir, l'acceptation de la pièce dans le groupe fonctionne |
| CH-7 chantier, rejeu de la V7b · signalé par lui-même trouvé par exécution · 1er sept. au soir · chantier (pendant le rejeu de la V7b) | Dans scenario.py, l'attaque 4 est refusée par le protocole sur une référence de boîte manquante et non par la garde visée : le contrôle est vert et ne prouve pas ce qu'il prétend gravité selon la source : outillage, et de l'espèce la plus dangereuse : un banc qui réussit pour la mauvaise raison cache un défaut au lieu d'en fabriquer un | V7b 1eadfdf1 (770843923) | corrigé, non éprouvé | réparable hors chaîne (site, outillage, documentation) | SIGNALÉ PAR CELUI-LÀ MÊME QUI AVAIT DOCUMENTÉ CE PIÈGE LA VEILLE, ce qui est le meilleur signe qu'un projet a compris une leçon : il l'a cherchée chez lui. Le refus vient du protocole, sur une référence de boîte absente de l'appel, et non de la garde que le contrôle prétend éprouver. Consigné dans REJEU-APRES-GRAVURE.md. C'EST LE MÊME MOTIF QUE LE QUATRIÈME CONTRÔLE DE scenario-gardes.py, déjà raconté en section 7 : le motif des trois premiers avait été vérifié, celui du quatrième oublié. CORRIGÉ DANS LE BANC, QUI EXIGE MAINTENANT LE MOTIF « depot insuffisant » ET NON UN ÉCHEC QUELCONQUE, MAIS NON REJOUÉ : le rejouer aurait touché l'instance alors gelée, et depuis la levée du gel personne ne l'a lancé. ET SA CAUSE EST K-58 RETROUVÉ DANS LEUR PROPRE BANC : l'attaque échouait sur la boîte de la PIÈCE, parce que le contrat ne vérifie qu'une pièce déposée n'est pas une monnaie QUE SI LE COFFRE EST DÉJÀ OPTÉ SUR ELLE. Le chantier avait documenté ce cas le matin même, pour le site, et l'a retrouvé chez lui le soir | LE GEL EST LEVÉ ET LE REJEU N'A TOUJOURS PAS EU LIEU : seuls les trois bancs des corrections ont couru sur la V8 (770868027), et scenario.py n'en est pas. Rejouer l'attaque 4 sur l'instance en service et lire le motif « depot insuffisant », et non seulement l'échec. Tant que ce rejeu n'a pas eu lieu, ce contrôle vert ne vaut pas preuve, et le zéro de neuf bancs porte cette réserve, nommée et non cachée |
| K-86 K-86 · chantier, en mesurant le jumeau de K-73 · vérifié par le greffe sur le protocole trouvé par mesure · 2 sept. · chantier (en suivant K-73 jusqu'à la restitution) | Le second déposant d'un même actif verse une caution de 0,1 ALGO que le marché n'immobilise pas, et qui ne lui revient jamais : un prélèvement non annoncé sur les éditions multiples, qui reviendra à Karl à la fermeture gravité selon la source : faible en montant (0,1 ALGO par déposant surnuméraire d'un même actif, rien sur les pièces uniques), mais c'est un prélèvement non annoncé, pas un résidu | V8 fa749192 (770868027) ; le fait de protocole relevé sur un compte réel (196 positions, minimum 19 700 000) | EN ATTENTE D'UNE DÉCISION DE KARL | se tranche, ne se corrige pas | LE FAIT DE PROTOCOLE, MESURÉ ET NON SUPPOSÉ : Algorand immobilise 100 000 µALGO PAR POSITION, pas par unité ni par déposant ; deux vendeurs d'exemplaires du même actif versent 200 000, le coffre n'immobilise que 100 000, le premier qui réclame reprovision seule (18 100), le dernier reprend provision et caution (118 100), et 100 000 ne reviennent JAMAIS. Ce n'est ni un vol ni un blocage ; c'est la conséquence chiffrée de S-09, « chacun paie sa réserve », que Karl a tranché lui-même, et c'est pourquoi LE GREFFE NE DÉCIDE PAS À SA PLACE. Trois voies posées (K-86) : (1) ne rien changer et L'ÉCRIRE là où le vendeur le lira ; (2) ne faire verser la caution que si le coffre doit réellement l'immobiliser ; (3) rendre le résidu à la réclamation, ce qui demande de stocker qui a versé quoi. Le greffe penche pour (1) ou (2), contre (3) | LA DÉCISION DE KARL. Noter que (2) demanderait de regraver : sur le contrat en service, seules (1) et l'attente sont possibles |
| CH-5 chantier, banc 1 · arithmétique refaite par le greffier trouvé par calcul · 1er sept. au soir · chantier (compté dans le code engendré) | Les soustractions sur le dépôt du vendeur ne passent jamais sous zéro : trente combinaisons, aucune négative, la plus serrée laissant 76 700 microALGO gravité selon la source : vérification | V7 a86860e1, TEAL 13dad747, VERSION MORTE | corrigé, non éprouvé | réglé avant la gravure | TRENTE combinaisons de monnaie et de taille, zéro passage sous zéro, cas le plus serré à 76 700 µALGO ; arithmétique refaite par le greffier, qui a aussi vérifié que le fichier lu était bien celui de la V7 et non celui de la V6 resté au projet. MAIS C'EST UN CALCUL, PAS UNE EXÉCUTION, et le chantier l'écrit lui-même : il SUPPOSE que le dépôt enregistré dans la boîte est bien celui que la formule calcule, et cette prémisse n'a pas été vérifiée. Un calcul exhaustif sur une prémisse non vérifiée n'est pas une preuve, c'est une bonne raison d'espérer. ET UN CHIFFRE A ÉTÉ CORRIGÉ EN COURS DE ROUTE : le chantier annonçait sept soustractions sur un dépôt, il y en a NEUF, les deux manquées étant celles qui ne manipulent aucun argent ; il l'a trouvé en comptant dans le code engendré au lieu de se fier à sa mémoire | relever sur la chaîne le dépôt réellement enregistré dans la boîte et le comparer à la formule. Tant que ce n'est pas fait, cette ligne ne prouve pas ce qu'elle a l'air de prouver. ET LE CALCUL EST DOUBLEMENT PÉRIMÉ DEPUIS : il portait sur la V7, morte, et la V8 retouche l'arithmétique même du dépôt (frais fixe, réserve conditionnelle de K-73). En sens inverse, banc-k73.py et banc-caution.py relisent sur la chaîne les rendus réels du cycle caution sur 770868027, total conservé 144 800 : la prémisse est vérifiée sur ce cycle-là, pas sur les trente combinaisons |
| K-59 K-59 · chantier, en corrigeant R-C2 trouvé par lecture · 1er sept. au soir · chantier (en corrigeant R-C2) | Un troisième créancier que personne n'avait nommé : la commission de l'exploitant peut devenir une créance dont personne n'a provisionné la boîte, et reclamer lui rendrait 22 100 microALGO qu'il n'a jamais versés gravité selon la source : moyen, et de même nature que R-C1 : le coffre paie, l'exploitant encaisse | V5, GRAVÉ dans V7b 1eadfdf1 (770843923) | corrigé, non éprouvé | réglé avant la gravure | AUCUNE DES CINQ RELECTURES NE L'AVAIT VU, ET LA RAISON EST INSTRUCTIVE : elles cherchaient QUI PERD DE L'ARGENT, et ici personne de visible n'en perd, l'exploitant en gagne et le coffre paie. Un défaut qui enrichit l'exploitant ne ressemble pas à un défaut quand on cherche des victimes, et c'est l'exploitant qui est le lecteur du rapport. Le financement des créances suit pourtant une règle nette : celui qui peut devenir créancier avance de quoi payer sa propre boîte, sans quoi fabriquer des créances draine le coffre pour moins cher qu'un compte neuf. C'est le TROISIÈME FRÈRE de R-C2 (provision rendue deux fois) et de R-C3 (provision jamais rendue) : une provision JAMAIS VERSÉE ET POURTANT RENDUE. Corrigé dans la V7, dans le même mouvement que les deux autres, ce qui était le bon geste : fermer deux portes sur trois est le motif qui a coûté le plus cher à ce contrat | éprouver LES TROIS SÉPARÉMENT sur la version déployée, avec le MOTIF du refus et non seulement son existence : R-C2 l'a été sur la V7b (scenario-provisions), R-C3 et CE CAS-CI ne l'ont toujours pas été, et la V8 retouche encore ces sous-routines (R4-C2, K-73). banc-c2.py suit la comptabilité de provision sur 770868027 jusqu'à la réclamation, mais le cas propre de K-59, la commission devenue créance sans provision versée, n'est nommé dans aucun banc rejoué. À verser au dossier de R-C1 : deux défauts indépendants qui penchent du même côté ne sont plus une coïncidence |
| K-63b K-63, deuxième face · chantier trouvé par exécution · 1er sept. au soir · chantier (en traitant la classe plutôt que le cas) | Un exploitant qui se dés-opte d'une monnaie fait échouer TOUTES les ventes de cette monnaie, sur toutes les annonces à la fois gravité selon la source : grave, et PLUS GRAVE QUE K-63a sur les trois plans | V5 20fd5fc6, GRAVÉ dans V7b 1eadfdf1 | corrigé, non éprouvé | réglé avant la gravure | PROUVÉ PAR EXÉCUTION, AVEC TÉMOIN, et le banc s'est protégé de sa propre erreur. Monnaie 770837746, frappée par le vendeur pour que l'exploitant puisse s'en dés-opter. L'achat échoue sur « must optin, asset 770837746 missing from Y5Y6VBSK… », qui nomme bien l'EXPLOITANT. LE BANC AVAIT VÉRIFIÉ AVANT DE CONCLURE que le vendeur, lui, acceptait toujours la monnaie : le refus ne pouvait donc pas venir de K-63a. Témoin : l'exploitant se ré-opte, rien d'autre ne change, le même achat passe au round 66889533. PLUS GRAVE QUE K-63a sur les trois plans : il touche toutes les annonces d'une monnaie au lieu d'une seule, il ne demande aucune négligence d'un utilisateur, et il est plus probable, se dés-opter d'un jeton étant banal quand fermer son compte ne l'est pas. LA BRANCHE PROTÉGÉE COUVRE LE RISQUE RARE, LA BRANCHE NUE PORTE LE RISQUE COURANT. Et le contrat avait vu ce risque exactement : accepter_un_jeton porte la note « c'est un pouvoir de blocage que ce contrat déclare ne pas avoir », mais sa garde ne vérifie que L'INSTANT DE L'OUVERTURE, là où il fallait une propriété permanente. GRAVÉ DANS LA V7b PUIS REPORTÉ DANS LA V8 EN SERVICE, ET TOUJOURS JAMAIS EXÉCUTÉ : aucun des rejeux nommés (neuf bancs sur la V7b, trois bancs sur la V8) ne cite ce cas, et la gravure n'est pas une preuve | rejouer le refus puis sa disparition sur 770868027 ; le banc existe, essai-exploitant-desopte.py, et le gel ne l'empêche plus. R-O1, tranché par Karl, empêche ce défaut de devenir définitif : un exploitant sans clé n'est plus un cas sans issue |
| K-63c K-63, troisième face · chantier, qui s'est donné tort à lui-même trouvé par exécution · 1er sept. au soir · chantier (l'exécution a démenti la lecture) | Un exploitant dés-opté rend une monnaie infermable, et le marché avec elle : PROUVÉ À CETTE EXTRÉMITÉ SEULEMENT, et inexistant dans le cas général gravité selon la source : faible en portée, et la source elle-même l'a REVUE À LA BAISSE | V5 20fd5fc6, GRAVÉ dans V7b 1eadfdf1 | corrigé, non éprouvé | réglé avant la gravure | LE CHANTIER L'AVAIT ANNONCÉ « ÉTABLI PAR LECTURE », EST ALLÉ L'ÉPROUVER, ET LA LECTURE ÉTAIT FAUSSE. Dans le cas général IL N'EXISTE PAS : la fermeture d'une monnaie PASSE malgré un exploitant dés-opté, round 66889539, un asset_close_to vers un compte non opté étant accepté par Algorand QUAND IL NE TRANSPORTE RIEN, et le coffre détenait zéro. MAIS À UNE EXTRÉMITÉ IL EXISTE, ET L'EXTRÉMITÉ A ÉTÉ MESURÉE : fermer_une_monnaie TOLÈRE LA POUSSIÈRE sous le plancher, et la fermeture transporte alors un résidu NON NUL. Sur la monnaie 770837844, plancher 100, cinquante unités semées au coffre par un tiers, exploitant dés-opté : la fermeture ÉCHOUE, « must optin, asset 770837844 missing from Y5Y6VBSK… ». Témoin : l'exploitant se ré-opte, la MÊME fermeture passe au round 66889583 et il reçoit les cinquante unités. IL EXIGE LA CONJONCTION DE DEUX CONDITIONS, dont R-C5 : quelqu'un sème de la poussière, geste à la portée de n'importe qui pour le prix d'une transaction, ET l'exploitant s'est dés-opté. GRAVÉ DANS LA V7b PUIS REPORTÉ DANS LA V8 EN SERVICE, ET TOUJOURS JAMAIS EXÉCUTÉ : aucun des rejeux nommés (neuf bancs sur la V7b, trois bancs sur la V8) ne cite ce cas, et la gravure n'est pas une preuve | rejouer l'extrémité sur 770868027 (le gel est levé, le banc existe : essai-exploitant-desopte.py), jamais le cas général : c'est là que la mesure porte. CE QUI VAUT D'ÊTRE RETENU DÉPASSE CE DÉFAUT : une session a annoncé un défaut, est allée l'éprouver, S'EST DONNÉ TORT, puis a cherché l'extrémité où son intuition tenait quand même. Les cinq relectures précédentes n'ont jamais fait les trois gestes de suite |
| R-C3 R C3 trouvé par exécution · 1er sept. au soir · chantier (banc de clôture S-14, en mesurant autre chose) | La provision de créance du dernier enchérisseur n'est jamais rendue (22 100 µALGO par enchère en jeton terminée) gravité selon la source : moyen | V4, encore vrai sur V5 | corrigé, non éprouvé | réglé avant la gravure | LE DÉFAUT PASSE D'ÉTABLI PAR LECTURE À PROUVÉ PAR EXÉCUTION, et la preuve est venue d'un banc qui cherchait autre chose : sur 770840780, LE CODE DÉPLOYÉ SANS LA CORRECTION, le coffre referme à ZÉRO sur les trois chemins ALGO et GARDE 22 100 µALGO sur le chemin jeton. C'est le seul chemin où naît une provision de créance, et c'est exactement le montant d'une boîte. Auparavant : mesuré sur E1 et E2, seule encherir rendait la provision. LA CORRECTION est GRAVÉE dans la V7b puis RETOUCHÉE dans la V8 (K-73 et R4-C2 réécrivent _rendre_le_depot et la comptabilité des provisions), TOUJOURS SANS EXERCICE NOMMÉ : une preuve obtenue sur la V6 (annulation, provision de 25 300 rendue exactement) NE VAUT PLUS, et la seconde revue a mesuré sur la V7b le remboursement du DÉPASSÉ, provision comprise (+130 000), qui est le cas qu'encherir couvrait déjà, pas celui du dernier. Le gel est levé : plus rien n'empêche le banc de courir | mener scenario-provision-mise.py jusqu'à sa clôture SUR 770868027, aux QUATRE cas : annulation, clôture conclue, repli, ET le témoin de l'enchérisseur dés-opté dont la provision doit RESTER au coffre. Une correction qui rendrait dans les quatre cas serait un nouveau défaut et passerait un banc qui n'en mesurerait que trois |
| R-C5 R C5 · K-78 · K-80 trouvé par exécution · 2 sept. · chantier (le banc a démenti la description du tableau) | Un tiers rend le marché infermable pour un dollar : exactement le plancher d'une monnaie, semé au coffre, sort de la tolérance à la poussière gravité selon la source : moyen : un coût de SORTIE, pas d'exploitation ; le marché reste utilisable, sa fermeture et sa migration deviennent impossibles | défaut prouvé sur le bytecode gravé V7b 1eadfdf1 (instance jetable 770861116) ; correction GRAVÉE dans V8 fa749192 | corrigé, non éprouvé | réglé avant la gravure | CE TABLEAU DÉCRIVAIT UN AUTRE MÉCANISME, ET IL ÉTAIT FAUX SUR CE CODE (K-78) : la poussière sur une PIÈCE d'édition multiple supposait une position restée ouverte, or L'ANNULATION REFERME LA POSITION (asset_close_to vide et referme d'un geste, mesuré : le coffre redevient nu et une poussière repartirait avec la pièce). Le contrat était meilleur que son analyse, et la description fausse a servi de base à une question posée à Karl. LE VRAI CHEMIN : fermer_une_monnaie tolère un résidu STRICTEMENT SOUS le plancher ; envoyer EXACTEMENT le plancher bloque, et le marché avec. CAS DISCRIMINANT MESURÉ À L'UNITÉ PRÈS sur l'instance jetable 770861116, qui porte LE BYTECODE GRAVÉ 1eadfdf1 : 99 unités, la monnaie se ferme encore ; 100, « le coffre detient encore cette monnaie », puis fermer_le_marche refuse pour son propre motif, les deux phrases lues dans le contrat. Coût pour l'attaquant : le plancher, un dollar au plus, sans relation préalable avec le marché. DÉCISION DE CORRIGER PRISE PAR LE GREFFE, KARL LA LUI AYANT DÉLÉGUÉE EN TOUTES LETTRES (K-80). La correction, VARIANTE B : lecture du minimum du coffre ET compteur de monnaies ouvertes, 66 octets, aucune référence, une place d'entier global sur les quatre restantes ; la variante A, mesurée, NE TENAIT PAS (deux monnaies salies, rien ne se ferme). Gravée dans la V8 ; le banc des deux sens a vu « les deux monnaies se ferment » sur le corrigé | LA TRACE DU CHANTIER NE NOMME PAS L'EMPREINTE DU PROGRAMME SUR LEQUEL LE CORRIGÉ A ÉTÉ EXERCÉ, et essai-poussiere.py condamne son instance, donc ne courra jamais sur la courante : rejouer sur une instance jetable portant fa74919269d4e64f, et nommer les deux empreintes côte à côte. Tant que ce n'est pas fait, la garde gravée n'a pas de refus nommé sur le programme en service |
« Prouvé par exécution » recouvre deux preuves qui ne se remplacent pas, et la colonne les nomme quand la source le permet : une garde qui a refusé (motif et position lus dans l'ARC-56), ou un effet constaté sur la chaîne (une position relue, un solde, une transaction interne). Distinction posée par le chantier sur S-07.
| Défaut | De quoi il s'agit | Établi sur | État | Réparabilité | Où la preuve est, et sur quel chemin | Ce qui reste |
|---|---|---|---|---|---|---|
| A-09 A · K-27 | Pas de garde d'acceptation sur encherir, jumeau de offrir gravité selon la source : arbitrage | V1 a6e79483 | tranché par Karl | se tranche, ne se corrige pas | tranché le 31 août : ce n'est pas un défaut, une telle garde n'empêcherait rien puisque rien n'oblige à rester opté ; le repli de clôture est la seule protection qui tienne | rien |
| B-C2 B C2 · K-41 trouvé par lecture · 1er sept. au soir · greffier (en recomptant la section 2) | NFT gelable : la garde des actifs dangereux ignorait l'adresse de gel gravité selon la source : critique | V3, prouvé sur V5 | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026 au soir, ET C'ÉTAIT LA DERNIÈRE DÉCISION EN ATTENTE : les pièces qu'un tiers peut GELER sont écartées du marché, comme celles qu'un tiers peut REPRENDRE. Coût mesuré et accepté : TROIS collections de plus sur 2 222, moins d'un pour mille, 24 exclues au total, 1,08 %. Ce qu'on évite : le gestionnaire d'une collection gèle la pièce d'un vendeur pendant qu'elle est en vente, elle est perdue définitivement pour lui, et le marché ne peut plus être fermé tant qu'elle y est. LA GARDE ÉTAIT DÉJÀ POSÉE ET NE CHANGE PAS : piece.freeze != Global.zero_address, ligne 1006 de la copie figée a86860e10bcce7ac ; elle a refusé devant le chantier, scenario-gardes.py sur 770825195, 19 contrôles, une vraie pièce frappée avec l'adresse de gel remplie et la reprise vide pour que ce soit le gel qui morde, « un tiers garde un pouvoir sur cette piece », pc 651. CE QUI CHANGE EST QUE LA DÉCISION D'AFFAIRES EXISTE : la garde étendait au gel une décision que Karl n'avait prise que pour le clawback, et K-41 disait en toutes lettres que cette extension « reste à confirmer par lui ». CETTE LIGNE AVAIT ÉTÉ COMPTÉE COMME RÉGLÉE TOUTE LA SOIRÉE : quatre sessions ont travaillé sur ces décisions et aucune n'avait vu qu'une garde du contrat reposait sur une confirmation jamais donnée. Elle a été retrouvée en refusant de vider la section 2 sur une seule lecture | rien. CE QUI VAUT D'ÊTRE RETENU EST LE MOTIF DU JUMEAU SOUS SA FORME LA PLUS COÛTEUSE, et l'audit l'a nommé : « une occurrence corrigée là où il fallait une cause ». La garde avait été écrite contre le clawback parce que c'est ce que Karl avait décidé, et non contre la classe. LA CLASSE NE COMPTE QUE DEUX MEMBRES, et la démonstration repose sur un fait mesuré : une adresse spéciale mise à zéro NE SE RÉTABLIT JAMAIS, le protocole ignorant la tentative. C'est ce qui rend la vérification AU DÉPÔT suffisante pour toujours, et pourquoi il n'y a pas de troisième porte à chercher |
| B-N B N | Collision de réserve d'acceptation, défaut nommé et assumé gravité selon la source : assumé | V3 | tranché par Karl | se tranche, ne se corrige pas | voir S-09 : c'est la même décision écrite deux fois, et c'est ce doublon qui faisait annoncer une décision de plus qu'il n'en restait (K-57) | voir S-09 |
| CH-1 chantier, réponse du 1er sept. | Le plafond de prix devrait-il être ajustable, pour ouvrir bas et monter avec la confiance ? gravité selon la source : décision | V5 | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026 : plafond FIXE. C'est la seule des six décisions qui ne demandait AUCUN code : l'existant la satisfaisait déjà, treize usages du plafond, tous en assertion. « Tranché, rien à faire » | rien |
| I-4 K-53, inventaire du chantier | La commission à l'exploitant sous 0,1 ALGO : si le compte de l'exploitant cesse d'exister, TOUTE vente en ALGO échoue, sans remède gravité selon la source : le plus grave des cinq (chantier) | V4d | tranché par Karl | se tranche, ne se corrige pas | Karl a tranché : quand le paiement ne peut pas aboutir, il n'est pas émis et le montant reste au coffre, sans créance (relecture informée, relecture de la correction : « Karl a tranché, la décision est écrite ») ; exposition bornée à 99 999 µALGO par événement | conséquence à écrire là où l'utilisateur la lira : un vendeur au compte fermé perd le prix d'une vente sous 0,1 ALGO, et cet argent ira à l'exploitant à la fermeture (R, §7) |
| K-28.d K-28 · K-31 | Le sabotage d'enchère à faible coût (miser puis ne jamais accepter) reste possible ; la pénalité de 10 % ne couvre pas la perte au prix plancher gravité selon la source : assumé | V2 | tranché par Karl | se tranche, ne se corrige pas | assumé par Karl après mesure (K-31, réserve 4) ; plancher d'enchère à 0,13 ALGO pour que 10 % de la mise dépasse les frais | rien |
| K-40.1 K-40 | Une créance doit-elle expirer ? Sans expiration, le marché ne pourra jamais être fermé si personne ne réclame gravité selon la source : décision | V3 → V5, écrit dans le paquet de la V6 | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026 : les créances d'ARGENT expirent après DEUX ANS au profit de l'exploitant. Karl a pris cette décision en regardant la créance gelée de 770825195, qui en est la démonstration vivante et reste gelée pour cette raison | rien. L'asymétrie avec la créance de pièce, qui n'expire jamais, est voulue : voir K-40.3 |
| K-40.2 K-40 | Faut-il étendre la créance à l'ALGO ? gravité selon la source : décision | V3 → V5 | tranché par Karl | se tranche, ne se corrige pas | tranché par le correctif de K-53 : en ALGO, sous le minimum de compte, le paiement n'est pas émis et le montant reste au coffre sans créance | rien, mais voir I-4 pour ce qu'il faut écrire |
| K-40.3 K-40 | Faut-il une créance pour les pièces ? gravité selon la source : décision | V3 → V5, écrit dans le paquet de la V6 | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026, ET IL A INVERSÉ L'AVIS DU CHANTIER ET DU GREFFE, qui le déconseillaient tous deux : la créance de pièce EXISTE. C'est elle qui ferme I-5, le seul chemin par lequel une pièce restait prisonnière du coffre pour toujours | ELLE N'EXPIRE JAMAIS, et Karl a accepté la conséquence en toutes lettres : un seul NFT jamais réclamé rend le marché infermable pour toujours. Ce n'est pas un oubli symétrique de K-40.1 : l'argent est fongible, une œuvre ne l'est pas, et on ne fixe pas de date au-delà de laquelle l'œuvre de quelqu'un revient à l'exploitant |
| K-42.d K-42 | Faire relire en aveugle les deux correctifs de l'audit adverse gravité selon la source : décision | V3 | tranché par Karl | se tranche, ne se corrige pas | fait : la relecture aveugle 3 a porté sur V4, qui les contient | rien |
| K-77 K-77 · K-79 · décisions de Karl du 2 septembre | Les tarifs du marché : commission maintenue à 1 % (0 % en XDB), et un frais fixe de 0,025 ALGO sur les trois gestes de dépôt, ajustable par l'exploitant sous un plafond gravé gravité selon la source : décision | GRAVÉ dans V8 fa749192 (770868027) | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 2 septembre 2026, au terme d'une discussion chiffrée. La commission RESTE à 1 % : cette page doit porter aussi L'ERREUR QUI A FAILLI S'INSCRIRE, le greffe avait recommandé 2 % et sa recommandation s'était écrite comme une décision de Karl, jamais prise ; c'est Karl qui l'a relevée. Une recommandation ne s'inscrit jamais dans le même paragraphe qu'une décision, et LE SILENCE N'EST PAS UN ACCORD. Le frais fixe de 25 000 µALGO frappe mettre en vente, ouvrir une enchère, faire une offre ; enchérir et TOUTES les sorties restent gratuites, un retrait ne se décourage pas. Il devient AJUSTABLE sous un plafond gravé (K-79) parce qu'un montant fixe en ALGO est une bombe à retardement de cours, et le plafond protège les utilisateurs DE l'exploitant, par construction et non par promesse. LE FRAIS ET SON VERSEMENT SONT ÉPROUVÉS DANS LES DEUX SENS ET REJOUÉS SUR L'INSTANCE GRAVÉE 770868027 : dépôt sans frais accepté avant, refusé après, et +23 000 nets RELUS chez l'exploitant ; coût mesuré 39 unités de budget sur lister, et c'est lui qui a coûté le lot de trois en monnaie (K-82) | rien à trancher. Le site doit RELIRE le tarif en vigueur avant de composer un groupe, sinon un changement de frais fait refuser des gestes sans explication ; et la conséquence assumée s'écrit pour le vendeur : sous 1,25 ALGO de prix, le frais dépasse la commission |
| R-C1 R C1 | L'exploitant peut s'approprier l'argent déposé dans une monnaie : relever le plancher, puis fermer la monnaie gravité selon la source : grave | V4 196123ea / d9d56b60, encore vrai sur V4d (R §7) et sur V5 (chantier) | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026 : la porte se ferme dans le code. Le plancher d'une monnaie NE PEUT PLUS ÊTRE RELEVÉ, seulement abaissé. Le défaut d'origine avait été mesuré de bout en bout au tour 66880824 ; il contredisait la promesse écrite dans le contrat, et Karl a choisi le code plutôt que la discipline. LA GARDE A REFUSÉ DEPUIS : rejeu de la V7b, scenario-plancher-enchere.py, 29 contrôles, « un plancher ne peut que baisser » ; le banc lui-même relevait un plancher que R-C1 interdit et a dû être corrigé d'abord | LE PRIX EST ACCEPTÉ ET IL EST DÉFINITIF : un plancher ouvert trop bas ne se corrige plus qu'en fermant la monnaie et en la rouvrant. Écrit dans la documentation de l'exploitant |
| R-O1 R, observations | Pas de relève pour l'exploitant : la perte de sa clé rend le marché impossible à fermer et ses monnaies impossibles à ouvrir gravité selon la source : observation | V4 | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026 : le rôle d'exploitant se transfère, EN DEUX TEMPS, le destinataire devant signer. Un transfert en un temps aurait permis d'envoyer le rôle à une adresse fautive et de le perdre pour toujours, ce qui était le défaut qu'on corrigeait | écrit dans le paquet ; c'est aussi ce qui empêche K-63b et K-63c de devenir définitifs, un exploitant dés-opté et sans clé n'étant plus un cas sans issue |
| S-09 S 09 · B-N · K-38 | La réserve d'acceptation orpheline : le premier vendeur d'une édition multiple qui sort avant le second perd 0,1 ALGO gravité selon la source : moyen | V2, confirmé V3 | tranché par Karl | se tranche, ne se corrige pas | TRANCHÉ PAR KARL le 1er septembre 2026, ET LA SOLUTION EST DE LUI : CHAQUE vendeur dépose 0,1 ALGO et récupère LE SIEN. Plus de réserve partagée, donc plus d'orpheline. Le contrat avait assumé la perte (K-38 : « le remède coûterait plus que le mal ») et l'audit adverse notait qu'elle contredisait le principe du contrat ailleurs. LE REMÈDE N'A RIEN COÛTÉ : le bytecode a DIMINUÉ de 67 octets, la comptabilité par vendeur étant plus simple que la réserve partagée. C'est le seul point du paquet dont la correction a rendu le contrat plus court | rien. B-N était la même décision écrite une seconde fois |
| A-01 A · K-23 | Une offre ne peut jamais être acceptée : le coffre n'a pas accepté la pièce offerte gravité selon la source : critique | V0 f33e994b | corrigé, prouvé par exécution | réglé avant la gravure | V1 : la pièce va du vendeur à l'acheteur sans passer par le coffre ; démontré au tour 66862671 par le chantier et par l'audit sur montage identique (K-27) ; chemin heureux de l'offre au scénario permanent (17 contrôles) | rien |
| A-02 A · K-23 (1) | La réserve d'acceptation est captable sur les éditions multiples : le second vendeur referme et empoche celle du premier gravité selon la source : moyen | V0 f33e994b | corrigé, prouvé par exécution | réglé avant la gravure | V2 : champ « reserves » qui borne le remboursement à ce que chacun a versé ; la relecture statique l'a relu et mesuré (« cette correction fonctionne », essai des éditions multiples) | son revers, la réserve orpheline, est le défaut S-09 / B-N, assumé et soumis à Karl |
| A-03 A · K-23 (2) | Une offre en jeton est financée par le coffre : dépôt de boîte nul, l'offrant ne verse rien gravité selon la source : moyen | V0 f33e994b ; correction prouvée sur V7b 1eadfdf1 (770843923) | corrigé, prouvé par exécution | réglé avant la gravure | V2 exige un second dépôt en ALGO pour une offre en jeton (relecture statique 06 le voit, relecture aveugle 3 C6 mesure une boîte retenue à 59 000). REJOUÉ SUR LA V7b au rejeu du 1er septembre au soir : scenario-offre-boite.py, 29 contrôles, A-03 ET SON JUMEAU EN ALGO, le refus lu (CORRECTIONS-AVANT-GRAVURE). Le banc lui-même avait d'abord échoué EN SILENCE faute de pourvoir l'offrant, et seul son témoin l'a dit : la preuve n'a compté qu'une fois l'instrument corrigé | non rejoué sur la V8 fa749192 en service, qui RETOUCHE offrir (frais fixe et garde des pièces sous contrôle) : le compte du dépôt d'offre a changé, à rejouer sur 770868027 |
| A-04 A · K-23 (3) | Le marché devient infermable dès qu'une monnaie est acceptée gravité selon la source : moyen | V0 f33e994b | corrigé, prouvé par exécution | réglé avant la gravure | V2 : fermer_une_monnaie ; l'audit a rejoué le défaut d'origine puis sa disparition (« réellement corrigé ») | rouvert par deux autres portes : la poussière (S-08) et la tolérance qu'elle a fait écrire (R-C1) |
| A-05 A · K-28 | L'enchère perpétuelle : surenchère sur soi-même et prolongation sans fin ; et sa version silencieuse, miser sans jamais accepter la pièce gravité selon la source : moyen | V1 a6e79483 (instance à constantes de temps réduites, déclaré) | corrigé, prouvé par exécution | réglé avant la gravure | V2 : prolongation seulement sur une mise venue d'un autre compte, fin_maximum fixée à l'ouverture (statique : « bien fermé », boîte relue), pénalité de 10 % plafonnée en absolu et bornée à 20 % (K-31 : éprouvée à l'unité près), plancher d'enchère 0,13 ALGO (source V5 ligne 276). Relecture aveugle 3, E3 : repli avec pénalité 10 % joué sur V4 en ALGO | le sabotage à faible coût reste possible, ASSUMÉ par Karl (K-31, réserve 4) ; le chemin de pénalité en jeton n'a pas été joué (R, §6) |
| A-06 A · K-29 | Constantes de boîte périmées : le coffre finance 3 200 microALGO par annonce et par enchère gravité selon la source : moyen | V1 a6e79483 | corrigé, prouvé par exécution | réglé avant la gravure | V5 : BOITE_ANNONCE_BASE 36 500 et BOITE_ENCHERE_BASE 65 300, recalculées sur la structure (source lignes 358 et 360) ; chantier : commun.py relit les constantes et refuse de démarrer sur un écart, garde éprouvée en la faisant refuser (K-50). Relecture aveugle 3 : un vendeur retrouve 141 700 sur 143 700 versés, deux frais retenus | rien de relevé |
| A-07 A · K-32 | Le lot de treize est impossible ; les maxima réels dépendent du chemin gravité selon la source : moyen | V1 a6e79483 | corrigé, prouvé par exécution | réglé avant la gravure | 13 → 5 (V2, pièces distinctes) → 4 (V3, audit adverse : « borne réellement mesurée ») → 3 (V5, chantier, essai-bornes.py, lister mesuré en ALGO 406/522/638 ET en jeton 425/541/657 sur 700). « Lot trop grand » refuse à la borne avec le bon motif (K-50, scenario-bornes-lot.py). LES TROIS BORNES SONT TRANCHÉES PAR KARL le 1er septembre : 3 à prix fixe, 2 en enchère ALGO, 1 EN ENCHÈRE EN MONNAIE. La borne d'enchère en monnaie descend à une pièce parce que le chemin le plus chargé, celui où DEUX créances doivent être référencées, demandait neuf références pour huit autorisées : c'est K-65, fermé par cette borne | LES BORNES ONT ENCORE BOUGÉ SUR LA V8, ET POUR LA MÊME CAUSE QUE TOUJOURS, LE BUDGET : le frais fixe coûte 55 unités là où la marge en monnaie était de 54, et le lot de trois en monnaie atteignait 700/700 (mesuré par simulation, K-82). LA BORNE DES ANNONCES EN MONNAIE DESCEND DONC À DEUX PIÈCES, décision du GREFFE prise en l'absence de Karl et écrite pour qu'il puisse la renverser ; le refus est gravé avec sa phrase, « deux pieces au plus par annonce en monnaie », éprouvé dans les deux sens (le lot de trois en monnaie passait à 646/700 sur la V7b, refusé sur la V8 avec le motif). SUR LA V8 : trois pièces par lot en ALGO (686/700 au pire, expiration comprise, mesuré par balayage de 54 combinaisons), DEUX par annonce en monnaie, deux par enchère ALGO, une par enchère en monnaie. Toute garde ajoutée aux chemins de dépôt se remesure sur le chemin le plus chargé, et ce projet l'a payé QUATRE fois |
| A-08 A · K-27 | Clôture d'enchère bloquée quand le gagnant n'a pas accepté les pièces : le bien du vendeur est otage d'un tiers gravité selon la source : grave | V0 → V1 | corrigé, prouvé par exécution | réglé avant la gravure | V1 : chemin de repli de clore_l_enchere, démontré au tour 66862671 (trois transactions internes relues sur la chaîne). Relecture aveugle 3, E3 : repli rejoué sur V4 | rien |
| B-C1 B C1 · K-40 | Enchère en jeton : rembourser la mise d'un enchérisseur dés-opté verrouille le bien du vendeur gravité selon la source : critique | V3 b06215f4 / a009dd51 | corrigé, prouvé par exécution | réglé avant la gravure | mécanisme des créances (K-40, accepté par Karl) : le montant reste au coffre, une créance est inscrite, reclamer la rend ; chantier : scenario-creance.py, 20 contrôles ; relecture informée : drapeau de remboursement correct sur les trois cas | la comptabilité de ces créances fuit (R-C2, R-C3) ; les trois questions de K-40 restent à trancher (voir la section Karl) |
| B-F1 B F1 | clore_l_enchere sur-facture le vendeur de 1 000 à 2 000 microALGO malgré la correction annoncée gravité selon la source : faible | V3 ; compte prouvé juste sur V5 (770825195) | corrigé, prouvé par exécution | réglé avant la gravure | voir S-14 : mesuré juste sur les quatre chemins de clôture, encadrés un à un | voir S-14 |
| B-J1 K-42 | L'ouverture d'une monnaie ne vérifiait ni reprise ni gel : un tiers pouvait vider ou verrouiller l'avoir du coffre dans cette monnaie gravité selon la source : critique | V3, prouvé sur V5 | corrigé, prouvé par exécution | réglé avant la gravure | trouvé par le test du jumeau, corrigé par le chantier ; source V5, accepter_un_jeton : _piece_sous_controle sur la monnaie. Chantier, scenario-gardes.py sur 770825195, 14 contrôles : « un tiers garde un pouvoir sur cette monnaie » refuse au pc 4380 avec son motif | rien |
| B-J2 K-42 | Créance réclamée : la boîte disparaissait et sa provision revenait au coffre, le créancier perdait 22 100 µALGO gravité selon la source : moyen | V3 | corrigé, prouvé par exécution | réglé avant la gravure | reclamer rend la provision avec le dû (K-42) ; relecture aveugle 3, C2 : reclamer rend bien 22 100 µALGO (mesuré sur V4, mais c'est précisément ce qui, combiné au remboursement inconditionnel, fait payer la boîte deux fois par le coffre) | voir R-C2 : la correction de ce défaut a créé son jumeau |
| B-M1 B M1 | refermer_une_position est du code mort : fermeture vers soi-même refusée par le protocole gravité selon la source : moyen | V3, prouvé sur V5 | corrigé, prouvé par exécution | réglé avant la gravure | corrigée le 1er septembre par le chantier (elle fermait vers elle-même) ; source V5 : elle ferme vers l'exploitant. Chantier, scenario-gardes.py sur 770825195, 14 contrôles : la garde « le coffre detient encore cet actif » refuse au pc 4542 avec son motif | elle exige un solde nul, ce qui la rend inutile contre la poussière (R-C5) |
| CH-2 chantier, rejeu après gravure · vérifié par le greffier et par cette session trouvé par exécution · 1er sept. au soir · chantier (rejeu après gravure) | Les corrections de R-C2 et R-C3 avaient introduit une lecture inconditionnelle de boîte de créance, et acheter un lot de plus d'une pièce payé en monnaie devenait impossible gravité selon la source : grave : c'est ce défaut qui a fait abandonner la V6 deux heures après sa gravure | V6 170f76ba / 79506826 (770840780) ; disparition prouvée sur V7b 1eadfdf1 | corrigé, prouvé par exécution | réglé avant la gravure | PROUVÉ PAR EXÉCUTION, ET LA MESURE EST UN REFUS DU PROTOCOLE À LA VALIDATION, donc indépendante de ce que le contrat fait : DIX places de référence demandées pour HUIT autorisées, sur un lot de plus d'une pièce payé en monnaie, alors que la borne de trois venait d'être confirmée par Karl. ET LA MÊME CAUSE EXISTAIT À SIX ENDROITS, tous écrits le même jour et aucun mesuré : acheter, clore_l_enchere, annuler_l_enchere, retirer_l_offre, reprendre_une_offre_expiree, accepter_l_offre. CORRIGÉ, ET LA CORRECTION EST GRAVÉE DANS LA V7b : 17 occurrences restantes, AUCUNE dans les sept méthodes de versement, deux sous-routines devenues mortes retirées (_creance_est_nee et _creance_existe_deja, présentes 23 et 21 fois dans le TEAL de la V6, absentes de celui de la V7), et LE CONTRAT A MAIGRI DE 381 OCTETS, de 6 524 à 6 143. Vérifié par le greffier, PUIS DEUX FOIS INDÉPENDAMMENT PAR CETTE SESSION : sur sa copie figée a86860e10bcce7ac de 17 h 32 : les accès aux boîtes de créance sont dans _rendre_l_argent, _rendre_les_pieces, reclamer, reclamer_une_piece et expirer_une_creance, et dans aucune des six méthodes ci-dessus ; PUIS sur le programme GRAVÉ de la V7b, où les deux sous-routines devenues mortes sont introuvables, zéro occurrence de _creance_est_nee et de _creance_existe_deja, alors qu'elles paraissaient 23 et 21 fois dans le TEAL de la V6. C'est la signature que le greffier avait nommée, et elle tient sur le code déployé | FAIT : le lot de trois en monnaie a été rejoué RECEVABLE sur la V7b, mesuré par simulation à 646/700 et 7 références sur 8 (K-82), là où la V6 en demandait dix. Le défaut est donc prouvé disparu sur la version qui portait sa correction. SUR LA V8, CE CHEMIN N'EXISTE PLUS : la borne en monnaie descend à deux pièces (K-82, le frais fixe consommait la marge) ; en ALGO le lot de trois passe, balayé à 686/700 au pire sur la V8 elle-même |
| E-1 E · K-73 · première revue en aveugle trouvé par exécution · 2 sept. · première revue en aveugle (mesure avec témoin) | La réserve d'acceptation (0,1 ALGO) est rendue au vendeur alors que la position du coffre n'est pas refermée : le capital de fonctionnement du marché se draine, sur tout chemin de retour vers un vendeur dés-opté gravité selon la source : grave : amplification mesurée d'environ trois (32 100 µALGO sacrifiés retirent 99 000 au coffre), répétable, ET SANS BESOIN D'INTENTION HOSTILE, un vendeur qui range son portefeuille l'inflige au passage d'un balayage de courtoisie | V7b 1eadfdf1, mesuré sur l'instance d'essai 770849722 (même bytecode) ; correction GRAVÉE dans V8 fa749192 et rejouée sur 770868027 | corrigé, prouvé par exécution | réglé avant la gravure | MESURÉ AVEC TÉMOIN par la revue, qui a d'abord recompilé et comparé OCTET PAR OCTET son objet au programme gravé : annulation normale, variation nette du coffre ZÉRO ; vendeur dés-opté, MOINS 99 000 µALGO, pièce au coffre, position ouverte ; récupération à la seule main de l'attaquant (+98 000 s'il réclame, rien ne l'y oblige). LE POINT QUI COMPTE LE PLUS : le commentaire du contrat décrivait cette perte et LA BORNAIT FAUSSEMENT, l'attribuant à la poussière d'un tiers, « bornée, rare, assumée » ; la revue la déclenche sans tiers, sans poussière, sur une pièce unique. Une borne écrite dans le code qui ne décrit pas la réalité est de la famille des contrôles qui rassurent sans établir. CORRIGÉ DANS LA V8 : la réserve ne se rend que dans la branche qui referme la position ; ÉPROUVÉ DANS LES DEUX SENS PUIS REJOUÉ SUR L'INSTANCE GRAVÉE 770868027, banc-k73.py et banc-caution.py, 6/6, LES DEUX MOITIÉS SUIVIES JUSQU'À LA RESTITUTION : rendu 26 700 à l'annulation et 118 100 à la réclamation, total 144 800 IDENTIQUE à celui du contrat d'avant, seul le moment change, et un total conservé prouve un déplacement sans perte. LA LEÇON, PAYÉE DEUX FOIS EN CHEMIN : sept bancs prouvaient que la correction RETIENT, aucun ne suivait jusqu'à la restitution, et K-73 a passé sept épreuves en confisquant 100 000 µALGO ; puis la correction a été annoncée faite alors que son paramètre était IGNORÉ du calcul, l'empreinte ayant pourtant bougé : un changement d'empreinte ne prouve pas qu'une correction est appliquée | rien sur ce défaut. Le résidu qu'il a fait sortir, la caution du second déposant d'un même actif, est K-86 et attend Karl |
| I-1 I · K-53 (1) | « Un remboursement en ALGO ne peut pas échouer » est faux : la provision de 22 100 µALGO rendue à un enchérisseur dont le compte est fermé bloque l'enchère gravité selon la source : grave | V4d 49f6750d (figée pendant la lecture) | corrigé, prouvé par exécution | réglé avant la gravure | V5 : _le_paiement_aboutira (source : six appels), chantier : scenario-compte-ferme.py, 16 contrôles, dont la fermeture RÉELLE du compte et la surenchère qui aboutit. Le PREMIER correctif (V4d 4869956f) reproduisait le défaut : ne jamais le compter comme corrigé | acte 5 rendu (chantier, 770825195, 2 contrôles, 0 raté) : sur le contrat CORRIGÉ, la surenchère passe, l'enchère se clôt, la pièce sort, le gagnant lu dans la boîte est le surenchérisseur. L'attaque est neutralisée. CE QUE CELA NE DIT PAS : sur le contrat vulnérable, la pièce serait-elle ressortie à l'échéance (gagnant défaillant, pénalité) ou jamais ? NON MESURÉ ; mesurable en une heure sur 770819337 (e8f753b9), qui porte encore le code vulnérable. La gravité du défaut d'origine reste donc non qualifiée, volontairement |
| I-2 I · K-53 (2) | Le chemin de secours d'une annonce expirée échoue si le vendeur a fermé son compte : pièces prisonnières gravité selon la source : grave | V4d | corrigé, prouvé par exécution | réglé avant la gravure | même sous-routine, même scénario (chantier) | gravité d'origine non mesurée, comme I-1 |
| I-3 I · K-53 (3) | Un achat en ALGO sous 0,1 ALGO échoue si le vendeur a fermé son compte gravité selon la source : moindre | V4d | corrigé, prouvé par exécution | réglé avant la gravure | même sous-routine | gravité d'origine non mesurée, comme I-1 |
| I-5 I, quatrième cas · rejoué par le chantier | Le chemin de secours d'une annonce expirée est bloqué par la personne qu'il sert à secourir : si le vendeur s'est dés-opté de sa pièce, aucun tiers ne peut la lui rendre (« must optin »), la pièce reste au coffre et l'annonce reste ouverte gravité selon la source : grave, nuancée : le vendeur peut se ré-opter et rejouer ; s'il a fermé son compte ou ne revient jamais, la pièce ne sort plus | défaut établi sur V4d et PROUVÉ sur V5 (770825195, scenario-reprise-expiree.py) ; CORRECTION PROUVÉE sur V7b 1eadfdf1 (770843923, essai-creance-de-piece.py) | corrigé, prouvé par exécution | réglé avant la gravure | EXERCÉ, ET C'EST LA PREMIÈRE LIGNE DE LA JOURNÉE À FRANCHIR CETTE DISTINCTION DANS LE BON SENS : le chemin que personne n'avait jamais emprunté a été emprunté. Banc essai-creance-de-piece.py sur 770843923, 15 contrôles, aucun raté. LE GESTE, COMPLET DU PREMIER AU DERNIER : une enchère est close ALORS QUE LA PIÈCE NE PEUT PAS ÊTRE RENDUE, le vendeur s'en étant dés-opté, et LA CLÔTURE ABOUTIT au lieu d'échouer, ce qui était tout le défaut ; round 66894715, que cette session a relu sur la chaîne, un appel à 770843923 portant trois transactions internes. Une créance de pièce d'une unité est inscrite, LA PIÈCE RESTE AU COFFRE, relu sur la chaîne et non déduit du succès, et le dépôt est amputé d'exactement une provision, 195 800 reçus pour 195 800 attendus, 22 100 retenus. PUIS LE VENDEUR SE RÉ-OPTE, RÉCLAME, RÉCUPÈRE SA PIÈCE ET SA PROVISION, ET LA BOÎTE DISPARAÎT : cette session a recompté les boîtes de l'instance, ZÉRO boîte de préfixe q subsiste. ET LE TÉMOIN, QUI DONNE SA VALEUR AU RESTE : la même clôture avec un vendeur qui accepte toujours sa pièce ne crée AUCUNE créance et lui rend son dépôt ENTIER, 217 900. Sans lui, un contrat qui retiendrait systématiquement aurait passé ce banc. FERMÉ PAR LA DÉCISION DE K-40.3, prise par Karl contre l'avis des deux sessions qui la déconseillaient : le chantier déclare n'avoir jamais joué une clôture d'enchère avec créance de pièce, le chemin existe depuis trois heures et personne ne l'a emprunté. « Jamais exécuté » dit plus que « non éprouvé » et c'est le mot juste ici. LE DÉFAUT, LUI, EST PROUVÉ par exécution sur V5 : vendeur dés-opté (position à -1, confirmé), annonce expirée, reprise par un tiers REFUSÉE « inner tx 0 failed: receiver error: must optin », le coffre détient toujours 1, la position n'a pas disparu. Les deux causes mesurées séparément : vendeur dés-opté NON corrigé ; compte fermé corrigé (_le_paiement_aboutira sur _rendre_le_depot) : le chemin est à moitié réparé, l'ALGO revient, la pièce non. La relecture informée avait raison ; le chantier avait retiré sa position avant le rejeu | rien. C'est la seule ligne du tableau dont la correction vient d'une décision de Karl PRISE CONTRE L'AVIS DES DEUX SESSIONS QUI LA DÉCONSEILLAIENT, et c'est aussi celle qui a coûté la marge de références du contrat : voir le prix du paquet, en tête |
| I-6 I §1 · R §1 · K-50 | Le programme gravé (770819337) ne correspondait pas au source : le source a été modifié 18 minutes après le déploiement gravité selon la source : méthode | V3b / V4 | corrigé, prouvé par exécution | réglé avant la gravure | V5 : cette session a assemblé le TEAL courant par le nœud (20fd5fc6, 5 320 octets) et relu le programme de 770825195 sur l'indexeur : identiques | le contrat n'est pas gelé : chaque relecture doit figer une copie avec son empreinte de BYTECODE avant de commencer, jamais celle du fichier .teal |
| K-57 K-57 · greffier, en recomptant la page trouvé par lecture · 1er sept. au soir · greffier (en recomptant la page elle-même) | Le tableau consolidé se contredisait sur K-40 et proposait deux remèdes dont le second cassait ce que le premier répare gravité selon la source : défaut du tableau, sur la pièce où Karl tranche | le tableau lui-même, version du 1er sept. après-midi | corrigé, prouvé par exécution | réglé avant la gravure | DEUX ERREURS, CORRIGÉES DANS CETTE VERSION DE LA PAGE. La première : le chapeau annonçait « les trois questions de K-40 » alors que le corps classait K-40.2 en tranché, et Karl aurait cherché en section 2 une ligne qui n'y était pas. LE REMÈDE N'EST PAS DE RÉÉCRIRE LA PHRASE, C'EST DE LA FAIRE CALCULER : le chapeau compte maintenant les lignes K-40 encore ouvertes et les décisions distinctes, en tenant compte des renvois comme B-N vers S-09, et il ne peut plus diverger du corps. La seconde : la fiche de R-C2 proposait deux remèdes reliés par un « ou » alors que le second, toucher à reclamer, casse le cas de l'enchérisseur dépassé que le premier répare ; le « ou » invitait le correcteur à choisir le plus simple, et le plus simple était le mauvais | rien sur ces deux erreurs. LA RÈGLE QUI EN SORT ET QUI VAUT POUR TOUT LE TABLEAU : une fiche de défaut ne nomme pas seulement le remède, elle nomme LE CAS QUE LE REMÈDE NE COUVRE PAS. Sans cela elle transmet une conclusion sans son domaine de validité, ce que ce projet a payé cinq fois en une journée |
| K-63a K-63, première face · chantier trouvé par exécution · 1er sept. au soir · chantier | Un vendeur qui se dés-opte de sa monnaie rend son annonce inachetable, et c'est l'acheteur qui reçoit un refus auquel il ne comprend rien gravité selon la source : grave, irréparable une fois gravé : c'est la source qui le dit | V5 20fd5fc6 (770825195) ; correction prouvée sur V7b 1eadfdf1 (770843923) | corrigé, prouvé par exécution | réglé avant la gravure | PROUVÉ PAR EXÉCUTION, AVEC TÉMOIN. Sur 770825195 : annonce 14, monnaie 770836447, pièce 770836465. Vendeur dés-opté, l'achat échoue sur un motif qui vient DU PROTOCOLE et non d'une garde : « inner tx 0 failed: receiver error: must optin, asset 770836447 missing from 7IHW4V65… ». TÉMOIN DÉCISIF : le vendeur se ré-opte, RIEN D'AUTRE NE CHANGE, le même achat composé de la même façon PASSE, round 66888740, relevé sur la chaîne par le greffier, trois transactions, la pièce livrée et le vendeur payé. L'ORIGINE EST UNE ASYMÉTRIE ET NON UN OUBLI ISOLÉ : accepter_l_offre et clore_l_enchere versent par _rendre_l_argent, écrite précisément pour qu'un versement impossible ne bloque pas l'opération qui le porte ; acheter, dans sa branche jeton, émet un AssetTransfer DIRECT. C'est le mal exact que _rendre_l_argent supprimait, revenu par une porte que personne n'avait regardée. LA CORRECTION A ÉTÉ EXERCÉE AU REJEU DE LA V7b : essai dédié, 5 contrôles, K-63a FERMÉ AVEC TÉMOIN (rejeu complet, CORRECTIONS-AVANT-GRAVURE) | non rejoué sur la V8 fa749192 en service, qui retouche acheter (R4-C2, K-73, frais fixe) : le refus puis sa disparition sont à rejouer sur 770868027, et le banc existe, essai-vendeur-desopte.py |
| R-C2 R C2 | La boîte de créance est payée deux fois par le coffre (24 100 µALGO par cycle), et n'importe qui peut répéter le cycle gravité selon la source : moyen à grave | V4 ; correction prouvée sur V7b 1eadfdf1 (770843923) ; résidu borné par la revue 4 sur le même bytecode (770850604) | corrigé, prouvé par exécution | réglé avant la gravure | LE DÉFAUT est mesuré sur les offres (script 03) et sur l'achat en jeton (03b). LA CORRECTION, gravée dans la V7b, A ÉTÉ EXERCÉE AU REJEU DU 1er SEPTEMBRE AU SOIR : scenario-provisions.py, 19 contrôles, R-C2 et R-C4 SÉPARÉMENT, comme la fiche l'exigeait (la preuve antérieure, faite sur la V6, ne valait plus, la V7 ayant réécrit le mécanisme). ET LE RÉSIDU ASSUMÉ A ÉTÉ MESURÉ ET BORNÉ PAR LA SECONDE REVUE EN AVEUGLE, sur le même bytecode : vendeur ET exploitant dés-optés, DEUX boîtes naissent pour une provision (tour 66901035), et une seconde vente sur le même jeton N'EN CRÉE AUCUNE DE PLUS (tour 66901091) : la perte du coffre est bornée à une BOITE_CREANCE par jeton et NE CROÎT PAS avec les ventes. Une perte assumée dont la borne n'était pas mesurée n'était qu'espérée petite ; elle est maintenant mesurée | sur la V8, le mécanisme REBOUGE ENCORE (R4-C2 et K-73 retouchent les mêmes sous-routines) ; banc-c2.py, rejoué SUR L'INSTANCE GRAVÉE 770868027, suit la provision jusqu'à la réclamation (9/9, perte hors frais 11 000, soit les seuls frais de réseau), mais le cas propre de R-C2, vendeur et exploitant dés-optés ensemble, n'y est pas rejoué |
| R-C4 R C4 · S 15 · K-74 | On peut accepter sa propre offre et inscrire un prix fictif dans l'archive des ventes gravité selon la source : moyen | V4 ; garde gravée depuis la V6, prouvée sur V7b 1eadfdf1 (770843923) | corrigé, prouvé par exécution | réglé avant la gravure | défaut mesuré au tour 66880850 sur V4. LA GARDE EXISTE DEPUIS LA V6 : « on n accepte pas sa propre offre », ligne 2712 du source, position 2875 sur le bytecode de la V6, ET ELLE A REFUSÉ au rejeu de la V7b (scenario-provisions.py, 19 contrôles, séparément de R-C2). CETTE LIGNE EST RESTÉE « NON CORRIGÉ » SUR CETTE PAGE PENDANT QUE LA GARDE REFUSAIT DÉJÀ : la note du dossier de travail qui la disait « à faire » avait cessé de correspondre au code, troisième note prise en défaut de la même façon dans la nuit (K-74). Un tableau qui relaie une note périmée transforme son retard en vérité du projet | hors chaîne : filtrer les événements où les deux adresses coïncident, pour les ventes inscrites sur les instances d'essai ; non rejoué sur la V8, qui retouche accepter_l_offre (garde R4-C1 ajoutée devant) |
| R4-C1 R4 C1 · seconde revue en aveugle · K-74 trouvé par exécution · 2 sept. · seconde revue en aveugle (mesure de bout en bout, les deux vecteurs) | Le chemin des offres n'appliquait pas la garde des pièces sous contrôle : une pièce à reprise ou à gel se vendait par offre, puis l'acheteur se la faisait reprendre ou geler gravité selon la source : critique : le seul défaut de la nuit où quelqu'un repart avec l'argent ET l'œuvre (K-74) ; borné au montant de l'offre par victime, réutilisable avec un seul NFT piégé | V7b 1eadfdf1, mesuré sur l'instance d'essai 770850604 (même bytecode) ; correction GRAVÉE dans V8 fa749192 et rejouée sur 770868027 | corrigé, prouvé par exécution | réglé avant la gravure | LA TROISIÈME PORTE D'ENTRÉE, ENTIÈRE ET SANS FILTRE : lister et mettre_aux_encheres refusent une pièce sous contrôle (_piece_sous_controle), et le chemin des offres ne passe par aucune des deux. MESURÉ DE BOUT EN BOUT par la revue, tours 66897571 à 66897575 : lister refuse la pièce piégée (pc 724, l'asymétrie est donc réelle et non supposée), offrir passe, accepter_l_offre passe, la reprise passe ; acheteur MOINS 1 004 000 µALGO ET SANS LA PIÈCE. LE SECOND VECTEUR AUSSI, tours 66900915 à 66900919 : pièce à adresse de gel, le vendeur GÈLE l'avoir de l'acheteur après l'échange, actif mort dans son compte, et le gel est PIRE que la reprise pour la victime. Vérifié par le greffe dans le contrat gelé, en séparant les vrais appels des mentions en commentaire (K-74) ; TRANCHÉ PAR KARL : corriger. CORRIGÉ DANS LA V8, LA GARDE COUVRE LES DEUX VECTEURS ; éprouvée dans les deux sens puis rejouée sur l'instance gravée 770868027 : la pièce passait sur le contrat d'avant, refusée sur le corrigé, « un tiers garde un pouvoir sur cette piece », reprise ET gel, dans les 9/9 du banc des corrections | rien de relevé sur le contrat. Hors chaîne : le site filtre aussi le formulaire d'offre, pour que le refus arrive avant la signature |
| R4-C2 R4 C2 · K-74 trouvé par exécution · 2 sept. · seconde revue en aveugle (mesure au chiffre près, resserrée autour de chaque vente) | La provision de boîte est retenue à chaque vente, y compris celle qui FUSIONNE dans une boîte existante : le vendeur paie plusieurs provisions pour une seule boîte et n'en récupère qu'une gravité selon la source : moyen : 25 300 µALGO par vente fusionnée surnuméraire, pris à un UTILISATEUR, réel et silencieux (K-74 : distinct de R-C2, où c'est le coffre qui perd) | V7b 1eadfdf1, mesuré sur 770850604 (même bytecode) ; correction GRAVÉE dans V8 fa749192 et rejouée sur 770868027 | corrigé, prouvé par exécution | réglé avant la gravure | MESURÉ par la revue : deux ventes d'un même vendeur dés-opté du jeton ; la première crée la créance et sa boîte, la seconde FUSIONNE, aucune boîte ne naît, et le disponible du coffre garde EXACTEMENT 25 300 µALGO de plus, soit BOITE_CREANCE ; à la réclamation le vendeur ne récupère qu'une provision. TRANCHÉ PAR KARL : corriger. CORRIGÉ DANS LA V8, éprouvé dans les deux sens puis rejoué SUR L'INSTANCE GRAVÉE 770868027 : banc-c2.py, 9/9, SUIVI JUSQU'À LA RÉCLAMATION, perte hors frais fixe de 36 300 sur le contrat d'avant contre 11 000 sur le corrigé, les 11 000 étant les frais de réseau et les 25 300 de différence la provision confisquée, qui ne se voyait qu'à la réclamation | les JUMEAUX DE FORME, nommés par la revue et lisibles dans le code, n'ont pas été exécutés : les créances de PIÈCES d'un tirage multiple revenant au même compte, et la provision de MISE d'un enchérisseur dépassé déjà créancier du même jeton. La correction les couvre-t-elle ? Personne ne l'a fait refuser ni rejoué |
| S-01 S 01 · K-34 | Un seul paiement finance autant d'achats qu'on veut (balayage du groupe, rien n'est consommé) gravité selon la source : critique | V2 a6921771 / 67fd7a87 | corrigé, prouvé par exécution | réglé avant la gravure | V3 : garde _seul_appel_du_groupe sur les six méthodes qui parcourent le groupe (source V5 : six appels) ; audit adverse : « aucun site oublié » ; relecture aveugle 3 : deux lister dans un groupe refusés « un seul appel au marche par groupe » ; relecture informée : « couvre les six » | rien |
| S-02 S 02 · K-35 | Une enchère de quatre pièces en jeton ne peut ni être close ni annulée : les huit références sont dépassées gravité selon la source : critique | V2 | corrigé, prouvé par exécution | réglé avant la gravure | PIECES_PAR_ENCHERE_MAXIMUM = 2 (source V5 ligne 236) ; relecture aveugle 3, E1 : clôture réelle d'une enchère en jeton à deux pièces, 555/700, 7 références | avec un vendeur ET un exploitant créanciers, la clôture demande 9 références et attend qu'un des deux se ré-opte (R, observations) |
| S-03 S 03 · K-36 | Une pièce déposée une seule fois ouvre une annonce et une enchère à la fois gravité selon la source : critique | V2 | corrigé, prouvé par exécution | réglé avant la gravure | fermé par _seul_appel_du_groupe (V3) ; audit adverse : famille « bien fermée » | rien |
| S-04 S 04 · K-37 | Un actif dont l'émetteur a gardé la reprise (clawback) vide le coffre ou le rend infermable gravité selon la source : critique | V2 | corrigé, prouvé par exécution | réglé avant la gravure | tranché par Karl (exclure : « ce n'est pas vraiment des NFT ») ; garde _piece_sous_controle au dépôt (source V5 : cinq appels) ; chantier : huit contrôles, « une clawback vidée ne revient jamais » (actif 770799321). L'audit adverse a relu la garde sur V3 ; la relecture aveugle 3 ne l'a pas éprouvée | rien sur le contrat ; le site doit dire pourquoi 24 collections sont consultables sans être échangeables |
| S-05 S 05 | Un seul transfert de pièce solde deux offres, le vendeur encaisse deux fois gravité selon la source : grave | V2 | corrigé, prouvé par exécution | réglé avant la gravure | fermé par _seul_appel_du_groupe (V3), vérifié par l'audit adverse | rien |
| S-06 S 06 | Un dépôt de boîte payé une fois, remboursé à chaque offre du groupe gravité selon la source : grave | V2 | corrigé, prouvé par exécution | réglé avant la gravure | fermé par _seul_appel_du_groupe (V3), vérifié par l'audit adverse | rien |
| S-07 S 07 · K-35 | L'exploitant qui ouvre une monnaie sans l'avoir acceptée bloque toutes les ventes dans cette monnaie gravité selon la source : grave | V2, prouvé sur V5 | corrigé, prouvé par exécution | réglé avant la gravure | EFFET CONSTATÉ SUR LA CHAÎNE, pas une garde qui refuse : chantier, scenario-gardes.py sur 770825195 : après l'ouverture d'une monnaie, la position du coffre relue à 0 au lieu de -1, donc la monnaie est réellement acceptée et un versement ne peut plus échouer faute d'acceptation. Source V5 : accepter_un_jeton exige aussi que l'exploitant soit opté (lu) | rien |
| S-08 S 08 | Une unité de poussière envoyée au coffre interdit à jamais de fermer une monnaie, donc le marché gravité selon la source : moyen | V2 | corrigé, prouvé par exécution | réglé avant la gravure | V4 : fermer_une_monnaie tolère un solde inférieur au plancher (source V5 : « detenu < self.planchers[jeton] ») ; relecture aveugle 3 a fermé une monnaie et le marché (tour 66882085) | la tolérance lit le plancher COURANT, ce qui ouvre R-C1 ; et elle n'a pas de jumeau pour les pièces (R-C5) |
| S-10 S 10 | La suspension ne ferme ni encherir ni acheter : l'exploitant ne peut pas arrêter une hémorragie gravité selon la source : moyen | V2 | corrigé, prouvé par exécution | réglé avant la gravure | V5 : encherir porte « nouveaux depots suspendus » (source, lu) ; relecture aveugle 3 : sous suspension, offrir et enchérir refusés, acheter/annuler passent comme voulu | acheter reste ouvert sous suspension, par choix (un achat est un règlement) ; la cause première, S-01, est fermée |
| S-12 S 12 | Le trop-payé d'un achat ou d'une offre en ALGO n'est jamais rendu gravité selon la source : mineur | V2 | corrigé, prouvé par exécution | réglé avant la gravure | V3 : « acheter et les offres en ALGO rendent désormais le trop-payé » (audit adverse) ; relecture aveugle 3 : acheter en jeton crée une créance pour le trop-payé (C2, chemin de l'achat) | le jumeau en jeton reste ouvert : B-F2 / R-C6 ; et le trop-payé en jeton crée une créance que personne n'a provisionnée (R-C2) |
| S-13a S 13 | Le plancher propre aux enchères ne s'applique qu'en ALGO : en jeton la pénalité redevient symbolique gravité selon la source : mineur | V2 ; correction prouvée sur V7b 1eadfdf1 (770843923) | corrigé, prouvé par exécution | réglé avant la gravure | V4 : le plancher d'une enchère en jeton vaut planchers[jeton] × plancher_enchere / PRIX_PLANCHER (relecture aveugle 3, C7). FAIT REFUSER AU REJEU DE LA V7b : scenario-plancher-enchere.py, 29 contrôles, S-13a AVEC SON CAS DISCRIMINANT, et R-C1 dans le même banc (CORRECTIONS-AVANT-GRAVURE) | le calcul déborde toujours pour certains réglages (R-C7, mesuré nulle part comme atteignable aux réglages réalistes, confirmé par lecture par la première revue en aveugle) ; non rejoué sur la V8, qui retouche mettre_aux_encheres (frais fixe) |
| S-14 S 14 · B-F1 | Les sorties à frais nuls sont facturées deux fois : 1 000 à 2 000 microALGO retenus en trop gravité selon la source : mineur | V2 ; compte prouvé juste sur V5 20fd5fc6 (770825195) | corrigé, prouvé par exécution | réglé avant la gravure | MESURÉ JUSTE le 1er septembre sur 770825195, CHAQUE CLÔTURE ENCADRÉE d'un relevé juste avant et juste après, sur les QUATRE chemins (vendue, sans mise, gagnant défaillant, en jeton) : retenu 2 000, payé 2 000, à chaque fois, les frais relevés dans la confirmation et jamais recalculés par la formule du contrat. Le chemin du gagnant défaillant, le plus exposé et celui que la correction avait d'abord oublié, tombe juste (CORRECTIONS-AVANT-GRAVURE). La même mesure a prouvé R-C3 par effet | le compte des sorties a REBOUGÉ sur la V7b (K-63a) puis sur la V8 (frais fixe, K-73) : non remesuré chemin par chemin sur 770868027 ; banc-caution y relit les rendus du cycle caution au microALGO près, ce qui couvre une partie des chemins seulement |
| S-15 S 15 · R-C4 | Un vendeur peut acheter sa propre annonce ou enchérir sur elle et fabriquer un prix public gravité selon la source : moyen | V2 | corrigé, prouvé par exécution | réglé avant la gravure | V5 : « on n achete pas sa propre piece » et « on n encherit pas sur sa propre piece », toutes deux refusées devant la relecture aveugle 3 | le jumeau accepter_l_offre est resté nu : R-C4, non corrigé |
| S-17 S 17 · K-38 (3e porte) | Un même actif peut être monnaie et pièce ; le solde ne les distingue pas, le coffre livre l'argent des offrants gravité selon la source : critique | V2 | corrigé, prouvé par exécution | réglé avant la gravure | relecture aveugle 3 : « la monnaie J déposée comme pièce » refusée « cet actif est une monnaie du marche » | rien |
| CH-4 greffier, 1er sept. au soir trouvé par lecture · 1er sept. au soir · greffier | Les artefacts du dossier restent VOLONTAIREMENT en retard tant qu'une version n'est pas déployée, et rattrapent au déploiement : qui l'ignore croit à un oubli gravité selon la source : méthode | V6 et V7 | établi par lecture (rien à faire refuser) | réglé avant la gravure | ÉTABLI, PUIS CONFIRMÉ PAR SA FIN. Entre 16 h 41 et 18 h 12, les artefacts portaient 79506826f19a6f48, 6 524 octets, c'est-à-dire la V6, alors que le source datait de 17 h 19 : plusieurs lignes de ce tableau ont été écrites pendant cette fenêtre. À 18 h 13, la V7b déployée, ils ont rattrapé : cette session les a relus et ils portent 1eadfdf1dda6545e, 6 136 octets, identiques au programme gravé. LE RETARD SUIT DONC EXACTEMENT LE DÉPLOIEMENT, ce qui est la règle et non un hasard. LA RAISON EST BONNE : tant que la V7 n'est pas déployée, écraser les artefacts tuerait la carte des positions de refus ET FERAIT MENTIR LA GARDE qui compare les artefacts au code gravé. Elle refuserait de démarrer sur une instance saine, ou pire, traduirait les refus avec une carte fausse. Le chantier compile donc HORS DU PROJET jusqu'au déploiement | rien à corriger, mais à redire à toute relecture qui démarre PENDANT une fenêtre de retard, sans quoi elle conclura à un décalage. UNE RELECTURE A DÉJÀ ÉTÉ TROMPÉE AINSI sur ce projet : elle a compilé un fichier avant et lu l'autre après, et a conclu à un écart de vingt-deux octets qui n'existait pas, les deux fichiers étant cohérents chacun avec son propre instant |
| CH-6 greffier, 1er sept. au soir · règle née de la fermeture de la V6 trouvé par lecture · 1er sept. au soir · greffier (en préparant la fermeture de la V6) | Ce n'est pas la fermeture d'une instance qui menace la trace d'une version, c'est la recompilation suivante, et quatre versions ont failli disparaître sans que personne ne le remarque gravité selon la source : méthode, et de la famille de ce qui ne se recalcule pas | V6 79506826, V3b e8f753b9, V4 d9d56b60, V5 20fd5fc6 | établi par lecture (rien à faire refuser) | réglé avant la gravure | LA V6 A ÉTÉ ARCHIVÉE VINGT MINUTES AVANT QUE SA RECOMPILATION NE L'EFFACE, et le chantier n'y avait pas pensé : c'est en le lui disant que l'archive s'est faite. Elle est aujourd'hui LA SEULE VERSION MORTE DONT LE CODE SURVIT, dans contrat/versions/V6-79506826/, ARC-56 et TEAL, empreinte relue APRÈS la copie et vérifiée par cette session : 79506826f19a6f48, 6 524 octets. LA RÈGLE : avant toute recompilation qui écrase les artefacts, archiver, ET RELIRE L'EMPREINTE DE LA COPIE UNE FOIS FAITE, jamais avant. Une archive dont on n'a pas relu l'empreinte n'est pas une archive, c'est une intention. ET UNE AFFIRMATION FAUSSE A CIRCULÉ SUR CE SUJET LE SOIR MÊME : le greffe a annoncé que la V5 vivait dans 770819337 et 770822702 ; les relevés de cette session sur la chaîne donnent e8f753b9 (V3b) et d9d56b60 (V4), et 20fd5fc6 vit sur 770825195. Corrigé par le greffe dans QUI-FAIT-QUOI.md | L'ARCHIVE EST CLOSE : VINGT-SEPT dossiers dans contrat/versions/, dont vingt-deux ajoutés par le greffe après la découverte sur la V3, et cette session les a tous relus : les onze versions du tableau y sont, sauf la V3, dont la copie récupérée attend d'y être versée. DEUX PIÈGES D'INSTRUMENT SORTIS DE CE BALAYAGE, ET TOUS DEUX FONT RÉUSSIR UN CONTRÔLE AU LIEU DE LE FAIRE ÉCHOUER. Premier : UNE ADRESSE DE COMPTE FAUSSE NE PROVOQUE AUCUNE ERREUR, elle rend ZÉRO APPLICATION, et un balayage incomplet ressemble alors trait pour trait à un balayage complet ; cette session est tombée dedans en complétant de tête une adresse qu'un message tronquait, et n'a vu son manque que parce qu'un total connu ne tombait pas juste. Second : DEUX VERSIONS PEUVENT AVOIR EXACTEMENT LE MÊME POIDS ET DES EMPREINTES DIFFÉRENTES, V3.1 et V3.2 pesant 5 200 octets toutes les deux ; comparer des versions par leur taille est un raccourci commode qui se paie plus tard. TRENTE-ET-UN dossiers, et à l'origine cinq, empreintes relues par cette session DANS LES ARCHIVES ELLES-MÊMES et non dans les rapports. Le chantier en a trouvé QUATRE là où le greffe en annonçait trois, en ajoutant de lui-même la version défectueuse. MAIS LE CONTRÔLE A TROUVÉ AUTRE CHOSE QUE CE QU'IL CHERCHAIT : en interrogeant les instances anciennes une à une, cette session a constaté que la V3 n'était nulle part, son instance fermée et jamais archivée, et que la ligne V0 recouvrait DEUX bytecodes différents. LA RÈGLE, DANS SA FORME FINALE : archiver avant de recompiler, archiver avant de fermer, ET SI C'EST DÉJÀ FERMÉ, CHERCHER LA CRÉATION AVANT DE CONCLURE. Ce n'est plus « archiver ou perdre ». La croyance qu'une instance fermée était une version morte a vécu des jours dans ce projet, et c'est elle qui a coûté les alertes, pas l'heure pendant laquelle cette page a dit la V3 perdue. ET UNE VOIE DE SECOURS EXISTE, TROUVÉE EN REFUSANT DE S'ARRÊTER À LA PERTE : le programme d'une application fermée survit dans LA TRANSACTION QUI L'A CRÉÉE, que l'indexeur conserve. La V3 a été récupérée ainsi, round 66869285, a009dd51630532ed, 4 864 octets, empreinte relue après la copie. CE N'EST PAS UNE GARANTIE : elle dépend de ce qu'un indexeur public veut bien garder, et elle ne remplace pas une archive. MAIS LE GREFFE L'A PASSÉE SUR TOUTES LES APPLICATIONS FERMÉES DES TROIS CRÉATEURS, quatorze instances, ET A RÉCUPÉRÉ TROIS VERSIONS DE PLUS QUE PERSONNE NE SAVAIT PERDUES parce que le tableau ne les connaissait pas : V-1, V3.1 et V3.2. QUATRE VERSIONS SAUVÉES EN TOUT PAR UN GESTE TROUVÉ EN REFUSANT UNE PERTE D'UNE HEURE. ET LE CONTRÔLE DE L'ARCHIVE A CHANGÉ DE VOIE : chaque dossier est maintenant comparé octet par octet au programme de la transaction qui a créé son instance, 30 identiques sur 30, le trente-et-unième étant la V6 au format ARC-56, vérifiée séparément. CE CONTRÔLE EST MEILLEUR QUE CELUI D'AVANT, qui interrogeait l'application vivante : celui-ci marche aussi sur les instances fermées. LA PORTÉE DE LA GARANTIE, ET ELLE N'EST PAS TOTALE : le balayage couvre SIX COMPTES, les quatre de comptes-testnet.json et les deux autres créateurs relevés dans les archives, soit 47 applications ramenées chacune à sa transaction de création, ZÉRO bytecode hors archive. Vérifié deux fois par deux voies : le greffe par sa liste d'instances, cette session en repartant des comptes. L'ARCHIVE EST DONC EXHAUSTIVE RELATIVEMENT À CES SIX COMPTES, PAS DANS L'ABSOLU : une version déployée depuis un compte dont ce projet a perdu la trace ne serait vue par personne. UN PIÈGE D'INSTRUMENT POUR LA PROCHAINE VÉRIFICATION : le premier contrôle du greffe a signalé un faux écart sur l'archive de la V6 en prenant le fichier .teal, qui est du texte, pour du bytecode. Une archive au format différent n'est pas une archive fausse |
| L-1 S 18 · K-39, vérification | _commission ne lit plus aucun solde : l'exonération n'a plus de seuil à louer gravité selon la source : vérification | V5 ff47dee0 (lu) | établi par lecture (rien à faire refuser) | réglé avant la gravure | lecture du source : aucun asset_holding ni balance dans _commission ; fixer_le_seuil_d_exoneration n'existe plus. Il n'y a aucune garde à faire refuser : c'est du code retiré, pas une garde ajoutée | rien |
| L-2 R C9, vérification | Huit émissions d'événements dans le source, aucune ajoutée depuis la relecture 3 gravité selon la source : vérification | V5 (lu) | établi par lecture (rien à faire refuser) | réglé avant la gravure | lecture du source : huit arc4.emit ; une émission s'établit par lecture, elle ne se fait pas refuser. Le manque lui-même est R-C9 | voir R-C9 |
| R-C9 R C9 | L'histoire des enchères et des offres n'a ni ouverture ni retrait : six méthodes n'émettent aucun événement gravité selon la source : faible | V4, encore vrai sur V5 (huit émissions d'événements dans le source, lu) | établi par lecture (rien à faire refuser) | réglé avant la gravure | ÉLARGI PAR KARL ET GRAVÉ DANS LA V6, le seul point de ce paquet qui existe réellement sur la chaîne aujourd'hui : le contrat inscrit désormais LE MOTIF DE CHAQUE RETOUR DE BIEN, et pas seulement le fait qu'un bien est revenu. Relevé par le chantier dans le TEAL : 23 émissions d'événements sur la V6 contre 11 sur la V5 ; la V7 les conserve. Coût mesuré : 26 octets par émission, 212 pour l'ensemble. Classé « établi par lecture » et non « prouvé » parce qu'une émission ne se fait pas refuser : c'est la même règle que L-2 | rien sur le contrat. Hors chaîne : le site doit savoir lire ces motifs, sinon on aura payé 212 octets pour une information que personne n'affiche |
| S-16 S 16 · K-38 · question C5 fermée par l'épreuve | Une position fantôme est une créance dormante : elle dépouille le prochain déposant de la même pièce gravité selon la source : critique (le plus grave de la statique) | V2, mesuré (tours 66867861 et suivants, tx PQ4SY6II…) ; V5 : porte d'armement éprouvée | établi par lecture (rien à faire refuser) | réglé avant la gravure | la séquence mesurée sur V2 : (1) armer une position dont la pièce a quitté le coffre alors que sa boîte reste, par la porte 03 (un dépôt, une annonce ET une enchère ; l'annonce vendue, le coffre livre la pièce par asset_close_to et se dés-opte, l'enchère promet toujours la pièce) ou par la porte 04 (reprise par l'émetteur) ; (2) un tiers, acheteur légitime, remet la pièce en vente : le coffre se ré-opte et la reçoit ; (3) n'importe qui clôt l'enchère fantôme, la clôture PASSE, le gagnant du fantôme reçoit la pièce du tiers ; (4) le tiers ne peut plus annuler : pièce et dépôt perdus. Sur V5 : la porte 03 a été ÉPROUVÉE FERMÉE par le chantier (scenario-poussiere.py, 770825195, 10 contrôles) : deux positions sur la même pièce dans un groupe, refusé « un seul appel au marche par groupe », pc 4837 ; la porte 04 est fermée par _piece_sous_controle (B-C2, pc 651). La question ouverte de R-C5 est fermée par la mesure : édition à trois exemplaires frappée par un tiers, annonce ouverte, une unité envoyée au coffre hors de tout appel (le coffre en détient 2 pour 1 promise) : (a) le vendeur annule, récupère exactement son exemplaire, la boîte disparaît : aucune boîte ne promet plus rien que le coffre n'ait pas ; la poussière fait détenir PLUS, jamais moins ; (b) sans deux promesses sur une même pièce, il n'existe aucun instant où la pièce promise sort en laissant la position ouverte, donc aucun instant où _coffre_detient pourrait lire la poussière à la place de la pièce. La ceinture _coffre_detient elle-même reste établie par lecture, faute d'état qui l'atteigne | rien, tant qu'aucune troisième porte n'apparaît ; toute méthode neuve qui fait sortir une pièce du coffre sans refermer sa position rouvre cette ligne |
| CH-3 chantier · famille de K-58 · fermé par K-82 trouvé par exécution · 1er sept. au soir · chantier (en corrigeant CH-2) | Après la correction de CH-2, la borne de trois pièces restait conditionnelle en monnaie : un lot de trois dont le VENDEUR ne peut plus recevoir demeurait impossible, sans que le contrat puisse le dire gravité selon la source : moyen : une panne au moment de l'achat, pas une perte | V7 ; fermé par la borne GRAVÉE dans V8 fa749192 (770868027) | sans objet | réglé avant la gravure | LE CAS A DISPARU AVEC LA BORNE : la V8 borne les annonces en monnaie à DEUX pièces (K-82, décision du greffe, prise pour le budget et non pour ce défaut), avec un refus qui parle, « deux pieces au plus par annonce en monnaie », éprouvé dans les deux sens : le lot de trois en monnaie passait sur la V7b, il est refusé sur la V8 avec son motif, banc rejoué sur l'instance gravée 770868027 (9/9). Il n'existe donc plus de lot en monnaie dont la borne affichée serait fausse dans le cas chargé ; la limite de conception, elle, demeure vraie et écrite : aucune instruction ne permet à un contrat de savoir si une référence lui a été donnée | le cas chargé de la borne de DEUX (deux pièces en monnaie, vendeur créancier) n'a pas été mesuré nommément en références sur la V8 ; K-58 reste entier pour le site, qui compose les références |
| K-65 K-65 · chantier, en mesurant autre chose trouvé par mesure · 1er sept. · chantier (en mesurant autre chose) | Une enchère en monnaie de DEUX pièces devenait inclosable quand le vendeur ET l'exploitant s'étaient dés-optés : neuf références demandées pour huit autorisées gravité selon la source : panne, pas confiscation : une ré-optation la répare | V5 20fd5fc6 | sans objet | réglé avant la gravure | FERMÉ PAR CONSÉQUENCE DE LA DÉCISION DE KARL sur les bornes : l'enchère en monnaie est bornée à UNE pièce, et avec une seule pièce le même cas tient à huit références. LA MESURE A ÉTÉ REFAITE APRÈS LA DÉCISION, ELLE N'A PAS ÉTÉ DÉDUITE, et c'est ce qui distingue cette ligne d'un raisonnement. Les trois paliers d'origine, mesurés par un refus du protocole à la validation : personne dés-opté, 7 références, recevable ; un seul des deux, 8, recevable À ZÉRO MARGE ; les deux, 9, REFUSÉ | rien sur ce défaut. LE POINT DE MÉTHODE RESTE, et c'est la troisième fois : la borne de deux avait été mesurée sur le budget et les références DU CAS ORDINAIRE, jamais sur le cas où deux créances doivent être référencées. Le quatre mesuré sur l'achat et jamais sur l'ouverture (K-32), la marge mesurée en ALGO et jamais en jeton (K-35), et celle-ci. LES TROIS FOIS, LE CHIFFRE ÉTAIT EXACT, REPRODUCTIBLE, ET FAUX LÀ OÙ IL COMPTAIT |
| S-13b S 13 · K-39 | fixer_le_seuil_d_exoneration reste modifiable à volonté et annule la promesse du jeton exonéré à usage unique gravité selon la source : mineur | V2 | sans objet | réglé avant la gravure | tranché par Karl : le seuil est retiré ; la méthode n'existe plus dans le source V5 (zéro occurrence) | rien |
| S-18 S 18 · K-39 | Le seuil de détention du jeton exonéré se loue le temps d'un groupe atomique gravité selon la source : règle d'affaires | V2 | sans objet | réglé avant la gravure | tranché par Karl le 31 août : seuil retiré, payer en XDB donne zéro commission sans condition ; relecture informée : « la commission ne lit plus un solde » ; source V5 : _commission ne lit aucun solde | rien |
_peut_recevoir : tranché par exécution. La relecture informée l'avait établi par lecture ; le chantier l'avait classé faux positif, a retiré cette position, puis l'a rejoué sur 770825195 : le défaut est réel. Une contradiction ne se tranche ni par un troisième avis ni par un retrait : elle se tranche par un rejeu, et c'est ce qui s'est passé._coffre_detient et _peut_recevoir (chantier, point d) : toute remontée future fondée sur ces commentaires est à confronter au code, pas au texte.Ce projet en porte maintenant onze exemplaires, et il vaut mieux les nommer ensemble qu'un par un, parce que pris isolément chacun ressemble à un accident et qu'ensemble ils dessinent une famille. Un contrôle qui échoue pour la mauvaise raison fabrique un défaut imaginaire, et on finit par s'en apercevoir. Un contrôle qui RÉUSSIT pour la mauvaise raison en cache un vrai, et rien ne le signale jamais. C'est la seconde espèce qu'il faut traquer, et elle est silencieuse par construction.
scenario-gardes.py a réussi au premier passage parce que le refus venait d'une référence de boîte manquante et non de la garde : le motif des trois premiers avait été vérifié, celui du quatrième oublié.scenario.py, exactement le même cas, un jour après que le projet eut documenté ce piège : c'est CH-7, corrigé dans le banc et pas encore rejoué.Ce qui a attrapé le cinquième n'est aucun contrôle : c'est le DÉSACCORD ENTRE DEUX CONTRÔLES. Deux sessions ont compté les mêmes applications par deux chemins séparés, l'une a trouvé 43 et l'autre 47, et c'est l'écart qui a parlé. Aucune des deux voies ne pouvait se démentir elle-même, et celle qui se trompait rendait un résultat parfaitement rassurant. C'est l'argument le plus concret de cette nuit pour compter deux fois par deux chemins, et c'est la raison pour laquelle les deux revues en aveugle doivent rendre séparément.
Cinq fois le 1er septembre, l'outil de vérification a porté l'angle mort qu'il servait à chercher, dont trois sur le seul rejeu de I-5 (chantier) : le banc fermait la position vers le vendeur lui-même, ce que le protocole ignore en silence, exactement le piège qui rendait refermer_une_position inerte ; le vendeur d'essai était le créateur de la pièce, à qui Algorand interdit de fermer sa propre position, refus silencieux encore ; l'appel de clôture de l'acte 5 visait l'attaquant comme gagnant alors que la surenchère venait de le remplacer ; et dans scenario-gardes.py, écrit précisément pour nommer la garde de chaque refus, le quatrième contrôle a « réussi » au premier passage parce que le refus venait d'une référence de boîte manquante dans l'appel, pas de la garde : le motif des trois premiers avait été vérifié, celui du quatrième oublié. Chaque fois, le scénario aurait conclu, dans un sens ou dans l'autre, sans avoir rien éprouvé. Le banc s'arrête désormais net quand la condition qu'il doit créer n'a pas eu lieu (« sans dés-optation, la reprise ne prouverait rien »), et il fait frapper les pièces par un tiers, ce qui est le cas réel du corpus : les collections de 2021 ont été frappées par leurs artistes, et ceux qui les vendent sont des collectionneurs. Un banc qui échoue pour la mauvaise raison fabrique un défaut ; un banc qui réussit pour la mauvaise raison en cache un. Aucune ligne « prouvé » de ce tableau ne vaut plus que le banc qui l'a produite.