2021.08.02 ~3
베이스 교재
Distributed Systems 3rd edition (2017) | DISTRIBUTED-SYSTEMS.NET
블록체인의 기본개념
1. 분산 P2P
→ 탈 중앙화 : 서버 중심이 아닌 P2P 방식이다.
기존 P2P는 분산 기록 및 처리(효율성)의 개념
블록체인에서의 P2P 중복' 기록 및 처리(안전)의 개념으로 접근
→ (투명성) : tx의 순서-원장의 결과값에 대한 중복, 검토, 합의 알고리즘
→ tx 처리의 중복(검증)
→ 데이터(레져)처리의 중복(검증)
→ 블록체인도 하이브리드 요소를 포함한다.
노드들이 서로 p2p 관계이지만
결국 클라이언트의 요청을 처리하는 형태로 서비스가 운영된다. = off chain
오라클라이즈(Oraclize) : off chain → on chain
분산 처리
일반적 : 노드가 많으면 → 성능 상승
B.C. : 노드가 많으면 → 성능 하락 but 안전(신뢰 상승)
: 합의 알고리즘 tx 순서와 내용에 대한 중복, 검증, 동기화, 일치성에 대한 합의 필요
유형
필요 : 투명성, 신뢰성
분산 P2P 시스템 레이어
서로 다른 OS에 있는 어플리케이션들이
싱글(단일) 시스템과 같이 서로 호환할 수 있도록 하는 미들웨어 역할을 수행한다.
동일한 **미들웨어(블록체인)**가 제공하는 api를 기반으로 작성된 스마트 컨트렉트라면
서로 호환된다.
노드 수 확장에 이슈는 없지만 tx(사용자) 증가에는 서비스에 영향을 미칠 수 있다.
sharding
샤딩(sharding)이란 하나의 거대한 데이터베이스나 네트워크 시스템을 여러 개의 작은 조각(샤드)으로 나누어 분산 저장하여 관리하는 것을 말한다
side-chain
사이드 체인은 Layer 2 scaling 방식으로써 이 방식의 핵심은 토큰이나 디지털 자산들을 하나의 블록체인에서 (더 작은) 블록체인으로 옮기고, 옮긴 블록체인 상에서 돈을 운용하다가 필요할 경우에 다시 원래의 블록체인으로 돌아오는 것이다. 즉, 사이드 체인은 parent chain에 two-way pegging을 통해 붙어있는 분리된 별개의 블록체인인 것이다.
Side chain(혹은 service chain) 이 계속하여 언급되는 주된 이유는 Blockchain 의 scalability이다.
**Plasma(플라즈마)
기존 블록체인과 달리, 메인체인(또는 루트체인)에 나뭇가지처럼 이어진 차일드체인에서 사전에 수집된 정보들을 처리한 후 결과만 루트체인에 전달함으로써 처리 속도를 향상한 알고리즘이다.
**플라즈마캐시
모든 사용자가 모든 거래내역을 복사하여 관리하던 기존의 블록체인이나 플라즈마 알고리즘과 달리, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 알고리즘이다.
off-chain 등을 활용한 합의 알고리즘들이 개선 발전 중
온 체인, 오프 체인 관련 도식( 출처 link)**
→ 투명성 transparency
→ tx 확장성 Scalability
→ 동기화로 인한 이슈 발생 시 대응 방법
블록과 블록이 해시로 연결되어 있다.
상호배제 Mutual Exclusion
→ 자원 사용시 독점권(critical section, data) 을 통해 충돌 예방
→ 유형
중앙집중형 : 서버에게 사용권 얻는 방법
분산형 : 서버가 없고 자원이 여러 노드에 있을때
토큰형 : 자원이 여러 노드에 있을때 그 중 토큰이 있는 노드가 의사결정
탈중앙화 : 자원이 여러 노드에 있을때 중재자 과반수의 득표를 얻은 경우
주요 블록체인별 대응 방식
→ ETH의 경우 lock-자원활용-unlock 처리
충돌예방을 위해 solidity 제공 = 속도가 느리다
→ HLF의 경우 : MVCC( 다중버전 동시성제어)처리
MVCC 모델에서 데이터에 접근하는 사용자는 접근한 시점에서 데이터베이스의 Snapshot을 읽는다. 이 snapshot 데이터에 대한 변경이 완료될 때 (트랜잭션이 commit 될 때) 까지 만들어진 변경사항은 다른 데이터베이스 사용자가 볼 수 없다. 이제 사용자가 데이터를 업데이트하면 이전의 데이터를 덮어 씌우는게 아니라 새로운 버전의 데이터를 UNDO 영역에 생성한다. 대신 이전 버전의 데이터와 비교해서 변경된 내용을 기록한다.
일반적인 RDBMS보다 매우 빠르게 작동 사용하지 않는 데이터가 계속 쌓이게 되므로 데이터를 정리하는 시스템이 필요 데이터 버전이 충돌하면 애플리케이션 영역에서 이러한 문제를 해결해야 함
충돌예방이 아닌 사후처리 - tx취소 방식 = 빠르다, 버전으로 확인
**CC( 동시성제어)
동시에 실행되는 트랜잭션 수를 최대화 하면서 입력, 수정, 삭제, 검색 시 데이터의 무결성을 유지
읽기 작업과 쓰기 작업이 서로 방해를 일으키기 때문에 동시성 문제가 발생
토큰경제( 암호화폐와 다르다)
인센티브
모든 경제 활동
Layer1
BC 플랫폼 경제
Layer2
공유경제
자산가치
Defi
기타 용어정의
IoT 블록체인 - IoTA의 탱글
방향성 비순환 그래프( DAG; Directed Acyclic Graph **유향 비순환 그래프)**를 사용하여 블록 체인 기반 분산 원장에 비해 잠재적으로 더 높은 확장성에 의해 동기를 부여하여 원장에 트랜잭션을 저장합니다
방향성 비순환 그래프에서 개별 요소들은 블록체인처럼 여러 개의 트랜잭션을 하나의 블록으로 묶지 않고, 각 개별 요소들끼리 상호 연결되어 있다.
꼬리에 꼬리를 물며 추가되는 트랜잭션들이 앞의 트랜잭션들을 직간접적으로 검증하게 되면서 네트워크가 형성
장점 - 사용자가 많을 수록 빠르다, 수수료가 없다, 확장성 문제가 없다
단점 - 확정합의가 어렵다.
토털 오더링(total ordering) 방식이 아닌 파셜 오더링(partial ordering) 방식이기 때문에 서로 연결된 트랜잭션끼리만 그 쓰여진 순서를 정의할 수 있다.
**DAG 상에서 BFT 확정합의 구현에 성공한 프로젝트로는 로커스체인이 있다
블록체인 발전단계
실습환경
김재훈 교수님 [email protected] 010-5293-2551
다음 시간