코드스테이츠 블록체인 교육 - 블록체인 분산원장(8/25)

Imomo·2022년 10월 13일
0

블록체인교육

목록 보기
25/26

📖 Achivement Goals

  • 분산 데이터베이스와 분산 원장에 대해 이해할 수 있다.

  • 분산 데이터베이스의 특징과 장단점을 이해할 수 있다.

  • 분산 데이터베이스의 대표적 기술인 클러스터링, 레플리케이션, 샤딩을 이해할 수 있다.

  • 분산 데이터베이스와 블록체인의 차이점을 이해할 수 있다.

  • 분산 원장 기술에 대해 이해할 수 있다.

  • 세그윗의 동장 방식을 이해할 수 있다.

  • 세그윗이 어떤 문제를 해결했는지 이해할 수 있다.

  • 머클트리의 동작 방식을 이해할 수 있다.

  • 블록체인에서 머클트리가 어떻게 동작하는지 이해할 수 있다.

📚 분산데이터베이스

✅ 분산데이터베이스의 대표적 기술

  • 클러스터링
    두개의 서버를 두어서 하나의 서버가 죽어도 계속해서 사용가능한 상태로 만들어두는 방법
  1. 장점
    데이터베이스 서버 하나가 죽어도 다른 서버가 역할을 대신할 수 있어서 지속 서비스 제공가능
    서버가 여러 대이기 때문에 성능적으로 유리하다
  2. 단점
    데이터베이스는 1개이기에 병목현상 발생가능
    서버 여러 대를 동시에 운영해야 하기 때문에 비용이 많이 들어간다.
  • 레플리케이션
    저장된 데이터가 손실되면? -> 데이터베이스 스토리지를 여러개로 만드는 방법
  1. 장점
    데이터베이스 Read(Select) 성능을 높일 수 있다.
    비동기 방식으로 운영되어 지연시간이 거의 없다.
  2. 단점
    각 노드 간의 데이터 동기화 보장이 어려움
    Master 노드가 다운되면 복구 및 대처가 어려움
  • 샤딩
    데이터가 너무 많아서 검색 성능이 좋지 않은데 더빠르게 하려면? -> 테이블을 나누어서 저장하자
  1. 장점
    서버의 수평정 확장이 가능
    스캔 범위를 줄여주기 때문에 쿼리 반응 속도가 빨라진다.

  2. 단점
    각 노드 간의 데이터 동기화 보장이 어려움
    Master 노드가 다운되면 복구 및 대처가 어려움

  • Shard key 결정 방식에 따른 샤딩 방벙 종류
  1. 해시 샤딩
  2. 다이나믹 샤딩
  3. 엔티티 그룹 샤딩

✅ 분산 데이터베이스 투명성

✅ 분산 데이터베이스의 특징

  • 투명한 분산
    분산 데이터베이스를 사용할 때는 마치 하나의 데이터베이스를 사용하는 것처럼 CRUD 작업을 수행할 수 있어야 한다.
    따라서 분산 데이터베이스를 구현할 때는 하나처럼 사용하되, 실제로는 분산된 형태를 가질 수 있도록 해야 하기 때문에 구현 방법이 복잡하다.

  • 투명한 트랜잭션
    각 트랜잭션은 다중 데이터베이스에 걸쳐 일관성을 보장해야 한다. 트랜잭션은 일반적으로 여러 하위 트랜잭션으로 분리된 개별 서브 트랜잭션이 하나의 데이터베이스에 대응한다.

✅ 분산 데이터베이스의 장단점

✅ 분산 데이터베이스와 블록체인의 차이점

(퍼블릭 블록체인을 기준으로 한다.)

  1. 악의적인 사용자를 전제하고 만들어진 시스템(합의 알고리즘)
  2. 운영 주체가 사라져도 시스템 유지 가능(거버넌스)

📚 세그윗

Segregated Witness의 약자로서, 비트코인의 블록에서 디지털 서명 부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트웨어 업그레이드를 말한다.
기존의 비트코인의 블록 구조는 다음과 같다.

디지털 서명 데이터를 별도의 공간에 저장하고, 대신 블록에 더 많은 트랜잭션을 담자는 세그윗이라는 제안이 나왔다.
세그윗의 특징

  • 거래 속도의 확장성을 해결
  • 거래 가변성 문제를 해결
  • 버전 호환

📚 머클트리

여러 데이터에 대해 단계적으로 해시함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조
머클 트리는 블록체인에 있는 데이터의 위변조를 방지하고,데이터가 변하지 않았음을 보장하는 데 사용된다.

✅ 머클 트리 무결성 보장 방법

데이터 C가 변경될 경우 머클 루트 값까지 전부 바뀌게 된다.

머클 트리는 해시 함수의 충돌저항성을 활용하여 여러 데이터의 집합 중 단 하나라도 변경되었는지 찾을 수 있다.

✅ 비트코인의 블록 구조

블록 헤더의 머클 루트는 어떻게 나온 값인가?

트랜잭션을 사용해 머클 트리를 만들고,그 결과를 나온 머클 루트 값이다.

0개의 댓글

관련 채용 정보