139 lines
9.7 KiB
Markdown
139 lines
9.7 KiB
Markdown
# LE TRIPLET â spec v0 de l'Adressage GĂ©nĂ©ratif
|
||
|
||
> Le format éternel commun à la **position**, au **DM** et à la **réplication**.
|
||
> Ce qu'on gÚle ici, c'est la primitive `C2` du paper *L'Adressage Génératif* (§2.2, P0) et
|
||
> le protocole *XI0N-résidu* de *fractales-de-reel* (§7) : une seule donnée, trois usages.
|
||
>
|
||
> J0bot · Juillet 2026 · AGPL-3.0 · **spec â v0** · `adressage-generatif-triplet-v0`
|
||
> Convention : `[POSĂ]` = gelĂ©/dĂ©cidĂ© · `[HYPOTHĂSE]` = attendu mais non prouvĂ© dans le repo.
|
||
|
||
## 0. Ce que ce document gĂšle
|
||
|
||
Une donnée n'est pas un contenu qu'on garde, c'est une **adresse** dans un espace génératif : un
|
||
point qu'on retrouve. La spec v0 fige le format de cette adresse â le **triplet** â et les trois
|
||
opĂ©rations dessus (LIRE, ĂCRIRE, ALIGNEMENT). Le triplet ne change plus en grandissant : c'est le
|
||
« connecteur logiciel » de XERB0XI0N, l'équivalent du CFC matériel. Tout le reste (les générateurs,
|
||
la navigation, le réseau) se construit *au-dessus* et peut évoluer ; le triplet, non.
|
||
|
||
## 1. La donnĂ©e â le triplet `[POSĂ]`
|
||
|
||
```
|
||
triplet = ( hash_générateur , coordonnées , hash_résidu )
|
||
ââ BLAKE3, 32 o ââ ââ opaque âââ ââ BLAKE3, 32 o ââ
|
||
```
|
||
|
||
Trois champs, tous de taille bornée. **Le triplet est pure adresse** : il ne contient aucun octet de
|
||
contenu, seulement des références vérifiables.
|
||
|
||
- **hash_gĂ©nĂ©rateur** â BLAKE3 d'un **gĂ©nĂ©rateur** : un programme pur, dĂ©terministe, sandboxĂ©
|
||
(module WASM, `C0`). Il se résout dans le store adressé par contenu (`C1`, modÚle Git/BLAKE3) en un
|
||
module exécutable. Le générateur est un **bien commun** : répliqué gratuitement, amorti sur toutes
|
||
les données qui le citent.
|
||
- **coordonnĂ©es** â localisent la donnĂ©e *dans* ce gĂ©nĂ©rateur : seed, `x/y/z/t`, index Hilbert 4D du
|
||
Cubion, clé, temps. Minuscule, une par donnée. Le format interne des coordonnées est propre au
|
||
domaine du générateur ; le triplet les traite comme opaques.
|
||
- **hash_rĂ©sidu** â BLAKE3 du **rĂ©sidu** : l'Ă©cart, au bit prĂšs, entre ce que le gĂ©nĂ©rateur prĂ©dit
|
||
et ce que le réel a fait. Se résout dans le store en un bloc d'octets (éventuellement vide). Le
|
||
rĂ©sidu est la **seule part qui exige du stockage** â l'unitĂ© de rĂ©el, le Tsoin.
|
||
|
||
Cas dĂ©gĂ©nĂ©rĂ©s `[POSĂ]` (rĂ©trocompatibilitĂ© Ă©ternelle) : gĂ©nĂ©rateur = identitĂ© â rĂ©sidu = la donnĂ©e
|
||
entiĂšre (stockage classique) ; rĂ©sidu = vide â pure structure (gĂ©nĂ©ration procĂ©durale). Le rĂ©el est
|
||
entre les deux, facturé à hauteur de sa surprise.
|
||
|
||
## 2. Les trois opĂ©rations `[POSĂ]`
|
||
|
||
Soit `G = store[hash_générateur]`, `R = store[hash_résidu]`.
|
||
|
||
- **LIRE** â `donnĂ©e = G(coordonnĂ©es) â R`.
|
||
`â` est l'opĂ©rateur de recombinaison bit-exact du domaine (le cas dĂ©gĂ©nĂ©rĂ© est un XOR / une somme).
|
||
On régénÚre la prédiction et on y applique l'écart. Déterministe, bit pour bit, sur toute machine,
|
||
à toute époque. *Complet en adresses, paresseux en calcul* : déplier coûte du calcul (profondeur de
|
||
Bennett, §3), c'est le prix assumé.
|
||
- **ĂCRIRE** â choisir un gĂ©nĂ©rateur `G`, calculer `R = donnĂ©e â G(coordonnĂ©es)`, **ne garder que
|
||
`R`**. Ăcrire, c'est ne conserver que l'Ă©cart au prĂ©dictible. AsymĂ©trie assumĂ©e : lire est rapide,
|
||
bien Ă©crire est lent (trouver un bon `G` est coĂ»teux, §3) â encodage diffĂ©rĂ© + rĂ©-encodage
|
||
rétroactif quand un meilleur générateur apparaßt (le systÚme comprime son propre passé).
|
||
- **ALIGNEMENT** â deux nĆuds partagent un gĂ©nĂ©rateur **ssi `hash_gĂ©nĂ©rateur` est Ă©gal des deux
|
||
cĂŽtĂ©s**. C'est une Ă©galitĂ© de hash, **dĂ©cidable au bit** â pas une synchronisation floue. Deux
|
||
triplets qui citent le mĂȘme gĂ©nĂ©rateur ne diffĂšrent que par `(coordonnĂ©es, hash_rĂ©sidu)` : on
|
||
**diffe des adresses au lieu de transporter des blobs**. C'est le levier de tout le reste.
|
||
|
||
## 3. Les garde-fous honnĂȘtes `[POSĂ]`
|
||
|
||
Sans eux, la promesse ment. Aucun n'est contournable.
|
||
|
||
1. **Le mur de Kolmogorov.** Le résidu d'un vrai aléatoire est **incompressible** : il coûte son
|
||
poids plein, toujours. « Tout dans un kilo-octet » est faux. Le systÚme *catalogue* cette borne
|
||
au lieu de la cacher ; la part de réel-pur ne devient jamais gratuite.
|
||
2. **Le meilleur générateur est non-calculable.** `K(x)` n'est pas calculable ; la recherche
|
||
universelle de Levin trouve l'optimum mais en temps exponentiel. On ne publie **jamais l'optimum** â
|
||
on publie des **majorants nommés** (un panel de compresseurs identifiés, BIONLIB en est un) et une
|
||
grandeur honnĂȘte : **`certitude = 1 â L_min / L_baseline`**, qui monte Ă chaque raffinement sans
|
||
jamais atteindre 1. « Envoyer en fractale de réel » est aussi bon que le meilleur générateur connu
|
||
du domaine, ni plus.
|
||
3. **Coût de dépliage (Bennett).** Un générateur court peut demander un temps de calcul énorme.
|
||
Le triplet troque de la bande passante/du stockage contre du calcul chez le lecteur â bon Ă©change
|
||
sur un lien lent et lointain, pas toujours en local.
|
||
4. **GĂ©nĂ©rateurs appris â bit-exacts â opt-in au bord, jamais dans le format Ă©ternel.** Les codecs
|
||
neuronaux (COIN/COIN++) et les floats non reproductibles entre architectures sont un **slot
|
||
opt-in**, activable *au bord* d'un domaine, jamais dans le triplet gelĂ©. Le cĆur reste bit-exact
|
||
(IFS entier, WASM de rĂ©fĂ©rence, quantization entiĂšre). Un gĂ©nĂ©rateur qui ne redonne pas le mĂȘme bit
|
||
partout ne peut pas porter un `hash_générateur` du format éternel.
|
||
5. **GPG non-optionnel.** Le résidu est la seule part irréductible et sensible ; il est **toujours**
|
||
chiffré GPG au repos et en transit. Les générateurs, communs et publics, ne le sont pas.
|
||
6. **Opt-in & droit au silence.** Rien n'est capturé ni régénéré sans consentement explicite. Une
|
||
donnĂ©e peut ne jamais ĂȘtre Ă©crite. **Ne pas nuire** gouverne le format autant que le code.
|
||
|
||
## 4. Les trois applications â une donnĂ©e, trois usages
|
||
|
||
- **Position.** Une trajectoire GPS brute répÚte des blobs lat/long quasi identiques. En triplet :
|
||
générateur = modÚle de mouvement (vitesse ~constante, chemin prédictible) ; coordonnées = index
|
||
temps ; résidu = l'**écart** à la position prédite. On ne stocke que la surprise du déplacement.
|
||
La coordonnée *est* la position ; le blob répété disparaßt.
|
||
- **DM entre amis.** Deux amis qui partagent le mĂȘme `hash_gĂ©nĂ©rateur` (leur contexte commun : langue,
|
||
historique, modĂšle partagĂ©) n'Ă©changent que `(coordonnĂ©es, rĂ©sidu)` â le rĂ©sidu Ă©tant **l'Ă©cart au
|
||
prĂ©dictible**. Le rĂ©cepteur rĂ©gĂ©nĂšre le reste. C'est `K(x | gĂ©nĂ©rateur) âȘ K(x)` : le message
|
||
s'effondre Ă sa seule surprise. L'ALIGNEMENT par hash rend « on partage bien le mĂȘme gĂ©nĂ©rateur »
|
||
décidable, pas espéré.
|
||
- **RĂ©plication.** Entre deux boxions/nĆuds, on ne **transmet et ne chiffre (GPG) que les rĂ©sidus** ;
|
||
les générateurs sont des **communs gratuits**, déjà des deux cÎtés (rÚgle 50/50 : le réseau protÚge
|
||
exactement l'irrĂ©ductible). MarsâTerre n'Ă©changent que ce que l'autre ne pouvait pas prĂ©dire.
|
||
|
||
Le fil commun : dans les trois cas, ce qui voyage/se garde n'est jamais l'instant, c'est **l'écart
|
||
entre l'instant et ce que l'autre bout savait déjà en prédire.** Position, DM et réplication sont la
|
||
mĂȘme opĂ©ration Ă trois Ă©chelles.
|
||
|
||
## 5. Ce que ça débloque concrÚtement dans le repo
|
||
|
||
- **Manifeste de réplication diff-only.** Aujourd'hui `/replicate` pousse un **bundle complet signé**
|
||
(les deux bouts ne partagent pas encore le générateur). Le triplet transforme ça en réplication
|
||
**diff-only** : le manifeste devient une liste de triplets ; quand `hash_gĂ©nĂ©rateur` est dĂ©jĂ
|
||
présent chez le récepteur (ALIGNEMENT), on ne transmet que `(coordonnées, hash_résidu)` + le résidu
|
||
chiffrĂ© GPG. C'est *XI0N-rĂ©sidu* (§7 de *fractales-de-reel*) â une page de protocole, pas une techno
|
||
Ă inventer, testable dĂšs aujourd'hui en logiciel sur le xion (deux nĆuds fĂ©dĂ©rĂ©s, gain mesurĂ© comme
|
||
le 882à : octets du résidu vs octets de l'instant déplié).
|
||
- **Bion network.** Un bion *est* un tsoin : il ne stocke pas sa sortie, il stocke son générateur
|
||
(référence/recette) et se rejoue. C'est le triplet descendu au niveau primitive
|
||
(`timer-tsoin = {ms}`, `son-tsoin = {source, id, position}`). Le format v0 donne Ă un bion runtime
|
||
(WASM, ex. `json_str`) et Ă un bion web (`timer-bion`) **le mĂȘme identifiant** (`hash_gĂ©nĂ©rateur`),
|
||
donc un ploxion-écran peut référencer un bion partagé au lieu de le recopier : la flotte passe de N
|
||
monolithes à un alphabet de bions + une nuée de specs. Le triplet est le contrat qui rend un bion
|
||
citable, partageable et rejouable Ă travers les deux mondes.
|
||
- **Contrat jOSPresence.** La présence live (curseurs, post-its LWW, collab) n'a pas besoin d'émettre
|
||
l'état : un émetteur et un récepteur qui partagent le `hash_générateur` d'un modÚle de présence
|
||
n'échangent que `(coordonnées, résidu)` sur le PL0XI0N Bus, et le récepteur régénÚre. Le format v0
|
||
fige le paquet que jOSPresence met sur le bus â l'Ă©cart, chiffrĂ©, alignĂ© par hash â au lieu d'un
|
||
blob d'état répété.
|
||
|
||
---
|
||
|
||
*Reste Ă faire (P1 du paper) : le codec aller-retour `image â triplet â image` bit-pour-bit, mesurĂ©
|
||
vs PNG/JPEG, qui prouve `â` sur un vrai mĂ©dia. La navigation Hilbert (`C5`, zoom = descente Merkle)
|
||
consomme ce mĂȘme format.*
|
||
|
||
*Décisions encore ouvertes (héritées de §12 du paper) : nom canonique du composant · sémantique de
|
||
**merge** des rĂ©sidus (deux Ă©carts concurrents sur le mĂȘme point) · pĂ©rimĂštre exact du gel v1.*
|
||
|
||
*Ne pas nuire. On ne transmet jamais du rĂ©el â seulement de la surprise sur fond de structure commune.*
|
||
*AGPL-3.0 · Juillet 2026 · adressage-generatif-triplet-v0*
|