비트코인 프로토콜

섬네일|비트코인 전송 다이어그램
**비트코인 프로토콜**(bitcoin protocol)은 비트코인의 기능을 지배하는 일련의 프로토콜이다. 핵심 구성 요소와 원칙으로는 다음과 같다: 중앙 감독이 없는 P2P(피어투피어) 분산 네트워크, 모든 비트코인 거래를 기록하는 공개 원장인 블록체인 기술, 새로운 비트코인을 생성하고 거래를 검증하는 프로세스인 채굴 및 작업 증명, 암호화 보안.

사용자는 비트코인 암호화폐 지갑 소프트웨어를 사용하여 네트워크에 암호화된 메시지를 브로드캐스트한다. 이러한 메시지는 제안된 거래이며 원장에서 변경해야 한다. 각 노드에는 원장의 전체 거래 내역 사본이 있다. 거래가 비트코인 프로토콜의 규칙을 위반하는 경우 무시된다. 거래는 전체 네트워크가 발생해야 한다는 합의에 도달할 때만 발생하기 때문이다. 이 "전체 네트워크 합의"는 네트워크의 각 노드가 채굴이라는 작업 증명 작업의 결과를 검증할 때 달성된다. 채굴은 거래 그룹을 블록으로 패키징하고 비트코인 프로토콜의 규칙을 따르는 해시 코드를 생성한다. 이 해시를 만드는 데는 값비싼 에너지가 필요하지만 네트워크 노드는 매우 적은 에너지를 사용하여 해시가 유효한지 확인할 수 있다. 채굴자가 네트워크에 블록을 제안하고 해시가 유효하면 블록과 원장 변경 사항이 블록체인에 추가되고 네트워크는 아직 처리되지 않은 거래로 이동한다. 분쟁이 있는 경우 가장 긴 체인이 올바른 것으로 간주된다. 평균적으로 10분마다 새로운 블록이 생성된다.

비트코인 프로토콜을 변경하려면 네트워크 참여자 간의 합의가 필요하다. 비트코인 프로토콜은 수많은 다른 디지털 통화와 블록체인 기반 기술의 생성에 영감을 주었으며, 암호화폐 분야의 기초 기술이 되었다.

## 블록체인
블록체인 기술은 컴퓨터 네트워크를 통해 거래를 기록하는 분산되고 안전한 디지털 원장이다. 이는 투명성, 불변성 및 변조 방지 기능을 보장하여 데이터 조작을 어렵게 만든다. 블록체인은 비트코인과 같은 암호화폐의 기반 기술이며, 공급망 관리 및 스마트 계약과 같은 금융 외 분야에서도 응용되고 있다.

### 거래
섬네일|110px|가장 좋은 체인 은 제네시스 블록 부터 현재 블록 또는 기록까지 가장 긴 일련의 거래 기록으로 구성된다. 고아 기록 은 가장 좋은 체인 외부에 존재한다.

네트워크는 거래를 공유하기 위한 최소한의 구조만 필요로 한다. 자원봉사자들로 구성된 애드혹 분산 네트워크로 충분하다. 메시지는 최대 노력 방식으로 브로드캐스트되며, 노드는 마음대로 네트워크를 떠나고 다시 합류할 수 있다. 재연결 시, 노드는 다른 노드로부터 새로운 블록을 다운로드하고 검증하여 로컬 블록체인 사본을 완성한다.

## 채굴
[섬네일|[그래픽 처리 장치|GPU 기반 채굴 장비, 2012년]]
섬네일|비트코인 채굴 농장, 2018년
비트코인은 P2P 네트워크로서 분산형 타임스탬프 서버를 형성하기 위해 작업 증명 시스템 또는 거래 증명 시스템을 사용한다. 이 작업을 비트코인 채굴이라고 부른다. 채굴 과정에서 비트코인 네트워크의 거의 모든 컴퓨팅 파워는 암호화 작업을 해결하는 데 사용되며, 이것이 바로 작업 증명이다. 이들의 목적은 유효한 블록을 생성하는 데 특정 양의 노력이 필요하도록 하여, 51% 공격 시나리오와 같은 블록체인에 대한 후속 수정이 실제로 불가능하도록 보장하는 것이다. 이러한 어려움 때문에, 채굴자들은 높은 전력 요구 사항, 값비싼 하드웨어 배포, 제어 하의 하드웨어에도 불구하고 지불금을 받기 위해 "채굴 풀"을 형성한다. 2021년 중국의 비트코인 채굴 금지 조치로 인해 현재 미국이 비트코인 채굴 풀의 가장 큰 비중을 차지하고 있다.

블록체인에 새로운 블록을 승인하기 위해 작업 증명을 요구하는 것은 사토시 나카모토의 핵심 혁신이었다. 채굴 과정은 SHA-256으로 두 번 해싱했을 때 주어진 난이도 목표보다 작은 숫자를 생성하는 블록을 식별하는 것을 포함한다. 필요한 평균 작업량은 난이도 목표에 반비례하여 증가하지만, 해시는 이중 SHA-256을 한 번 실행하여 항상 검증될 수 있다.

비트코인 타임스탬프 네트워크의 경우, 유효한 작업 증명은 블록 해시에 필요한 수의 선행 0비트를 제공하는 값을 찾을 때까지 nonce를 증가시켜 발견된다. 해싱이 유효한 결과를 생성하면, 블록은 작업을 다시 수행하지 않고는 변경될 수 없다. 이후 블록이 그 뒤에 연결됨에 따라, 블록을 변경하는 작업은 각 후속 블록에 대한 작업을 다시 수행하는 것을 포함할 것이다. 합의에 편차가 있으면 블록체인 포크가 발생할 수 있다.

비트코인의 다수 합의는 가장 많은 노력을 들여 생성된 가장 긴 체인으로 표현된다. 정직한 노드가 컴퓨팅 파워의 대부분을 제어한다면, 정직한 체인은 가장 빠르게 성장하고 경쟁하는 다른 체인을 능가할 것이다. 과거 블록을 수정하려면, 공격자는 해당 블록과 그 이후의 모든 블록에 대한 작업 증명을 다시 수행하고 정직한 노드의 작업을 능가해야 한다. 후속 블록이 추가됨에 따라 느린 공격자가 따라잡을 확률은 기하급수적으로 감소한다.
섬네일|채굴 난이도가 크게 증가했다.
시간이 지남에 따라 증가하는 하드웨어 속도와 노드 운영에 대한 다양한 관심을 보상하기 위해, 유효한 해시를 찾는 난이도는 대략 2주마다 조정된다. 블록이 너무 빨리 생성되면 난이도가 증가하고, 블록을 만들고 새로운 비트코인을 생성하는 데 더 많은 해시가 필요하다.

### 난이도와 채굴 풀

섬네일|2020년 4월 기준 국가별 비트코인 채굴 풀

비트코인 채굴은 경쟁적인 노력이다. 비트코인 채굴에 사용된 다양한 해싱 기술을 통해 "군비 경쟁"이 관찰되었다: 기본 중앙 처리 장치(CPU), 고급 그래픽 처리 장치(GPU), FPGA(FPGA) 및 ASIC(ASIC)이 모두 사용되었으며, 각각은 덜 전문화된 기술의 수익성을 감소시켰다. 비트코인 전용 ASIC은 이제 비트코인 채굴의 주요 방법이며, GPU 속도를 최대 300배까지 능가했다. 채굴 과정의 난이도는 네트워크에서 활성화된 채굴 파워에 따라 주기적으로 조정된다. 비트코인 채굴이 더 어려워지면서, 컴퓨터 하드웨어 제조 회사들은 고급 ASIC 제품 판매 증가를 경험했다.

채굴자 수입의 변동을 줄이기 위해 컴퓨팅 파워는 종종 함께 묶이거나 "풀링"된다. 개별 채굴 장비는 거래 블록을 확인하고 지불을 받기 위해 장기간 기다려야 하는 경우가 많다. 풀에서는 참여하는 모든 채굴자들이 참여하는 서버가 블록을 해결할 때마다 지불을 받는다. 이 지불은 개별 채굴자가 해당 블록을 찾는 데 기여한 작업량과 풀에서 사용하는 지불 시스템에 따라 달라진다.

### 환경 영향

[섬네일|right|아발론 [ASIC 기반 채굴기]]

### 채굴된 비트코인
섬네일|left|비트코인 거래가 검증되는 방법을 보여주는 다이어그램
관례에 따라 블록의 첫 번째 거래는 블록 생성자가 소유하는 새로운 비트코인을 생산하는 특별한 거래이다. 이것이 노드가 네트워크를 지원하는 유인책이다. 이는 새로운 비트코인을 유통시키는 방법을 제공한다. 채굴 보상은 210,000블록마다 절반으로 줄어든다. 처음에는 50비트코인으로 시작하여 2012년 말에는 25로, 2016년 여름에는 12.5로, 2020년에는 6.25비트코인으로 다시 줄었다. 2024년 4월 20일 오전 12시 9분 UTC(블록 번호 840,000)에 발생한 가장 최근의 반감기로 인해 블록 보상은 3.125비트코인으로 감소했다. 다음 반감기는 2028년에 발생할 것으로 예상되며, 이때 블록 보상은 1.625비트코인으로 줄어들 것이다. 이 반감기 프로세스는 새로운 코인 생성이 중단되기 전까지 최대 64번 계속되도록 프로그래밍되어 있다.

## 결제 검증

각 채굴자는 블록에 포함될 거래 또는 제외될 거래를 선택할 수 있다. 블록에 더 많은 거래가 있다고 해서 해당 블록을 해결하는 데 더 많은 계산 능력이 필요한 것은 아니다.

나카모토의 백서에 언급된 바와 같이, 전체 네트워크 노드를 실행하지 않고도 비트코인 결제를 검증할 수 있다(간소화된 결제 검증, SPV). 사용자는 가장 긴 체인의 블록 헤더 사본만 필요하며, 이는 가장 긴 체인을 얻었음이 명백해질 때까지 네트워크 노드에 질의하여 얻을 수 있다. 그런 다음, 거래를 해당 블록에 연결하는 해시 트리 브랜치를 가져온다. 거래를 체인의 위치에 연결하는 것은 네트워크 노드가 이를 수락했음을 보여주며, 그 이후에 추가된 블록은 확인을 더욱 확립한다.

## 프로토콜 기능

### 보안
비트코인 네트워크와 결제 시스템으로서의 사용에 대한 다양한 잠재적 공격(실제 또는 이론적)이 고려되었다. 비트코인 프로토콜에는 무단 지출, 이중 지불, 비트코인 위조, 블록체인 변조와 같은 일부 공격으로부터 보호하는 여러 기능이 포함되어 있다. 개인 키 도용과 같은 다른 공격은 사용자의 주의가 필요하다.

#### 무단 지출
무단 지출은 비트코인의 공개-개인 키 암호화 구현으로 완화된다. 예를 들어, 앨리스가 밥에게 비트코인을 보내면, 밥이 비트코인의 새로운 소유자가 된다. 거래를 관찰하는 이브는 밥이 방금 받은 비트코인을 사용하고 싶을 수 있지만, 밥의 개인 키를 알지 못하면 거래에 서명할 수 없다.

#### 이중 지급
인터넷 결제 시스템이 해결해야 할 특정 문제는 이중 지급으로, 사용자가 동일한 코인을 두 명 이상의 다른 수신자에게 지불하는 것이다. 이러한 문제의 예로는 이브가 앨리스에게 비트코인을 보내고 나중에 동일한 비트코인을 밥에게 보내는 경우이다. 비트코인 네트워크는 모든 비트코인 전송을 모든 사용자에게 보이는 원장(블록체인)에 기록하고, 전송된 모든 비트코인이 이전에 사용되지 않았음을 보장함으로써 이중 지불을 방지한다.

#### 경쟁 공격
이브가 앨리스에게 물품 대가로 비트코인을 지불하고 해당 거래에 서명한다고 가정하자. 이브는 동시에 동일한 비트코인을 밥에게 보내는 다른 거래를 생성할 가능성이 있다. 규칙에 따라 네트워크는 두 거래 중 하나만 승인한다. 이를 경쟁 공격이라고 하는데, 수신자들이 먼저 거래를 승인하기 위해 경쟁하기 때문이다. 앨리스는 이브의 앨리스에 대한 지불이 블록체인에 나타날 때까지 물품을 인도하지 않겠다고 명시함으로써 경쟁 공격의 위험을 줄일 수 있다.

경쟁 공격의 변형(할 핀니를 인용하여 핀니 공격이라고 불림)은 채굴자의 참여를 필요로 한다. 이브는 두 개의 지불 요청(동일한 코인으로 밥과 앨리스에게 지불)을 네트워크에 보내는 대신, 앨리스의 지불 요청만 네트워크에 발행하고, 공모자는 앨리스 대신 밥에게 지불을 포함하는 블록을 채굴하려고 시도한다. 불량 채굴자가 네트워크보다 먼저 성공할 긍정적인 확률이 있으며, 이 경우 앨리스에게의 지불은 거부될 것이다. 일반 경쟁 공격과 마찬가지로, 앨리스는 지불이 블록체인에 포함될 때까지 기다림으로써 핀니 공격의 위험을 줄일 수 있다.

#### 기록 수정
주어진 거래를 포함하는 블록을 시작으로 블록체인에 추가되는 각 블록을 해당 거래의 확인이라고 한다. 이상적으로는 비트코인으로 결제를 받는 상인과 서비스는 결제가 완료되었다고 가정하기 전에 최소한 몇 개의 확인이 네트워크에 분산될 때까지 기다려야 한다. 상인이 더 많은 확인을 기다릴수록 공격자가 거래를 성공적으로 되돌리기가 더 어려워진다. 단, 공격자가 전체 네트워크 파워의 절반 이상을 제어하는 경우는 제외하며, 이때는 51% 공격 또는 다수 공격이라고 불린다.
규모가 작은 공격자에게는 더 어렵지만, 기록 수정 공격을 수익성 있게 만드는 재정적 유인이 있을 수 있다.

#### 양자 가능 공격
비트코인에 사용되는 암호화 기본 요소는 양자 이전 시대의 것이므로 암호화 관련 범용 양자 컴퓨터를 가진 적의 공격에 취약하다.

비트코인 프로토콜은 거래를 서명하고 검증하기 위해 타원곡선 DSA (ECDSA)를 사용한다. ECDSA는 이산 로그 문제의 보안에 의존하기 때문에 양자 컴퓨터의 공격에 취약하다. 비트코인 프로토콜은 송신자가 수신자의 공개 키의 해시로 비트코인을 보낼 수 있도록 한다. 해시는 수신자의 공개 키를 가리며, 따라서 사용되지 않은 상태에서는 양자 저항성을 가진다. 그러나 수신자가 받은 비트코인으로 거래하려면 공개 키를 브로드캐스트해야 한다. 이 브로드캐스트는 양자 가능 공격자가 공개 키에서 개인 키를 유추하고 비트코인을 훔칠 수 있게 할 수 있다.

또한, 작업 증명의 보안은 충분한 깊이와 안정성을 가진 범용 양자 컴퓨터가 해싱을 수행할 수 있다면 취약해질 수 있다. 그로버 알고리즘은 비트코인 프로토콜의 해시 기반 작업 증명에 적용되어 유효한 논스를 찾는 시간을 이차적으로 줄일 수 있다. 이러한 양자 컴퓨터가 해시 기반 작업 증명 블록체인에서 그로버 알고리즘을 수행할 수 있다면, 공격자는 엄청난 속도 향상으로 인해 51% 공격을 수행할 수 있을 가능성이 매우 높다.

### 확장성

### 개인 정보 보호
#### 클라이언트의 익명성 해제
익명성 해제는 익명 데이터를 다른 데이터 소스와 교차 참조하여 익명 데이터 소스를 재식별하는 데이터 마이닝 전략이다. 비트코인 주소(가명) 간의 연결을 드러낼 수 있는 거래 그래프 분석과 함께, 사용자 가명을 IP 주소에 연결하는 가능한 공격이 있다. 피어가 Tor를 사용하고 있다면, 이 공격은 피어를 Tor 네트워크에서 분리하여 추가 거래에 실제 IP 주소를 사용하도록 강제하는 방법을 포함한다. 2014년 기준으로 전체 비트코인 네트워크에 대한 공격 비용은 월 1500유로 미만으로 추정되었다.

## 같이 보기
* 웹3

## 각주

## 출처
* 

분류:비트코인