myproductpassport ← Atpakaļ uz pasi
Pret viltošanu aizsargāts ieraksts

Fernway FX-36 E-Bike Battery

Katrai šīs pases publicētajai versijai tiek izveidots nospiedums, tā tiek sasaistīta ar iepriekšējo versiju un parakstīta. Ja kaut kas ierakstā vēlāk tiktu mainīts, tālāk redzamie nospiedumi vairs nesakristu.

Nav mainīts kopš ierakstīšanas · paraksti pārbaudīti
Pašreizējais nospiedums (SHA-256)
b7e831dbf369cc947b766db555078e87c54bd5d9e54f7f113c4eb6c2d49d35bc
Pēdējoreiz ierakstīts3 nov. 2026, 16:52 UTC
Ierakstītās versijas1
ParakstsEd25519

Vēsture

  1. #1 · Publicēts Paraksts derīgs
    Nospiedums: b7e831dbf369cc947b766db555078e87c54bd5d9e54f7f113c4eb6c2d49d35bc
    Ķēde: cddfa8de6044bb8698b0a86d62eeed064a8b6b891c31a1b7ebdc8639f39b826d

Pārbaudiet paši

  1. Lejupielādējiet ierakstus JSON formātā un publisko atslēgu.
  2. Katram ierakstam ķēdes vērtība ir SHA-256 no šādiem datiem, katrs savā rindā: shēmas nosaukums, pases ID, ieraksta numurs, tā nospiedums, iepriekšējā ķēdes vērtība un laiks.
  3. Pārbaudiet ķēdes vērtības Ed25519 parakstu, izmantojot publicēto atslēgu. Katrā ierakstā jābūt norādītai arī iepriekšējā ieraksta ķēdes vērtībai.
import json, hashlib, base64, urllib.request
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey

doc = json.load(urllib.request.urlopen("https://myproductpassport.eu/p/3daf1fbb-004d-4881-8515-9571e900f3eb/integrity.json"))
keys = {k["key_id"]: k["public_key"] for k in json.load(urllib.request.urlopen("https://myproductpassport.eu/.well-known/mpp-integrity-keys.json"))["keys"]}
prev = None
for r in doc["records"]:
    line = "\n".join([doc["schema"], doc["passport_uuid"], str(r["sequence"]), r["content_hash"], r["previous_hash"] or "", r["recorded_at"]])
    assert hashlib.sha256(line.encode()).hexdigest() == r["chain_hash"] and r["previous_hash"] == prev
    Ed25519PublicKey.from_public_bytes(base64.b64decode(keys[r["key_id"]])).verify(base64.b64decode(r["signature"]), r["chain_hash"].encode())
    prev = r["chain_hash"]
print("verified", len(doc["records"]), "records")

Nospiedums aptver visu ierakstu, tostarp ierobežotas piekļuves informāciju un katra pievienotā dokumenta jaucējvērtību, tāpēc tas pierāda, ka ieraksts nav mainīts, neatklājot tā saturu. Tas parāda, ka pase nav mainīta kopš tās ierakstīšanas; tas neapliecina, ka tajā esošā informācija ir pareiza, par ko joprojām atbild ekonomikas dalībnieks, kas to publicējis.