NaiveChain: 200 줄 자바스크립트로 구현한 블록체인 기본 구조

Source

  • Evernote/Inbox/A blockchain in 200 lines of code – Medium.md

Summary

이 문서는 비트코인이나 이더리움과 같은 복잡한 개념을 배제하고, 블록체인의 핵심 구조를 200 줄의 자바스크립트 코드(NaiveChain)로 구현한 예시를 설명합니다. 주요 구성 요소는 인덱스, 타임스탬프, 데이터, 해시, 이전 블록 해시로 이루어진 블록 구조이며, SHA-256을 통해 데이터 무결성을 검증합니다. 메모리 기반 배열에 블록을 저장하며, 제네시스 블록은 하드코딩됩니다. 네트워크 동기화 및 충돌 해결을 위해 가장 긴 체인을 선택하는 규칙을 적용하며, 작업 증명(Proof of Work) 기반의 마이닝 과정은 포함되지 않습니다.

Key Points

  • 블록체인 본질: 순차적으로 기록되는 분산 데이터베이스의 단순한 구조 강조
  • 블록 구조: 인덱스, 타임스탬프, 데이터, 현재 해시, 이전 블록 해시 포함
  • 무결성 검증: SHA-256 해싱을 통한 데이터 변조 방지 (마이닝/PoW 미포함)
  • 저장 방식: 인메모리 자바스크립트 배열 사용, 제네시스 블록 하드코딩
  • 합의 알고리즘: 충돌 시 가장 긴 체인을 유효한 것으로 선택
  • 네트워크: 노드 간 블록 공유 및 동기화 규칙 정의