거버넌스
프로토콜 파라미터 — 최소 스테이크, 보상, 가스 예산, slashing, AI 임계값 — 는 노드 운영자가 설정을 편집해서가 아니라 스테이크 가중 온체인 투표로 변경됩니다.
제안하기
| 규칙 | 값 |
|---|---|
| 누가 | 모든 주소의 서명된 요청. .human 제안자는 최소 min_stake 이상의 자기 스테이크를 보유해야 함 |
| 종류 | text(신호 전달만), PARAM_CHANGE(파라미터 하나 변경) 또는 REGISTRY_CHANGE(이름이나 티커 예약 또는 해제) |
| 투표 기간 | 100부터 max_voting_duration_blocks(기본값 1 000 000) 블록까지. 지정하지 않으면 1 000 |
| 제한 | 제목 200자, 설명 5 000자, 페이로드 10 KB |
PARAM_CHANGE는 변경 내용을 페이로드로 담습니다:
{ "param_key": "max_block_gas", "param_value": 20000 }값은 숫자 또는 숫자 문자열일 수 있습니다.
REGISTRY_CHANGE는 예약된 이름 레지스트리("registry": "names") 또는 보호 티커 레지스트리("symbols")의 항목을 예약하거나 해제합니다. 예약 시에는 그 항목을 여전히 가져갈 수 있는 소유자를 지정할 수 있습니다:
{ "registry": "names", "action": "reserve", "value": "binance", "allowed": ["neuro:<owner>.human"] }제안은 neuro:system.governance에 대한 서명된 작업입니다. 합의에 기록되므로, 모든 검증자가 같은 높이부터 동일한 제안을 보유합니다.
투표
- 자기 스테이크가 있는 주소만 투표할 수 있습니다. 투표 가중치는 투표가 적용될 때 체인 상태에서 읽은 투표자의 자기 스테이크입니다. 위임에는 투표권이 없습니다.
- 제안이 생성된 이후에 추가된 스테이크로는 그 제안에 투표할 수 없습니다 — 투표를 뒤집기 위해 스테이크를 사들이는 것을 막습니다.
- 제안당 주소별 한 표: 찬성 또는 반대이며, 번복할 수 없습니다.
- 투표는 합의에 기록되는 서명된 작업입니다.
결과
투표 기간이 끝나면:
| 확인 항목 | 기본값 | 제안 필드 |
|---|---|---|
| 쿼럼 — 찬성 + 반대 가중치 ≥ 전체 자기 스테이크의 이 비율 | 20% | quorum_bps = 2 000 |
| 임계값 — 찬성 가중치 > 투표된 표의 이 비율 | 50% | threshold_bps = 5 000 |
둘 다 충족 → passed, 그렇지 않으면 → rejected. 통과된 PARAM_CHANGE는 파라미터를 갱신합니다 — 단, 새 값이 해당 파라미터의 허용 범위를 벗어나면 변경이 거부되고 기존 값이 유지됩니다.
최종 처리 상태
실험적 제안 생성과 투표는 합의 안에서 실행됩니다. 제안 종료와 통과된 파라미터 변경의 적용은 현재 블록 커밋이 아니라, 각 노드가 제안 목록(GET /api/v1/governance/proposals)을 제공할 때 노드마다 이루어집니다. 최종 처리를 커밋 경로로 옮기는 작업은 계획되어 있습니다. 그때까지는 변경이 통과된 뒤 모든 검증자에서 파라미터를 확인하세요.테스트 방법: 노드의 test_apply_tx_governance_propose_and_vote_in_consensus가 제안과 투표의 적용을 다루며, 범위 검사는 파라미터 테스트(test_deploy_risk_threshold_governance, test_deploy_security_governance_override)가 다룹니다.
파라미터
현재 값: GET /api/v1/governance/params. 일부는 노드 시작 시 환경 변수로 노드별로 설정할 수도 있습니다 — 테스트 네트워크용입니다.
스테이킹과 합의
| 파라미터 | 기본값 | 허용 범위 | 환경 변수 재정의 |
|---|---|---|---|
min_stake | 10 000 NRO (uNRO 단위) | 1 ~ 10¹⁵ uNRO | — |
unbonding_blocks | 1 512 000 | 1 ~ 10⁹ | NEUROCHAIN_UNBONDING_BLOCKS |
base_apy_bps | 1 200 (12%) | 0 ~ 100 000 | — |
genesis_apy_bps | 2 400 (24%) | 0 ~ 100 000 | — |
reward_interval_blocks | 216 000 | 1 ~ 10⁹ | NEUROCHAIN_REWARD_INTERVAL_BLOCKS |
blocks_per_year | 78 840 000 | 1 ~ 10⁹ | — |
max_commission_bps | 2 000 (20%) | — | — |
max_block_gas | 10 000 | 1 ~ 10⁹ | — |
slash_fraction_double_sign_bps | 500 (min_stake의 5%) | 0 ~ 10 000 | NEUROCHAIN_SLASH_FRACTION_DOUBLE_SIGN_BPS |
slash_reward_fraction_bps | 100 (신고자에게 1%) | 0 ~ 10 000 | NEUROCHAIN_SLASH_REWARD_FRACTION_BPS |
slash_double_vote_bps | 500 | 0 ~ 10 000 | — |
jail_blocks | 10 000 | 1 ~ 10⁹ | NEUROCHAIN_JAIL_BLOCKS |
slash_evidence_window | 10 000 | 1 ~ 10⁹ | NEUROCHAIN_SLASH_EVIDENCE_WINDOW |
quorum_bps | 2 000 | 1 ~ 10 000 | — |
threshold_bps | 5 000 | 1 ~ 10 000 | — |
AI 보안
| 파라미터 | 기본값 | 허용 범위 | 의미 |
|---|---|---|---|
deploy_security_enabled | 1 | 0 또는 1 | VMGuardian 배포 전 게이트 켜기/끄기 (비상 스위치) |
deploy_risk_threshold | 80 | 0 ~ 100 | 위험 점수 ≥ 0.80이면 배포 거부 |
sentinel_enabled | 1 | 0 또는 1 | Sentinel 트랜잭션 점수화 켜기/끄기 |
sentinel_reject_threshold | 85 | — | 점수 ≥ 0.85이면 트랜잭션 거부 |
sentinel_policy_enabled | 0 | — | 단계별 정책 계층 (보류 / 확인) — 기본값 꺼짐 |
sentinel_hold_threshold | 60 | — | 전송이 보류되기 시작하는 점수 |
sentinel_stepup_threshold | 70 | — | 소유자 확인이 필요해지는 점수 |
sentinel_hold_blocks | 50 | — | 보류된 전송이 해제되기까지의 지연 |
sentinel_confirm_expiry_blocks | 1 000 | — | 환불 전 소유자 확인을 기다리는 기간 |
sentinel_agent_confirm_threshold | 60 | — | 세션 키 전송에 소유자가 필요해지는 점수 |
trust_activation_blocks | 300 | — | 새로 신뢰한 수신자가 적용되기까지의 지연 |
Sentinel 정책 파라미터에는 NEUROCHAIN_SENTINEL_*와 NEUROCHAIN_TRUST_ACTIVATION_BLOCKS 환경 변수 재정의도 있습니다. Sentinel을 참고하세요.
이름
| 파라미터 | 기본값 | 허용 범위 | 의미 |
|---|---|---|---|
name_min_len | 5 | 1 – 32 | 구매할 수 있는 가장 짧은 .human 이름 또는 .agent |
name_price_len_1 … name_price_len_5 | 100 000 · 50 000 · 10 000 · 5 000 · 2 000 NRO | 1 uNRO – 10⁹ NRO | 해당 길이 이름의 가격 |
name_price_len_6plus | 500 NRO | 1 uNRO – 10⁹ NRO | 6자 이상 이름의 가격 |
가격은 uNRO로 저장됩니다. 더 짧은 길이를 열면 그 길이의 모든 이름이 한 블록에서 열리므로, 제안에 개방 높이를 공지하세요.
네이티브 자산과 거래소
| 파라미터 | 기본값 | 의미 |
|---|---|---|
asset_issue_fee | 1 000 NRO | 네이티브 자산 발행 수수료 |
asset_max_decimals | 18 | 자산이 가질 수 있는 최대 소수 자릿수 |
dex_shard | 0 | 자산과 거래소 기록을 보관하는 샤드 |
거래소(AMM)에는 유동성 공급자 수수료, 프로토콜 수수료, 최소 유동성, 블록당 풀별 스왑 수, 비상 켜기/끄기 스위치에 대한 파라미터도 있습니다. REST 레퍼런스에 현재 값과 함께 나와 있습니다.
허용 범위의 대시(—)는 변경이 통과될 때 노드가 아직 그 파라미터의 범위를 검사하지 않는다는 뜻입니다 — 값을 신중하게 제안하세요.
API
| 동작 | 엔드포인트 |
|---|---|
| 제안 | POST /api/v1/governance/propose |
| 투표 | POST /api/v1/governance/:id/vote |
| 제안 목록 | GET /api/v1/governance/proposals?status=&limit=&offset= |
| 단일 제안 | GET /api/v1/governance/:id |
| 파라미터 | GET /api/v1/governance/params |