2020.코딩일지
Section3:블록체인 기술(1) - 분산원장(1) [BEB 6th] 본문
코드스테이츠 블록체인 부트캠프 6기
블록체인은, P2P네트워크를 통해 관리되는 분산 데이터베이스(Distributed database)의 한 종류.
=네트워크에 연결된 여러 컴퓨터에 저장 및 보관
💃분산데이터베이스란?
분산데이터베이스 관리 시스템(DBMS, Database Management System)으로 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스
정의: 물리적으로는 여러 위치에 분산 저장하고 흩어져 있는 시스템이지만, 논리적으로는 하나인 것 처럼 활용한다는 것이 핵심 개념
분산된 저장소(노드)들이 네트워크를 통해 연결되어 작동하는 하나의 데이터베이스 관리 시스템(DBMS)으로 투명성 확보가 가장 중요!
==> 재해복구,백업, 성능상의 이점
등장배경: ‘보안'과 ‘처리 속도'라는 이점을 갖는다.
적용: 기능이 다양해야하고, 데이터 양이 많이 증가하는 환경에서 활용하면 좋다.
💃분산데이터베이스에서 목표로하는 6가지 투명성의 특징은?
종류 | 내용 | 특징 |
병행 | 다수의 트랜잭션 수행 시 결과가 일관성 유지 | 자원처리 양 및 속도 개선 |
장애 | 장애 발생이 All or Nothing 유지(원자성 유지) | 데이터 일관성 |
지역사상 | 개별 지역의 물리적 이름과 관계없이 접근 가능 | 확장성 확보 |
위치 | 데이터를 물리적 저장 위치가 아닌 논리적 입장에서 접근 | 생산성, 활용성 강화 |
중복 | 데이터를 지역별로 중복 저장하여도 데이터 처리 가능 | 병목현상 해소 |
분할 | 물리적 구조가 여러 단편으로 분할 저장되어 논리적 사용 | 성능향상 |
💃분산데이터베이스 방식(대표적인 기술)에는 무엇이 있는가?
배경 | DB서버가죽으면어떻게해? | 저장된 데이터가 손실되면 어떻게해? | 데이터가 너무많아서 검색성능이 느려... |
클러스터링 | 레플리케이션 | 샤딩 | |
서버를 여러 개로 만들어 지속적인 서비스가 가능하여지도록 한 방법 |
데이터베이스 스토리지를 여러 개로 단순 백업 방식과 부하 분산 방식이 있음 |
테이블을 나누어 데이터를 저장하는 방식 종류: 해시샤딩, 다이나믹 샤딩, 엔티티 그룹 샤딩 |
|
장점 | 성능 유리(서버가여러개니까) | 데이터베이스 Read(Select) 성능을 높일 수 있음, (비동기방식이라) 지연시간 거의 없음 |
서버의 수평 확장 가능, 쿼리 반응 속도 빨라짐 |
단점 | 병목현상(DB는1개라서) 비용 증가(서버여러개운영해야해서) |
각 노드 간의 데이터 동기화 보장이 어려움, Master 노드가 다운 시 구 및 대처 어려움 |
한 번 분리한 뒤에는 합치기 어려움, 데이터 적절히 분리하지 못하면 오히려 비효율적일 수 있음 |
샤딩- 잘 나누는것이 중요하다;; shard key결정 방식에 따라 나뉜 샤딩방법3가지
해시샤딩 | 다이나믹 샤딩 | 엔티티 그룹 샤딩 | |
장점 | 구현이 간단함(샤드 수만큼 해싱) | 유연한 확장성 (샤드 하나 더 추가되면 Locator service에 shard key 추가) |
단일 샤드 내 쿼리 효율적 단일 샤드 내 강한 응집력 |
단점 | 샤드가 늘어나면 함수가 달라져야해서 확장성떨; 단순이 해시함수로 나누기에 샤드별공간효율성을 고려하지 않음 |
데이터 재배치시, 동기화 Locator service에 의존적 |
다른 샤드의 엔티티와 관이 되는 쿼리의 경우 실행효율이 떨어짐 |
💃분산데이터베이스의 장단점
장점 | 단점 |
시스템의 가용성 확보 | 트랜잭션에 대한 처리 알고리즘이 복잡 |
지역업무에 특화된 서비스 제공 | 관리가 복잡하여 비용 증대 |
시스템 확장 및 적응성 | 통신망 장애시 부가적 피해 가능성 |
장애에 대한 신뢰성 증진 | 잠재적 오류 내재 가능성 |
지역별 자원 활용 및 확장성 용의 | 설계 및 구현의 어려움 |
💃분산원장이란?(DLT,Distributed Ledger Technology)
정의: 분산데이터베이스의 한 종류로, 거래정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P(Peer-to-Peer) 네트워크에 분산하여 참가자가 공동으로 저장하고 기록하는 기술입니다
- 장점: 효율성, 보안성, 시스템 안정성, 투명성
- 단점: 신뢰 형성에 필요한 매커니즘 설계의 필요성, 악의적인 참가자에 대한 방지 기술 필요
모든 블록체인은 분산 원장이지만, 모든 분산 원장이 블록체인은 아닙니다
등장배경: 분산 원장 기술은 운영 주체가 없이 운영되기 때문에 노드간의 합의가 필요한 시스템입니다.
적용: 주로 블록체인에 적용이 됩니다.
💃분산원장과 중앙집중형원장과의 차이점
분산원장(Distributed Ledger) | 중앙집중형원장 | |
P2P네트워크에 분산하여 공동으로 저장,기록하는 기술 | 신뢰할 수 있는 제3의 기관을 중심으로 원장을 기록하는 방식 | |
장점 | 효율성, (공격으로부터,이미공개)보안성, 시스템안정성,투명성 |
비용 절감, 소유권 증명 명확 |
단점 | 시스템 자체에서 신뢰를 형성하는 메커니즘 설계 필요 (합의알고리즘) |
신뢰에 크게 의존할 수밖에 없는 한계, 이용자의 높은 수수료 부담 |
💃분산원장과 블록체인의 관계
- 합의 알고리즘 (악의적인 사용자를 전제하고 만들어진 시스템)
- 거버넌스 (운영주체가 사라져도 시스템 유지 가능)
💃세그윗이란?(segwit, Segregated Witness)
정의: 디지털 서명을 제거해 블록 용량 늘리는 소프트웨어 업그레이드
속도와 확장성 개선을 위해 개선된 기술로, 블록 용량 증대를 통한 개선 방법 중 하나로,
[디지털 서명 데이터]를 별도의 공간에 저장하고, 대신 블록에 더 많은 트랜잭션을 담는 방식
세그윗특징1) 거래 속도의 확장성 해결 ('더 많이 저장할 수 있는 블록'을 통해 "트랜잭션 속도 증가")
세그윗특징2) 거래 가변성 문제 해결(서명조작불가)
세그윗특징3) 버전호환
💃세그윗이 나오게 된 배경은?
등장배경: 점차 비트코인 블록체인을 활용하는 유저가 많아지면서 ‘속도'와 ‘용량'을 업그레이드 시켜야 했다.
적용: 비트코인의 업그레이드로 처음 적용되었으며, 다른 암호화폐 플랫폼에서도 사용하려고 함.
머클트리
정의: 여러 데이터에 대해 단계적으로 해시함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조
등장배경: 블록체인에서 제일 중요한 것은 바로 보안이기 때문에 머클트리는 블록체인에 있는 데이터의 위변조 방지와 데이터 무결성을 이루어 준다.
적용: 블록체인의 블록 구조
💃머클트리에서 무결성을 검증하는 방식은?
블록체인에서는 데이터의 무결성을 보장하기 위한 한 방법으로 머클트리를 이용
여러 데이터에 대해 단계적으로 해시함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조로,
(해시함수는 서로 다른 입력에 대해 동일한 출력값을 가지지 않기 때문에(충돌저항성)
데이터의 값이 변화할 경우, 결국 다른 해싱값들이 연쇄적으로 변화하게 되어, 기존의 머클루트 값과 다른 값을 가지게 된다. 하나의 데이터 변조도 추적이 가능하다)
블록체인에 있는 데이터의 무결성을 보장.
💃머클트리가 블록체인에서는 어떻게 활용되는가?
블록체인에서는 머클트리의 각각의 데이터가 트랜잭션으로,
트랜잭션들로 구성된 머클트리의 머클루트 값이 블록 헤더에 포함되어 들어가게 됩니다.
만약, 머클루트가 변경되면 블록 해시값도 변경되고, 이에 따라 연쇄적으로 이전 블록 해시값들도 변하게 됩니다.
결국, 머클트리의 데이터인 트랜잭션을 위변조하기 위해서는
이어져 있는 모든 블록들의 수정이 필요하여 큰 비용이 들기 때문에 매우 어렵게 됩니다.
https://hamait.tistory.com/959
https://devkly.com/blockchain/ethereum-state/
'Block Chain' 카테고리의 다른 글
Section3:블록체인 기술(1) - 트릴레마 [BEB 6th] (0) | 2022.08.30 |
---|---|
Section3:블록체인 기술(1) - 암호화폐, 암호화, 지갑 [BEB 6th] (0) | 2022.08.26 |
[블록체인]Introduction(2)[BEB 6th] (0) | 2022.08.21 |
[블록체인]Introduction(1)[BEB 6th] (0) | 2022.08.16 |
실습4.솔리디티 크립토좀비_온라인19,20일차220531,220601_제주ICT이노베이션블록체인과정+스마트컨트랙트문법220919 (0) | 2022.06.02 |