# Zero Knowledge in Ultimate Digits

User's real-world mobile number, linked to their crypto wallet via Ultimate Digits, is changed.

*Zero-Knowledge Proofs (ZKPs) and Chain of Custody*

1. The user employs a zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) protocol to produce a proof, which confirms knowledge of both old and new mobile numbers without revealing them.
2. This ZKP is then hashed using a cryptographic hash function (SHA-256) and stored in the Chain of Custody ledger.

*Time-Lock*

The change request initiates a smart contract, which puts the change request in a pending state for a predetermined time period (72 hours) using Ethereum's block.timestamp to track the start and end of the locking period.

*Notifications*

Utilizing Ethereum's event logging functionality, an event is emitted when the change is queued. Our internal service (using oracles listening to these events) then sends out the alerts to users’ Ultimate Digits apps.

*Decentralized Reporting*

Nodes running the Ultimate Digits protocol continually validate the Chain of Custody against consensus rules. Any discrepancies trigger alerts in the network, potentially leading to transaction rollbacks or other corrective actions.

The user sells the virtual number NFT to a different user.

*Zero-Knowledge Proofs (ZKPs) and Chain of Custody*

1. The transfer of an NFT involves a zk-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge) to prove ownership without disclosing the ownership details.
2. Post validation, this ZKP is hashed and recorded on the Chain of Custody blockchain.

*Time-Lock*

A smart contract manages the NFT transfer, enforcing a time-lock using Ethereum's block.timestamp to ensure a verification period.

*Notifications*

An Ethereum event is emitted upon a queued NFT transfer, prompting our internal service (using oracles listening to these events) to send out the alerts to users’ Ultimate Digits apps.

*Decentralized Reporting*

Any illicit attempt to double-spend the NFT or breach the protocol is flagged by consensus nodes, ensuring that NFTs remain unique and untampered.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ultimatedigits.com/zero-knowledge-in-ultimate-digits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
