> For the complete documentation index, see [llms.txt](https://docs.xenblocks.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xenblocks.io/technicals/hashing/self-custodial-hashing.md).

# Self-custodial hashing

In most Proof of Work (PoW) systems, there are primarily two critical elements: the key and the hash. A vulnerability in such systems is the potential for someone to intercept mined blocks before they are verified and accepted by the blockchain. This interception could allow an attacker to reroute blocks without the ability to change the owner's address, simplifying the process of executing attacks on the chain by reordering blocks and claiming ownership.

<figure><img src="/files/wknKdMch45ROdAixUbSb" alt=""><figcaption></figcaption></figure>

However, such a scenario is not feasible with XenBlocks. In XenBlocks, all mined blocks are cryptographically signed with the miner's Ethereum address, ensuring that block theft is impossible. The only way for someone to take ownership of a block is if the original owner divulges their private key, providing a significant layer of security against block interception and unauthorized ownership changes.

<figure><img src="/files/nA57daOD1uGYtfPeJ3UM" alt=""><figcaption><p>Miner ETH address is used as SALT input when mining</p></figcaption></figure>

The Ethereum address is efficiently compacted into 27 bytes, which is quite minimal. Subsequently, the discovery of a hashed block is attributed to the address, signified by the Salt. Thus, when mining, your Ethereum address is utilized as the Salt. Unlike Bitcoin, which does not incorporate Salt in its SHA-256 algorithm, Argon2 does implement this feature, allowing for this added layer of association between mined blocks and the miner's address.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.xenblocks.io/technicals/hashing/self-custodial-hashing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
