분산 원장이란?
분산원장(DLT, Distributed Ledger Technology)이란, 대규모 네트워크 공간에서 모든 구성원이 거래정보를 독립적으로 업데이트하고 보유하는 디지털 데이터베이스의 한 형태를 말함. 이러한 유형의 원장에는 중앙화된 권한이 없음.
분산 원장 장단점
장점
거래 증명을 위해 여러 중간 매개체 또는 인증기관이 필요했지만, 분산원장기술은 사용자가 거래 내역을 직접 공유할 수 있는 시스템이기 때문에 중앙 서버관리가 필요없어짐. 또한 거래 정보가 저장된 원장이 분산되어있기 때문에 해킹하여 조작하기 어려워 보안성이 높음.
단점
개별 DB에서 저장하고 관리해야 하는 정보가 기하급수적으로 늘어남
분산 원장의 구현방식
분산 원장(DLT) = 블록체인으로 흔히들 오해하는데, 분산원장을 구현하는 데는 블록체인을 포함하여 여러가지 방법이 있음.
1. 블록체인
DLT를 구현하는 가장 대표적인 방법으로, 거래기록을 분산화된 블록에 저장하여 체인 형태로 연결하는 방식으로 원장을 구현함.
2. HASHGRAPH
랜덤 Gossip 프로토콜*을 사용하며, 각각의 네트워크는 거래가 발생하면 해당 정보가 담긴 이벤트를 랜덤하게 이웃한 노드에 전달함. 해당 이벤트를 전달받은 노드는 또 다시 다른 노드에 랜덤하게 이벤트를 전달하고 모든 노드가 해당 이벤트를 전달받게 됨.
virtual voting 프토토콜에 따라 2/3의 노드 참여자가 동의하면 해당 거래는 저장되게 됨.
처리 속도가 빠르다는 장점이 있음.
*Gossip protocol : 전염병이 확산되는 방식을 기반으로 하는 컴퓨터 P2P 통신의 절차 또는 프로세스
3. HOLOCHAIN
Holochain에서 각 노드는 개인의 암호 변조 방지 체인에서 고유한 기록을 유지함.
Holochain에서 노드는 합의없이 독립적으로 유효성 검증을 실행할 수 있음. 대신, 트랜잭션 기록을 수신하는 각 노드는 공유 애플리케이션 규칙에 대해 이를 검증하고 이를 동료에게 Gossip함. 규칙이 위반되면 해당 트랜잭션은 유효성 검사기에 의해 거부됨. 노드 부분에서 부정 행위가 감지되면(노드가 검증 중 잘못된 데이터를 전파하는 등) 해당 노드는 차단되고 다른 사용자에게 경고가 전송됨.그렇기 때문에 효율적으로 운영가능.
Holochain에서는 데이터 저장 및 확산을 위해 DHT(Distributed Hash Tables)라는 공유되는 공간을 만듬.
각 노드는 일부 공유 데이터를 전달하므로 노드가 오프라인이 되더라도 해당 데이터가 커뮤니티에 손실되지 않음.
Holochain에 내장된 분산 유효성 검사는 앱의 모든 사용자가 해당 앱의 유효성 검사 규칙에 동의함을 의미함. 이러한 규칙이 어겨지면 다른 노드가 누가, 어떻게 발생하였는지 알 수 있고, 이에 바로 반응함. 각 Holochain 앱은 자체 네트워크임.
4. TEMPO
Tempo는 분산 원장이자 기본 합의 프로토콜로 Gossip 프로토콜을 사용함.
Tempo의 합의 부분은 논리적 시계의 개념을 기반으로 함. 모든 노드에는 새로운 요청이 있을 때마다 증가하는 카운터(논리적 클럭)가 있으며, 요청을 저장할 때 노드는 해당 이벤트를 더 전파하기 전에 현재 논리적 클록 값을 해당 이벤트에 연결함. 각 노드에 의해 할당된 논리적 클록 값 세트는 시간적 증거를 형성함.
(솔직히 써놓고도 무슨 말인지 잘 모르겠음, 궁금한 사람들은 아래 그림 및 공식 사이트 설명 참조)
5. DAG(Directed Acyclic Graph)
DAG는 토폴로지 순서를 사용하는 단방향 그래프 데이터 구조임.
DAG에서 모든 노드는 스스로 유효성을 검증할 수 있으며, 유효성 검증을 위해서 먼저 이전에 수신된 최소 2개의 트랜잭션의 유효성을 확인해야 함.
트랜잭션을 검증하기 위해 오로지 두 번의 유효성 검증만이 필요하기 때문에 불필요한 검증절차를 줄일 수 있는 장점이 있음. 검증절차가 단순하기 때문에 miner가 필요없으며 따라서 트랜잭션 비용이 거의 0에 가까움.
DAG를 이용한 암호화폐 프로젝트로는 IOTA과 Byteball이 있음.
참고
https://www.youtube.com/watch?v=P27GqazhH24&t=52s
https://tokens-economy.gitbook.io/consensus/holochain
https://www.radixdlt.com/post/tempo-consensus-lessons-learned
'TIL' 카테고리의 다른 글
TIL) 블록체인을 구성하는 기술 : 세그윗, 머클트리, 머클 패트리샤 트리, 슈노르 서명, MAST (0) | 2022.06.16 |
---|---|
TIL) Blockchain oracle 개념 및 관련 솔루션 (0) | 2022.06.14 |
TIL) 웹 호스팅 관련 사이트 : netlify, replit (0) | 2022.06.12 |
TIL) React state, prop 사용(feat. memo, propTypes, css-module) (1) | 2022.06.12 |
TIL) 독립적 앱 실행환경 제공하는 Docker (0) | 2022.06.10 |