세그윗, 머클트리, 탭루트, 블룸필터, DAG

adc0612·2022년 10월 10일
0

블록체인

목록 보기
6/11

블록체인 문제점

블록체인의 시작이자, 세계 최초의 암호화폐인 비트코인은 매우 느리고 제한된 서비스였다.

  • 트랜잭션(거래 기록): 약 10분 단위로 저장(블록 생성)
  • 승인: 안전한 거래를 위해서는 최소 6번의 승인 필요

안전한 트랜잭션을 위해서는 약 1시간 이상 소요된다는 문제점이 있다.
또한 용량 문제도 있는데, 비트코인 블록은 약 1MB이다.

세그윗

  • 세그윗(SegWit) 이란 Segregated Witness의 약자로서, 비트코인의 블록에서 디지털 서명 부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트웨어 업그레이드를 말한다.
  • 고정된 블록의 가용 공간을 늘려서 속도를 개선하자는 것이 핵심이다.
  • 전체 블록 크기가 1MB인데, 디지털 서명데이터가 75%를 차지하고 있기에 별도의 공간에 저장하고, 대신 블록에 더 많은 트랜잭션을 담으려고 세그윗 제안이 나왔다.

비트코인에서 세그윗(Segwit)을 처음으로 활성화한 암호화폐는 그로스톨코인(Groestlcoin)이다.
세그윗을 진행할 경우 중국의 채굴업자들이 사용하던 에이식부스트(AsicBoost) 방식의 비트코인 채굴이 불가능해지므로 반대했다.

세그윗 장점

  • 거래 속도의 확장성(Scalability)

    • 비트코인은 1초에 7개 밖에 처리 못함 (Visa는 1초에 24000개)
    • 디지털 서명은 거래하기 위해 서명을 컴퓨터상에 숫자 등으로 암호화 한 것
    • 서명 데이터의 크기는 크지않지만, 서명란 자체 부피가 큼
    • 세그윗은 서명 부분을 따로 Witness라는 데이터 영역으로 분리해 더 많은 거래를 처리할 수 있도록 업데이트한다.
  • 거래 가변성 문제 (Transaction Malleability)

    • 비트코인 거래는 해당 거래를 식별할 수 있는 거래의 ID(Transaction ID : TXID)와 디지털 서명이 포함된다.
    • 거래 ID(TXID)만 변경하여 실질적인 거래 내용에는 변화가 없지만 새로운 거래를 만들어 낼 수 있는 일종의 버그가 존재한다.
    • 이러한 거래 가변선 문제를 해결하기 위해, 세그윗으로 TXID를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 여러 개를 만드는것을 방지 할 수 있다.
  • 버전 호환

    • 세그윗은 하드포크가 아닌 소프트 포크, 즉 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용버전을 모든 노드에서 사용 가능하다.
블록 용량 증가트랜잭션 속도 증가트랜잭션 가변성 해결
디지털 서명 데이터 분리더 많이 저장할 수 있는 블록을 통해 트랜잭션 속도를 증가서명이 더 이상 트랜잭션 데이터의 일부가 아니기 때문에 해당 데이터를 변경 불가
실질 블록 크기는 1MB에서 4MB까지 증가하나의 트랜잭션에 30달러 이상에서 1달러 미만으로 절감서명 조작 불가

머클트리

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

머클트리의 동작 방식

  1. 최초 데이터를 SHA256 형태의 해시값으로 변환한다.
  2. 가장 가까운 노드 두 개를 한 쌍으로 묶어 합친 후 해시값으로 변환한다.
  3. 계속해서 해시값으로 변환하여 마지막 하나(머클루트)가 남을 때까지 이 과정을 반복한다.

여러 데이터를 모아 만들어진 하나의 해시값을 ”머클 루트(Merkle Root)” 라고 합니다.
머클루트를 구하기까지 반복하게 되는 이 과정이 토너먼트 대진표의 모양으로 만들어지는데 이것을 머클트리 라고 부른다.

머클트리가 무결성을 보장하는 방법

머클트리의 데이터 중 하나라도 변경되면 다른 해시 값을 가지기 때문에 무결성이 보장된다.

해시함수는 서로 다른 입력에 대해 동일한 출력값을 가지지 않기 때문입니다. (이를 충돌저항성이라고 합니다.)

탭 루트(Tap Root)

  • 탭루트(Taproot)는 슈노르 서명(Schnorr Signatures)과 함께 세그윗 도입 이후 많은 기대를 모으고 있는 비트코인의 기술적 업그레이드다.
  • 탭루트의 특징은 프라이버시, 확장성, 보안을 강화하기 위해 비트코인 스크립트 작동 방식에 변화를 주는 것이다.
  • 탭루트(Taproot)는 비트코인의 스크립트를 개선하여 프라이버시를 향상시키고 복잡한 트랜잭션과 관련된 요소를 개선하기 위한 소프트 포크다.
  • 탭루트가 없었을 때는 누구나 다중 서명을 포함한 모든 비트코인의 트랜잭션 이동 과정을 살펴볼 수 있었습니다.
  • 트랜잭션에 여러 기능이 포함되더라도 탭루트로 인해 단일한 하나의 트랜잭션처럼 보이게 되며, 외부에서는 보내는 주소와 받는 주소만 확인할 수 있다.

슈노르 서명(Schnorr Signatures)

  • 탭루트는 슈노르 서명으로 구현이 가능했다.
  • 슈노르 서명은 독일의 수학자이자 암호학자인 클라우스 슈노르(Claus Schnorr)가 개발한 암호학적 서명 체계로 구성되어 있다.
  • 기존 비트코인의 서명체계는 타원 곡선 디지털 서명 알고리즘(ECDSA)이었다.
  • ECDSA는 각 트랜잭션마다 디지털 서명하여 트랜잭션 사이즈가 커질 수 있고, 커진 사이즈 때문에 블록에 트랜잭션을 넣을 수 있는 양이 많지 않았다.
  • 슈노르 서명의 주된 특징은 복잡한 비트코인 트랜잭션 내에 다수의 키를 포함할 수 있고, 단일하고 고유한 서명을 생성할 수 있다는 것이다. 즉, 트랜잭션에 포함된 다수의 주체가 진행한 서명이 단일한 슈노르 서명으로 통합된다.

탭루트 장점

  • 프라이버시 향상
  • 블록체인상에서 전송 및 저장해야 하는 데이터양의 감소
  • 블록당 더 많은 트랜잭션 처리(더 높은 TPS 비율)
  • 더 저렴한 트랜잭션 수수료
  • 서명 변경 불가능

블룸필터(Bloom Filter)

  • 특정 원소가 집합에 속하는지 검사하는 데 사용되는 확률형 자료 구조다.
  • 블룸 필터에 의해 어떤 원소가 집합에 속한다고 판단된 경우 실제로는 원소가 집합에 속하지 않는 긍정 오류가 발생하는 것이 가능하지만, 반대로 원소가 집합에 속하지 않는 것으로 판단되었는데 실제로는 원소가 집합에 속하는 부정 오류는 절대로 발생하지 않는다는 특성이 있다.
  • 통계적 특성을 가지고 있으며, 많은 양의 데이터를 줄여서 공간 효율적으로 빠르게 검색을 할 수 있다.
  • 블룸필터는 프라이버시를 보호하면서 검색 패턴을 구현하기 위한 효율적인 방법을 제공한다.

방향성 비순환 그래프(DAG, Directed Acyclic Graph)

  • 방향 크래프 중 순환이 발생하지 않는 그래프

암호화폐에서 DAG

  • DAG는 “블록" 개념이 존재하지 않으며, 그래프의 각 정점은 블록이 아닌 개별 트랜잭션이다.
  • 블록 개념이 없기 때문에 채굴 과정도 필요하지 않는다.
  • 대신, 트랜잭션들은 서로를 참조함으로써 해당 트랜잭션의 유효성을 검증한다.

DAG 특징

  • 트랜잭션 처리 속도
    기존 블록체인(비트코인)은 블록 생성이 10분에 한 번씩 이루어지므로 트랜잭션이 체인에 올라가기까지 약 10분이 걸리고 완전히 처리되려면 1시간 걸렸으나, DAG는 블록 개념이 없고 트랜잭션이 병렬적으로 처리되기 때문에 빠른속도로 트랜잭션이 처리된다.

  • 채굴이 없다
    DAG는 채굴과정 자체가 없으므로, 채굴자에게 낼 수수료도 없다.
    작업증명으로 인한 과도한 에너지사용도 없으므로 친환경적이다.

  • 확장성 문제에서 비교적 자유로움
    DAG는 트랜잭션이 늘어날수록 새로운 트랜잭션들이 이전 트랜잭션을 많이 검증할 수 있기 때문에 확장성 문제에서 자유롭다.

0개의 댓글