Blockchain
탈중앙화
P2P 네트워크를 통해 관리되는 분산 데이터베이스
DLT (Distributed Ledger Technology, 분산 원장 기술)이라고도 함
- 블록들이 형성된 후 시간 흐름에 따라 순차적으로 연결된 체인 구조
- 거래정보를 블록체인 네트워크에 연결된 여러 노드(컴퓨터)에 저장
- 거래 정보를 기록한 원장 데이터를 중앙 서버가 아닌 참가자들이 공동으로 기록 및 관리
- 분산 처리와 암호화 기술을 동시에 적용하여 높은 보안성을 확보 (DDos 공격 방어)
- 거래 과정의 신속성 및 투명성
Block Structure
1) Hash of the block
- 블록의 이름 정보
- 간단히, 블록의 header 정보 합을 구한 후 SHA256으로 변환한 값
2) Version
3) Previous block hash : 이전 블록의 주소 값을 가리키는 요소 (이전 블록의 해시 정보)
4) Merkle tree root : 무결성 검증을 위한 요소
- 블록 body에 저장된 transaction(거래) 정보들의 해시 트리
- 가까운 노드끼리 해시 값을 구하여 최종적으로 구해진 해시 값
- 거래가 발생할 때마다 값이 업데이트
- 머클 해시 값을 통해 단일 블록 내에 존재하는 transaction의 무결성 검증 가능
- 머클 해시 값으로 블록의 해시 값을 생성하였기 때문에 블록 해시의 무결성 검증 가능
5) Timestamp : 블록의 대략적 생성 시간 (유닉스 기준)
6) Difficulty : 작업 증명 난이도
7) Nonce
- 블록을 만드는 과정에서 해시 값을 구할 때 필요한 값
- 블록 난이도에 따라 자동으로 설정된 "target" 보다 작은 블록 해시 값을 찾아야 함
- 랜덤 해시 값을 생성할 수 있도록 사용하는 임시값
- nonce 값이 달라지면 연산 결과인 블록 해시 값도 달라짐
- 이러한 nonce 값을 바꿔가며 연산하다가 생성된 블록 해시 값이 "target" 보다 작을 경우 새로운 블록이 성공적으로 생성됨
8) Tracsaction Counter : 기록된 거래 수
9) Transaction #N : 실제 거래 기록
Blockchain 기술
1) 공개키 암호화
- 공개키로 암호화를 하면 쌍을 이루는 개인키로만 복호화 가능
2) P2P network
- Peer to Peer
- 네트워크에 연결된 다수의 사용자가 직접적으로 통신
- 각 노드는 서버가 될 수도, 클라이언트가 될 수도 있음
- 네트워크에 참여하는 노드는 블록체인 정보를 가짐
- 동일한 거래 내역이 노드에 분산 저장
- 거래가 이상 없음을 확인하는 분산 합의 제도 채택
- 별도의 신용 기관 없이 P2P에서 검증
3) Blockchain Protocol
- 블록체인 프로토콜은 합의 방법(Consensus method)의 일반적인 용어
- 블록체인 네트워크 내에서 합의에 도달하고 거래를 검증하기 위해 구현되는 서로 다른 시스템
4) SHA256
Blockchain Type
1) Public Blockchain
- 권위 있는 조직의 승인 없이 누구나 node가 되어 참여 가능
- 운영과 참여의 주체가 불분명하기 때문에 코인을 발행하여 인센티브 제도를 운영
2) Private Blockchain
- 법적 책임을 지는 허가 받은 사람만 참여 가능
- 운영과 참여 주체가 분명하기 때문에 인센티브 제도인 코인을 발행할 필요가 없음
- 비공개적으로 유지하는 곳, 금융 기관
3) Consortium Blockchain
- 기업이나 여러 기관이 하나의 그룹을 만들어 블록체인 네트워크를 구성하는 구조
- public, private의 성격을 모두 가질 수 있음
- 각 노드에도 특정 역할을 부여할 수 있고 통제권을 가진 네트워크
- 원활한 커뮤니케이션이 요구되는 단체
블록체인 유형 | Public | Private | Consortium |
---|
접근성 | 누구나 | 허가 필요 | 허가 필요 |
하드포크 | 가능 | 불가능 | 불가능 |
탈중앙성 | 높음 | 낮음 | 낮음 |
합의 알고리즘 | PoW, PoS, DPos 등 | PBFT, PoA | public, private 이용 |
장점 | 투명성, 익명성, 신뢰성 | 효율성, 확장성 | 공정성, 확장성 |
단점 | 속도 느림 | 개방성, 탈중앙화 제한 | 개방성, 탈중앙화 제한 |
문제점 | 확장성 제한 | 의도적 합의 조작 | 낮은 신뢰성 |
ex) | Bitcoin, Ethereum | Ripple, Coda | Hyperledger, R3 |
참조
블록체인의 합의 알고리즘