탭루트
탭루트란?
- 비트코인의 스크립트를 개선하여 프라이버시를 향상시키고 복잡한 트랜잭션과 관련된 요소를 개선하기 위한 소프트 포크 업그레이드
- 비트코인은 퍼블릭 블록체인이기 때문에 다중서명 트랜잭션을 보낼때 누가 서명했는지 확인 가능 => 프라이버시 확보 x
- 이런 단점 해결을 위해 탭루트는 스크립트 사용 => 다중 서명 트랜잭션을 생성해도 일반적인 트랜잭션처럼 하나로 보이게 되며 주소만 확인가능
슈노르 서명이란?
- 클라우스 슈노르가 개발한 암호학적 서명체계
- 사토시 나카모토가 채택한 서명체계 => ECDSA (타원 곡선 디지털 서명 알고리즘)
- 하지만 ECDSA는 다중서명시 트랜잭션의 크기가 매우 커짐, 블록애 들어갈 수 있는 트랜잭션 개수가 줄어듦
- 슈노르 서명은 다중서명된 트랜잭션에 있는 여러 서명을 하나로 만듦
- 서명 통합이라고도 함
탭루트 장점
- 다중 서명 시, 프라이버시 향상
- 블록체인에 저장해야 하는 데이터 양을 줄임
- 블록당 더 많은 트랜잭션 처리 (TPS 향상)
- 더 저렴한 트랜잭션 수수료
- 서명 변경 불가
블룸필터
- 특정 원소가 집합에 속하는지 검사하는데 사용할 수 있는 확률형 자료구조
- 통계적 특성: 원하는 패턴이 무엇인지 정확하게 규정할 필요 없이 원하는 패턴을 설명하는 방식
- 프라이버시를 보호하면서 검색 패턴을 구현하기 위한 효율적인 방법을 제공
특징
- 거짓-긍정 확률이 존재한다
- 길이 N의 이진 배열 (Binary Array)과 1~N까지의 출력값을 갖는 J개의 해시함수를 가지고있음; N과 J를 조절해서 정확도와 프라이버시 보호수준을 조절가능
- 오탐지율이 존재하기 때문에 결정적 결과 대신 부정확한 결과를 얻을 수 있음
- False Negative (거짓-부정, 존재하지만 부정하는것)은 존재하지 않는다고 보장가능
- False Positive (거짓-긍정, 존재하지 않지만 있다고 하는것)도 존재가능
- 제거가 불가능
블룸필터 동작방식
사용 예시
- 처리능력 대비 적은 메모리 공간을 필요로 하는 장점 때문에 DB 이외에도 많이 사용됨
- IP 주소 검색 및 차단 필터링
- 문자열 맞춤법 교정
- 가상화폐
- 라우터
- 크롬 브라우저
- 빅데이터 환경
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: 다수의 해시함수를 만들어 특정한 장소에 넣어놓고 무작위로 해시함수를 선택
해시충돌을 해결하는 법
- 개방 연결법
- Linear Probing
- Quadratic Probing
- Double Hashing Probing
- 분리 연결법
DHT (Distributed Hash Table)
=> 해시테이블을 활용해 키-값 쌍 방식으로 데이터를 검색하는 분산형 데이터베이스
=> P2P 환경에서 데이터 분산 저장시 사용
IPFS (InterPlanetary File System)
=> 분산형 파일시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 P2P 네트워크 프로토콜
프루닝
=> 경량화 기법의 하나로, 인공지능 분야에서 검색모델을 학습한 후에 불필요하거나 중요도가 낮은 노드를 제거하는 기술 (가지치기)
블록체인에서의 프루닝
- 블록체인에서 오래된 데이터를 자동으로 삭제하기 위해 사용