1. 탭 루트(Tap root), 슈노르 서명

1.1. 탭 루트

  • 정의 : 비트코인의 스크립트를 개선하여 프라이버시를 향상시키고 복잡한 트랜잭션과 관련된 요소를 개선하기 위한 소프트 포크
  • 등장배경
    • 비트코인의 확장성과 더불어 프라이버시 보안 강화를 위해 생겨남
  • 속한 기술 : 슈노르 서명
  • 장점
    • 전송 데이터 감소
    • 블록당 더 많은 트랜잭션 처리 가능
    • 수수료 줄어듬
    • 프라이버시 기능 향상
    • 서명을 더이상 변경할 수 없다.
    • 스마트 컨트랙 지원
      • 라이트닝 네트워크로의 호환이 좋아짐

1.2. 슈노르 서명

  • 정의 : 비트코인 트랜잭션 내에 다수의 키를 포함할 수 있고 단일하고 고유한 서명을 만들수 있다.
    • 예를들어 하나의 금고를 열수 있는 10개의 키가 있는데 10개의 키는 부피를 많이 차지하니 하나의 키로 만들자라는 취지에서 만들어짐
    • 용량이 줄어 블록에 더 많은 정보를 담게할 수 있음 (속도가 빨라짐)

2. SPV, 블룸필터

2.1. SPV

  • SPV(Simplified Payment Verification)
    • 전체 블록을 다운받지 않고 특정 거래를 검증 (블록 헤더만 다운로드)
    • 해당 거래의 머클 경로를 검증함으로써 거래가 해당 블록에 있음을 증명
    • 문제점
      • 특정 거래가 존재하는것은 검증가능하나, 특정 거래가 존재하지 않는다는것은 검증 불가
        • 전체 블록을 다운받지 않기 때문에..
      • 이중지불에 취약
      • DoS 공격에 취약
      • 사생활 침해의 문제
        • SPV노드는 자신과 연결된 풀 노드에게 블록헤더와 자신이 필요한 거래 내역을 요청
        • 거래를 요청하는 과정에서 나의주소가 드러나 사생활 침해의 우려가 있음
        • 블룸필터로 사생활 침해의 문제를 해결

2.2. 블룸필터

  • 블룸필터 (확률적 검색 필터)
    • 찾는 정보가 무엇인지 정확히 명시하지 않고도 원하는 패턴에 부합하는 정보를 찾을 수 있도록 함
      • SPV노드의 원하는 거래의 모든 정보를 공개하지 않으면서 해당 거래를 찾을 수 있도록 해줌

3. DAG(Directed Acyclic Graph)

  • DAG(방향성 비순환 그래프) : 한 트랜잭션이 다음 트랜잭션을 증명해 주는 방식
  • DAG는 블록체인이 아님!!!
  • 특징
    • 블록체인에 적용하게 되면 블록체인의 3.0세대라고 불리고 있음
    • 트랜잭션들이 서로를 참조해서 유효성을 검증
  • 장점
    • 블록 생성 없이 트랜잭션이 다음 트랜잭션을 검증하기 때문에 속도가 빠르다.(채굴자의 승인 불필요)
    • PoW방식이 아니기 때문에 수수료가 없다
    • 용량을 정해놓지 않았기 때문에 확장성 문제에서 자유롭다.

4. DHT(Distirbuted Hash Table)

  • DHT(분산 해시 테이블)
  • 정의 : 해시 테이블을 활용해, 키-값 쌍 방식으로 데이터를 검색하는 자료구조
  • 해시 테이블과 차이점
    • 해시 테이블 : KEY-VALUE
    • 분산 해시 테이블 : KEY(파일명) - VALUE(위치)
  • 특징
    • (장점) 분산해시테이블은 분산화라는 장점이 있어서 네트워크의 부하를 억제하면서 콘텐츠를 빠르고 정확히 검색할 수 있는 장점이 있습니다.
    • (단점) 그러나 실질적으로 구현하는데 어려움
  • 적용
    • P2P네트워크
    • IPFS

5. IPFS

  • IPFS(InterPlanetary File System)
    • 분산형 파일시스템에 데이텅를 저장하고 인터넷으로 공유하기 위한 프로토콜
    • P2P(peer-to-peer) 네트워크 (토렌트)
  • 전 세계 여러 컴퓨터에 분산저장된 데이터조각을 가져온 후 하나로 합쳐서 보여주는 방식
  • IPFS사용 시 해당 컴퓨터는 필요한 파일 다운로드 동시에 파일을 나누어주는 역할을 함(p2p)
  • 방식
    1. 파일의 크기를 256kb단위로 쪼개어 여러개의 IPFS개체에 저장
    2. 쪼개진 개체들의 링크만 담은 IPFS개체가 시스템에서 만들어짐 (쪼개진걸 하나로 합침)
  • 단점
    • 피어들이 없으면 유지할 수 없음(그래서 만들어진게 파일코인)

6. 프루닝

  • 정의 : 인공 지능 분야에서 검색 모델을 학습한 후에 불필요하거나 중요도가 낮은 노드 등을 제거하는 기술

6.1. 비트코인 프루닝

  • 비트코인 프루닝을 해야하는 이유(실제 가지치기를 해야하는 시기에 대입한 비트코인 프루닝)
    • Case1) 죽거나 시든 가지가 보일 때 : 죽은 가지는 안으로 썩어들어가서
      • In Bitcoin)
        비트코인 노드가 블록체인의 사본을 보관하고 네트워크를 실행할 때 하나의 문제가 생기면 많은 스토리지를 낭비하게 된다. 이로인해서 디스크 공간 차지, 느린 인터넷 연결 속도, 그로 인해 많은 사람이 노드를 소유할 수 없게 만듬
    • Case2) 너무 쑥쑥 자라거나 웃자랄 때 : 화분의 크기는 정해져 있는데, 너무 커지지 않게 하기 위해서
      • In Bitcoin)
        2009년 부터 지금까지 ‘블록체인 크기의 가속화된 성장’으로 인해 프루닝 기술이 필요한 상황
    • Case3) 겹치는 잎이 많아질 때 : 겹치면 햇빛을 받지못하는 가지가 생김
      • In Bitcoin)
        블록체인의 전체를 저장하는 것은 사용처에 따라서 비효율적인 부분이 있다.
  • 비트코인 프루닝 방법
    • ‘블록 파일 프루닝'이라고 해서 작은 버전의 ‘풀 블록체인'을 실행 할 수 있도록 만들었다.

6.2. 이더리움 프루닝

  • 이더리움 프루닝을 해야하는 이유
    • 이더리움에는 계정들이 모여있는 글로벌 상태라는 거대한 데이터 구조가 있는데, 이 계정들이 2억개가 넘어가면서 과부하가 온다.
  • 이더리움 프루닝 방법
    • 머클 패트리샤 트리(상태전이 일반 머클 확장 패트리샤 트리)
      • 기존의 노드 중에서 안쓰는 노드를 재활용하는 등의 새로 삽입되는 노드의 수를 최소화
    • 스테이트 트리 프루닝(메인넷 적용x)
      • 캐시에 저장된 노드와 DB에 저장된 노드를 선별하여 프루닝(삭제) 진행
    • Fast Sync(현재)
      • 유효한 노드만 관리하는 방법
  • 이더리움 프루닝 한계
    • 사용자 계정을 지운다는 것은 어려움.
    • 프로그램의 비정상 종료로 인해 스테이트 트리가 비정상적인 상태가 되면 복구할 방법이 없음 → 결국 이 방법(스테이트 트리 프루닝)은 메인넷에 적용x
profile
취미로 개발하기 @wonyongkoon

0개의 댓글