허훈식 교수님의 블록체인 강의를 듣고 정리한 내용입니다.
블록체인이란?
- 분산 네트워크 참여 노드들 간에 (P2P 분산 네트워크)
- 거래 블록들을 효율적으로 검증하고 (합의 알고리즘)
- 위변조가 불가능하며 (보안 및 암호화)
- 영구적으로 기록할 수 있는 분산 원장 기술
즉, 참여하는 모든 시스템(노드)이 각자 원장을 보유하고 항상 동기화하는 것이 분산 원장이며, 이를 실현하기 위한 상태 공유 및 합의 방식을 블록체인 기술이라고 한다.
블록체인과 기존 거래 방식의 차이점
기존 거래 방식
- 중개 기관이 모든 거래 내역을 검증하고 저장
- 중앙화 시스템
블록체인 거래 방식
- 참여자들이 거래 내역을 검증하고 거래 내역을 블록으로 공유 검증하고 저장
- 탈중앙화 시스템
블록체인과 원장
- 블록은 거래 장부를 의미 (거래 정보들로 구성)
- 체인은 거래 장부인 블록을 쇠사슬처럼 서로 얽혀 시간별로 정렬된 것
즉, 새로운 블록은 이전 블록의 해시 정보를 통해 연결되며, 이를 통해 신뢰성을 확보할 수 있다.
블록체인 동작 방식
- 트랜잭션(송금 요청)을 네트워크에 전파
- 특정 노드가 트랜잭션 정보들이 담긴 블록을 생성
- 해당 블록을 모든 노드에 전파
- 모든 노드들이 블록 내 트랜잭션 유효성 검증
- 검증이 완료되면 기존 블록체인에 해당 블록을 연결
블록 체인 특성
- 탈중앙성 : 중앙 서버 한 곳이 아닌, 블록체인 네트워크에 연결된 노드들에 저장
- 투명성 : 블록체인 네트워크의 모든 정보를 누구든, 언제든 확인할 수 있음
- 보안성 : 네트워크 대내외의 공격으로부터 블록체인 상의 정보를 보호
- 불변성 : 블록체인에 한 번 기록된 거래정보는 위변조 없이 영구적으로 보장
- 합의 : 거래가 수락되어 저장되기 위해서는 모든 노드 간에 동일한 프로토콜을 따라야 하며, 모든 노드는 단일 상태의 합의에 도달하기 위해 해당 프로토콜을 사용 (합의 알고리즘에 의해 작동)
블록체인과 데이터베이스의 차이점 (데이터 저장 측면)
- 블록체인은 데이터의 거래 내용만 저장하며 값은 저장하지 않음
- 한 번 저장된 데이터는 수정되거나 삭제되지 못함 (삽입만 가능)
- 모든 노드들 간에 합의된 데이터만 유효 (탈중앙화 특성)
데이터베이스는 거래 기록이 없지만 블록체인은 거래 내용 자체를 저장한다는 차이점이 있다.
블록체인 비즈니스 영역
- 암호화폐 거래소 : 바이낸스, 코인베이스, 업비트, 빗썸
- 지갑 서비스 : 넷마스크, 일렉트럼
지갑 서비스는 사용자 편의성을 제공하기 위해 생겨났다. 왜냐하면 비즈니스는 사용자에게 편의성을 제공해야 하기 때문이다.
블록체인 네트워크 유형
참여자 자격 제한 여부에 따라 분류된다.
- Public : 모든 사용자가 블록체인 구성에 참여
- Private : 허가된 조직 또는 사용자만 블록체인 구성에 참여
- Consortium : 사전에 선택된 여러 조직만 블록체인 구성에 참여
블록체인 핵심기술 요소 ⭐️⭐️⭐️
- 트랜잭션과 블록 해싱을 위한 해시 함수
- 트랜잭션 서명을 위한 비대칭 암호화 기술
- 트랜잭션 블록을 효율적으로 구조화하기 위한 머클 트리 기법
- 노드들 간에 블록 데이터 공유를 위한 P2P 분산 네트워크
- 노드들 간의 블록 데이터 무결성 검증과 보안 유지를 위한 합의 알고리즘
1. 해시 함수 활용
블록체인의 데이터 무결성을 보장하기 위한 핵심적인 데이터 구조인 머클 트리를 사용
블록의 해시
- 블록의 고유 ID
- 블록의 해시를 계산할 때는 이전 블록의 해시값도 포함하기 때문에 체인의 무결성을 보장
- 블록의 고유 ID를 통해 이전 블록과의 체인 역할
트랜잭션 해시
- 트랜잭션의 고유 ID
- 트랜잭션 데이터가 변경되면 해시값도 변경되므로 무결성을 보장
2. 비대칭 암호화 활용
- 전송 받은 데이터를 보낸 사람이 누구인지 검증
- 공개키 암호를 응용하여 전송받은 데이터의 송신자를 검증
- 공개키와 짝을 이루는 비밀키를 가진 사람임을 검증하고 신뢰
3. 머클 트리 활용
- 단계적으로 여러 데이터에 해시 함수 적용하여 하나의 해시값으로 만드는 데이터 구조
- Data가 하나라도 변조되면 최종 해시값인 머클 루트 값도 변경됨
4. P2P 네트워크 활용
P2P 네트워크에서 모든 노드는 서비스 요청과 서비스 제공 기능을 수행 (탈중앙)
5. 합의 알고리즘 활용
트랜잭션들로 구성된 블록을 생성하고, 블록의 유효성을 검증하여 신뢰할 수 있는 방식
합의 알고리즘 종류
- PoW(Prrof of Work) : 비트코인, 이더리움
- PoS(Proof of Stake) : 이더리움 (2022년에 PoS로 전환되었음)
- Paxos : Google Chubby
- Raft : PAMCloud
- PBFT : 하이퍼레저 패브릭
PoW와 PoS는 누구든지 사용 가능하며, Paxos, Raft, PBFT는 기업용이다.
'CS > 블록체인' 카테고리의 다른 글
[블록체인/Regtest] Bitcoin Core 설치 및 실행 (Mac OS) (1) | 2023.12.03 |
---|---|
[블록체인] 블록체인 암호 기술 (0) | 2023.10.05 |
[블록체인] 블록체인 구조와 네트워크 (0) | 2023.10.05 |