{"protocol":"veradata-zkp-v1","commitment_algorithm":"SHA256","commitment_format":"sha256:<hex>","normalization_steps":["1. Unicode NFKD normalization","2. Convert to ASCII (ignore non-ASCII)","3. Lowercase","4. Collapse multiple spaces to single space","5. Strip leading/trailing whitespace"],"commitment_formula":"SHA256(normalized_name + ':' + salt)","salt_requirements":"Random string, minimum 16 characters, client-generated","example":{"original_name":"García López","normalized":"garcia lopez","salt":"my-random-salt-16chars","commitment":"sha256:<SHA256('garcia lopez:my-random-salt-16chars')>"},"python_client_code":"import hashlib, unicodedata, secrets; normalize = lambda n: ' '.join(unicodedata.normalize('NFKD',n).encode('ascii','ignore').decode().lower().split()); salt = secrets.token_hex(16); commitment = 'sha256:' + hashlib.sha256((normalize(name)+':'+salt).encode()).hexdigest()","privacy_guarantee":"Your name never leaves your system. VeraData only sees the commitment hash.","compliance":["GDPR_ART25","LGPD_ART46","EU_AI_ACT_ART12","EU_AI_ACT_ART13"]}