needmoreeasy EN 한국어
배우기

20 — 전체 사슬 검증 — 처음부터 다시 계산하기

★★★☆☆ (3/5)사슬 검증과 합의의 경계
선수 지식
18 — 작업증명, 19 — 거래 증명
결과물
창세 상태부터 모든 거래와 블록을 재실행하는 단일 노드 검증기

이 단계의 핵심은 블록을 만든 프로그램의 기억을 믿지 않는 것입니다. 검증기는 사슬 데이터만 받아 창세 상태에서 시작하고, 같은 규칙을 독립적으로 다시 실행해야 합니다.

니드모어코인 검증기는 다음을 다시 확인합니다.

  1. 블록 높이가 순서와 맞는가?
  2. 이전 해시가 직전 블록의 실제 해시와 같은가?
  3. 저장된 블록 해시를 다시 계산했을 때 같은가?
  4. 해시가 작업증명 목표를 만족하는가?
  5. 거래 증명이 정확한 거래 문맥에 맞는가?
  6. 거래 금액, 잔액, 수수료, 거래번호 규칙을 만족하는가?
  7. 검증된 거래만 상태에 적용했는가?
  8. 채굴 보상만큼만 총 발행량이 증가했는가?
  9. 마지막에 모든 잔액 합이 총 발행량과 같은가?

고급 한국어 예제의 사슬검증 함수와 고급 영어 예제의 validate_chain 함수가 이 과정을 자료구조와 함수로 명확하게 보여 줍니다.

nme 실행 examples/needmorecoin-advanced.ko
nme 실행 examples/needmorecoin-advanced.en

문장형 한국어 버전은 Python 자료구조를 쓰지 않고 별도의 검증... 변수들에 같은 상태를 다시 구성해 원리를 보여 줍니다.

합의와 검증은 같은 말이 아니다

이 예제는 단일 노드 사슬 검증 핵심을 구현합니다. 여러 노드가 경쟁하는 사슬 중 하나를 선택하는 네트워크 합의까지 구현했다고 주장하지 않습니다. 실제 네트워크로 확장하려면 P2P 전파, 포크 선택 규칙, 재구성, 난이도 조정, 영구 저장, 자원 제한, 테스트넷과 보안 감사가 별도로 필요합니다.

그 구분이 중요한 이유는 “내 체인이 유효하다”와 “분산된 여러 노드가 같은 체인을 선택한다”가 서로 다른 문제이기 때문입니다.

여섯 문법 버전을 한 번에 비교하고 직접 코인을 확장하려면 니드모어코인 전체 가이드를 이어서 보세요.

GitHub에서 이 문서 보기