Des preuves, pas des affirmations

Vérifiez les preuves solaires
par vous-même.

Un paquet de preuves est un ensemble de fichiers de données, un manifeste qui liste l’empreinte SHA-256 de chaque fichier, et une signature Ed25519 portant sur ce manifeste. Cette page contrôle les trois éléments dans votre navigateur. Rien n’est envoyé.

Contrôler un paquet

Déposez le paquet entier dans la zone : manifest.json, manifest.sig et les fichiers de données. Ou déposez un seul fichier pour obtenir son SHA-256. Votre navigateur fait le calcul avec WebCrypto. La prise en charge d’Ed25519 par WebCrypto diffère selon les navigateurs et leurs versions ; si le contrôle signale qu’Ed25519 est absent, utilisez les étapes OpenSSL plus bas.

Déposez ici les fichiers du paquet ou cliquez pour parcourir
manifest.json + manifest.sig + fichiers de données · rien n’est envoyé


Paquet d’exemple ILLUSTRATIF

Téléchargez les quatre fichiers, puis déposez-les dans la zone ci-dessus. L’exemple est un cas de stockage par batteries (BESS) : un seul actif illustratif, SAMPLE-BESS-CL-001. Ce n’est pas une centrale réelle, et ses valeurs ne sont pas des mesures. Un paquet signé spécifique au solaire est en attente ; cet exemple ne montre donc que le format.

manifest.json ↓ manifest.sig ↓ telemetry-extract.csv ↓ asset-summary.json ↓

Aucun contrôle n’a encore été effectué. Le résultat apparaît ici, fichier par fichier, dès que vous choisissez ou déposez un paquet.

Lire le résultat

Un paquet valide, un paquet invalide et un paquet altéré

Le contrôle répond à deux questions. Le manifeste a-t-il été signé par la clé publiée et est-il resté inchangé ? Chaque fichier correspond-il au SHA-256 que liste le manifeste ? Lisez les deux réponses ensemble. Les encadrés ci-dessous montrent la formulation utilisée par le contrôle. Ce sont des exemples, et non les résultats d’un contrôle réel.

Un paquet valide

✓ Signature Ed25519 VALIDELe manifeste a été signé par la clé publiée de LIFETIMEBESS (key_id ltb-2026-10) et n’a pas été altéré.
✓ telemetry-extract.csv

correspond au manifeste

✓ asset-summary.json

correspond au manifeste

Chaque fichier est exactement celui que liste le manifeste, et le manifeste est exactement celui que le détenteur de la clé a signé. Rien n’a été ajouté, supprimé ni modifié après signature.

Un paquet invalide

✗ Signature INVALIDELa signature ne correspond pas à ce manifeste avec la clé publiée. Le manifeste a été altéré, ou la signature n’est pas la nôtre.

Soit le manifeste a été modifié après sa signature, soit il a été signé avec une autre clé. Considérez le paquet comme non vérifié, même si toutes les lignes de fichiers correspondent, car le manifeste lui-même n’est pas fiable.

Un paquet altéré

✓ Signature Ed25519 VALIDELe manifeste a été signé par la clé publiée de LIFETIMEBESS (key_id ltb-2026-10) et n’a pas été altéré.
✗ asset-summary.json

ne correspond PAS — le fichier a été modifié

Un octet modifié dans un fichier de données change son empreinte SHA-256, de sorte que ce fichier échoue. La signature peut rester valide, car le manifeste lui-même n’a pas été touché. Lisez la ligne ✗, et pas seulement la bannière. Si quelqu’un modifie aussi le manifeste pour que la ligne corresponde, la signature devient INVALIDE.

Deux autres cas. Un fichier listé par le manifeste que vous n’avez pas déposé s’affiche comme « listé dans le manifeste, non fourni ». Un fichier déposé que le manifeste ne liste pas s’affiche comme « absent du manifeste ». Considérez le paquet comme incomplet tant que chaque fichier listé n’a pas une ligne correspondante.
Format ouvert

LTB-Evidence-Manifest/0.1, un format ouvert

Le format utilise JSON, SHA-256 et Ed25519. Il ne nécessite ni blockchain ni visionneuse propriétaire. Chacun peut l’implémenter, et chacun peut vérifier un paquet sans cette page.

Ce que contient un manifeste

specLTB-Evidence-Manifest/0.1
files[]chemin, SHA-256 et taille en octets de chaque fichier du paquet
assetl’actif que couvrent les preuves. L’exemple utilise l’identifiant d’un stockage par batteries (BESS), SAMPLE-BESS-CL-001
engine / seedlorsqu’un modèle a produit une valeur : la version du modèle et la graine aléatoire, afin que la valeur puisse être reproduite
key_idla clé publiée utilisée par le signataire (ltb-2026-10)
createdle moment où le signataire a produit le paquet. C’est le signataire qui écrit cette date, et elle n’est pas encore horodatée de manière indépendante
manifest.sigsignature Ed25519 détachée portant sur les octets exacts de manifest.json, stockée en texte base64

Vérifier avec OpenSSL, si vous préférez

Vous n’avez pas besoin de cette page. Il vous faut OpenSSL 3.x et la clé publique publiée. Exécutez ces trois étapes dans le dossier qui contient le paquet :

base64 -d < manifest.sig > manifest.sig.bin printf '%s\n' '-----BEGIN PUBLIC KEY-----' \ 'MCowBQYDK2VwAyEAggCg4K6ADrzNTxsERRHNZP8S3B0dPmo8GrxBMjdrqhQ=' \ '-----END PUBLIC KEY-----' > ltb-pub.pem openssl pkeyutl -verify -pubin -inkey ltb-pub.pem -rawin -in manifest.json -sigfile manifest.sig.bin

Le résultat est « Signature Verified Successfully » ou « Signature Verification Failure ». La deuxième étape écrit la clé publiée au format PEM. La ligne base64 est l’encodage standard SubjectPublicKeyInfo de la même clé de 32 octets : un en-tête Ed25519 fixe de 12 octets, suivi de la clé brute. La clé elle-même ne change pas.

Clé publique publiée (Ed25519, brute, base64), key_id ltb-2026-10 :

ggCg4K6ADrzNTxsERRHNZP8S3B0dPmo8GrxBMjdrqhQ=

Clé publique publiée (Ed25519, brute, base64), key_id ltb-2026-08 :

DxjoM0/6xTb0EhP4UYrutsJ1qspmCREvYnMrelVWMdE=

Deux clés sont publiées. ltb-2026-10 signe les paquets depuis octobre 2026, y compris cet exemple. ltb-2026-08 reste valable pour les paquets signés avant cette date.

Pas encore implémenté : les horodatages RFC 3161. Les paquets ne portent qu’une signature Ed25519. Ils ne portent pas encore d’horodatage de confiance émis par une autorité d’horodatage indépendante ; la date contenue dans le manifeste est donc la déclaration du signataire lui-même.
Limites

Ce qu’un résultat valide ne prouve pas

Un paquet valide prouve l’intégrité et l’origine. Ces fichiers, tels que listés, ont été signés avec la clé publiée de LIFETIMEBESS et n’ont pas changé depuis la signature. Un paquet valide ne prouve pas :

  • que les relevés sont exacts, ni que les compteurs et enregistreurs qui les ont produits étaient étalonnés ;
  • que l’installation existe telle que décrite, ni qu’elle se trouve dans l’état que son résumé indique ;
  • qu’un chiffre est une mesure. Vérifiez l’étiquette de chaque chiffre : VÉRIFIÉ signifie publié par la source, ESTIMÉ signifie notre calcul avec ses hypothèses, et ILLUSTRATIF signifie un exemple.
L’exemple est illustratif. Le paquet d’exemple existe pour montrer le format. C’est un cas de stockage par batteries (BESS), et non une centrale réelle ni une mesure d’un actif réel. Un paquet signé spécifique au solaire est en attente.

Commencez par le PV Health Score gratuit.

Vérifiez d’abord les données de supervision d’une installation. Pour un paquet de preuves signé concernant un actif, écrivez-nous.

Obtenir le PV Health Score gratuit Écrire au sujet d’un paquet