개요
NeuroChain은 AI 네이티브 보안 Layer 1입니다. AI는 몇 군데의 명확히 정의된 지점 — 배포 전 컨트랙트 감사와 mempool에서의 트랜잭션 이상 징후 점수화 — 에서 프로토콜에 참여하며, 블록의 최종 확정 여부를 결정하는 지점에는 절대 관여하지 않습니다.
무엇이 다른가
| 기능 | 하는 일 | 참고 문서 |
|---|---|---|
| VMGuardian | 모든 WASM 컨트랙트를 배포 전에 감사하고(규칙 엔진 + 내장 신경망), 배포된 컨트랙트도 계속 재감사합니다. | VMGuardian |
| Sentinel | 들어오는 모든 트랜잭션의 이상 징후를 점수화합니다. 선택적인 정책 계층은 거부하는 대신 트랜잭션을 보류하거나 확인을 요청할 수 있습니다. | Sentinel |
| NeuroWASM | CosmWasm / NEAR 수준의 컨트랙트 API입니다. 컨트랙트가 AI 결과(점수, 인증서, 신뢰 목록)를 읽을 수 있게 하는 호스트 함수는 계획되어 있습니다. | NeuroWASM |
| 네이티브 계정 추상화 | AI 에이전트를 위한 스폰서 가스와 세션 키 — 위에 덧붙인 것이 아니라 계정 모델에 내장되어 있습니다. | 계정 추상화 |
| 양자 내성 서명 | 모든 계정과 모든 검증자가 ML-DSA-65(Dilithium3, FIPS 204)로 서명합니다. | 주소 |
| 아이덴티티 | 주소는 그대로 유지되면서, 그 주소를 제어하는 키는 교체할 수 있습니다. | 아이덴티티 |
| 양자 내성 헤더를 갖춘 IBC v2 | 다른 체인(Cosmos 우선)으로의 전송과 보안 증명입니다. 상대 체인은 ML-DSA-65 서명으로 NeuroChain을 검증합니다. 실험적 | IBC v2와 샤딩 |
아키텍처
| 계층 | 기술 |
|---|---|
| 노드 | Rust, Tokio, RocksDB |
| 합의 | Malachite — Rust 라이브러리로 구현된 Tendermint BFT (합의) |
| 컨트랙트 | wasmi 인터프리터 위의 WASM, fuel 기반 가스 측정, 호스트 모듈 env |
| 서명 | 계정과 검증자 모두 ML-DSA-65 |
| AI 모델 | 노드에 컴파일되어 들어간 작은 신경망 (no_std, 외부 런타임 없음) |
| 게이트웨이 | Node.js + Fastify — 노드 앞단의 REST와 WebSocket |
| 웹 앱 | Quasar / Vue 3 (neurochain-web) |
트랜잭션이 이동하는 방식
- 지갑이 ML-DSA-65 키로
nc-tx-v2|from|to|value|nonce에 서명합니다 — 브라우저에서 WASM 모듈을 통해 수행됩니다. - 게이트웨이는 트랜잭션을 변경 없이 노드로 전달합니다.
- 노드는 서명, 주소가 해당 키에 속하는지, nonce와 잔액을 확인한 다음 Sentinel로 트랜잭션을 점수화합니다.
- 트랜잭션은 수수료 순으로 정렬되어 mempool에서 대기합니다(상태
pending). - 다음 제안자(proposer)가 이를 블록에 넣고 검증자들이 투표합니다. 스테이크의 2/3를 초과하는 쪽이 precommit하면 블록은 최종 확정됩니다.
- 모든 검증자가 블록을 똑같이 적용하여 같은 상태 루트에 도달합니다. 상태가
confirmed가 됩니다.
단위
체인상의 모든 금액은 uNRO 단위입니다: 1 NRO = 1 000 000 uNRO. API 응답에는 이미 포맷된 *_human 필드(예: balance_human)가 포함되어 있으니, 클라이언트에서 변환하지 말고 이 값을 표시하세요.
로컬 포트
퍼블릭 네트워크는 아직 운영되지 않으므로, 예제는 로컬 스택을 사용합니다.
| 서비스 | 기본 포트 | 재정의 |
|---|---|---|
| 노드 RPC | 9933 | NEUROCHAIN_RPC_PORT |
| 노드 P2P | 30333 | NEUROCHAIN_P2P_PORT |
| 게이트웨이 (REST + WebSocket) | 3000 | 게이트웨이 환경 변수 |
| 웹 앱 | 8080 | WEB_PORT |
| 문서 (이 사이트) | 5173 | DOCS_PORT |
결코 바뀌지 않는 프로토콜 규칙
- AI는 절대 투표권을 바꾸지 않습니다. 커밋 쿼럼은 스테이크의 2/3 초과입니다. AI는 검증자를 제외(jail 또는 slash로 투표권 0)할 수만 있고, 가중치를 더할 수는 없습니다. 합의를 참고하세요.
- 컨트랙트는 호스트를 통해 호출자를 식별합니다. 호출 페이로드의
caller필드가 아니라get_caller()를 사용하세요. - 금액은 uNRO 단위의 정수입니다. 잔액, 수수료, 스테이크에 부동소수점은 쓰지 않습니다.