[블록체인 개념] 정리 5

hskim_·2022년 5월 14일
0
post-thumbnail

일반 분산원장과 블록체인 분산원장의 차이점

블록체인과 그외 다른 분산 원장 데이터베이스 모두, 거래 정보를 기록한 원장을 특정 기관의 중앙화된 서버가
아닌 분산화된 네트워크에서 참여자들이 공동으로 기록 및 관리하는 기술을 의미함. 그러나 블록체인은 분산원장에서 필요로 했던 인증기관 문제를 합의 알고리즘과 채굴, 노드로 문제를 해결하였고 국제 송금을 비롯한 대부분의 금융 서비스는 블록체인 도입을 통해 자동화율과 효율성을 높이고, 사고나 사기의 발생률을 낮출 수 있게됨.

머클 트리

머클트리는 일련의 데이터 온전성을 효과적으로 검증하는데 사용되는 구조. 커다란 파일을 다운로드 해야할 때, 오픈 소스 소프트웨어를 통해 다운로드하고자 하는 파일의 해시가 개발자에 의해 공개된 것과 일치하는지를 확인할 때에는 두 해시 값이 일치하는지를 비교하여 다운로드 파일에 문제(악성코드 설치 등)가 있는지를 확인할 수 있음. 근데 이럴 때 머클 트리를 이용하면 보다 효율적인 검증이 가능하다는 장점이 있음.


머클 트리는 데이터를 여러 조각으로 나누어 생성되며, 머클 루트를 형성하기 위해 반복적으로 해시화를 진행함. 이렇게되면 데이터 조각이 잘못된 경우에도 조각난 데이터를 각각 확인하므로 효과적인 검증이 가능하다는 장점이 있음.

  1. 마이닝을 시작할 때, 머클 트리에 포함하고 구성하려는 모든 트랜잭션을 정렬.
  2. 루트 해시(32바이트) 결과를 블록 헤더에 삽입.
  3. 이후, 블록을 마이닝할 때는 전체 블록 대신 블록 헤더만 해시화하면 됩니다.

머클트리는 두개씩 나눠서 검증하는횟수를 획기적으로 줄이는 방법이다.

블룸필터

특정 원소가 집합에 속하는지 검사하는데 사용할 수 있는 확률형 자료구조. 굉장히 빠르고 메모리 효율적이라는 장점. 하지만, 확률형 자료구조이므로 가끔 틀린 사실을 뱉어낼 수 있다라는 점은 참고할 것. 그러나 집합에 속한 원소를 속하지 않았다라는 논리는 출력하지 않는다는 것이 매우 중요.

  • 사용처
    집합의 크기가 굉장히 크거나 집합의 속해있는 원소의 크기가 커서 원소가 집합에 속해있는지 정확히 판단하는데 시간이 오래걸리는 경우, 이 과정의 전처리 과정으로 Bloom Filter를 이용해서 아예 집합에 속할 일이 없는 원소를 미리 걸러낼 수 있습니다. (예 : 구글크롬의 위험한 사이트 검사)

대용량 처리를 위한 고려사항

이더리움측면에서는 블룸필터(검색조건걸어서 빠르게찾기), 프루닝(가지치기), EVM의 휘발성메모리(코드가볍게하기), 샤딩(데이터데이스 쪼개기) 등이 있음.

profile
열심히, 꾸준히, 그리고 정확히

0개의 댓글