💡 그냥 정리하는 블록체인.....
이 포스팅은 계속해서 업데이트 해나갈 예정입니다!
01. 블록체인이란?
- 데이터 분산 처리 기술 입니다.
- 네트워크에 참여하는 모든 사용자가 거래 와 관련된 정보를 분산, 저장 하는 기술입니다.
- 블록 은 개인과 개인의 거래의 데이터가 기록되는 장부입니다.
- 이런 블록이 형성된 후, 시간의 흐름에 따라 순차적으로 연결된 사슬(체인) 구조를 가지게 됩니다.
- 모든 사용자가 거래내역 을 가지고 있기 때문에, 거래 내역 확인 시에는 다른 사용자의 장부를 비교, 대조하는 작업을 거칩니다.
- 따라서, 공공 거래장부 , 분산 거래장부 라고도 불립니다.
02. 블록체인의 특징
- 보안성
- 기존 거래방식(은행에서 거래내역을 보유함, 중앙집권형)에서는 데이터를 위변조하기 위해서는 은행의 중앙 서버 만 공격하면 되었습니다.
- 하지만, 블록체인을 이용하면 모든 사용자가 가지고 있는 장부를 조작해야 하기에 현실적으로 힘든 일입니다.
03. 블록체인 만들기 위한 단계
3-1. Part 1
3-1-1. 기본적인 블록체인 만들기
- Data: 거래정보
- PreviousHash: 이전 블록의 해쉬 값
- timestamp: 생성된 시간
- Nonce
- Hash: Data + Previous Hash + timestamp
- 보통 SHA256 알고리즘을 이용하여 해쉬값을 구합니다.
3-1-2. Pow(Proof of Work) 시스템 구현
PoW
란 Proof of Work 의 약자로 블록체인을 통해 서로 공유한 자원을 악의적으로 위변조 하는 것을 막고, 모든 노드가 올바른 블록체인을 공유하고 있다는 것을 입증하기 위한 합의 알고리즘입니다.
컴퓨팅 파워
를 이용해 블록의 hash
값을 추적하여 블록체인 네트워크에 새로운 블록을 추가하는 합의 알고리즘 입니다.
3-2. Part 2
3-2-1. 지갑 생성
기본적으로 지갑은 주소(개인키, 공개키) 를 가지고 있습니다.
블록체인에서 의미하는 지갑
은 주소를 저장
하고 트랜잭션을 생성
할 수 있는 소프트웨어 입니다. 여기서 트랜잭션
은 하나의 거래 내역이라고 볼 수 있습니다.
지갑의 소유주를 구분하기 위해서 키는 중요합니다.
블록체인에서 공개키
와 개인키
는 트랜잭션의 검증수단
입니다.
트랜잭션이 생성되고 처리되는 과정에서 개인키
로 트랜잭션을 서명
하고
공개키
로 올바른 서명인지 판단
합니다.
3-2-2. 트랜잭션 구현
트랜잭션에 어떤 데이터가 들어가는지 한번 알아보겠습니다.
- 송신자의 공개키
- 수신자의 공개키
- 전달할 금액
- Input(수신자가 보낼 돈을 가지고 있다는 것을 증명할 이전 트랜잭션 참조값)
- Output(거래에서 받은 관련 주소 금액)
- 암호화된 서명
3-3. Part 3
3-3-1. P2P 구현
3-3-2. Consensus algorithm
3-3-3. 블록 저장소와 DB
Reference