본문 바로가기

Security/내가 보려고 정리하는 중

[블록체인] 비트코인 네트워크의 기초

 

 

 

 

 

블록체인 == 비트코인

은 절대 아니지만 현재 블록체인 기술은 암호화폐에 가장 많이 보편화되어 사용되고 있기 때문에 뗄 수 없는 관계이다.

 

📌 비트코인의 탄생

사토시 나카모토라는 익명의 인물이 쓴 논문에서 시작됐다. (아직 누군지 정확히 모른다)

사이퍼펑크라는 단체에 논문을 메일로 보내면서 처음 세상에 알려지게 되었다.

논문 원본은 bitcoin.org/bitcoin.pdf 여기

📌 비트코인 vs 이더리움

✔ 비트코인

비트코인은 블록체인의 1세대 기술이다. Only 화폐의 기능만 한다.

✔ 이더리움

이더리움은 스마트 컨트랙트 기능을 기반으로한 2세대 블록체인 기술이다.

이더리움은 화폐, 계약서, 증명서 등의 기능을 할 수 있다.

📌 비트코인 네트워크 P2P

비트코인은 기존 금융 시스템과 달리 중앙 서버가 없는 탈 중앙화(Decentralization) 네트워크다.

자율적으로 운영되며, 데이터가 한 곳에 집중되지 않고 각 노드(클라이언트)에 분산되어 있다.

 

ko.wikipedia.org/wiki/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8_%EC%84%9C%EB%B2%84_%EB%AA%A8%EB%8D%B8

 

클라이언트 서버 모델 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 클라이언트 서버 모델(client–server model)은 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자[1

ko.wikipedia.org

ko.wikipedia.org/wiki/P2P

 

P2P - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 중앙 집중식 관리 시스템을 사용하지 않고, 상호 연결된 노드(피어)들이 서로 간에 자원을 공유하는 P2P 네트워크. P2P(peer-to-peer network) 혹은 동등 계층간 통신망(

ko.wikipedia.org

📌 비트코인 네트워크 구성원

노드 == 클라이언트

트랜잭션 == 거래내역

✔ 풀(full) 블록체인 노드 (풀노드)

블록체인 전체를 관리하는 노드이다. 현재까지 발생한 모든 거래내역들이 보관되어 있다.

풀노드는 채굴자에게 블록을 받아 합의 규칙에 따라 유효성을 검증하고 블록을 체인에 연결한다.

다른 노드들에게 새로운 블록이 연결됐음을 알리기 위해 새 블록의 헤더 정보를 전파한다.

풀 노드들 끼리 데이터를 동기화하여 데이터의 신뢰성과 일관성을 유지한다.

채굴자(miner)

블록체인 네트워크를 유지하는데 필수적인 구성원이다.

각 노드가 보내는 트랜잭션의 유효성을 검증하고, 검증된 트랜잭션들을 모아 새로운 블록을 생성해 풀노드에게 전송한다.

채굴은 수학적 퍼즐을 풀어 잡을 찾는 것이다. 가장 먼저 답을 찾아 풀노드에게 보낼 블록 헤더에 답을 제시하여 보내고, 이 답이 맞다면 채굴자는 보상을 받는다.

그래서 채굴자들은 가장 먼저 답을 찾는 경쟁에서 이기기 위해 성능이 좋은 그래픽카드를 다량으로 사용한다.

채굴자들의 이러한 경쟁으로 인해 블록체인의 신뢰성은 높아진다.

SPV 노드

블록체인 전체가 아닌 블록의 헤더 정보만 가지고 있다. (공간 절약)

비트코인 지갑 어플이 주로 SPV 노드이다.

블록체인 데이터가 없으므로 풀노드의 도움을 받아야 한다.

✔ Third Party API 클라이언트

지갑을 사용하는 경우에 해당한다. 클라이언트가 지갑을 소유한 경우와 지갑 자채를 서버에 위탁하는 경우가 있다.

Third Party를 통해 네트워크에 간접적으로 접속한 형태이기 때문에 비트코인의 철학과는 맞지 않다. (탈 중앙화 위배)

이러한 경우 보안에 취약할 수 있다.

즉, 블록체인 기술과는 무관하게 우리가 화폐 지갑을 사용하는 경우에는 완전히 안전하다고 할 수 없다.

📌 블록의 생성 과정 (간단히)

✔ 채굴자는 각 노드가 보내는 트랜잭션의 유효성을 검증한다.

 검증한 트랜잭션들을 모아 블록을 생성한다.

 생성한 블록을 풀노드에게 전송한다.

 풀노드는 채굴자에게 받은 블록의 유효성을 검증한다.

 검증한 블록을 체인에 연결한다.

 

 

 

 

 

 

 

 

 

 

'Security > 내가 보려고 정리하는 중' 카테고리의 다른 글

[블록체인] 블록체인 구조  (0) 2021.04.23
[블록체인] 비트코인 네트워크의 기초  (0) 2021.04.19
HARD_DISK 구조  (0) 2019.06.27
File_signatures  (0) 2019.06.27