20 — 전체 사슬 검증 — 처음부터 다시 계산하기
이 단계의 핵심은 블록을 만든 프로그램의 기억을 믿지 않는 것입니다. 검증기는 사슬 데이터만 받아 창세 상태에서 시작하고, 같은 규칙을 독립적으로 다시 실행해야 합니다.
니드모어코인 검증기는 다음을 다시 확인합니다.
- 블록 높이가 순서와 맞는가?
이전 해시가 직전 블록의 실제 해시와 같은가?- 저장된 블록 해시를 다시 계산했을 때 같은가?
- 해시가 작업증명 목표를 만족하는가?
- 거래 증명이 정확한 거래 문맥에 맞는가?
- 거래 금액, 잔액, 수수료, 거래번호 규칙을 만족하는가?
- 검증된 거래만 상태에 적용했는가?
- 채굴 보상만큼만 총 발행량이 증가했는가?
- 마지막에 모든 잔액 합이 총 발행량과 같은가?
고급 한국어 예제의 사슬검증 함수와 고급 영어 예제의 validate_chain 함수가 이
과정을 자료구조와 함수로 명확하게 보여 줍니다.
nme 실행 examples/needmorecoin-advanced.ko
nme 실행 examples/needmorecoin-advanced.en
문장형 한국어 버전은 Python 자료구조를 쓰지 않고 별도의 검증... 변수들에 같은
상태를 다시 구성해 원리를 보여 줍니다.
합의와 검증은 같은 말이 아니다
이 예제는 단일 노드 사슬 검증 핵심을 구현합니다. 여러 노드가 경쟁하는 사슬 중 하나를 선택하는 네트워크 합의까지 구현했다고 주장하지 않습니다. 실제 네트워크로 확장하려면 P2P 전파, 포크 선택 규칙, 재구성, 난이도 조정, 영구 저장, 자원 제한, 테스트넷과 보안 감사가 별도로 필요합니다.
그 구분이 중요한 이유는 “내 체인이 유효하다”와 “분산된 여러 노드가 같은 체인을 선택한다”가 서로 다른 문제이기 때문입니다.
여섯 문법 버전을 한 번에 비교하고 직접 코인을 확장하려면 니드모어코인 전체 가이드를 이어서 보세요.