개발저장소

[Ethereum] 이더리움 아키텍처 본문

Computer Science/Blockhcain

[Ethereum] 이더리움 아키텍처

개발소 2025. 5. 25. 17:24

1. 클라이언트 / 서버 아키텍처와 비교

 

출처: 인프런, "이더리움 입문 바이블: 모든 이더리움 입문자를 위하여"

 

 

서버 측 구성요소

 

  • 프로그래밍 언어: Java, C#, Ruby, Python 등
  • 호스팅 환경: AWS, Microsoft Azure, Google Cloud Platform, Heroku, VPS 등

 

클라이언트 측 구성요소

 

  • 프론트엔드: HTML/CSS/JavaScript
  • 접근 방법: 웹 브라우저, curl/wget(커맨드라인), API

 

중앙화된 아키텍처의 특징:

  • 하나의 중앙화된 웹 애플리케이션이 존재
  • 모든 클라이언트가 이 단일 애플리케이션과 상호작용
  • 요청-응답 흐름
    1. 클라이언트 → 서버 요청
    2. 서버가 요청 처리
    3. 데이터베이스/캐시와 상호작용 (읽기/쓰기/업데이트)
    4. 서버 → 클라이언트 응답 반환

 

 

2. 이더리움 탈중앙화 아키텍처

 

출처: 인프런, "이더리움 입문 바이블: 모든 이더리움 입문자를 위하여"

 

 

 

탈중앙화 구조의 특징

  • 모든 클라이언트가 애플리케이션의 자체 인스턴스와 통신
  • 중앙 서버가 존재하지 않음
  • 이상적인 탈중앙화 세계: 모든 사용자가 자신의 기기에 블록체인 전체 복사본 보유

 

현실적인 탈중앙화 솔루션

 

문제점: 모든 사용자가 블록체인 서버를 운영하는 것은 비현실적

 

해결책:

  1. 블록체인 호스팅 서비스 - 전문 업체가 노드를 대신 운영 (예: Infura, Alchemy)
  2. Metamask - 브라우저 지갑으로 원격 노드에 연결하여 가벼운 사용
  3. 경량 클라이언트 - 필요한 데이터만 다운로드하여 리소스 절약

→  개인이 풀 노드를 운영하지 않아도 탈중앙화 네트워크 참여 가능

 

 

 

3. 이더리움 블록체인의 구성 요소

1) 데이터베이스

  • 네트워크의 모든 트랜잭션을 블록체인에 저장
  • 애플리케이션 배포도 트랜잭션으로 간주
  • ex. 투표 애플리케이션에서 개별 투표 = 트랜잭션
  • 특징
    • 모든 트랜잭션이 공개되어 누구나 확인 가능
    • 데이터 조작 불가능
    • 작업증명(Proof of Work) 알고리즘으로 네트워크 보안 유지
    • 모든 노드가 동일한 데이터 복사본 보유

 

2) 코드

  • 스마트 계약(Smart Contract): 애플리케이션 로직 구현
  • Solidity: 스마트 계약 작성 언어 (가장 인기 있고 상대적으로 쉬움)
  • 개발 과정
    1. Solidity로 스마트 계약 작성
    2. Solidity 컴파일러로 이더리움 바이트코드(Ethereum Byte Code)로 컴파일
    3. 바이트코드를 블록체인에 배포

 

 

블록체인 = 데이터 저장 + 코드 저장 + EVM에서 코드 실행

 

 

 

'Computer Science > Blockhcain' 카테고리의 다른 글

[Ethereum] 이더리움이란?  (0) 2025.05.25