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

Le contrat, en un seul état : ce qui est corrigé, ce qui reste, ce qui attend Karl

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.

1
décision attend Karl
11
non corrigés
7
corrigés, jamais exercés
14
tranchés par Karl
40
corrigés et prouvés
6
établis par lecture
4
sans objet

0. Le rythme des découvertes, et par quel moyen

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.

12
par exécution
CH-2, CH-3, CH-7, E-1, K-58, K-63a, K-63b, K-63c, R-C3, R-C5, R4-C1, R4-C2
5
par lecture
B-C2, CH-4, CH-6, K-57, K-59
2
par mesure
K-65, K-86
1
par calcul
CH-5

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.

1. Les versions : sur quoi chaque relecture a lu

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.

Versionsourcebytecode d'approbationoctetsapplications testnetmomentstatutce qu'elle porte, et qui a lu quoi
V-1inconnue55fa00ef3 459770766914, fermée, créée au round 6685006431 août, avant l'auditRETROUVÉE, non rattachéeLE 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
V0f33e994bdaffd0e73 73177077229231 août, matingravée, archivéeLE 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/
V0bnon relevée2567aa394 12777077955931 août, matingravée, archivéeSÉ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
V1a6e794839885cef94 25477078759231 août, 18 h 55gravée, archivéeL'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/
V2a692177167fd7a874 522770793296, 77079755231 août, ~21 hgravée, archivéeles 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)
V3b06215f4a009dd514 864770802760, FERMÉE, créée au round 668692851er sept., ~00 hfermée, RÉCUPÉRÉE par sa créationCRUE 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.1inconnue1f9585c15 200770816691, fermée, créée au round 668778021er sept., ~09 hRETROUVÉE, non rattachéeINTERCALAIRE 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.2inconnue67a4df745 200770818509, fermée, créée au round 668787291er sept., ~09 hRETROUVÉE, non rattachéeINTERCALAIRE, 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é
V3bnon relevéee8f753b95 2207708193371er sept., 11 h 44 UTCgravée, archivéeARCHIVÉ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)
V4196123ead9d56b605 243770822000, 7708227021er sept., copie de 08 h 38gravée, archivéeARCHIVÉ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)
V4d49f6750d4869956f5 3217708229741er sept., ~13 h UTCgravée, archivéeARCHIVÉ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
V5ff47dee020fd5fc65 320770824875 (fermée), 7708251951er sept., 10 h 27 (heure locale)gravée, archivéeARCHIVÉ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
V6170f76ba795068266 524770840780, FERMÉE au round 668931271er sept., 16 h 41gravée, puis FERMÉEA 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
V7a86860e113dad7476 143AUCUNE, JAMAIS1er sept., source 17 h 19MORTE sans avoir été déployéecorrigeait 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
V7b208bd5ba1eadfdf16 1367708439231er sept., 18 h 12gravée, TÉMOIN des deux revuesGEL 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
V8009b183ffa7491926 4297708680272 sept., 03 h 10gravéeLA 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.

2. Ce qui attend Karl

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éfautDe quoi il s'agitÉtabli surÉtatRéparabilitéCe que les sources disentLa 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 KARLse tranche, ne se corrige pasLE 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

3. Ce qui reste, classé par réparabilité

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éfautDe quoi il s'agitÉtabli surÉtatRé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 V4non corrigéréparable par une discipline de l'exploitant, que rien n'imposerelecture aveugle 3, C7 : garder le produit des deux planchers sous 1,8 × 10^19 ; les réglages par défaut ne débordent pasrè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
V4non corrigéréparable par une discipline de l'exploitant, que rien n'imposevoir B-F3voir 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
V4non corrigéréparable par un réglage (méthode d'administration)par calcul ; dépend des décimales de la monnaieré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 V4non 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 V7non 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 venteAU 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
V4non corrigéréparable hors chaîne (site, outillage, documentation)mesuré ; le site doit traduire ou prévenirhors 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
V4non corrigéréparable hors chaîne (site, outillage, documentation)voir B-F2voir 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
V4non corrigéréparable hors chaîne (site, outillage, documentation)voir S-11voir 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
V4non corrigéréparable hors chaîne (site, outillage, documentation)vu pendant la relecture, quand les artefacts ont été régénérésl'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 V4non 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 soirLE 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 KARLse tranche, ne se corrige pasLE 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 MORTEcorrigé, non éprouvéréglé avant la gravureTRENTE 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émoirerelever 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 gravureAUCUNE 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 1eadfdf1corrigé, non éprouvéréglé avant la gravurePROUVÉ 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 preuverejouer 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 1eadfdf1corrigé, non éprouvéréglé avant la gravureLE 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 preuverejouer 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 V5corrigé, non éprouvéréglé avant la gravureLE 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 courirmener 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 fa749192corrigé, non éprouvéréglé avant la gravureCE 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

4. Ce qui est réglé : corrigé et prouvé, tranché, établi par lecture, ou sans objet

« 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éfautDe quoi il s'agitÉtabli surÉtatRéparabilitéOù la preuve est, et sur quel cheminCe qui reste
A-09
A · K-27
Pas de garde d'acceptation sur encherir, jumeau de offrir
gravité selon la source : arbitrage
V1 a6e79483tranché par Karlse tranche, ne se corrige pastranché 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 tiennerien
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 V5tranché par Karlse tranche, ne se corrige pasTRANCHÉ 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 lecturerien. 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é
V3tranché par Karlse tranche, ne se corrige pasvoir 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
V5tranché par Karlse tranche, ne se corrige pasTRANCHÉ 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)
V4dtranché par Karlse tranche, ne se corrige pasKarl 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énementconsé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é
V2tranché par Karlse tranche, ne se corrige pasassumé 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 fraisrien
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 V6tranché par Karlse tranche, ne se corrige pasTRANCHÉ 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 raisonrien. 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 → V5tranché par Karlse tranche, ne se corrige pastranché 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éancerien, 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 V6tranché par Karlse tranche, ne se corrige pasTRANCHÉ 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 toujoursELLE 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
V3tranché par Karlse tranche, ne se corrige pasfait : la relecture aveugle 3 a porté sur V4, qui les contientrien
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 Karlse tranche, ne se corrige pasTRANCHÉ 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 Karlse tranche, ne se corrige pasTRANCHÉ 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'abordLE 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
V4tranché par Karlse tranche, ne se corrige pasTRANCHÉ 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é V3tranché par Karlse tranche, ne se corrige pasTRANCHÉ 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 courtrien. 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 f33e994bcorrigé, prouvé par exécutionréglé avant la gravureV1 : 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 f33e994bcorrigé, prouvé par exécutionréglé avant la gravureV2 : 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écutionréglé avant la gravureV2 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 f33e994bcorrigé, prouvé par exécutionréglé avant la gravureV2 : 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écutionréglé avant la gravureV2 : 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 ALGOle 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 a6e79483corrigé, prouvé par exécutionréglé avant la gravureV5 : 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 retenusrien 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 a6e79483corrigé, prouvé par exécutionréglé avant la gravure13 → 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 borneLES 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 → V1corrigé, prouvé par exécutionréglé avant la gravureV1 : 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 V4rien
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 / a009dd51corrigé, prouvé par exécutionréglé avant la gravuremé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 casla 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écutionréglé avant la gravurevoir S-14 : mesuré juste sur les quatre chemins de clôture, encadrés un à unvoir 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 V5corrigé, prouvé par exécutionréglé avant la gravuretrouvé 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 motifrien
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
V3corrigé, prouvé par exécutionréglé avant la gravurereclamer 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 V5corrigé, prouvé par exécutionréglé avant la gravurecorrigé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 motifelle 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 1eadfdf1corrigé, prouvé par exécutionréglé avant la gravurePROUVÉ 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 770868027corrigé, prouvé par exécutionréglé avant la gravureMESURÉ 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éerien 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écutionréglé avant la gravureV5 : _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
V4dcorrigé, prouvé par exécutionréglé avant la gravuremê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
V4dcorrigé, prouvé par exécutionréglé avant la gravuremême sous-routinegravité 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écutionréglé avant la gravureEXERCÉ, 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 rejeurien. 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 / V4corrigé, prouvé par exécutionréglé avant la gravureV5 : cette session a assemblé le TEAL courant par le nœud (20fd5fc6, 5 320 octets) et relu le programme de 770825195 sur l'indexeur : identiquesle 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-midicorrigé, prouvé par exécutionréglé avant la gravureDEUX 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 mauvaisrien 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écutionréglé avant la gravurePROUVÉ 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écutionréglé avant la gravureLE 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éesur 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écutionréglé avant la gravuredé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 projethors 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 770868027corrigé, prouvé par exécutionréglé avant la gravureLA 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 correctionsrien 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 770868027corrigé, prouvé par exécutionréglé avant la gravureMESURÉ 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éclamationles 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 / 67fd7a87corrigé, prouvé par exécutionréglé avant la gravureV3 : 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
V2corrigé, prouvé par exécutionréglé avant la gravurePIECES_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érencesavec 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
V2corrigé, prouvé par exécutionréglé avant la gravurefermé 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
V2corrigé, prouvé par exécutionréglé avant la gravuretranché 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éerien 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
V2corrigé, prouvé par exécutionréglé avant la gravurefermé par _seul_appel_du_groupe (V3), vérifié par l'audit adverserien
S-06
S 06
Un dépôt de boîte payé une fois, remboursé à chaque offre du groupe
gravité selon la source : grave
V2corrigé, prouvé par exécutionréglé avant la gravurefermé par _seul_appel_du_groupe (V3), vérifié par l'audit adverserien
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 V5corrigé, prouvé par exécutionréglé avant la gravureEFFET 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
V2corrigé, prouvé par exécutionréglé avant la gravureV4 : 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
V2corrigé, prouvé par exécutionréglé avant la gravureV5 : encherir porte « nouveaux depots suspendus » (source, lu) ; relecture aveugle 3 : sous suspension, offrir et enchérir refusés, acheter/annuler passent comme vouluacheter 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
V2corrigé, prouvé par exécutionréglé avant la gravureV3 : « 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écutionréglé avant la gravureV4 : 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écutionréglé avant la gravureMESURÉ 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 effetle 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
V2corrigé, prouvé par exécutionréglé avant la gravureV5 : « on n achete pas sa propre piece » et « on n encherit pas sur sa propre piece », toutes deux refusées devant la relecture aveugle 3le 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
V2corrigé, prouvé par exécutionréglé avant la gravurerelecture 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éploiementrien à 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 gravureLA 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.mdL'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 gravurelecture 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éerien
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 gravurelecture du source : huit arc4.emit ; une émission s'établit par lecture, elle ne se fait pas refuser. Le manque lui-même est R-C9voir 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-2rien 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 gravurela 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'atteignerien, 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 objetréglé avant la gravureLE 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éele 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 20fd5fc6sans objetréglé avant la gravureFERMÉ 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
V2sans objetréglé avant la gravuretranché 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
V2sans objetréglé avant la gravuretranché 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 solderien

5. Les contradictions entre sources, telles quelles

6. Non rattaché, ou à ne pas confondre

7. LE DÉFAUT QUI REVIENT : le contrôle qui réussit pour la mauvaise raison

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.

  1. Le banc fermait la position vers le vendeur lui-même, ce que le protocole ignore en silence : le geste que le banc croyait poser n'avait pas lieu.
  2. Le vendeur d'essai était le créateur de la pièce, à qui Algorand interdit de fermer sa propre position : refus silencieux encore.
  3. Le quatrième contrôle de 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é.
  4. L'attaque 4 de 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é.
  5. Un balayage de comptes amputé d'une adresse ne lève aucune erreur : il rend zéro application, et un balayage incomplet devient indiscernable d'un balayage complet.
  6. L'indexeur public qui refuse pour dépassement de quota répond « dépassé » avec un code de succès : tout code qui ne lit que le statut conclut que tout va bien.
  7. Un calcul exhaustif sur une prémisse non vérifiée (CH-5) : trente combinaisons, aucune négative, et la question de savoir si le dépôt enregistré est bien celui que la formule calcule reste entière.
  8. Le paramètre ignoré (K-73) : la correction avait son paramètre, ses neuf appels le passaient, le calcul l'ignorait ; la compilation réussissait, l'empreinte avait bougé, et la correction était annoncée faite. Un changement d'empreinte ne prouve pas qu'une correction est appliquée.
  9. La retenue prouvée sans la restitution (K-73 encore) : sept bancs prouvaient que la correction retient, aucun ne suivait jusqu'au retour, et elle a passé sept épreuves en confisquant 100 000 µALGO. Une correction qui diffère quelque chose s'éprouve jusqu'au bout du délai.
  10. La borne écrite dans le code qui ne décrit pas la réalité (E-1) : « bornée, rare, assumée », et déclenchable sans tiers pour trois fois moins qu'elle ne rapporte. Une perte assumée dont la borne n'est pas mesurée n'est pas assumée, elle est espérée petite.
  11. Le traducteur de refus qui supposait une seule forme de message : il a déclaré « position non traduite » sur trois refus parfaitement traduits une ligne plus haut. Un instrument qui suppose quelque chose que l'objet mesuré ne lui doit pas échoue sans que rien ne le signale.

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.

8. Une leçon de méthode, comptée

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.

9. Ce que ce tableau ne prouve pas