블록체인 기술: 분산원장

요니·2022년 11월 15일
0

탭루트

탭루트란?

  • 비트코인의 스크립트를 개선하여 프라이버시를 향상시키고 복잡한 트랜잭션과 관련된 요소를 개선하기 위한 소프트 포크 업그레이드
  • 비트코인은 퍼블릭 블록체인이기 때문에 다중서명 트랜잭션을 보낼때 누가 서명했는지 확인 가능 => 프라이버시 확보 x
  • 이런 단점 해결을 위해 탭루트는 스크립트 사용 => 다중 서명 트랜잭션을 생성해도 일반적인 트랜잭션처럼 하나로 보이게 되며 주소만 확인가능

슈노르 서명이란?

  • 클라우스 슈노르가 개발한 암호학적 서명체계
  • 사토시 나카모토가 채택한 서명체계 => ECDSA (타원 곡선 디지털 서명 알고리즘)
  • 하지만 ECDSA는 다중서명시 트랜잭션의 크기가 매우 커짐, 블록애 들어갈 수 있는 트랜잭션 개수가 줄어듦
  • 슈노르 서명은 다중서명된 트랜잭션에 있는 여러 서명을 하나로 만듦
  • 서명 통합이라고도 함

탭루트 장점

  • 다중 서명 시, 프라이버시 향상
  • 블록체인에 저장해야 하는 데이터 양을 줄임
  • 블록당 더 많은 트랜잭션 처리 (TPS 향상)
  • 더 저렴한 트랜잭션 수수료
  • 서명 변경 불가

블룸필터

  • 특정 원소가 집합에 속하는지 검사하는데 사용할 수 있는 확률형 자료구조
  • 통계적 특성: 원하는 패턴이 무엇인지 정확하게 규정할 필요 없이 원하는 패턴을 설명하는 방식
  • 프라이버시를 보호하면서 검색 패턴을 구현하기 위한 효율적인 방법을 제공

특징

  1. 거짓-긍정 확률이 존재한다
  • 길이 N의 이진 배열 (Binary Array)과 1~N까지의 출력값을 갖는 J개의 해시함수를 가지고있음; N과 J를 조절해서 정확도와 프라이버시 보호수준을 조절가능
  • 오탐지율이 존재하기 때문에 결정적 결과 대신 부정확한 결과를 얻을 수 있음
  • False Negative (거짓-부정, 존재하지만 부정하는것)은 존재하지 않는다고 보장가능
  • False Positive (거짓-긍정, 존재하지 않지만 있다고 하는것)도 존재가능
  1. 제거가 불가능
  • 삽입만 가능하고 제거는 안됨

블룸필터 동작방식

사용 예시

  • 처리능력 대비 적은 메모리 공간을 필요로 하는 장점 때문에 DB 이외에도 많이 사용됨
  1. IP 주소 검색 및 차단 필터링
  2. 문자열 맞춤법 교정
  3. 가상화폐
  4. 라우터
  5. 크롬 브라우저
  6. 빅데이터 환경

DAG (directed acyclic graph)

순환그래프 (Cyclic Graph) vs. 비순환 그래프 (Acyclic Graph)

암호화폐에서의 DAG

일반적으로 암호화폐 플랫폼에서는 데이터구조로 블록체인을 사용하지만, 블록체인 대신 DAG를 사용하는 경우도 있음

  • 블록 개념이 존재하지 않으며, 그래프의 각 정점은 블록이 아닌 개별 트랜잭션
  • 채굴 필요 없음, 트랜잭션들이 서로를 참조함으로써 유효성을 검증

DAG의 특징

  • 블록체인은 블록생성이 10분에 한번씩 이루어지기 때문에 트랜잭션이 체인에 올라가기까지 10분이 소요되며 완전히 처리되기까지는 한시간 걸림
  • DAG는 블록개념이 없고, 트랜잭션이 선형적으로 처리되는 게 아니라 병렬적으로 처리되기 때문에 빠름
  • 확상성 문제에서 비교적 자유로움

DHT

해시테이블

  • 키를 입력값으로 해시함수를 사용하여 변환해서 키와 데이터를 저장하는 자료구조
  • 해시테이블에서 저장, 삭제, 검색 과정은 O(1)의 시간복잡도를 가지고 있어 데이터를 다루는 작업이 빠름
  • 데이터가 저장되기 전에 저장공간을 미리 만들어놔야되서 공간 효율성이 떨어짐
  • 저장, 삭제, 검색을 할때 index를 찾아 실행 O(1) => 충돌이 발생할 경우 전부 찾아봐야되서 O(N)

대표적인 해시 알고리즘

  • division method: number 타입의 키를 저장소의 크기로 나누어 나머지를 인덱스로 사용
  • digit folding: 키의 문자열을 아스키코드로 바꾸고 값을 합해서 인덱스로 사용
  • multiplication method: index = (KA mod 1) m
  • universal hashing: 다수의 해시함수를 만들어 특정한 장소에 넣어놓고 무작위로 해시함수를 선택

해시충돌을 해결하는 법

  1. 개방 연결법
  • Linear Probing
  • Quadratic Probing
  • Double Hashing Probing
  1. 분리 연결법

DHT (Distributed Hash Table)

=> 해시테이블을 활용해 키-값 쌍 방식으로 데이터를 검색하는 분산형 데이터베이스
=> P2P 환경에서 데이터 분산 저장시 사용

IPFS (InterPlanetary File System)

=> 분산형 파일시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 P2P 네트워크 프로토콜

프루닝

=> 경량화 기법의 하나로, 인공지능 분야에서 검색모델을 학습한 후에 불필요하거나 중요도가 낮은 노드를 제거하는 기술 (가지치기)

블록체인에서의 프루닝

  • 블록체인에서 오래된 데이터를 자동으로 삭제하기 위해 사용
profile
개발자가 될래요

0개의 댓글