> For the complete documentation index, see [llms.txt](https://doc.cryptostone.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.cryptostone.org/crypto-stone/crypto-stone-wp-kr/mining-system/21_proof_of_mining_pom-_.md).

# 21 PoM 누적

CryptoStone은 단순한 포인트 또는 크레딧 방식이 아니라, 비트코인의 Proof-of-Work 개념을 디지털 보석 채굴 구조에 맞게 추상화한 Proof of Mining, PoM 모델을 사용한다.

PoM은 사용자가 특정 스톤 풀에 STONX를 스테이킹하고, 시간이 지남에 따라 누적한 채굴 작업량을 의미한다. PoM은 별도로 전송되거나 거래되는 토큰이 아니라, 사용자의 채굴 참여와 시간 경과를 컨트랙트가 기록하는 온체인 작업량 지표이다.

사용자 (i)의 특정 스톤 풀 (j)에 대한 PoM 값은 다음과 같이 시간에 따라 누적된다.

$$
PoM\_{i,j}(t + \Delta t) = PoM\_{i,j}(t) + P\_{i,j} \times \Delta t
$$

예를 들어 100,000 STONX를 Flexible 조건으로 Diamond Pool에 스테이킹한 사용자의 마이닝 파워는 다음과 같다.

$$
P\_{i,Diamond} = 100,000 \times 1.00 = 100,000
$$

해당 사용자가 100,000초 동안 대기했다면 누적되는 PoM 값은 다음과 같다.

$$
PoM = 100,000 \times 100,000
$$

$$
PoM = 10,000,000,000
$$

사용자의 누적 PoM 값이 해당 풀의 필요 PoM 임계값 이상이 되면 Gem NFT를 claim할 수 있다.

$$
PoM\_{i,j}(t) \ge R\_j
$$

Gem NFT가 claim되면 사용자의 해당 풀 PoM 값에서 필요한 임계값 (R\_j)가 차감된다.

$$
PoM\_{i,j,new} = PoM\_{i,j,old} - R\_j
$$

이 구조는 사용자가 임계값을 초과하여 누적한 PoM을 불필요하게 소멸시키지 않는다. 예를 들어 필요한 PoM 임계값이 22,000,000,000이고, 사용자가 23,000,000,000 PoM을 보유한 상태에서 Gem NFT를 claim하면, claim 이후 1,000,000,000 PoM은 다음 채굴을 위한 잔여 PoM으로 유지된다.

PoM은 각 스톤 풀별로 독립적으로 누적된다. Diamond Pool에서 누적된 PoM은 Diamond NFT claim에만 사용될 수 있으며, Ruby Pool 또는 Sapphire Pool의 PoM으로 전환될 수 없다. 이 구조는 각 스톤 풀의 독립성, 희소성, 채굴 난이도를 보호한다.

사용자가 특정 풀에서 STONX를 unstake하더라도, 이미 누적된 PoM은 해당 풀에 기록된 상태로 유지될 수 있다. 다만 unstake 이후에는 해당 풀에서 사용자의 Mining Power가 0이 되므로 추가 PoM은 누적되지 않는다. 사용자가 다시 같은 풀에 STONX를 스테이킹하면 기존 PoM에 이어서 새 PoM이 누적된다.

사용자가 같은 풀에 STONX를 추가로 스테이킹하는 경우, 기존 PoM은 유지되며 추가 스테이킹 이후의 Mining Power만 증가한다. 반대로 스테이킹 수량을 줄이는 경우, 기존 PoM은 유지되지만 이후 누적 속도는 감소한다.

PoM은 외부로 양도되거나 거래될 수 없으며, 다른 스톤 풀로 이전될 수 없다. 이는 PoM이 자산 자체가 아니라, 특정 풀에서 특정 사용자가 실제로 채굴 참여를 통해 축적한 작업량 지표이기 때문이다.


---

# 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://doc.cryptostone.org/crypto-stone/crypto-stone-wp-kr/mining-system/21_proof_of_mining_pom-_.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.
