# 주소

> NeuroChain 주소 형식과 유형 — 키에서 파생되는 무료 .human 지갑과 유료 .node, .app, .vault, .agent 이름 — 그리고 이름 규칙, 가격, 소유권 증명 방식을 설명합니다.

Source: https://docs.nro.world/ko/learn/addresses

모든 NeuroChain 주소는 `neuro:<name>.<type>` 형식입니다. 접미사가 주소의 종류를 나타냅니다.

| 접미사 | 무엇인가 | 얻는 방법 | 비용 |
|--------|----------|-----------|------|
| `.human` | 여러분의 지갑 | 시드 단어에서 파생 | 무료 |
| `.node` | 검증자 | `.human` 소유자가 등록 | `min_stake`(기본값 10 000 NRO), 검증자의 스테이크로 잠김 |
| `.app` | 스마트 컨트랙트 주소 | 배포 시 할당되거나, `.human` 소유자가 읽기 쉬운 이름으로 등록 | 배포: 배포 수수료만. 읽기 쉬운 이름: `min_stake`(기본값 10 000 NRO), 소각 |
| `.vault` | 다중 서명 트레저리 | `.human` 소유자가 등록 | `min_stake`(기본값 10 000 NRO), 소각 |
| `.agent` | AI 에이전트용 스마트 계정 (세션 키, 스폰서 가스) | `.human` 소유자가 등록 | 이름 길이에 따름, [가격](#name-prices) 참고 |

`min_stake`는 거버넌스 파라미터입니다. 기본값을 가정하지 말고 거버넌스 파라미터 API에서 현재 값을 읽으세요.

## 지갑 주소: `.human` {#your-wallet-address-human}

`.human` 주소는 공개 키로부터 계산되므로, 누구도 이를 등록할 수 없고 다른 누구도 소유할 수 없습니다.

![주소 파생: 시드 단어를 정규화하고 NC_KDF_v3 레이블과 함께 SHA3-256으로 해시하여 32바이트 시드를 만들고, 이 시드로 ML-DSA-65 키 쌍을 생성합니다. 주소는 공개 키의 SHA3-256 값 앞 15개 16진 문자입니다](/diagrams/ko/address-derivation.svg)

1. 시드 단어를 소문자로 바꾸고 공백 하나로 이어 붙입니다.
2. `seed = SHA3-256("NC_KDF_v3|" + words)` — 32바이트.
3. 시드로 **ML-DSA-65** 키 쌍(Dilithium3, FIPS 204)을 생성합니다.
4. `address = "neuro:" + SHA3-256(공개 키)의 앞 15개 16진 문자 + ".human"`.

같은 키 쌍이 주소를 정의하는 동시에 모든 트랜잭션에 서명합니다. 비밀번호는 브라우저 키스토어에서 시드를 암호화하는 데만 쓰이며, 주소나 키에는 아무 영향을 주지 않습니다.

**소유권 증명.** `.human` 주소에 대한 서명된 작업을 받아들일 때, 노드는 함께 전송된 공개 키로부터 주소를 다시 계산합니다. 일치하지 않으면 작업은 거부됩니다 — 레지스트리도, "먼저 등록한 키가 이긴다"는 규칙도 없습니다.

### 사용자 지정 `.human` 이름

지갑은 `neuro:alice.human` 같은 읽기 쉬운 이름을 구매할 수도 있습니다. 이 이름은 그것을 소유한 키 파생 주소의 **NFT이자 별칭**(alias)입니다:

- 이름으로 보낸 모든 것 — NRO, 자산, IBC 바우처, 컨트랙트 지급금 — 은 소유자의 키 파생 주소로 들어갑니다. 트랜잭션에는 여전히 보낸 대상 이름이 표시되며, 소유자의 기록에 나타납니다.
- 이름은 잔액을 갖지 않으며 절대 서명하지 않습니다. 자신의 이름으로 송금하는 것은 자기 자신에게 보내는 다른 전송과 마찬가지로 거부됩니다.
- 이름은 여러분의 주소 목록에 표시되고 다른 NFT처럼 양도할 수 있습니다. 지급은 다음 블록부터 새 소유자를 따라갑니다.
- 이름이 구매되기 전에 실수로 그 이름에 보내진 것은 구매자에게 넘어갑니다.

구매할 수 없는 이름도 있습니다: 15자 이상의 16진 문자로 된 이름(키 파생 주소의 형태를 띠어 다른 사람의 지급금을 가로챌 수 있음), [예약된 이름](#reserved-names), 그리고 누군가 의도적으로 만든 계정의 이름(genesis에서 자금이 지급되었거나, 키에 바인딩되었거나, 아이덴티티 레지스트리에 있는 계정)입니다. 가격은 길이에 따라 다릅니다 — [아래](#name-prices)를 참고하세요.

## 유료 이름: `.node`, `.app`, `.vault`, `.agent` {#paid-names-node-app-vault-agent}

유료 이름에는 자체 키가 없습니다. 이를 소유한 `.human` 지갑의 키로 제어됩니다. 소유자가 [아이덴티티](/ko/ai/identity)를 통해 키를 교체하면 제어권도 함께 따라갑니다. 소유자가 없는 유료 주소는 어떤 키도 받아들이지 않습니다 — genesis 검증자 역시 genesis 설정에 지정된 소유자 지갑이 운영하며, 그들의 합의 키는 블록 서명에만 쓰입니다.

| 유형 | 등록 시 하는 일 |
|------|-----------------|
| `.node` | 소유자에게서 `min_stake`를 차감하여 검증자의 **스테이크**로 기록합니다(언본딩 적용). 기본 커미션은 10%입니다. `.node` 주소만 합의 검증자가 됩니다. |
| `.app` | `min_stake`를 차감하여 **소각**하고, 읽기 쉬운 컨트랙트 이름을 예약합니다. (배포된 컨트랙트는 항상 자체 주소를 받습니다 — 아래 참고.) |
| `.vault` | `min_stake`를 차감해 소각하고, 소유자를 첫 번째 멤버로 하며 임계값이 서명 2개인 vault를 생성합니다. |
| `.agent` | 길이 기반 수수료를 차감하고 에이전트 스마트 계정을 기록합니다. 검증자가 아니며 스테이크를 보유하지 않습니다. |

### 배포로 생성되는 컨트랙트 주소

모든 배포는 컨트랙트를 `neuro:<10 hex>.app`에 생성합니다. 여기서 hex는 `SHA3-256(owner ‖ nonce)`의 앞 5바이트입니다(nonce는 8바이트 빅엔디언). 주소는 모든 검증자에서 같은 방식으로 계산되므로, 배포가 최종 확정되기 전에 미리 알 수 있습니다. [컨트랙트 배포](/ko/build/deploy)를 참고하세요.

유료 이름을 다른 소유자에게 양도하는 비용은 고정 **100 uNRO**(`NFT_TRANSFER_FEE`)입니다. 현재 값은 `GET /api/v1/gas/estimate`의 `nft_transfer_fee`로도 반환됩니다.

### 이름 가격 {#name-prices}

사용자 지정 `.human` 이름과 `.agent` 주소는 길이에 따라 가격이 매겨집니다 — 짧을수록 희소하므로 더 비쌉니다. 가격과 판매되는 가장 짧은 이름 길이는 [거버넌스 파라미터](./governance)입니다: `name_price_len_1` … `name_price_len_5`, `name_price_len_6plus`, `name_min_len`. 출시 시점에는 **5자 이상**의 이름이 판매되며, 더 짧은 이름은 투표로 열립니다. 기본값은 다음과 같습니다:

| 이름 길이 | 가격 |
|-----------|------|
| 1자 | 100 000 NRO |
| 2자 | 50 000 NRO |
| 3자 | 10 000 NRO |
| 4자 | 5 000 NRO |
| 5자 | 2 000 NRO |
| 6자 이상 | 500 NRO |

## 이름 규칙

등록되는 모든 이름에 적용됩니다:

- ASCII 문자, 숫자, 하이픈만 사용할 수 있습니다.
- 1자에서 32자까지.
- 하이픈으로 시작하거나 끝날 수 없습니다.
- 전체 주소는 `neuro:`로 시작해야 합니다.
- 고유성은 **전체 주소** 기준입니다: `neuro:foo.node`, `neuro:foo.app`, `neuro:foo.agent`는 모두 동시에 존재할 수 있고 서로 다른 소유자에게 속할 수 있습니다. 사용자 지정 `.human` 이름은 이미 `.node`가 사용 중인 이름을 가져갈 수 없습니다.
- 이름은 예약된 이름이 아니어야 합니다(아래 참고).

### 예약된 이름 {#reserved-names}

하나의 레지스트리가 모든 유료 주소 유형(`.human` 이름, `.node`, `.agent`, `.vault`, `.app`)과 자산 이름에 쓰이는 단어를 보호합니다. 일치 여부는 정확히, 대소문자를 구분하지 않고 판단합니다.

- 프로토콜 자체의 이름 — `system`, `nro`, `neurochain` — 은 항상 예약되어 있습니다.
- 그 외의 이름은 genesis 설정(`NEUROCHAIN_RESERVED_NAMES`)에서 지정되며, 이후에는 `REGISTRY_CHANGE` [투표](./governance)로만 변경됩니다. 항목에는 그 이름을 여전히 가져갈 수 있는 소유자를 지정할 수 있습니다. 예를 들어 브랜드 자체의 지갑입니다.

자산 티커에는 보호 티커라는 쌍둥이 레지스트리가 있습니다. 자산 이름에는 보호 티커나 예약된 이름도 포함될 수 없습니다.

## 시스템 주소

`neuro:system.*` 아래의 주소는 프로토콜이 예약합니다. 이들은 누군가 소유한 계정이 아니라 서명된 작업의 대상(`neuro:system.stake`, `neuro:system.node`, `neuro:system.name`, `neuro:system.deploy`, …)입니다.

## 함께 보기

- [아이덴티티](/ko/ai/identity) — 주소 뒤에 있는 키의 교체와 복구.
- [가스와 수수료](./gas) — 각 작업의 비용.
