Ce que le reçu de conformité du protocole Newton ne prouve pas
La première chose que j’ai ouverte après avoir lu à propos de Newton Mainnet Beta n’était pas un autre document. C’était l’Explorer Newton. Le reçu semblait complet. Le CID de la politique était présent. L’attestation était bien là. Le numéro de bloc était présent. Tous les champs que je m’attendais à vérifier étaient présents. J’ai presque arrêté là. Ensuite, j’ai réalisé que je n’arrivais toujours pas à répondre à la seule question pour laquelle j’avais ouvert l’Explorer. Est-ce que c’était réellement la bonne politique à exécuter ? J’ai fait défiler à nouveau. Rien. J’ai ouvert la documentation. Pas parce que je voulais comprendre @NewtonProtocol
J’ai écrit « fonctionnalité de confidentialité » dans mes notes.
Puis je l’ai supprimé.
Ce n’était pas vraiment ce que je regardais.
La chaîne ne préserve pas l’identité.
Elle préserve le fait que l’identité a été évaluée.
Ça ressemble à une promesse très différente.
L’une renforce la confidentialité.
L’autre rend la vérification indépendante plus difficile.
Aucun des deux ne semble accidentel.
Je ne suis toujours pas sûr que chaque régulateur soit à l’aise avec l’idée d’accepter une preuve d’évaluation sans jamais voir la preuve qui l’a produite.
Peut-être que oui.
Peut-être que c’est exactement là que Mainnet Beta change la conversation.
$NEWT ne devient intéressant pour moi que si, à terme, la confiance institutionnelle se déplace de l’inspection des preuves d’identité vers la confiance dans la preuve cryptographique que la politique a bien été exécutée exactement comme prévu.
Le protocole Newton ne surveillait pas. Je n’arrivais pas à décider si c’était le but.
<c-111/> J'ai atteint la fin des notes d'intégration RedStone avant de remarquer ce que je n'avais pas vu. Il n'y avait aucun processus en arrière-plan. Aucune évaluation périodique. Rien ne vérifiait discrètement le coffre après que la transaction précédente se soit stabilisée. J'ai supposé que j'avais sauté une section. J'ai ouvert VaultKit. Puis la documentation Mainnet Beta. Puis le livre blanc. Le même manque continuait d'apparaître. Newton ne semblait exister que lorsqu'un conservateur soumettait une action pour autorisation. Puis ça a de nouveau disparu. Je suis repassé une fois de plus dans le flux.
La deuxième fois que j’ai lu la documentation de VaultKit, j’ai cessé de chercher du regroupement.
Ce n’y était pas.
« Il n’existe aucune action similaire approuvée ou aucune action de ce type approuvée. »
Je me suis dit que j’avais peut-être raté une autre section.
Non.
Chaque attestation restait attachée à exactement une transaction.
Une instruction.
Un coffre-fort.
Un montant.
Rien de reporté.
Ce n’était pas la partie que je m’attendais à trouver.
J’avais supposé que, avec des systèmes d’autorisation plus mûrs, on finit par arrêter de penser en termes d’actions individuelles et par approuver plutôt des catégories d’actions.
Je continuais à chercher l’endroit où une autorisation devenait utile deux fois.
Je ne l’ai jamais trouvé.
J’ai écrit une phrase dans mes notes.
**L’approbation n’a pas de mémoire.**
Je l’ai barrée.
Puis je l’ai réécrite.
Je ne suis toujours pas convaincu que ce soit la bonne explication.
C’est simplement celle que je n’ai pas pu remplacer après avoir relu le déroulement.
Cela me laisse une question de production.
Quand l’activité du coffre devient une routine, les opérateurs continuent-ils à accepter une autorisation fraîche pour chaque action…
ou est-ce que des modèles d’approbation réutilisables reviennent discrètement parce que la pression opérationnelle l’exige ?
Je regarde pour voir quel comportement Mainnet Beta récompense.
$NEWT ne devient intéressant pour moi que si l’autorisation à correspondance exacte survit à de vraies charges opérationnelles, sans que les opérateurs ne reconstruisent les raccourcis que l’architecture a délibérément refusé de fournir.
Le mécanisme invisible d’application des politiques de Newton
@NewtonProtocol Le tableau de bord du conservateur n’a pas changé. C’était la partie à laquelle je n’arrivais pas à m’empêcher de revenir. Je suivais la façon dont VaultKit s’intègre dans un flux de travail de coffre-fort existant. Je m’attendais à ce que l’application des politiques se manifeste d’une manière ou d’une autre. Un autre écran d’approbation. Un flux de travail différent. Quelque chose qui rendait évident qu’un autre système se trouvait désormais entre le conservateur et le coffre-fort. Je n’arrivais pas à le trouver. Le tableau de bord est resté identique. Le flux de travail est resté le même. Je suis repassé par l’intégration, parce que je supposais avoir manqué l’endroit où la politique devenait visible.
Je suis allé chercher la sortie de secours de VaultKit.
J’ai trouvé une salle d’attente à la place.
Je retrace ce qui se passe lorsqu’un conservateur doit agir en dehors d’une politique existante.
Je m’attendais à ce que le chemin de remplacement soit optimisé pour la vitesse.
Il ne l’était pas.
Le remplacement était public.
Avec un délai.
Observable avant son exécution.
Je suis repassé dans le flux, parce que je pensais avoir manqué le chemin rapide.
Je ne l’avais pas.
Ça continuait de me travailler.
J’ai toujours traité les remplacements comme le moment où les règles cèdent face à l’urgence.
VaultKit semble partir d’une hypothèse différente.
Peut-être qu’un remplacement que personne d’autre ne peut voir n’est pas vraiment un remplacement.
Peut-être que ce n’est que davantage d’autorisations.
Cette explication avait du sens.
Puis une autre question est apparue.
Le remplacement, qu’est-ce qu’il protège réellement ?
Le conservateur ?
Ou tout le monde qui regarde le conservateur ?
Plus j’y réfléchissais, moins cela ressemblait à un mécanisme d’urgence.
Ça ressemblait plutôt à un moyen de faire en sorte que les contraintes de politique restent crédibles, même lorsqu’une personne a l’autorité pour les contourner.
Mais cela crée un autre compromis.
Si le chemin officiel est volontairement lent, que se passe-t-il lorsqu’une vraie urgence n’est pas ?
Les opérateurs continuent-ils de faire confiance au protocole...
ou construisent-ils discrètement des exceptions plus rapides ailleurs ?
Je n’ai toujours pas tranché.
Le vrai test n’est pas de savoir si le remplacement fonctionne.
C’est de savoir si les opérateurs continuent de le choisir lorsque le temps devient la ressource rare.
$NEWT ne devient intéressant pour moi que si ce compromis survit à la pression opérationnelle réelle sans pousser les décisions d’urgence hors du protocole.
Je pensais que Newton trancherait.
Il n’a jamais essayé.
J’ai passé plus de temps que prévu à fixer les quatre domaines d’application. Conformité. Identité. Sécurité. Risque. J’ai continué à attendre @NewtonProtocol pour me dire comment ils s’assemblent. Si l’Identité est validée mais que le Risque ne l’est pas… Qu’est-ce qui gagne ? Si la Conformité passe mais que la Sécurité s’y oppose… Lequel compte le plus ? J’ai supposé que j’avais simplement manqué cette partie de la documentation. Je suis revenu en arrière. Relisez à nouveau la documentation de VaultKit. Alors le dépôt du pack de politiques. Je ne cherchais plus une autre fonctionnalité. Je cherchais l’avis de Newton. Je n’en ai pas trouvé un.
« Vérifie chaque transaction par rapport à une politique active. »
Je suis passé directement à côté.
Puis je suis revenu en arrière.
Actif.
Ce seul mot est resté avec moi plus longtemps que le reste de la phrase.
Au début, je me suis dit que c’était juste une formulation un peu relâchée.
Ensuite, j’ai commencé à chercher l’endroit où une politique devient figée.
Je n’ai pas pu le trouver.
J’ai relu l’architecture.
Toujours rien.
C’est à ce moment-là que ma question a changé.
J’ai arrêté de me demander ce que la politique évaluait.
J’ai commencé à me demander pourquoi @NewtonProtocol semblait réticent à figer la politique elle-même.
J’avais toujours supposé que la cohérence était la chose que les systèmes d’autorisation cherchaient à protéger de leur mieux.
Si deux transactions identiques arrivent avec des entrées identiques, ne devraient-elles pas recevoir des résultats identiques ?
Plus je restais avec cette hypothèse, moins j’étais certain que Newton la partageait.
J’ai écrit : « Peut-être qu’une politique figée n’est pas une politique stable. »
Puis je l’ai barré.
Peut-être que c’est le compromis.
Peut-être que non.
Je ne suis toujours pas convaincu d’avoir trouvé la vraie raison.
Si les politiques sont autorisées à évoluer, alors peut-être que la cohérence n’était pas du tout ce que les ingénieurs essayaient de préserver.
Peut-être qu’ils essayaient de préserver autre chose.
Je n’ai simplement pas encore compris quoi.
Si ma transaction est évaluée selon une politique différente de celle d’une transaction identique de quelqu’un d’autre, je ne veux pas seulement savoir quel CID a évalué la mienne.
Je veux comprendre pourquoi cette politique est devenue la politique active.
C’est la question que j’ai laissée avec la documentation.
$NEWT ne devient intéressant pour moi que si l’évolution des politiques reste tout aussi explicable que l’application des politiques une fois que Mainnet Beta subit de vraies pressions opérationnelles.
Je m’attendais à trois preuves. Newton n’en a produit qu’une.
Je suis revenu dans le flux d’évaluation de la politique de Newton, car je n’arrivais pas à déterminer où étaient passés les autres reçus. J’avais supposé que chaque paquet d’oracle laisserait derrière lui son propre artefact signé. Un pour les sanctions. Un pour le prix. Un pour le risque. Je n’essayais pas de comprendre la politique Rego. J’essayais de retrouver les reçus. J’ai lu le flux d’évaluation une fois. Encore une fois. Alors une troisième fois. Les sorties de l’oracle sont arrivées. La politique Rego les a évalués. Une attestation de politique signée est apparue avant le règlement. Rien d’autre.
Je pensais passer la plus grande partie de mon temps à rédiger des politiques.
Au lieu de cela, j’ai passé plus longtemps à comprendre ce qui existait déjà avant qu’une politique ne s’exécute.
Ce n’était pas ce que j’attendais.
Plus je retraçais les exemples, moins ils ressemblaient à des applications isolées.
Ils continuaient à supposer la même base.
J’ai cessé de me demander comment une politique prend une décision.
J’ai commencé à me demander pourquoi @NewtonProtocol insiste pour donner aux différentes politiques le même point de départ.
Cette question m’a accompagné plus longtemps que la documentation.
Peut-être que c’est la vraie contrainte.
Ne pas limiter ce qu’une politique peut décider.
Limiter à combien de réalités différentes elle peut commencer.
Je ne sais toujours pas si cette alternative semblera invisible en production ou si elle deviendra la chose que les opérateurs apprécient le plus.
Je surveille cela.
$NEWT ne devient vraiment intéressant pour moi que si le fait de partager de façon constante la même base produit des décisions de politique qui restent compréhensibles à mesure que le réseau grandit.
Le diagramme de Newton que je n’ai cessé de relire à l’envers
@NewtonProtocol La troisième fois que j’ai retracé le flux de VaultKit, j’ai cessé de chercher l’étape manquante. Je m’étais déjà convaincu que l’ordre des politiques n’était qu’une question de mise en page du diagramme. Le flux suivant m’a prouvé le contraire. Alors la suivante l’a fait encore une fois. Rien ne bougeait. Cela a attiré mon attention. Pas parce que la séquence paraissait compliquée. Parce qu’elle refusait de devenir plus simple. Je n’ai cessé de refaire la même expérience de pensée. Déplacez la politique plus tard. Laissez tout le reste à sa place. Chaque version semblait plus nette. Aucune d’elles ne donnait l’impression de décrire la même décision, désormais.
Pourquoi Newton établit un accord avant de prendre des décisions
@NewtonProtocol Pendant le traçage de la phase de préparation, j’ai ignoré une boîte dans le diagramme de séquence parce que je voulais voir si quelque chose en dépendait réellement. Au début, rien ne semblait cassé. Les opérateurs avaient encore des prix d’oracle. Ils avaient encore des données de risque. L’évaluation de la politique semblait toujours possible. Je m’attendais à ce que la boîte suivante soit une exécution de politique. Ce n’était pas le cas. Le flux s’est arrêté une étape plus tôt. Je l’ai vérifié à nouveau. Même ordre. Je l’ai vérifié une troisième fois. Toujours le même ordre. C’était la seule section que j’ai fini par souligner. J’avais tort.
En retraçant la phase de préparation (Prepare Phase) de Newton dans le livre blanc technique, je suis en fait retourné vérifier si j’avais omis une étape.
J’avais supposé que le consensus commençait lorsque les opérateurs évaluaient une politique.
Ce n’est pas le cas.
Le protocole commence par s’assurer qu’ils évaluent la même réalité externe.
Les opérateurs collectent des données externes de manière indépendante.
Un jeu de données canonique est assemblé.
Ce n’est qu’ensuite que l’évaluation de la politique commence.
Je n’avais pas prévu que la cohérence des données vienne avant le consensus.
J’ai continué à lire, mais j’ai relu le reste de l’architecture différemment à partir de là.
Les flux de prix évoluent.
Les scores de risque se mettent à jour.
Les listes de conformité ne se rafraîchissent pas partout au même moment.
Si les opérateurs partent d’entrées différentes, le désaccord n’est pas encore un problème de cryptographie.
C’est un problème de coordination.
La phase de préparation existe parce que le consensus n’a de sens que si tout le monde part de la même réalité.
Le consensus ne sert pas seulement à protéger la décision finale.
Il sert à protéger le point de départ partagé.
$NEWT devient intéressant pour moi si cette architecture continue de produire des décisions de politique cohérentes tandis que les données externes deviennent plus bruitées et plus fragmentées.
Je m’intéresse davantage à l’endroit où cette frontière apparaît qu’à la rapidité avec laquelle le consensus se termine.
En explorant AlphaSense via chat.opengradient.ai, j’ai mis en avant les prévisions de volatilité tout en continuant à défiler.
La ligne suivante n’était pas une autre prévision.
C’était l’ajustement (scaling) des frais AMM.
Je suis revenu en arrière et j’ai relu ces deux lignes.
C’est à ce moment-là que j’ai compris que la prévision n’était pas la destination.
La prévision n’attendait pas un humain.
Elle attendait un protocole.
C’était la seule note que j’ai écrite à côté de la page.
Je ne regardais pas une autre métrique.
Je regardais une entrée que l’autre protocole était conçu pour consommer.
Qu’une application choisisse ou non de connecter AlphaSense directement à des paramètres de protocole en temps réel dépend d’une décision d’implémentation.
$OPG ne compte pour moi que si AlphaSense atteint le point où les protocoles en aval continuent à faire confiance à ses prévisions suffisamment pour les intégrer dans le chemin de décision, au lieu de les traiter comme des signaux nécessitant toujours une autre couche de validation.
La première chose que j’ai cherchée sur Twin.fun, c’était le vendeur.
Je n’en ai jamais trouvé.
En explorant Twin.fun après avoir utilisé chat.opengradient.ai, je m’attendais à ce que quelqu’un ait décidé combien devraient coûter les clés d’un jumeau numérique.
À la place, j’ai trouvé une courbe de liaison quadratique.
Quelqu’un a acheté d’abord.
L’équation avait déjà le prix suivant.
Personne n’a modifié une annonce.
Personne n’a nommé le prix.
Le prix suivant n’a pas été choisi.
Il a été calculé.
Deux personnes peuvent ouvrir la même annonce Twin.fun au même moment.
Un seul achat suffit.
Au moment où la deuxième transaction s’exécute, le prix qu’ils avaient prévu n’existe plus.
Pas parce que quelqu’un l’a modifié.
Mais parce que la courbe de liaison le recalculait à partir de la nouvelle offre.
$OPG ne compte ici que si le modèle de tarification de Twin.fun continue de produire des prix que les participants continuent de faire confiance à mesure que l’activité grandit.
Les équations ne perdent pas la confiance.
Les marchés, oui.
Si Twin.fun continue de produire des prix que les participants acceptent, personne ne pense à l’équation.
Si cela change, l’équation devient l’histoire.
C’est à ce moment-là que je relirai cette section.
La deuxième phase de vote a été la première chose qui m’a fait arrêter de faire défiler.
Après avoir utilisé chat.opengradient.ai, je retraçais le flux de consensus d’OpenGradient et j’ai réalisé que j’avais supposé qu’une seule supermajorité suffisait.
Le flux n’était pas d’accord.
Proposer.
Pré-voter.
Pré-engager.
Engager.
La première supermajorité n’était pas une finalité.
Elle a rendu le vote suivant possible.
Une preuve peut déjà avoir deux tiers de prévotes tandis que le réseau attend encore deux tiers de préengagements.
Le protocole sépare l’accord de l’engagement.
Ce sont des états différents.
$OPG Ce n’est pour moi intéressant que si les bâtisseurs continuent de traiter l’engagement, et pas le premier seuil, comme le moment où un logiciel devient sûr sur lequel construire.
Le signal que je surveille n’est pas l’arrivée de la première supermajorité.
C’est le fait que des systèmes de production continuent d’attendre l’engagement même lorsque le seuil précédent semble déjà convaincant.
Je n’ai pas encore vu cette frontière disparaître.
Après avoir utilisé chat.opengradient.ai, je traçais le flux de règlement de preuve d’OpenGradient et je me suis surpris à marquer la preuve comme terminée après la première approbation.
Le livre blanc a continué.
Un valideur a accepté la preuve.
Le réseau a continué à compter.
C’est là l’erreur que j’avais commise.
Je cherchais la première confirmation.
OpenGradient attend un seuil.
Le réseau n’emprunte pas de certitude à sa première approbation.
Il accumule l’accord jusqu’à ce qu’il y ait finalité.
Cela a changé l’endroit où je commençais à chercher la décision.
Une preuve peut déjà bénéficier du soutien des valideurs alors que le réseau n’a pas encore terminé sa décision.
Ce sont des états différents.
Une application qui avance après la première approbation peut finir par agir pendant que le protocole n’a pas encore terminé d’achever le consensus.
L’application a avancé.
Le réseau, non.
$OPG only devient intéressant pour moi uniquement si les développeurs continuent de considérer la finalité du réseau, et non l’approbation précoce, comme le moment à partir duquel les décisions deviennent sûres pour s’appuyer dessus.
Le test n’est pas de savoir si les valideurs continuent d’être d’accord.
C’est de savoir si les développeurs continuent d’attendre le réseau avant de considérer une preuve comme terminée.
J’ai barré ma propre note à mi-chemin dans les documents de déduction.
J’avais écrit un mot dans la marge.
Contexte.
Il n’avait pas sa place là.
Après avoir passé du temps sur chat.opengradient.ai, je suis retourné chercher où les interactions précédentes restaient vivantes.
La ligne qui m’a fait effacer la note était courte.
Les nœuds de déduction sont des nœuds travailleurs sans état.
J’ai continué à lire.
Les requêtes continuaient de changer.
Le nœud, lui, ne changeait pas.
Requête après requête, tout passait à travers la même architecture.
Aucune n’y laissait d’état.
Ce n’était pas le système que je pensais regarder.
Je cherchais de la continuité à l’intérieur de la couche de déduction.
L’architecture l’avait déjà déplacée ailleurs.
La couche de déduction calcule.
La continuité doit venir d’une autre couche.
Ce ne sont pas des tâches qui se font concurrence.
Ce sont des responsabilités distinctes.
La plupart des discussions sur la mémoire de l’IA commencent par le stockage.
Cette conception commence discrètement par la séparation.
$OPG ne devient intéressant pour moi que si les développeurs continuent de respecter cette frontière au lieu d’attendre, par accident, que l’infrastructure de déduction devienne un système de mémoire.
La première application qui suppose que « hier » vit à l’intérieur de « aujourd’hui » dans la déduction n’exposera pas une faiblesse du nœud.
Elle exposera une incompréhension de l’architecture.