diff --git a/courses/min101/ko.md b/courses/min101/ko.md
index ecd03f33dea..f3879c4f44c 100644
--- a/courses/min101/ko.md
+++ b/courses/min101/ko.md
@@ -1,32 +1,26 @@
---
-name: Bitcoin mining 소개
-goal: Bitcoin mining 및 proof-of-work 처음부터 이해하기
+name: Bitcoin mining(채굴) 소개
+goal: Bitcoin mining 및 proof-of-work(작업증명)의 기초 이해하기
objectives:
-
- - proof-of-work와 Bitcoin에서의 역할을 이해합니다.
+ - proof-of-work의 개념과 Bitcoin에서의 역할을 이해합니다.
- 난이도 조정 메커니즘을 분석합니다.
- - mining과 관련된 기술 용어가 실제로 무엇을 의미하는지 알아보세요.
- - Bitcoin 블록과 그 구성 요소를 구축하는 단계에 대해 설명합니다.
- - mining 산업의 주요 발전 사항을 파악하세요.
-
+ - mining과 관련된 기술 용어들의 실제 의미를 파악합니다.
+ - Bitcoin 블록생성 과정과 그 구성 요소를 설명합니다.
+ - mining 산업의 주요 발전 과정을 알아봅니다.
---
-# Bitcoin mining의 기본 사항 알아보기
-
-
+# Bitcoin mining의 기초 알아보기
-proof of work를 이해하려면 Bitcoin의 작동 방식을 이해해야 합니다. 이 발명과 독창적인 사용법이 없었다면 Bitcoin은 존재할 수 없었을 것입니다. 이 강좌는 비트코인 여정에 필요한 모든 mining 이론을 제공합니다.
+proof of work(작업증명)을 이해하는 것은 비트코인의 작동 방식을 이해하는 것입니다. 이러한 발명과 독창적인 활용이 없었다면, 비트코인은 결코 존재할 수 없었을 것입니다. 이 과정은 여러분의 비트코인 여정에 필요한 모든 채굴 이론을 제공합니다.
-MIN 101은 모든 개념을 처음부터 정확하게 설명하기 때문에 주로 초보자를 대상으로 합니다. 그러나 이미 중급 수준의 지식을 가지고 있다면 이 과정을 통해 이해를 강화하고, 대략적인 직관을 수정하고, 주류 설명에서 종종 누락된 세부 사항을 살펴볼 수 있습니다.
+MIN 101은 모든 개념을 기초부터 정밀하게 설명하므로 주로 입문자를 대상으로 합니다. 하지만 이미 중급 수준의 지식을 갖추고 계신 분들이라도, 이 과정을 통해 이해의 완성도를 높이고, 어렴풋이 이해했던 부분들을 바로잡고 일반적인 설명에서는 놓치기 쉬운 세부적인 내용까지 깊이 있게 살펴볼 수 있습니다.
-
-이 과정을 마치면 proof-of-work이 어떻게 작동하는지 간단하고 엄격하게 설명할 수 있습니다. 또한 MIN 101은 이론이든 실습이든 Plan ₿ Academy에서 Bitcoin mining에 관한 다른 모든 고급 과정을 소개하는 데 이상적입니다.
-
+이 과정을 마치면 proof-of-work(작업증명)의 원리를 쉽고도 명확하게 설명할 수 있게 될 것입니다. 또한 MIN 101은 이론과 실습을 막론하고, Plan ₿ Academy에 마련된 비트코인 채굴 관련 심화 과정들을 시작하기 위한 완벽한 입문서가 되어줄 것입니다.
+++
@@ -34,24 +28,18 @@ MIN 101은 모든 개념을 처음부터 정확하게 설명하기 때문에 주
# 소개
-
041ff0fa-53c3-4d55-9888-d7840de283e9
-
## 코스 개요
-
a82d49dc-d68a-4e3f-985e-bcef6643677e
+비트코인 시스템 내에서 mining(채굴)과 proof-of-Work(작업 증명)의 핵심 이론을 탐구하는 MIN 101 과정에 오신 것을 환영합니다. 이 과정은 mining의 작동 원리를 이해함으로써 진정한 비트코이너로 거듭나기 위한 첫걸음이 될 것입니다. 본 과정을 마치면 심화 이론 과정으로 넘어가거나, 직접 실습을 해보며 bitcoin miner(채굴자)로 활동할 수 있는 기반을 갖추게 됩니다!
-mining과 Proof-of-Work의 기본 이론적 개념을 Bitcoin 시스템 내에서 배울 수 있는 MIN 101 강좌에 오신 것을 환영합니다. 이 과정은 mining의 작동 방식을 이해하는 비트코이너 여정의 첫 번째 단계입니다. 이 과정을 마치면 고급 이론 과정으로 넘어가거나 직접 실습을 통해 비트코인 채굴자가 될 수 있습니다!
-
-
-
-이번 MIN 101 강좌에서는 Bitcoin의 기본 개념은 다시 다루지 않고 바로 핵심을 다루겠습니다: mining입니다. Bitcoin에 대해 들어본 적이 없거나 그 기본 개념이 아직 명확하지 않다면 입문 과정인 BTC 101 강좌부터 시작하는 것을 강력히 추천합니다. 이러한 기본 사항을 익히고 나면 자신감을 가지고 MIN 101에 도전할 수 있을 것입니다:
+이번 MIN 101 과정에서는 비트코인의 기초 개념을 다시 다루지 않고, 핵심 주제인 mining으로 바로 들어갈 것입니다. 비트코인에 대해 처음 들어보셨거나 기초가 아직 조금 생소하시다면, 입문 과정인 BTC 101 과정을 먼저 수강하시길 강력히 권장합니다. 이러한 기본기를 갖추고 나면, 훨씬 수월하게 MIN 101 과정을 이해하고 따라오실 수 있습니다.
https://planb.academy/courses/2b7dc507-81e3-4b70-88e6-41ed44239966
@@ -60,365 +48,270 @@ https://planb.academy/courses/2b7dc507-81e3-4b70-88e6-41ed44239966
### 1부 - 소개
+본격적으로 기술적인 내용을 파고들기 전에, mining(채굴)을 명확하게 이해할 수 있도록 아주 쉽게 설명하며 시작해 보겠습니다.
-이 강좌의 첫 번째 장에서는 기술적 메커니즘에 들어가기 전에 명확한 이해를 돕기 위해 mining에 대해 매우 간단하게 설명해 드리겠습니다.
-
-
-
-여기서는 모든 기술적 세부 사항을 설명하는 것이 목적이 아니라(나중에 강의 후반부에 설명할 예정임) 큰 틀을 제시하는 것이 목표입니다. 이 프레임워크가 마련되면 이후 소개되는 고급 개념은 이 구조에 자연스럽게 들어맞게 됩니다.
+여기서는 세부적인 기술 정보보다는(나중에 자세히 배웁니다), 전체적인 흐름을 파악하는 데 중점을 두었습니다. 이렇게 큰 그림이 그려지면, 그 뒤에 나오는 어려운 개념들도 훨씬 쉽게 느껴질 것입니다.
-### 2부 - proof of work의 작동 원리
+### 2부 - proof of work(작업증명)의 작동 원리
-
-소개에 이어 2부에서는 교육 프로그램의 기술적 기초를 다룹니다. 이 파트의 목표는 Bitcoin이 유효한 블록을 생성하는 방법을 단계별로 설명하는 것입니다. 먼저 블록의 구조에 대해 알아본 다음, 타겟의 역할, 논스 및 해시 함수와 같은 proof-of-work 메커니즘을 살펴볼 것입니다. 마지막으로 난이도 조정 메커니즘을 통해 Bitcoin이 어떻게 해시 파워의 변화에도 불구하고 안정적인 블록 생성 속도를 유지할 수 있는지 살펴보겠습니다. 이 섹션이 끝나면 proof-of-work의 기본 원리를 완전히 이해하게 될 것입니다.
-
+소개에 이어 2부에서는 이번 과정의 기술적 토대를 본격적으로 다룹니다. 여기서는 비트코인이 유효한 블록을 생성하는 과정을 단계별로 설명합니다. 먼저 블록의 구조를 살펴본 뒤, target(목표값), nonce(논스), hash function(해시 함수)의 역할을 중심으로 Proof-of-Work(작업 증명) 메커니즘을 알아봅니다. 마지막으로 difficulty adjustment mechanism(난이도 조절 메커니즘)을 통해 해시 파워의 변동에도 불구하고 비트코인이 어떻게 안정적인 블록 생성 속도를 유지하는지 확인합니다. 이 섹션을 마치면 비트코인 Proof-of-Work의 핵심 원리를 완벽하게 이해하게 될 것입니다.
### 3부 - Bitcoin mining 인센티브 시스템
-
-세 번째 파트에서는 채굴자들이 mining에 정직하게 참여하도록 권장하는 이유를 살펴보겠습니다. 블록 보상의 원리, 구성 및 계산 방법, 반감기를 통한 시간 경과에 따른 진화, 코인베이스 거래의 구체적인 역할에 대해 자세히 설명해드리겠습니다.
-
+세 번째 파트에서는 채굴자들이 왜 정직하게 mining(채굴)에 참여하도록 유도되는지 살펴봅니다. 여기서는 block reward(블록 보상)의 원리와 구성 및 계산 방법, halving(반감기)을 통한 보상의 변화, 그리고 coinbase transaction(코인베이스 트랜잭션)의 구체적인 역할을 자세히 다룹니다.
### 4부 - Bitcoin mining 산업
-
-네 번째 파트에서는 mining의 운영 현실을 다시 살펴봅니다. 현재의 하드웨어 제약을 이해하기 위해 Bitcoin의 시작부터 최신 ASIC에 이르기까지 mining 기계의 진화를 추적합니다. 또한 채굴자들이 어떻게 수입의 편차를 줄일 수 있는지 이해하기 위해 mining 풀의 기본 사항을 살펴봅니다.
-
+네 번째 파트에서는 mining(채굴)의 실제 운영 현황을 다룹니다. 비트코인 초기부터 현대의 ASIC(주문형 반도체)에 이르기까지 채굴기 발전 과정을 추적하며, 현재의 하드웨어적 제약 사항들을 이해해 봅니다. 또한 mining pool(채굴 풀)의 기초 원리를 통해, 채굴자들이 수익의 변동성을 어떻게 관리하고 줄여나가는지 알아봅니다.
### 5부 - 마지막 섹션
-
-과정의 마지막 부분에서는 졸업장을 받아 mining에 대한 지식을 테스트할 수 있습니다.
-
+과정의 마지막 파트에서는 테스트를 통해 그동안 배운 mining(채굴) 지식을 스스로 확인해 볼 수 있습니다.
-따라서 이 MIN 101 과정의 목표는 기술적으로나 경제적으로 Bitcoin mining에 대해 명확하고 체계적이며 지속적으로 이해할 수 있도록 하는 것입니다.
+따라서 이번 MIN 101 과정의 목표는 여러분이 비트코인 mining(채굴)의 기술적, 경제적 측면을 명확하고 체계적으로 체득하도록 돕는 것입니다.
+비트코인 mining(채굴)에 대해 알아볼 준비가 되셨나요? 그럼 시작해 봅시다!
-Bitcoin mining을 알아볼 준비가 되셨나요? 시작해보세요!
-
-
-## 간편한 Bitcoin mining
-
+## 비트코인 채굴 쉽게 이해하기
278577a6-98bb-4659-86c7-f6c4f6d5fa3e
-
-Bitcoin mining에 대한 자세한 기술적 설명으로 넘어가기 전에 의도적으로 간단하고 개략적인 원리에 대한 개요를 알려드리고자 합니다. 이미 기본적인 지식이 있다면 퀴즈 문제에 답한 후 다음 장에서 바로 핵심으로 넘어갈 수 있습니다. 이 장은 주로 초보자가 쉽게 시작할 수 있도록 초보자를 대상으로 합니다.
+비트코인 채굴의 상세한 기술적 내용을 다루기에 앞서, 우선은 이해를 돕기 위해 그 원리를 전체적으로 단순하고 명확하게 짚어보고자 합니다. 이미 기초 지식이 있다면 퀴즈에 응시한 뒤, 다음 장에 나오는 핵심 내용으로 바로 넘어가셔도 좋습니다. 이번 장은 초보자분들이 부담 없이 시작할 수 있도록 돕는 데 초점을 맞추고 있습니다.
-
-누가 누구에게 비트코인을 보냈는지 기록하는 대형 공개 노트북을 모두가 공유하는 Bitcoin이라고 상상해 보세요. 이 노트북을 블록체인이라고 합니다. 블록체인은 한 사람만 보유할 수 없으므로 신뢰할 수 있어야 합니다. 대신 Bitcoin은 수천 대의 컴퓨터가 이 노트북의 동일한 버전을 확인하고 유지하는 공동 작업을 수행합니다.
-
+비트코인을 누구나 공유하며 누가 누구에게 비트코인을 보냈는지 기록하는 거대한 공개 장부라고 상상해 봅시다. 이 장부를 바로 블록체인이라고 부릅니다. 이 장부는 어느 한 사람에 의해 독점될 수 없습니다. 특정 관리자를 무조건 신뢰해야만 하는 상황을 피하기 위해서입니다. 대신 비트코인은 집단적인 방식으로 작동합니다. 수천 대의 컴퓨터가 이 장부의 동일한 복사본을 함께 검증하고 유지하는 것이죠.

-
-Bitcoin에서는 결제를 하면 거래가 생성됩니다. 이 트랜잭션은 노트북에 즉시 추가되지 않습니다. 먼저 네트워크에 전송된 다음 다음 트랜잭션 패킷에 통합될 때까지 기다립니다. 이 패킷을 블록이라고 합니다.
-
+비트코인 네트워크에서는 여러분이 누군가에게 비트코인을 보내면, 하나의 transaction(거래)이 생성됩니다. 이 transaction은 장부에 즉시 기록되지 않습니다. 먼저 네트워크로 전송된 후, 다음 transaction 묶음에 포함되기 위해 대기합니다. 이 묶음을 바로 블록이라고 부릅니다.

+Block은 단순히 여러 transaction을 하나로 모아놓은 세트라고 할 수 있습니다. 하지만 블록이 준비되었다고 해서 이를 네트워크에 전파할 수 있는 것은 아닙니다. 해당 블록이 공유 장부에 추가될 자격이 있다는 것을 네트워크에 증명해야 하기 때문입니다. 바로 이 지점에서 채굴이 등장합니다.
-블록은 간단히 말해 트랜잭션을 그룹으로 묶은 집합입니다. 블록이 준비되면 이를 게시하는 것만으로는 충분하지 않습니다. 해당 블록이 풀에 추가될 가치가 있다는 것을 네트워크에 증명해야 합니다. 이것이 바로 mining이 필요한 이유입니다.
-
-
-
-Mining는 에너지를 소비하여 블록을 검증하는 작업입니다. 채굴자라고 불리는 행위자는 특수 컴퓨터를 사용합니다. 이러한 기계는 네트워크가 허용하는 증명을 찾을 때까지 매우 많은 수의 테스트를 반복적으로 수행하기 위해 전력을 소비합니다. 채굴자가 이 증명을 찾으면 해당 블록은 유효한 것으로 간주됩니다.
+mining은 에너지를 소모하여 block이 유효한지 검증하는 작업입니다. miner라고 불리는 참여자들은 이 과정에서 채굴 전용 컴퓨터를 사용합니다. 이 장치들은 전기를 소모하며, 네트워크의 규칙을 만족하는 해시값을 찾아낼 때까지 수없이 많은 계산을 반복합니다. miner가 마침내 이 해시값을 찾아내면, 그가 만든 block은 비로소 정식으로 승인되어 장부에 추가됩니다.
-블록의 유효성이 확인되면 네트워크에 브로드캐스트됩니다. 다른 노드는 이 블록이 규칙을 준수하는지 신속하게 확인한 다음 이전 블록의 시퀀스에 추가합니다. 새로운 블록이 순차적으로 다른 블록에 추가되고 이 체인이 조금씩 성장하는 것을 '블록체인'이라고 부르는 이유입니다.
-
+block의 유효성이 확인되면, 네트워크 전체에 broadcast(전파)됩니다. 다른 node(노드)들은 이 블록이 규칙을 준수하는지 신속하게 검증한 뒤, 기존 장부의 마지막 블록 뒤에 이어 붙입니다. 새로운 블록들이 이처럼 시간 순서에 따라 차곡차곡 연결되어 chain(체인) 형태를 이루며 성장해 나가기 때문에, 이것을 'blockchain(블록체인)'이라고 부릅니다.

+요약하자면, 먼저 transaction이 생성됩니다. 그다음, 이 거래들은 하나의 block으로 묶입니다. 이어서 miner가 전기를 소모하여 이 블록을 검증합니다. 마지막으로 이 블록이 blockchain에 추가되면, 그 안에 담긴 거래들은 비로소 확정됩니다.
-요약하자면, 트랜잭션이 먼저 생성됩니다. 그런 다음 트랜잭션은 블록으로 그룹화됩니다. 그런 다음 채굴자가 전력을 소비하여 이 블록의 유효성을 검사합니다. 마지막으로 이 블록이 블록체인에 추가되고 블록에 포함된 트랜잭션이 확정됩니다.
-
-
-
-채굴자들이 전기를 소비하는 것은 자원 봉사자이기 때문이 아닙니다. 그들은 보상이 있기 때문에 그렇게 합니다. 채굴자가 블록을 검증하면 두 가지 유형의 수입을 얻게 됩니다. 한편으로는 새로 생성된 비트코인을 받습니다. 다른 한편으로는 블록에 포함된 트랜잭션에 대해 사용자가 지불한 수수료를 받습니다. 즉, 채굴자는 프로그래밍된 화폐 발행과 시장에서 결정되는 거래 수수료를 통해 보상을 받습니다.
+채굴자들이 전기를 소모하는 것은 자원봉사를 하기 위해서가 아닙니다. 그들이 이 일을 하는 이유는 보상이 있기 때문입니다. 채굴자가 블록을 검증하면 두 가지 형태의 수익을 얻게 됩니다. 우선, 새로 생성된 비트코인을 받습니다. 다른 하나는 블록에 포함된 거래를 처리해주고 사용자로부터 받는 fee(수수료)입니다. 다시 말해, 채굴자는 미리 정해진 규칙에 따른 비트코인 신규 발행 수익과 시장 원리에 따라 결정되는 거래 수수료를 통해 보상을 받습니다.
-이 단계에서는 의도적으로 mining에 대한 매우 간단한 보기만 제공됩니다. 블록이 어떻게 구성되는지, 채굴자들이 찾고 있는 증명 채굴이 정확히 어떻게 작동하는지, Bitcoin이 어떻게 일정한 속도를 유지하는지, 보상이 어떻게 정확하게 계산되는지, 어떻게 청구되는지에 대해서는 아직 설명하지 않습니다. 괜찮습니다. 이 MIN 101 과정의 나머지 부분에서는 이 정도만 살펴보도록 하겠습니다!
+지금까지 여러분은 채굴의 개념을 아주 간단하게만 살펴보았습니다. 블록이 구체적으로 어떻게 구성되는지, 채굴자들이 찾는 proof(증명)가 정확히 어떤 원리인지 아직 설명하지 않았습니다. 또한, 비트코인이 어떻게 일정한 속도를 유지하는지, 보상은 정확히 어떻게 계산되고 지급되는지도요. 하지만 괜찮습니다! 이 모든 내용은 이번 MIN 101(채굴 입문) 과정의 나머지 부분에서 차근차근 다룰 예정이니까요!
+이 장의 목표는 '거래 → 블록 → 채굴 → 블록체인 → 보상'으로 이어지는 명확한 개념적 구조를 잡는 것이었습니다. 이 사고의 흐름을 꼭 기억해 두세요. 이어지는 강의에서는 각 요소에 대한 기술적인 세부 사항을 한 층씩 더해나갈 것입니다. 결국 여러분은 비트코인이 단순히 어떻게 돌아가는지를 넘어, 관리자나 신뢰가 필요 없는 환경에서 어떻게 거대한 규모로 안정적으로 작동하는지 그 원리와 이유까지 이해하게 될 것입니다.
-이 장의 목적은 단순히 트랜잭션 → 블록 → mining → 블록체인 → 보상이라는 명확한 사고 구조를 제시하는 것이었습니다. 이 일련의 아이디어를 염두에 두시기 바랍니다. 나머지 과정에서는 각 장에서 이러한 요소 중 하나에 대한 기술적 세부 사항을 추가하여, 무슨 일이 일어나고 있는지뿐만 아니라 신뢰 없이도 대규모로 안정적으로 작동하는 방법과 이유를 이해할 때까지 설명할 것입니다.
-
-
-
-# proof of work 작동 방식
+# proof of work(작업증명) 작동 방식
e917e8e3-37f2-46fb-91b2-6a5ce6f0f5c3
-
## Bitcoin 트랜잭션 경로
-
3b7a3502-4814-4554-8de1-86ac961a2958
-
-Bitcoin mining이 무엇인지 이해하려면 먼저 일반적인 Bitcoin 트랜잭션의 경로를 따라야 합니다. 이를 통해 블록이 정확히 어디에서 작동하는지, 왜 시스템의 핵심에 있는지 알 수 있습니다. 이것이 바로 이 첫 번째 장에서 여러분이 발견했으면 하는 것입니다.
-
+비트코인 채굴이 무엇인지 이해하려면, 먼저 일반적인 비트코인 transaction이 이동하는 경로를 따라가 보아야 합니다. 이를 통해 block이 정확히 어디에서 쓰이는지, 그리고 왜 이 시스템의 핵심인지 알게 될 것입니다. 이것이 바로 제가 이번 첫 번째 장에서 여러분과 함께 찾아내고자 하는 핵심입니다.
-Bitcoin에서 트랜잭션은 비트코인의 소유권을 한 사용자에서 다른 사용자로 이전하는 데이터 구조입니다. 구체적으로 말하면, 과거 거래(소위 UTXO)의 '출력'을 '입력'이라고 하여 소비한 다음, 이 비트코인이 현재 누구의 소유이고 나중에 어떤 조건에서 사용할 수 있는지를 정의하는 새로운 '출력'을 생성합니다.
-
+비트코인에서 transaction이란 한 사용자에게서 다른 사용자로 비트코인의 소유권을 이전하는 데이터 구조입니다. 구체적으로 말하면, 거래는 과거 거래의 output(출력값)을 사용하는데, 이를 흔히 UTXO(미사용 거래 출력값)라고 부르며 새로운 거래의 input(입력값)으로 참조합니다. 그런 다음 이 비트코인이 이제 누구의 소유인지, 나중에 어떤 조건에서 사용될 수 있는지를 정의하는 새로운 output을 생성합니다.

-
-Bitcoin의 중요한 점은 지출 권한입니다. Bitcoin은 은행에 있는 돈처럼 계좌에 있는 것이 아니라 지출 조건에 따라 잠겨 있습니다. wallet이 UTXO를 입력으로 사용하려면 잠금을 해제할 권한이 있다는 암호학적 증명을 제공해야 합니다. 이 증명은 종종 개인 키의 디지털 서명 generated의 형태를 취합니다. 그렇기 때문에 비트코인 사용자들은 개인 키의 보안을 고집합니다. 개인 키를 통해 비트코인에 대한 액세스를 잠금 해제하고 결과적으로 비트코인을 사용할 수 있기 때문입니다.
-
+비트코인에서 가장 중요한 점은 바로 '사용 권한'입니다. 비트코인은 은행 계좌처럼 숫자로 기록된 예금이 아니라, 특정 조건이라는 자물쇠로 잠겨 있는 상태에 가깝습니다. 지갑이 UTXO(미사용 거래 출력값)를 새로운 거래의 입력값으로 쓰려면, 그 자물쇠를 풀 권한이 있다는 암호학적 증명을 제시해야 합니다. 이 증명은 보통 private key(개인키)라는 열쇠를 사용해 만든 digital signature(디지털 서명)의 형태를 띱니다. 비트코이너들이 개인키 보안을 그토록 강조하는 이유가 여기 있습니다. 오직 이 열쇠만이 여러분의 비트코인 자물쇠를 열고 사용할 수 있게 해주기 때문입니다.

-
-Bitcoin의 디지털 서명은 두 가지 중요한 역할을 합니다:
-
-
-
-
-- 지출 승인: 사용자가 UTXO 지출 조건에서 예상하는 개인 키를 보유하고 있음을 증명합니다;
-- 무결성 보호: 승인을 거래의 정확한 세부 정보(수신자, 금액, 수수료 등)에 연결합니다. 나중에 누군가 거래를 변경하면 서명은 더 이상 유효하지 않습니다.
-
-
-
-트랜잭션이 올바르게 구성되고 사용자의 Bitcoin wallet에 의해 서명된 후에는 Bitcoin 네트워크에서 브로드캐스트되어야 합니다.
-
-
-
-### 배포에서 Bitcoin 노드의 역할
+비트코인에서 디지털 서명은 크게 두 가지 핵심 역할을 수행합니다.
+- 지출 승인: 사용자가 해당 UTXO가 요구하는 조건에 맞는 private key를 실제로 보유하고 있음을 증명합니다.
+- 무결성 보호: 서명은 거래의 구체적인 내용(수취인, 금액, 수수료 등)과 사용 권한을 하나로 결합합니다. 만약 누군가 거래 내용을 사후에 조금이라도 수정한다면, 그 서명은 더 이상 유효하지 않게 됩니다.
-Bitcoin은 P2P 네트워크이므로 모든 트랜잭션을 수신하고 처리하는 중앙 서버가 없습니다. 이 역할은 노드들이 공동으로 수행합니다. Bitcoin 노드는 Bitcoin 네트워크의 다른 노드에 연결된 소프트웨어(예: Bitcoin 코어)로, 트랜잭션과 블록을 검증, 저장, 중계하는 것이 주요 임무입니다.
+사용자의 비트코인 지갑에서 transaction이 올바르게 생성되고 서명까지 완료되면, 이제 이 거래를 비트코인 네트워크에 broadcast해야 합니다.
-wallet에서 트랜잭션을 전송하면 wallet는 이를 노드(본인 또는 서비스 노드)로 전달합니다. 이 노드는 먼저 트랜잭션이 다음과 같은 다양한 규칙을 준수하는지 확인합니다:
+### 배포 과정에서의 비트코인 노드의 역할
+비트코인은 peer-to-peer 네트워크입니다. 즉, 모든 거래를 수신하고 처리하는 중앙 서버가 존재하지 않습니다. 이 역할은 수많은 노드가 공동으로 수행합니다. 비트코인 노드란 비트코인 네트워크에 연결된 소프트웨어(예: Bitcoin Core)를 말하며, 거래와 블록을 검증하고 저장하며 전달하는 것이 주요 임무입니다
-- 서명이 유효합니다;
-- 입력은 기존 UTXO(즉, 현존하는 비트코인)을 참조합니다;
-- 이 UTXO은 이미 다른 곳에 사용되지 않았습니다;
-- 출력의 양이 입력의 양보다 적거나 같습니다(비트코인은 무에서 유를 창조하지 않습니다);
-- 등
+지갑에서 거래를 전송하면, 지갑은 이 거래를 노드(본인의 노드 또는 서비스 제공자의 노드)로 전달합니다. 해당 노드는 가장 먼저 그 거래가 다음과 같은 다양한 규칙을 준수하는지 확인합니다.
+- 서명이 valid(유효)한가?
+- 입력값이 실제 존재하는 UTXO(미사용 거래 출력값)를 참조하고 있는가? (즉, 실제로 존재하는 비트코인인가?)
+- 이중 지불 확인: 이 UTXO가 다른 곳에서 이미 사용되지는 않았는가?
+- 출력값의 총합이 입력값의 총합보다 작거나 같은가? (비트코인은 아무 근거 없이 무에서 생성되지 않습니다.)
+- 기타 등등
-트랜잭션이 이 모든 검사를 통과하면 노드는 연결된 네트워크의 다른 노드에 트랜잭션을 전파합니다. 다른 노드들은 차례로 이를 확인하고 중계하는 방식으로 트랜잭션을 전달합니다. 몇 초 만에 트랜잭션이 전파되어 Bitcoin 네트워크 전체 또는 적어도 상당 부분의 노드에 알려지게 됩니다.
+거래가 이 모든 검증 과정을 통과하면, 해당 노드는 자신과 연결된 네트워크상의 다른 노드들에게 이 거래를 전파합니다. 거래를 전파받은 노드들 역시 각자 거래를 검증한 뒤 다시 주변으로 전달하며, 이 과정은 꼬리에 꼬리를 물고 이어집니다. 단 몇 초 만에 이 거래는 비트코인 네트워크 전체, 혹은 적어도 대부분의 노드가 알 수 있도록 널리 퍼지게 됩니다.

-
### 멤풀: 트랜잭션 대기실
+거래가 전파된 순간부터 블록에 포함되어 확정되기까지는 기다림의 시간이 필요합니다. 이 대기 공간을 mempool(멤풀)이라고 부르는데, 이는 memory(메모리)와 pool(풀)의 합성어입니다. 따라서 멤풀은 유효성은 검증되었지만 아직 블록에 담겨 확정되지는 않은 거래들을 위한 임시 저장 공간입니다.
-트랜잭션이 브로드캐스트되는 순간부터 블록에서 확정되는 순간까지 트랜잭션은 대기해야 합니다. 이 대기 공간을 멤풀(`메모리`와 `풀`의 합성어)이라고 합니다. 따라서 멤풀은 유효하지만 아직 확인되지 않은 트랜잭션을 위한 임시 저장 공간입니다.
-
-
-
-중요한 점은 단일 멤풀은 존재하지 않고 멤풀만 존재한다는 것입니다. 각 노드는 고유한 로컬 제약 조건과 함께 자체 멤풀을 유지합니다. 즉, 특정 순간에 두 노드는 수신한 내용, 거부한 내용, 삭제한 내용에 따라 멤풀의 내용이 조금씩 다를 수 있습니다.
+여기서 중요한 점은, 네트워크 전체를 통틀어 단 하나의 멤풀만 존재하는 것이 아니라 수많은 개별 멤풀이 존재한다는 사실입니다. 각 노드는 자신만의 로컬 제약 조건에 따라 독자적인 멤풀을 유지합니다. 즉, 특정 시점에 두 노드가 가진 멤풀의 내용은 서로 조금씩 다를 수 있습니다. 각 노드가 어떤 거래를 수신했는지, 무엇을 거절했는지, 혹은 무엇을 제거했는지에 따라 차이가 발생하는 것입니다.

-
-이 단계에서 네트워크는 트랜잭션에 대해 알고 있고, 트랜잭션을 확인했으며, 확인될 때까지 메모리에 보관하고 있습니다. 그러나 이 트랜잭션의 확인은 채굴자가 트랜잭션을 블록에 삽입하고 이 블록이 네트워크에 의해 승인될 때만 이루어집니다.
-
-
-
-### Blockchain: 공개 타임스탬프 등록기
+이 단계에서 네트워크는 거래의 존재를 인지하고 검증을 마쳤으며, 확정되기 전까지 이를 메모리에 보관합니다. 하지만 이 거래가 최종적으로 confirmation(확정)되는 것은 채굴자가 거래를 블록에 포함시키고, 이 블록이 네트워크에 의해 받아들여졌을 때만 가능합니다.
+### Blockchain: 공개 타임스탬프 기록부
-비트코인은 무형 화폐이므로 중앙 기관 없이 이중 지출을 방지하는 한 가지 문제를 해결해야 합니다. 두 트랜잭션이 동일한 UTXO를 사용하려고 시도하는 경우, 모든 사람이 하나의 일관된 상태로 수렴할 수 있어야 합니다. Satoshi Nakamoto는 이 문제를 이 유명한 문장으로 요약합니다:
+비트코인은 형태가 없는 무형의 화폐이기 때문에, 중앙 기관 없이 이중 지불을 방지해야 하는 문제를 반드시 해결해야 합니다. 만약 두 개의 거래가 동일한 UTXO를 동시에 사용하려고 시도한다면, 네트워크의 모든 참여자가 하나의 일관된 상태로 합의할 수 있어야 합니다. 사토시 나카모토는 이 문제를 다음과 같은 유명한 문장으로 요약했습니다.
-> 거래가 없음을 확인하는 유일한 방법은 모든 거래를 파악하는 것입니다.
+> 어떤 거래가 존재하지 않는다는 것(이중 지불되지 않았음)을 확인하는 유일한 방법은, 모든 거래를 인지하고 있는 것뿐이다.
-즉, 비트코인이 아직 사용되지 않았는지 확인하려면 과거 지출에 대한 공통된 기록이 필요합니다.
+다시 말해, 특정 비트코인이 아직 사용되지 않았음을 증명하려면 과거의 모든 지출 내역을 기록한 공동의 장부가 필요하다는 뜻입니다.
+이것이 바로 블록체인의 역할입니다. 즉, 모든 거래 이력을 담고 있는 공공 기록부인 셈입니다. 여기서 비트코인은 거래가 발생할 때마다 하나씩 기록하는 대신, 거래들을 하나의 block(블록)으로 묶어서 처리합니다. 각 블록은 역사의 한 페이지 역할을 하며, 이 시스템은 마치 time-stamp server(타임스탬프 서버)처럼 작동합니다. 즉, 모든 거래를 시간 순서에 따라 검증 가능한 방식으로 정렬하는 것입니다.
-이것이 바로 블록체인의 역할, 즉 거래 내역을 담은 공공 장부입니다. 하지만 Bitcoin은 각 트랜잭션이 발생할 때마다 기록하는 것이 아니라 블록으로 그룹화합니다. 각 블록은 기록 페이지 역할을 하며, 따라서 시스템은 타임스탬프 서버처럼 작동하여 검증 가능한 방식으로 시간 경과에 따른 트랜잭션을 정렬합니다.
-
-
-
-각 블록에는 이전 블록의 암호화 지문(해시)이 포함되어 있다는 간단한 원칙 덕분에 이 레지스터는 다시 쓸 수 없습니다. 따라서 블록은 서로 연결되어 있습니다. 과거 블록을 수정하면 해시가 변경되어 다음 블록과의 연결이 끊어지고, 그 이후 블록과의 연결이 끊어지는 등의 방식으로 블록이 연결됩니다. 이러한 의존성의 사슬이 바로 "*블록체인*"이라는 이름을 붙인 것입니다.
+이 기록부는 하나의 단순한 원리 덕분에 수정이나 조작이 불가능합니다. 바로 각 블록이 이전 블록의 암호화된 지문인 hash(해시)를 포함하고 있기 때문입니다. 이로 인해 블록들은 서로 연결됩니다. 만약 과거의 블록 하나를 수정하면 해당 블록의 해시값이 변하게 되고, 이는 다음 블록과의 연결 고리를 끊어버립니다. 그 영향으로 그다음 블록, 또 그 뒤의 블록까지 연쇄적으로 연결이 깨지게 됩니다. 이러한 체인형태의 연결 구조 덕분에 "*블록체인*"이라는 이름이 붙게 된 것입니다.

-
-Bitcoin의 기본 원리를 이해했다면, 보류 중인 트랜잭션을 새겨 기존 체인을 확장하는 새로운 블록을 생성한 다음 이를 유효하게 만드는 마이너의 목표를 좀 더 구체적으로 설명할 수 있습니다(이는 이후 장에서 살펴볼 유명한 "proof of work"입니다). 하지만 먼저 다음 장에서 후보 블록이 어떻게 구성되는지 함께 알아봅시다.
+비트코인의 이러한 기본 원리들을 이해했다면, 이제 miner(채굴자)의 역할을 더 구체적으로 정의할 수 있습니다. 바로 대기 중인 거래들을 기록하여 기존의 체인을 확장할 새로운 블록을 만드는 것입니다. 그러고 나서 해당 블록을 유효하게 만드는 시도를 해야 하는데, 이것이 바로 나중에 자세히 다룰 그 유명한 proof of work(작업 증명)입니다. 하지만 그전에, 다음 장에서 candidate block(후보 블록)이 구체적으로 어떻게 구성되는지부터 함께 살펴보겠습니다.
-
-## Bitcoin 블록 구축
-
+## Bitcoin 블록 구축하기
2b5cd04b-d400-4865-b0a0-e70fa7e67c17
-
-이제 Bitcoin 트랜잭션의 작동 방식과 블록체인의 역할에 대해 이해하셨습니다. 그러나 proof-of-work의 작동 방식을 자세히 살펴보기 전에 채굴자가 반드시 수행해야 하는 필수 단계인 후보 블록의 구성이 남아 있습니다. 유효한 증명을 찾기 시작하기 전에 후보 블록이 무엇이며 채굴자가 이를 어떻게 구성하는지 함께 알아봅시다.
-
+이제 비트코인 거래가 어떻게 작동하는지, 그리고 블록체인의 역할이 무엇인지 이해하셨을 것입니다. 하지만 proof-of-work(작업 증명)의 원리를 자세히 살펴보기 전에, 채굴자가 반드시 거쳐야 할 필수적인 단계가 하나 더 남아 있습니다. 바로 candidate block(후보 블록)을 만드는 과정입니다. 유효한 증명을 찾아 나서기 전에, 후보 블록이 무엇인지 그리고 채굴자가 이를 어떻게 구성하는지 함께 알아보겠습니다.
### 후보 블록
-
-Miner는 채굴을 시도하기 전에 블록을 직접 만들어야 합니다. 각 마이너는 자신의 멤풀에 대기 중인 트랜잭션에서 후보 블록으로 알려진 것을 차례로 구성합니다. 따라서 후보 블록을 구축하는 과정은 다음과 같이 구성됩니다:
-
-
-
-
-- 포함할 트랜잭션을 선택합니다;
-- gW-83 규칙과 호환되는 방식으로 이러한 트랜잭션을 구성합니다;
-- 는 헤더에 저장된 블록의 메타데이터를 생성합니다.
-
+채굴자는 본격적인 채굴에 앞서 블록을 직접 구축해야 합니다. 각 채굴자는 자신의 멤풀에서 대기 중인 거래들을 모아 이른바 candidate block(후보 블록)을 구성합니다. 여기서 후보 블록을 구축한다는 것은 다음과 같은 작업들로 이루어집니다.
-거래 선택은 간단한 경제 논리를 따릅니다. 블록은 Bitcoin 프로토콜에 의해 용량이 제한되어 있으므로 채굴자는 이 공간에서 얻는 수익을 극대화하려고 합니다. 채굴자는 블록에서 차지하는 공간에 비해 가장 높은 수수료를 제공하는 거래를 우선적으로 선택합니다(이를 "수수료율"이라고 하며, sats/vB로 표시됨). 수수료에 대한 자세한 내용은 나중에 다루겠지만, 공간 효율성을 기준으로 정렬한다는 개념만 기억하세요.
+- 포함할 거래 선택: 어떤 거래들을 블록에 담을지 결정합니다.
+- 거래 정렬: 선택한 거래들을 비트코인의 규칙(protocol)에 부합하는 방식으로 정렬하고 구성합니다.
+- 메타데이터 생성: 블록의 header(헤더)에 저장될 블록의 메타데이터(데이터에 대한 데이터)를 생성합니다.
+어떤 거래를 선택할지는 단순한 경제적 논리에 따릅니다. 블록의 데이터 용량은 비트코인 프로토콜에 의해 제한되어 있으므로, 채굴자는 이 한정된 용량 안에서 자신의 수익을 극대화하고자 합니다. 그래서 블록 내에서 차지하는 용량 대비 가장 높은 수수료를 제안한 거래들을 우선적으로 선택합니다. (이것을 fee rate(수수료율)이라고 하며, 보통 sats/vB 단위로 표시합니다.) 수수료에 대한 자세한 내용은 나중에 다루겠지만, 지금은 용량 대비 수익 효율에 따라 거래를 정렬한다는 개념만 기억해 두시면 됩니다.
-따라서 Bitcoin 블록은 크게 두 부분으로 구성됩니다:
+따라서 비트코인 블록은 크게 두 부분으로 구성됩니다.
-
-- 거래 목록입니다;
-- 블록 헤더는 블록의 신분증과 같은 역할을 합니다.
-
+- 거래 목록
+- 블록 헤더(블록의 신분증 역할)

-
-헤더는 proof-of-work의 기초로 사용되기 때문에 필수적입니다. Bitcoin에서는 전체 블록을 직접 채굴하지 않고, 블록을 체인에 연결하고 그 내용을 커밋하는 데 필요한 정보를 요약한 블록의 헤더만 채굴합니다. 헤더가 모든 트랜잭션을 나타낼 수 있도록 Bitcoin은 암호화 도구인 머클 트리를 사용합니다.
-
-
-
-### 머클 트리: 대규모 트랜잭션 세트 요약하기
-
+header(헤더)는 작업 증명의 기초가 되기 때문에 매우 중요합니다. 비트코인에서는 블록 전체를 직접 채굴하는 것이 아니라, 블록의 헤더만을 채굴합니다. 이 헤더는 블록을 체인에 연결하고 그 내용을 확정하는 데 필요한 정보를 요약하고 있습니다. 헤더가 모든 거래를 대표할 수 있도록, 비트코인은 Merkle tree(머클 트리)라는 암호화 도구를 사용합니다.
-헤더에 모든 트랜잭션을 나열하는 것은 불가능합니다. 블록에는 수천 개의 트랜잭션이 포함될 수 있지만 헤더의 크기는 고정된 크기(80바이트)를 가집니다. 따라서 해결책은 블록의 모든 트랜잭션에 따라 달라지는 고유 해시를 계산하는 것인데, 이것이 바로 머클 루트입니다.
+### 머클 트리: 방대한 거래 데이터 요약하기 (The Merkle tree)
+수천 개의 거래 목록을 헤더에 모두 기록하는 것은 불가능합니다. 블록에는 수천 개의 거래가 포함될 수 있지만, 헤더의 크기는 80바이트(bytes)로 고정되어 있기 때문입니다. 이에 대한 해결책은 블록 내의 모든 거래에 의존하는 단 하나의 고유한 해시값을 계산하는 것인데, 이것이 바로 Merkle root(머클 루트)입니다.
-원칙은 다음과 같습니다:
+작동 원리는 다음과 같습니다.
-
-- 를 입력하면 각 트랜잭션의 암호화 지문(해시)이 계산됩니다;
-- 이 해시는 쌍을 이루고 연결된 다음 다시 해시되어 새로운 해시 레이어를 형성합니다;
-- 이 과정은 하나의 최종 해시인 머클 루트를 얻을 때까지 반복됩니다.
-
+- 개별 거래 해시화: 각 거래의 해시를 계산합니다.
+- 쌍을 지어 결합: 이 해시들을 두 개씩 짝을 지어 연결한 뒤, 다시 해시화하여 새로운 층(layer)의 해시들을 만듭니다.
+- 반복 생성: 단 하나의 최종 해시가 남을 때까지 이 과정을 반복합니다. 이 최종 결과물이 바로 Merkle root(머클 루트)입니다.

-
-따라서 단일 트랜잭션이 단 1비트라도 변경되면 그 결과 머클 루트로 전파되는 지문이 수정됩니다. 이 루트는 블록 헤더에 포함됩니다. 따라서 과거 트랜잭션을 수정한다는 것은 해당 트랜잭션이 포함된 블록 헤더와 블록 풋프린트, 그리고 후속 블록과의 링크를 수정하는 것을 의미합니다.
-
+따라서 단 하나의 거래에서 단 1비트만 바뀌더라도 해당 거래의 해시가 변하게 되며, 이 변화는 머클 루트까지 연쇄적으로 전달됩니다. 이 루트 값이 블록 헤더에 포함되기 때문에, 과거의 거래를 수정한다는 것은 곧 그 거래가 포함된 블록 헤더를 수정한다는 뜻이 됩니다. 이는 결국 블록의 지문을 바꾸고, 이후 이어지는 모든 블록과의 연결 고리까지 끊어버리게 됩니다.
-SegWit부터는 시그니처를 나머지와 분리했습니다. 따라서 실제로는 각 블록 내에 2개의 머클 트리가 중첩되어 있습니다. 이러한 분리는 블록의 크기를 계산하는 방식과 특정 암호화 커밋에 영향을 미치지만, 헤더가 블록의 모든 내용을 간결하게 커밋해야 한다는 기본 아이디어는 동일하게 유지됩니다.
-
+SegWit(세그윗) 도입 이후에는 서명(signature) 데이터를 나머지 데이터와 분리하게 되었습니다. 그래서 실제로는 각 블록 내에 두 개의 머클 트리가 중첩되어 존재합니다. 이러한 분리는 블록의 크기를 계산하는 방식이나 일부 암호학적 증명 방식에 영향을 주지만, 기본 아이디어는 동일합니다. 바로 헤더가 블록의 모든 내용을 아주 간결한 방식으로 증명해야 한다는 것입니다.
### 블록 헤더
-
-블록 헤더의 길이는 80바이트이며 정확히 6개의 필드를 포함합니다. proof of work을 검색할 때 해시되는 것은 바로 이 6가지 요소입니다(다음 장 참조):
-
-
-
-
-
-- 버전(`버전`): 블록이 준수하는 규칙 또는 업데이트 신호를 나타냅니다. 프로토콜 호환성과 진화를 유지하기 위한 메커니즘 역할을 합니다.
-
-
-
-
-- 이전 블록 해시(`previousblockhash`): 이전 블록 헤더의 해시입니다. 이것이 블록을 서로 연결하는 역할을 합니다. 이 필드가 없으면 독립적인 블록이 존재하게 됩니다. 이전 블록의 헤더 해시를 포함함으로써 각각의 새 블록이 이전 블록을 기반으로 구축되는 체인을 얻게 됩니다.
+블록 헤더는 80바이트 크기로, 정확히 6개의 필드로 구성됩니다. 다음 장에서 다룰 작업 증명을 할 때 해시화되는 대상이 바로 이 6가지 요소입니다.
+- 버전(`version`): 해당 블록이 준수하는 규칙이나 업데이트 신호를 나타냅니다. 이는 프로토콜의 호환성을 유지하고 네트워크를 진화시키는 메커니즘 역할을 합니다.
-- 머클 루트(`merkleroot`): 머클 트리를 통해 블록에 있는 모든 트랜잭션의 지문입니다. 이는 헤더를 콘텐츠에 연결합니다. 채굴자가 트랜잭션의 선택 또는 순서를 수정하면 루트가 변경됩니다.
+- 이전 블록 해시(`previousblockhash`): 이전 블록 헤더의 해시값입니다. 블록들을 서로 연결해 주는 핵심 요소입니다. 이 필드가 없다면 각 블록은 서로 독립적인 상태로 남게 됩니다. 이전 블록 헤더의 해시를 포함함으로써, 각 블록이 이전 블록 위에 쌓이는 체인구조가 형성됩니다.
+- 머클 루트(`merkleroot`): (머클 트리를 통해 생성된) 블록 내 모든 거래의 지문입니다. 헤더와 실제 내용을 연결하는 역할을 합니다. 채굴자가 거래의 선택이나 순서를 변경하면 머클 루트도 즉시 변경됩니다.
-- 타임스탬프: 타임스탬프: 채굴자가 선택한 타임스탬프(유효성 제약 조건이 있는 유닉스 시간)로, 블록이 채굴된 시점을 나타내야 합니다. 초 단위까지 완벽하게 정확할 필요는 없지만 네트워크에서 허용 가능한 상태를 유지하려면 특정 조건을 충족해야 합니다.
+- 타임스탬프: 채굴자가 선택한 블록 생성 시간(Unix 시간)입니다. (네트워크가 인정하는 유효 범위 내여야 합니다.) 초 단위까지 완벽하게 정확할 필요는 없지만, 네트워크에서 수용되기 위한 특정 조건을 충족해야 합니다.
+- 난이도 목표치(`nbits`):현재의 채굴 난이도 목표치를 인코딩하여 담고 있는 필드입니다. 난이도 장에서 더 자세히 다루겠지만, 이 설정값이 헤더의 일부라는 점을 기억해 두세요.
-- 인코딩된 난이도 목표(`n비트`): 이 필드는 현재 난이도 목표를 인코딩합니다. 난이도에 대한 장에서 더 자세히 설명하겠지만 이 매개변수는 헤더의 일부라는 점을 기억하세요.
+- 논스 (`nonce`): 채굴자가 임의로 변경할 수 있는 값입니다. 작업 증명 과정에서 정답을 찾기 위해 반복적으로 값을 대입해 보는 변수 역할을 합니다. 다음 장에서 자세히 설명하겠지만, 논스는 유효한 블록 해시를 찾을 때까지 계속해서 계산을 시도할 수 있도록 설계된 블록 헤더의 핵심 요소입니다.
-
-- Nonce (`없음`): 채굴자가 자유롭게 수정할 수 있는 값입니다. proof-of-work 동안 조정 가능한 변수 역할을 합니다. 다음 장에서 논스의 역할에 대해 더 자세히 설명하겠지만, 논스는 블록 헤더의 일부이며 연속적인 시도를 허용하도록 설계되었다는 점을 이해하는 것이 중요합니다.
-
-
-
-이를 보다 쉽게 시각화하기 위해 16진수 형식(80바이트)의 블록 헤더를 예로 들어 설명합니다:
+이해를 돕기 위해, 16진수 형식(hexadecimal)으로 된 블록 헤더의 예시(80바이트)를 살펴보겠습니다.
@@ -428,90 +321,67 @@ de3a10826e2acb2f28fba70463601c789293d0c9c4348d7a0d06711e97c0bcb13a64b2e00517
43f09a40
```
-
-
-다음은 분야별 분석입니다:
+각 필드별 데이터는 다음과 같습니다.
```text
-version: 00e0ff3f
-previousblockhash: 5ffe3b0d9247dc437e18edc19252e4517cee941752d501000000000000000000
-merkleroot: 206bde3a10826e2acb2f28fba70463601c789293d0c9c4348d7a0d06711e97c0
-time: bcb13a64
-nbits: b2e00517
-nonce: 43f09a40
+버전(version): 00e0ff3f
+(이전 블록 해시)previousblockhash: 5ffe3b0d9247dc437e18edc19252e4517cee941752d501000000000000000000
+머클 루트(merkleroot): 206bde3a10826e2acb2f28fba70463601c789293d0c9c4348d7a0d06711e97c0
+시간(time): bcb13a64
+난이도 목표치(nbits): b2e00517
+논스(nonce): 43f09a40
```
+채굴자가 구성한 이 후보 블록 헤더(candidate block header)가 모든 작업의 기초가 됩니다. 유효한 작업 증명을 찾을 때, 수많은 거래 목록 전체를 직접 반복해서 해시화하는 것이 아닙니다. 대신 과거의 블록들과 연결되고 그 내용을 증명하는 데 필요한 모든 정보가 담긴 이 80바이트의 헤더를 사용합니다. 여기에는 다음 장에서 살펴볼 채굴 메커니즘에 필요한 핵심 설정값들도 모두 포함되어 있습니다.
-마이너가 구성한 이 후보 블록 헤더는 작업의 기초를 형성합니다. 유효한 proof-of-work을 검색할 때 루프에서 직접 해시되는 것은 전체 트랜잭션 목록이 아니라 이 80바이트 블록으로, 블록을 과거와 연결하고 그 내용을 커밋하는 데 필요한 모든 것을 포함하며, 다음 장에서 살펴볼 mining 메커니즘에 필요한 파라미터도 포함하고 있습니다.
-
-
-
-## 해시, 대상 및 논스
-
+## 해시, 목표치 및 논스
d054323b-16bd-4556-bac5-4878654e59a3
-
-이전 장에서는 Bitcoin 트랜잭션의 경로를 따라 wallet이 생성하고 서명하며, 노드에 의해 릴레이되고, 멤풀에 저장된 다음, 채굴자가 네트워크에서 승인된 블록에 이를 포함할 때 확인되는 과정을 살펴보았습니다. 그러나 채굴자가 자신의 블록을 블록체인에 추가하는 방법은 아직 밝혀지지 않았습니다. mining의 프로세스는 어떻게 진행되나요?
-
-
-
-mining 프로세스를 이해하는 것은 매우 간단합니다. 해시 함수, 목표 값, 채굴자가 수정할 수 있는 변수라는 세 가지 개념으로 요약할 수 있습니다. 이 모든 것이 어떻게 작동하는지 살펴보겠습니다.
+이전 장들에서 우리는 비트코인 거래가 지갑에서 생성 및 서명되고, 노드에 의해 전달되며, 멤풀에 저장되었다가, 채굴자가 네트워크에서 승인된 블록에 포함함으로써 최종적으로 컨펌되는 과정을 살펴보았습니다. 하지만 채굴자가 어떻게 자신의 블록을 블록체인에 추가할 수 있는지는 아직 자세히 다루지 않았습니다. 채굴 이면에는 어떤 과정이 숨겨져 있을까요?
+채굴 과정을 이해하는 것은 생각보다 간단합니다. 이는 서로 밀접하게 연관된 세 가지 개념으로 요약됩니다. 바로 해시 함수(hash function), 목표치(target value), 그리고 채굴자가 수정할 수 있는 변수입니다. 이 요소들이 어떻게 맞물려 작동하는지 알아보겠습니다.
-### 해시 함수
+### 해시 함수(The hash function)
-해시 함수는 메시지를 입력으로 받아 "*지문*" 또는 "*해시*"라고 하는 고정된 크기의 출력을 생성하는 도구입니다.
-
+해시 함수는 어떤 메시지를 입력하든 고정된 크기의 출력을 만들어내는 도구입니다. 이 출력 값을 "*지문*" 또는 "*해시*"라고 부릅니다.

-
-해시 함수는 특정 속성을 가지고 있기 때문에 컴퓨터 시스템에서 흥미롭습니다:
-
-
+해시 함수는 다음과 같은 독특한 특성 덕분에 컴퓨터 시스템에서 매우 유용하게 쓰입니다.
-- 입력의 한 비트를 변경하면 결과 출력 해시는 완전히 예측할 수 없을 정도로 변경됩니다;
-
+- 입력값이 단 1비트만 바뀌어도 결과는 예측 불가능할 정도로 완전히 달라집니다.

-
-
-- 출력에서 입력으로 이동하는 것은 불가능합니다. 이 기능은 되돌릴 수 없습니다;
-
+- 결과값(출력)을 보고 원래의 입력값을 알아내는 것은 불가능합니다: 해시 함수는 역행이 불가능한 특징을 가집니다.

-
-
-- 정확히 동일한 해시를 제공하는 서로 다른 두 개의 메시지를 찾는 것은 불가능합니다.
-
+- 정확히 같은 해시값을 생성하는 서로 다른 두 메시지를 찾는 것은 불가능합니다.

-
-Bitcoin에서 mining에 사용된 해시 함수는 `SHA256`로, 두 번 연속으로 적용됩니다. 이를 더블 SHA256 또는 `SHA256d`라고 합니다. 블록의 지문을 생성하는 것이 바로 이 이중 해싱입니다.
-
+비트코인 채굴에 사용되는 해시 함수는 `SHA256`이며, 이를 두 번 연속으로 적용합니다. 이는 더블 SHA256 또는 `SHA256d`라고 합니다. 블록의 지문은 바로 이 이중 해싱 과정을 통해 생성됩니다.
```text
@@ -519,36 +389,27 @@ hash = SHA256(SHA256(message))
```
-
-우리의 경우 '메시지'는 실제로 이전 장에서 보았던 블록 헤더에 해당합니다. 헤더는 블록의 모든 내용을 요약하는 작은 구조입니다.
-
+여기서 `메시지`는 이전 장에서 보았던 블록 헤더에 해당합니다. 헤더는 블록의 모든 내용을 요약하는 작은 구조입니다.

-
### 작업 증명: 목표보다 작은 해시 찾기
-
-Proof-of-Work는 종종 복잡한 문제를 해결하는 것으로 묘사됩니다. 실제로는 시행착오를 거치며 검색하는 것만큼 문제가 되지 않습니다. 채굴자는 (`SHA256d` 해시 함수를 통과한 후) 해시가 특정 목표보다 작아야 한다는 간단한 조건을 준수하는 헤더 버전을 찾아야 합니다.
-
+작업 증명(Proof-of-Work)은 흔히 복잡한 문제를 푸는 것으로 묘사되곤 합니다. 하지만 실제로 이는 문제라기보다 시행착오를 통한 찾기에 가깝습니다. 채굴자는 (`SHA256d` 해시 함수를 거친) 블록 헤더의 해시값이 하나의 단순한 조건을 충족할 때까지 헤더의 내용을 계속 바꿔가며 찾아야 합니다. 그 조건이란 바로 해시값이 특정 목표치(target)보다 작아야 한다는 것입니다.
이 조건은 다음과 같이 공식화됩니다:
+- 블록 헤더의 해시값은 해시 함수를 사용하여 계산됩니다.
+- 이 해시값을 하나의 숫자로 간주합니다.
+- 블록이 유효하려면, 이 숫자가 *난이도 목표치(difficulty target)*라고 불리는 값보다 작거나 같아야 합니다.
-- 로 설정하면 블록 헤더의 해시는 해시 함수를 사용하여 계산됩니다;
-- 이 해시를 숫자로 해석합니다;
-- 블록이 유효하려면 이 숫자가 "*난이도 목표*"라는 값보다 작거나 같아야 합니다.
-
-
-
-즉, 블록은 다음과 같은 경우에 유효합니다:
-
+즉, 다음과 같은 조건이 성립해야 블록이 유효합니다.
```text
@@ -556,616 +417,462 @@ SHA256d(block_header) <= target
```
-

-
-대상은 256비트 숫자입니다. SHA256d`가 생성하는 해시 역시 256비트이므로 두 개의 숫자로 비교할 수 있습니다. 목표가 낮을수록 이 임계값 이하로 나올 수 있는 결과가 적기 때문에 조건이 더 어려워집니다. 반대로 목표가 높을수록 조건을 충족하기 쉬우며, 블록을 채굴하기가 더 쉬워집니다. 이후 장에서 이 목표가 어떻게 결정되는지 자세히 살펴보도록 하겠습니다.
-
-
-
-이 시스템에서 해시 함수는 흥미롭습니다. 입력에서 출력을 계산하는 것은 쉽지만, 함수의 출력만 알면 입력값을 찾는 것은 불가능하다는 점을 기억하세요. mining에서 채굴자는 정확한 해시를 찾아야 하는 것이 아니라 목표 값보다 낮은 해시를 찾아야 합니다. 이를 달성하는 유일한 방법은 후보 블록의 특정 헤더가 해시될 때 이 목표보다 작은 해시를 생성할 때까지 매우 많은 수의 시도를 하는 것입니다.
-
-
-
-목표가 충분히 낮아지면 이 과정은 비용이 많이 듭니다. 채굴자는 후보 블록 헤더의 해시를 계산하고 결과를 확인한 후 조건이 충족되지 않으면 헤더를 수정하고 계산을 반복합니다. 이 루프는 유효한 헤더가 발견될 때까지 반복됩니다. 헤더의 해시가 최종적으로 조건을 충족하면 proof of work이 설정되고 블록은 유효한 것으로 간주되며 노드가 블록체인에 추가할 수 있도록 Bitcoin 네트워크에 브로드캐스트될 수 있습니다. 그러면 승리한 채굴자는 관련 보상을 받게 되며(자세한 구성은 나중에 설명하겠습니다), 모든 채굴자는 즉시 다음 블록을 위한 새롭고 유효한 헤더를 찾기 위해 출발하게 됩니다.
+목표치(target)는 256비트 숫자입니다. `SHA256d`가 생성하는 해시값 역시 256비트이므로, 이 둘을 두 개의 숫자로 놓고 비교할 수 있습니다. 목표치가 낮을수록 이 임계값 아래의 가능한 결과값이 적어지기 때문에 조건은 더 까다로워집니다. 반대로 목표치가 높을수록 조건을 만족하기가 더 쉬워지며, 블록을 채굴하기도 수월해집니다. 이 목표치가 어떻게 결정되는지는 이후 장에서 더 자세히 살펴보겠습니다.
+이 시스템에서 해시 함수는 흥미로운 도구입니다. 입력값에서 출력값을 계산하는 것은 쉽지만, 함수의 출력값만 알고 있는 상태에서 입력값을 찾아내는 것은 불가능하다는 점을 기억하세요. 채굴 과정에서 채굴자들은 정확한 해시값을 찾으라는 요구를 받는 것이 아니라, 목표치보다 낮은 해시값을 찾으라는 요구를 받습니다. 이를 달성할 수 있는 유일한 방법은 엄청나게 많은 횟수의 시도를 반복하는 것뿐입니다. 채굴 중인 후보 블록의 특정 헤더를 해싱했을 때, 그 결과가 목표치보다 작게 나올 때까지 말입니다.
-이 메커니즘의 근본적인 장점은 비대칭성에 있습니다. 채굴자에게는 많은 수의 해시 계산이 필요하기 때문에 proof of work을 생성하는 데 많은 비용이 듭니다. 반면 검증자, 즉 네트워크 노드의 경우 검증은 매우 간단합니다. 채굴자가 제공한 블록 헤더를 해시하고 그 결과 해시가 실제로 목표보다 낮은지 확인하기만 하면 됩니다. 따라서 증명을 찾는 데는 많은 작업과 자원이 필요한 반면, 유효성을 검증하는 것은 빠르고 저렴합니다. 바로 이 특성이 효율적인 proof-of-work 시스템을 정의합니다.
+목표치가 충분히 낮아지면 이 과정에는 많은 비용이 들게 됩니다. 채굴자는 후보 블록 헤더의 해시를 계산하고 결과를 확인한 뒤, 조건이 충족되지 않으면 헤더를 수정하고 계산을 반복합니다. 유효한 헤더를 찾을 때까지 이 루프는 계속됩니다. 헤더의 해시가 마침내 조건을 만족하면 작업 증명이 성립되며, 해당 블록은 유효한 것으로 간주되어 비트코인 네트워크에 전파됩니다. 그래야 노드들이 자신의 블록체인에 이 블록을 추가할 수 있습니다. 승리한 채굴자는 관련 보상을 받게 되며(보상의 구성은 나중에 자세히 다루겠습니다), 동시에 모든 채굴자는 다음 블록을 위한 새로운 유효 헤더를 찾기 위해 즉시 다시 움직입니다.
-### 논스
+이 메커니즘의 근본적인 장점은 비대칭성에 있습니다. 작업 증명을 생성하는 것은 수많은 해시 계산이 필요하기 때문에 채굴자에게 큰 비용이 듭니다. 반면에 검증자, 즉 네트워크 노드들에게 검증은 매우 간단합니다. 채굴자가 제공한 블록 헤더를 해싱하고, 그 결과가 실제로 목표치보다 낮은지만 확인하면 되기 때문입니다. 따라서 증명을 찾는 데는 많은 작업과 자원이 필요하지만, 그 유효성을 검증하는 것은 빠르고 저렴합니다. 바로 이러한 속성이 효율적인 작업 증명 시스템을 결정짓는 핵심입니다.
+### 논스(The nonce)
-채굴자가 생성한 후보 블록의 헤더가 유효한 해시를 제공하지 않는다면, 채굴자는 어떻게 다시 시도할 수 있을까요? 다른 해시를 얻기 위해 헤더의 무언가를 수정해야 합니다. 이것이 바로 논스의 역할입니다.
+이제 한 가지 의문이 생깁니다. 채굴자가 구성한 후보 블록의 헤더가 유효한 해시를 생성하지 못한다면, 채굴자는 어떻게 다시 시도할 수 있을까요? 다른 해시값을 얻으려면 헤더의 무언가를 수정해야 합니다. 바로 이것이 논스(nonce)의 역할입니다.
-해시 함수의 첫 번째 속성을 기억하세요. 입력 비트 하나만 변경해도 완전히 다른 예측 불가능한 출력 해시를 생성할 수 있습니다. 따라서 각 해시 계산은 무작위 추첨과 비슷합니다.
-
+해시 함수의 첫 번째 특성을 기억해 보세요. 입력값의 단 1비트만 바꿔도 완전히 다르고 예측 불가능한 출력 해시가 생성됩니다. 따라서 각각의 해시 계산은 무작위 추첨과 비슷합니다.

+조건에 맞는 해시를 다시 찾기 위해 채굴자가 후보 블록의 헤더 전체를 고칠 필요는 없습니다. 헤더의 아주 작은 부분만 바꾸면 됩니다. 단 1비트만 달라도 완전히 새로운 해시값이 생성되며, 그 값이 목표치보다 작다면 유효한 해시가 될 가능성이 있기 때문입니다.
-채굴자는 후보 블록의 전체 헤더를 수정할 필요 없이, 비트 하나만 변경해도 완전히 새로운 해시가 생성되며, 목표보다 작을 경우 유효할 수 있기 때문에 일부만 변경하면 됩니다.
-
-
-
-이것이 바로 블록 헤더에 논스가 포함된 이유입니다. 논스는 32비트 값으로, 한 번 사용된 후 교체됩니다. 실제로 동일한 후보 블록에 대해 채굴자는 약 42억 9천만 개의 가능한 값(`0`에서 `2^32 - 1`까지)을 테스트할 수 있습니다. 논스의 각 변형은 블록 헤더를 수정하고, 결과적으로 `SHA256d` 해시 함수를 적용한 후 생성된 해시를 완전히 변경합니다.
+이것이 바로 블록 헤더에 논스(nonce)가 포함된 이유입니다. 논스는 한 번 사용되고 교체되는 32비트 값입니다. 실제로 채굴자는 동일한 후보 블록에 대해 약 42억 9천만 개(`0`에서 `2^32 - 1`까지)의 가능한 값을 테스트할 수 있습니다. 논스가 바뀔 때마다 블록 헤더가 수정되고, 결과적으로 `SHA256d` 해시 함수를 거쳐 생성되는 해시값도 완전히 달라집니다.
-mining 프로세스는 매우 간단합니다:
+채굴 과정은 매우 간단합니다.
-
-
-- 채굴자는 후보 블록(트랜잭션 + 헤더)을 생성합니다;
-- 를 입력하면 `SHA256d(헤더)`의 해시를 계산합니다;
-- 결과가 목표보다 크면 논스를 변경합니다;
-- 다시 시작됩니다;
-- 등
-
+- 채굴자가 후보 블록(트랜잭션 + 헤더)을 생성합니다.
+- 그런 다음 `SHA256d(header)`을 통해 해시값을 계산합니다.
+- 결과값이 목표치(target)보다 크면 논스(nonce)를 변경합니다.
+- 다시 처음부터 시작합니다.
+- 이 과정을 반복합니다.

-
-사실 논스만이 수정할 수 있는 유일한 필드는 아닙니다. 블록의 트랜잭션 내에서 수정하면 머클 트리의 루트가 변경되고, 따라서 해당 블록의 헤더도 수정됩니다. 최신 컴퓨팅 성능으로 42억 9천만 개의 가능한 논스 값을 비교적 빠르게 처리할 수 있습니다. 그렇기 때문에 일반적으로 "*추가 논스*"라고 불리는 또 다른 필드가 존재하며, 이는 헤더 변형의 가능성을 더욱 배가시킵니다. 이 메커니즘에 대해서는 다음 장에서 더 자세히 살펴보겠습니다.
-
-
-
-### proof of work의 요점은 무엇인가요?
-
-
-
-블록이 생성되면 모든 노드는 헤더의 암호화 해시가 실제로 필요한 목표보다 낮은지 순식간에 확인할 수 있기 때문에 이를 "증명"이라고 부릅니다. 이 해시를 달성하려면 수많은 시도가 필요하므로 계산과 에너지 측면에서 실제 비용이 들기 때문에 이를 "작업"이라고 부릅니다.
-
+사실, 수정할 수 있는 필드가 논스만 있는 것은 아닙니다. 블록 내의 거래 내역이 조금이라도 변경되면 머클 루트값이 바뀌고, 결과적으로 블록 헤더도 수정됩니다. 현대의 컴퓨팅 성능으로는 42억 9천만 개의 가능한 논스 값을 비교적 빠르게 전부 테스트할 수 있습니다. 이것이 바로 헤더를 훨씬 더 다양하게 변화시킬 수 있는 *엑스트라 논스(extra-nonce)*라는 또 다른 필드가 존재하는 이유입니다. 이 메커니즘에 대해서는 나중에 다른 장에서 더 자세히 다루겠습니다.
-Bitcoin 백서에서는 Satoshi Nakamoto에서 proof-of-work 시스템을 사용할 경우 두 가지 이점을 제시하고 있습니다:
+### 작업증명의 핵심 가치는 무엇일까요?
+이 메커니즘을 "증명"이라고 부르는 이유는 그 결과를 즉시 검증할 수 있기 때문입니다. 블록이 생성되면 어떤 노드든 아주 짧은 시간 안에 해당 블록 헤더의 암호화 해시값이 요구되는 목표치보다 낮은지 확인할 수 있습니다. 그리고 "작업"이라고 부르는 이유는 이 해시값을 얻기 위해 수많은 시도가 필요하며, 그 과정에서 계산 능력과 에너지라는 실질적인 비용이 발생하기 때문입니다.
+사토시 나카모토는 비트코인 백서에서 비트코인에 작업 증명 시스템을 사용할 때 얻을 수 있는 두 가지 장점을 제시했습니다.
-- Seal 경제 역사 살펴보기:**
+- **거래 기록의 보호**
-계산 부하가 소비되면 블록은 잠기며, 이를 수정하려면 해당 블록의 proof of work을 다시 실행해야 합니다. 또한 블록이 서로 연결되어 있기 때문에 이전 블록을 변경하면 모든 후속 블록을 다시 계산해야 하고, 정직한 체인의 진행 중인 작업을 따라잡거나 능가해야 합니다.
+계산 자원이 투입되어 블록이 생성되면 해당 블록은 '잠금' 상태가 됩니다. 블록을 수정하려면 해당 블록의 작업 증명을 처음부터 다시 수행해야 합니다. 블록들은 서로 체인처럼 연결되어 있기 때문에, 오래전의 블록 하나를 수정한다는 것은 그 뒤에 이어진 모든 블록을 다시 계산해야 함을 의미합니다. 그뿐만 아니라 현재 정직한 노드들이 쌓아가고 있는 최신 체인의 속도까지 따라잡고 추월해야만 합니다.
-즉, proof-of-work은 타임스탬핑 시스템의 중추 역할을 하며, 블록이 쌓일수록 과거를 위조하는 데 점점 더 많은 비용이 들게 됩니다. 새로운 블록이 채굴되면 proof of work이 제공하는 보안이 기존의 모든 UTXO에 동시에 균일하게 적용됩니다. 따라서 각 블록이 추가될 때마다 각 UTXO는 Proof-of-Work의 보안을 추가로 축적하게 됩니다.
+즉, 작업 증명은 타임스탬프 시스템의 중추 역할을 하며, 블록이 쌓일수록 과거의 기록을 조작하는 비용을 기하급수적으로 높입니다. 새로운 블록이 채굴될 때마다 작업 증명이 제공하는 보안은 모든 기존 UTXO에 동시에, 그리고 균등하게 적용됩니다. 블록이 하나씩 추가될 때마다 각 UTXO는 작업 증명을 통해 한 층 더 두터운 보안을 쌓아가는 셈입니다.
+-**Define majority rule (consensus) and neutralize Sybil:**
-- 다수결(합의)을 정의하고 시빌을 무력화하기:**
+작업 증명은 비트코인이 '1인 1표(one ID = one vote)' 방식에 의존하지 않고도 합의에 도달할 수 있게 해줍니다. '1인 1표' 방식은 수많은 가짜 계정(IP, 노드, 키 등)을 무더기로 생성하는 공격, 즉 시빌 공격(Sybil attack)에 매우 취약하기 때문입니다.
-
-또한 Proof-of-Work을 사용하면 Bitcoin는 ID(IP, 노드, 키 등)의 대량 생성으로 쉽게 변조될 수 있는 "하나의 ID = 하나의 투표" 투표 규칙에 의존하지 않고 합의에 도달할 수 있습니다.
-
-
-
-Bitcoin에서 "*다수*"는 참여자 수가 가장 많은 것이 아니라 가장 많은 작업을 누적한 **체인**을 의미합니다. Satoshi에서 말했듯이, 이는 "1 CPU = 1 투표" 원칙, 즉 유효한 블록을 생성하는 데 사용된 실제 컴퓨팅 파워에 가중치를 부여하는 투표입니다. 따라서 수천 개의 노드를 배치해도 그 자체로는 Bitcoin에 비해 이점이 없습니다. 추가 컴퓨팅 파워가 없으면 작업 증명이 더 이상 축적되지 않으며, 시빌 공격은 쓸모가 없어지는 반면, 결정 규칙은 객관적으로 유지되고 참여자의 신원을 확인할 필요가 없습니다.
-
+비트코인에서 *다수(majority)*란 단순히 참여자의 수가 많은 것이 아니라, **가장 많은 작업 증명이 누적된 체인**을 의미합니다. 사토시는 이를 "1 CPU = 1표" 원칙이라 불렀습니다. 즉, 유효한 블록을 생성하기 위해 투입된 실제 계산 능력에 비례하여 투표권이 주어지는 방식입니다. 따라서 단순히 수천 개의 노드를 운영하는 것만으로는 비트코인 네트워크에서 어떠한 우위도 점할 수 없습니다. 추가적인 계산 능력이 뒷받침되지 않으면 더 많은 작업 증명을 쌓을 수 없기 때문입니다. 이로써 시빌 공격(Sybil attack)은 무력화되며, 참여자의 신원을 일일이 확인하지 않고도 객관적인 규칙에 따라 의사결정을 내릴 수 있게 됩니다.

-
-[나카모토, S. (2008). *Bitcoin: 피어투피어 전자 현금 시스템*](https://bitcoin.org/bitcoin.pdf)
-
+[Nakamot, S. (2008). *Bitcoin: Peer-to-Peer 전자 현금 시스템*](https://bitcoin.org/bitcoin.pdf)
-미성년자의 유용성과 권한에 관한 원칙은 매우 복잡한 주제이므로 이 과정에서는 자세히 다루지 않겠습니다. 하지만 향후 MIN 201 교육 과정에서 이 주제에 대해 자세히 다룰 예정입니다.
+채굴에서 채굴자가 갖는 역할 및 영향력은 매우 방대한 주제이기에 이번 과정에서 상세히 다루지는 않겠습니다. 이 내용은 향후 진행될 MIN 201 심화 교육 과정에서 더욱 깊이 있게 다룰 예정입니다.
+지금 단계에서는 채굴의 작동 방식을 다음과 같이 요약해 볼 수 있습니다. 채굴자는 멤풀에서 대기 중인 거래들을 모아 후보 블록을 생성합니다. 그런 다음, 시도와 실패를 반복하며 논스값을 테스트하여 블록 헤더의 해시값(`SHA256d`)이 시스템이 요구하는 목표치보다 작거나 같아지도록 만드는 값을 찾아냅니다.
-현재 mining의 작동 방식을 요약하면, 채굴자는 멤풀에 대기 중인 트랜잭션으로 후보 블록을 생성한 다음, 목표보다 작거나 같은 헤더의 해시를 (`SHA256d`를 통해) 찾습니다. 이들은 시행착오를 통해 논스를 테스트함으로써 이를 달성합니다.
+다음 장에서는 작업 증명 원리의 배경을 이해하기 위해 잠시 그 역사적 발자취를 따라가 본 뒤, 시스템 난이도 목표치(target)를 어떻게 결정하는지 자세히 살펴보겠습니다.
-다음 장에서는 proof-of-work 원칙에 대한 간략한 역사적 배경을 살펴보고, 시스템에서 난이도 목표가 어떻게 결정되는지 살펴보겠습니다.
-
-
-
-## proof of work의 역사
-
+## 작업 증명의 역사
919d9f3e-8b3b-41d9-b45a-54df4f3c31a3
+작업 증명(Proof-of-work)은 비트코인을 위해 처음 발명된 것이 아닙니다. 사토시 나카모토는 이미 다른 분야에서 탐구되었던 여러 오래된 아이디어들을 가져와 하나로 집대성했습니다.
-작업 증명은 Bitcoin을 위해 발명된 것이 아닙니다. Satoshi Nakamoto는 이미 다른 맥락에서 탐구된 몇 가지 오래된 아이디어를 채택하고 조합했습니다.
-
-
-
-### Hashcash
+### 해시캐시(Hashcash)
-1990년대 후반, 이메일 스팸 문제가 심각해졌습니다. 실제로 이메일 전송 비용이 거의 들지 않는다면 스팸 발송자는 수백만 개의 메시지를 보낼 수 있습니다. 그러나 각 메시지에 약간의 계산 작업이 필요한 경우 일반 사용자에게는 합법적인 메시지 한 개를 보내는 것이 쉬운 반면, 수백만 개의 메시지를 보내는 것은 매우 비용이 많이 듭니다.
+1990년대 후반, 이메일 스팸 문제가 심각한 사회적 이슈로 떠올랐습니다. 이메일을 보내는 비용이 거의 제로에 가깝다 보니, 스패머들이 수백만 통의 메일을 무차별적으로 뿌릴 수 있었기 때문입니다. 하지만 개별 메시지마다 아주 작은 계산적 노력을 요구한다면 상황은 달라집니다. 일반 사용자가 한두 통의 정당한 메시지를 보내는 것은 여전히 쉽지만, 스패머가 수백만 통의 메시지를 보내려면 엄청난 비용을 치러야 하기 때문입니다.
+이것이 바로 1997년 아담 백(Adam Back)이 제안한 해시캐시(Hashcash)의 핵심 목표이며, 오늘날 작업 증명 원리의 시초로 평가받습니다. 해시캐시의 작동 원리는 비트코인 채굴과 매우 흡사합니다. 바로 특정 조건(해시값 앞부분에 일정한 개수의 0이 포함될 것)을 충족하는 해시를 생성하는 것이죠. 이렇게 생성된 증명은 메시지와 함께 전송되며, 수신자는 이를 매우 빠르게 검증할 수 있습니다. 만약 이 증명이 포함되지 않은 이메일이 도착하면, 즉시 스팸으로 간주하여 차단할 수 있습니다. 이 시스템이 도입되면 스패머는 수백만 통의 메일을 보내기 위해 엄청난 양의 에너지를 소모해야만 합니다. 이는 마케팅 목적이든 사기 목적이든, 스팸 발송의 수익성을 급격히 떨어뜨리거나 아예 없애버리는 효과를 가져옵니다.
-이것이 바로 proof-of-work 원리의 발명으로 간주되는 1997년 Adam Back이 제안한 Hashcash의 목표입니다. Hashcash 원리는 mining과 매우 유사합니다: 조건(해시 시작 부분에 특정 수의 0이 포함됨)을 준수하는 해시를 생성합니다. 그러면 메시지와 함께 증명이 첨부되어 수신자가 매우 빠르게 확인할 수 있습니다. 이 증명이 포함되지 않은 이메일이 수신되면 즉시 스팸으로 간주하여 필터링할 수 있습니다. 그러면 스패머는 수백만 개의 메시지를 보내기 위해 상당한 에너지를 소비해야 하므로 마케팅이든 사기이든 이러한 유형의 작업의 수익성이 크게 감소(또는 완전히 무효화)됩니다.
+오늘날 해시캐시는 이메일에 사용되지 않습니다. 스팸 필터링은 이제 대부분 중앙 집중식 시스템을 기반으로 이루어지기 때문입니다. 하지만 현재의 솔루션들과 비교했을 때 해시캐시가 가진 강점은 중앙 집중식 필터링이 필요 없다는 점에 있습니다. 누구나 자신의 기준에 따라 매개변수를 조정할 수 있기 때문입니다. 또한 해시 검색은 익명으로 수행될 수 있으므로 별도의 신원 확인도 필요하지 않습니다. 무엇보다 해시캐시는 주관적인 필터링을 유발하기 쉬운 평판 시스템에 의존하지 않는다는 점이 가장 큰 특징입니다.
-요즘에는 이메일에 Hashcash를 사용하지 않습니다. 스팸 필터링은 이제 대부분 중앙 집중식 시스템을 기반으로 합니다. Hashcash는 중앙 집중식 필터링이 필요하지 않고 누구나 자신의 기준에 따라 매개변수를 조정할 수 있다는 점에서 기존 솔루션에 비해 장점이 있습니다. 또한 익명으로 해시 검색을 수행할 수 있기 때문에 신원 확인이 필요하지 않습니다. 무엇보다도 주관적인 형태의 필터링을 도입하는 경향이 있는 평판 시스템에 의존하지 않습니다.
-
-
-
-Hashcash는 수익을 창출하는 것이 목적이 아니었습니다. 쉽게 자동화할 수 있는 디지털 작업에 한계 비용을 부과하고자 했습니다.
-
+해시캐시는 돈을 만드는 것이 목적이 아니었습니다. 누구나 쉽게 대량으로 자동화할 수 있는 디지털 작업에 비용 부담을 주어 남발을 막으려 했습니다.

-
-### 비트 골드
-
-
-
-1990년대 말과 2000년대 초, 닉 자보는 proof of work을 기반으로 디지털 희소성에 대한 아이디어를 탐구했습니다. 비트 골드라고 불리는 그의 개념 프로젝트는 값비싼 proof of work을 풀고 이 증명을 등록부에 기록하여 소유권의 형태를 확립함으로써 가치 단위를 창출하는 것을 구상했습니다.
+### 비트 골드(Bit Gold)
+1990년대 후반과 2000년대 초반, 닉 자보(Nick Szabo)는 작업 증명을 기반으로 한 디지털 희소성 개념을 탐구했습니다. 비트 골드라 불리는 그의 구상안은 비용이 많이 드는 작업 증명을 해결하여 가치 단위를 생성하고, 이 증명들을 기록부에 등록하여 소유권 형태를 확립하는 방식을 제안했습니다.
-비트골드는 Bitcoin와 같은 시스템을 구축하지는 못했지만, 계산이 희소성을 만들어낼 수 있다는 아이디어와 시간이 지남에 따라 타임스탬프를 찍어 다시 쓰기 어려운 기록을 만든다는 아이디어 등 몇 가지 중요한 통찰을 담고 있습니다.
+비트 골드는 비트코인처럼 실제로 구현된 시스템으로 이어지지는 않았지만, 몇 가지 중요한 통찰을 담고 있습니다. 바로 연산 작업을 통해 희소성을 만들어낼 수 있다는 아이디어와, 시간이 흐름에 따라 요소들에 타임스탬프를 찍어 수정하기 어려운 기록의 역사를 만든다는 개념입니다.
### RPOW
-
-2004년에 Hal Finney는 재사용 가능한 작업 증명(*재사용 가능한 작업 증명*)을 제안했습니다. 이 아이디어는 단순히 소비되는 것이 아니라 교환할 수 있는 작업 증명을 생성하자는 것이었습니다. RPOW는 proof of work을 기반으로 디지털 token을 생성하고, 이러한 token을 복제하지 않고 검증 및 전송할 수 있는 시스템을 목표로 했습니다. RPOW 역시 나중에 Bitcoin처럼 완전히 탈중앙화된 레지스트리의 문제를 만족스럽게 해결하지는 못했지만, Bitcoin의 위대한 선구자 중 하나로 남아 있습니다.
-
+2004년, 할 피니(Hal Finney)는 재사용 가능한 작업 증명(*Reusable Proofs of Work*, RPOW)을 제안했습니다. 핵심 아이디어는 작업 증명을 한 번 쓰고 버리는 것이 아니라, 서로 교환할 수 있는 형태로 만드는 것이었습니다. RPOW는 작업 증명을 기반으로 디지털 토큰을 생성하고, 이를 중복 없이 검증하고 전송할 수 있는 시스템을 지향했습니다. 비록 RPOW 역시 나중에 등장한 비트코인처럼 완전한 탈중앙화 장부 문제를 완벽히 해결하지는 못했지만, 비트코인의 위대한 선구적 모델 중 하나로 평가받습니다.

-
-Hash캐시, 비트골드, RPOW는 proof-of-work을 사용해 비용을 부과하고 일종의 희소성을 창출합니다. Bitcoin은 이 메커니즘을 사용하지만, 중앙적이고 집단적인 역할을 부여합니다: proof-of-work은 무언가를 생성하는 데 사용될 뿐만 아니라, 장부의 다음 페이지(다음 블록)를 작성할 권리를 가진 사람을 결정하고 이 장부를 위조하는 데 비용이 많이 들도록 만드는 데도 사용됩니다.
-
+해시캐시, 비트 골드, RPOW는 모두 작업 증명을 사용하여 비용을 발생시키고 일종의 희소성을 만들어냈습니다. 비트코인은 이 매커니즘을 그대로 이어받으면서도 여기에 핵심적이고 집단적인 역할을 부여했습니다. 즉, 작업 증명을 무언가를 생성하는 데만 쓰는 것이 아니라, 장부의 다음 페이지(다음 블록)를 기록할 권한을 누구에게 줄지 결정하고, 이 장부를 조작하는 데 엄청난 비용이 들도록 만드는 도구로 활용한 것입니다.
-## 난이도 목표 조정하기
-
+## 난이도 목표 조절
528bcaa8-351e-4eae-887a-426a78a223e3
-
-이전 장에서 마이너는 후보 블록의 헤더를 `SHA256d`로 해시하고, 결과 해시가 목표라는 기준값보다 작거나 같은 경우에만 해당 블록이 유효한 것으로 간주된다는 proof-of-work의 핵심을 살펴보았습니다. 그렇다면 이 목표값의 출처는 어디이며, 시스템이 시간이 지나도 일관성을 유지하도록 어떻게 보장할 수 있을까요?
-
+이전 장들에서 작업 증명의 핵심을 살펴보았습니다. 채굴자들은 후보 블록의 헤더를 `SHA256d`로 해싱하며, 그 결과값이 목표치(target)라고 불리는 기준값보다 작거나 같을 때만 해당 블록이 유효한 것으로 인정받습니다. 그렇다면 한 가지 의문이 남습니다. 이 목표치는 어디에서 오며, 시스템은 시간이 지나도 이 수치가 일관되게 유지되도록 어떻게 보장할까요?
-Bitcoin는 10분에 한 블록씩 발견되는 평균 속도를 목표로 하고 있습니다. 물론 이 속도가 매초마다 보장되는 것은 아닙니다. 실제로 어떤 블록은 이전 블록이 발견된 지 몇 초 후에 발견되는 반면, 어떤 블록은 한 시간 이상 지난 후에 발견되기도 합니다. 여기서 중요한 것은 충분히 긴 기간 동안의 평균입니다.
-
+비트코인은 평균적으로 10분마다 하나의 블록이 발견되는 속도를 목표로 합니다. 당연히 이 속도가 초 단위까지 정확하게 보장되는 것은 아닙니다. 실제로 어떤 블록은 이전 블록이 나온 지 불과 몇 초 만에 발견되기도 하고, 어떤 블록은 한 시간이 넘게 걸리기도 합니다. 여기서 중요한 것은 충분히 긴 기간을 놓고 보았을 때의 평균값입니다.

+이러한 변동성은 채굴의 확률적인 특성에서 비롯됩니다. 각 해시 연산은 독립적인 시도이며, 목표치가 변하지 않는다면 목표치보다 낮은 결과값을 얻을 확률은 매번 일정합니다. 따라서 채굴은 쉼 없이 추첨이 이루어지는 복권에 비유할 수 있습니다. 채굴자들이 초당 더 많은 해시를 시도할수록 유효한 블록이 나타날 때까지 걸리는 예상 대기 시간은 짧아지지만, 개별 시도 사이의 무작위성 자체가 사라지는 것은 아닙니다.
-이러한 변동성은 mining의 확률적 특성에서 비롯됩니다. 각 해시는 독립적인 시도이며, 목표보다 낮은 결과를 생성할 확률은 일정합니다(목표가 변하지 않는다고 가정할 때). 따라서 채굴자가 초당 더 많은 해시를 생성할수록 유효한 블록이 나타나기까지 예상되는 지연 시간은 짧아지지만, 한 번의 추첨에서 다음 추첨까지 무작위성이 제거되지는 않습니다.
-
-
-
-### 블록 사이 10분을 목표로 하는 이유는 무엇인가요?
+### 왜 블록 간격을 10분으로 정했을까요?
-이에 대한 증거는 없지만, Satoshi Nakamoto는 효율성과 보안 사이의 실질적인 절충안으로 10분을 선택한 것이 확실합니다. 간격을 더 짧게 설정하면 더 자주 확인할 수 있지만 일시적인 네트워크 분할이 더 많이 발생할 수 있습니다. 이 점을 이해하려면 블록이 전파되는 방식으로 돌아가야 합니다.
+이에 대한 명확한 근거가 남겨져 있지는 않지만, 사토시 나카모토는 효율성과 보안 사이의 실질적인 절충안으로 10분을 선택했을 것이 분명합니다. 블록 간격이 더 짧으면 거래 확정은 더 자주 일어나겠지만, 네트워크가 일시적으로 갈라지는 현상이 더 많이 발생하게 됩니다. 이 점을 이해하려면 블록이 전파되는 방식을 살펴볼 필요가 있습니다.
-
-채굴자는 유효한 블록을 발견하면 즉시 동료들에게 이를 배포합니다. 이를 받은 노드는 블록의 유효성(트랜잭션, proof of work, 합의 규칙 등)을 확인한 다음 차례로 이를 전달합니다. 이 전파에는 인터넷 지연 시간, 대역폭, 각 노드의 블록 검증 능력에 따라 일정 시간이 소요됩니다.
-
+채굴자가 유효한 블록을 찾으면 즉시 주변 피어(들)에게 이를 배포합니다. 블록을 받은 노드들은 거래 내용, 작업 증명, 합의 규칙 등을 확인하여 유효성을 검증한 뒤, 다시 차례대로 블록을 전달합니다. 이러한 전파 과정에는 인터넷 지연 시간, 대역폭, 그리고 각 노드가 블록을 검증하는 성능에 따라 일정한 시간이 소요됩니다.

-
-이러한 확산 지연 중에 다른 채굴자가 같은 높이에서 유효한 블록을 발견하면, 노드와 채굴자 중 한 쪽은 블록 A에 의존하고 다른 쪽은 블록 B에 의존하는 식으로 네트워크가 일시적으로 분할될 수 있습니다.
-
+만약 이 전파 지연 시간 동안 다른 채굴자도 동일한 높이에서 유효한 블록을 발견하면 네트워크는 일시적으로 갈라질 수 있습니다. 노드와 채굴자 중 일부는 블록 A를 신뢰하고, 나머지 일부는 블록 B를 신뢰하게 되는 것입니다. 이것이 네트워크의 일시적인 분열입니다.

-
-이러한 분열은 파국적이지 않습니다. 나카모토 합의는 장기적으로 가장 많은 작업을 축적하는 하나의 지점만이 우세할 것이라고 예측합니다. 예를 들어, 블록 A 위에 새로운 블록이 채굴되면 전체 네트워크는 이 브랜치에서 재동기화되고 블록 B를 버리게 되며, 이는 "*부실 블록*"(일상 언어로 "*고아 블록*"이라고 잘못 부르기도 함)이 됩니다.
-
+이러한 분열이 치명적인 사고는 아닙니다. 나카모토 합의는 장기적으로 가장 많은 작업량을 쌓은 단 하나의 체인만이 승리할 것이라고 예측합니다. 예를 들어 블록 A 위에 새로운 블록이 채굴되는 즉시, 전체 네트워크는 이 가지를 기준으로 다시 동기화되며 블록 B를 버립니다. 이때 버려진 블록 B는 스테일 블록(*stale block*)이 되며, 일상적으로는 고립된 블록(*orphan block*)이라는 잘못된 명칭으로 불리기도 합니다.

-
-반면에 비용이 발생합니다. 몇 분 동안 채굴자 중 일부가 버려질 브랜치에서 작업합니다. 이 작업은 최종 체인에 기여하지 않았기 때문에 전체 보안의 관점에서 낭비됩니다. 각 블록 사이의 간격이 빠를수록 전파 시간이 각 블록 사이의 시간에서 더 큰 비율을 차지하기 때문에 이러한 분할이 발생할 확률이 높아집니다.
-
-
-
-일반적으로 10분 간격은 같은 높이의 경쟁 블록이 발견되기 전에 승리한 블록이 널리 전파될 수 있는 충분한 시간을 허용합니다. 이는 분할을 제한하고 컴퓨팅 파워 낭비를 줄이며 네트워크가 글로벌 규모로 동기화 상태를 유지하는 데 도움이 되는 절충안입니다.
+하지만 이러한 네트워크 분열은 손실을 야기합니다. 몇 분 동안 채굴자 중 일부는 결국 버려질 가지 위에서 작업하게 되기 때문입니다. 이렇게 투입된 작업은 최종 체인에 기여하지 못하므로, 전체적인 보안 관점에서 보면 낭비된 셈입니다. 블록 생성 간격이 짧아질수록 이러한 분열이 발생할 확률은 높아집니다. 블록 전파 시간이 전체 블록 생성 간격에서 차지하는 비중이 더 커지기 때문입니다.
+10분이라는 간격은 일반적으로 동일한 높이에서 경쟁 블록이 발견되기 전에 승리한 블록이 널리 퍼질 수 있는 충분한 시간을 제공합니다. 이는 네트워크 분열을 억제하고, 낭비되는 연산력을 줄이며, 전 세계적인 규모에서 네트워크가 동기화된 상태를 유지하도록 돕는 절충안입니다.
-### hashrate 이해
+### hashrate에 대한 이해
-*"Hashrate*"은 단일 채굴자, 채굴자 그룹 또는 Bitcoin의 모든 채굴자가 초당 생성하는 해시 연산량을 의미합니다. 이는 `H/s`(초당 해시 수)로 표시되며, `TH/s`(초당 테라 해시) 또는 `EH/s`(초당 엑사 해시)와 같은 배수로 표시됩니다. 이는 채굴자가 목표보다 낮은 해시를 얻기 위해 초당 시도할 수 있는 횟수를 나타냅니다.
+해시레이트(*"Hashrate*)란 단일 채굴자, 채굴자 그룹, 또는 비트코인 네트워크 전체에서 초당 생성되는 해시 연산의 양을 의미합니다. 단위는 초당 해시 횟수를 뜻하는 `H/s`를 사용하며, `TH/s`(테라해시)나 `EH/s`(엑사해시)와 같은 배수로 표현되기도 합니다. 이는 채굴자들이 목표치보다 낮은 해시값을 얻기 위해 매초 시도할 수 있는 횟수를 나타냅니다.
+만약 목표치가 고정되어 있다면 다음과 같은 상황이 발생합니다.
-타겟이 고정된 상태로 유지되면
+- 각 시도의 성공 확률은 일정하게 고정됩니다.
+- 초당 더 많은 시도를 할수록 정답(승리하는 해시값)이 더 빨리 나타날 가능성이 높아집니다.
+다시 말해, 만약 내일 비트코인 네트워크에 두 배 더 많은 채굴기가 연결되어 연산 능력이 두 배로 늘어난다면, 별도의 조정 장치가 없을 경우 블록은 평균적으로 두 배 더 빨리 발견될 것입니다. 따라서 해시레이트의 변화에 대응하여 목표치를 조정하는 과정이 반드시 필요합니다.
-- 각 시도에는 고정된 성공 확률이 있습니다;
-- 초당 더 많은 시도를 하면 승리 시도가 빨리 나타날 확률이 높아집니다
+### 난이도 목표치 조절
-즉, 내일의 Bitcoin 네트워크가 두 배의 mining 머신을 연결하여 컴퓨팅 성능을 두 배로 늘린다면, 수정 메커니즘이 없다면 블록을 평균 두 배 더 빨리 찾을 수 있습니다. 따라서 hashrate의 변화를 보정하기 위해 목표를 조정해야 합니다.
+비트코인은 채굴 난이도를 주기적으로 조정하는 메커니즘을 통해 이 문제를 해결합니다. 원리는 다음과 같습니다. 매 2016개 블록마다(약 2주에 한 번씩), 각 노드는 실제로 이 2016개 블록을 생성하는 데 얼마나 많은 시간이 걸렸는지 확인하여 난이도 목표치를 다시 계산합니다.
-
-### 난이도 목표 조정하기
-
-
-
-Bitcoin는 주기적인 목표 조정 메커니즘으로 이 문제를 해결하여 mining의 난이도를 조정합니다. 원리는 다음과 같습니다: 2016블록마다(약 2주마다) 각 노드는 이 2016블록을 생성하는 데 실제로 얼마나 많은 시간이 필요했는지 관찰하여 난이도 목표를 다시 계산합니다.
-
-
-
-이 메커니즘의 목표는 기계의 연결이 끊기거나 반대로 새로운 기계가 추가되어 네트워크의 전체 hashrate가 지속적으로 변경되는 동안 블록의 평균 생산 시간을 약 10분으로 줄이는 것입니다.
-
+이 메커니즘의 목적은 네트워크 전체의 해시레이트가 지속적으로 변화하더라도 블록의 평균 생성 시간을 약 10분으로 맞추는 것입니다. 기계의 전원이 꺼지거나, 반대로 새로운 기계가 추가되면서 해시레이트가 계속 변하기 때문입니다.

+계산은 지난 기간 동안 실제로 소요된 시간을 바탕으로 이루어집니다.
-계산은 경과된 기간 동안 관찰된 시간을 기준으로 합니다:
-
-
-
-
-- 지난 2016년 블록이 너무 빨리 발견되었다면, 이는 이 기간 동안 hashrate가 증가했음을 의미하며, Bitcoin은 다음 기간의 목표를 낮추어 조건을 더 어렵게 만듭니다;
-- 2016년 블록이 너무 느리게 발견되었다면 이는 hashrate이 감소했음을 의미하며, Bitcoin은 목표를 증가시킴으로써 조건을 완화합니다.
+- 만약 최근 2016개 블록이 너무 빨리 발견되었다면, 이는 해당 기간 동안 해시레이트가 증가했음을 의미합니다. 이 경우 비트코인은 다음 주기의 목표치를 낮추어 채굴 조건을 더 어렵게 만듭니다.
+- 만약 2016개 블록이 너무 느리게 발견되었다면, 이는 해시레이트가 감소했음을 의미합니다. 이 경우 비트코인은 목표치를 높여 채굴 조건을 완화합니다.
공식은 다음과 같습니다:
-
```txt
Tn = To * (Ta / Tt)
```
-
With:
+- `tn`: 새로운 목표치
+- `to`: 이전 목표치
+- `Ta`: 최근 2016개 블록 생성에 실제로 소요된 시간
+- `Tt`: 목표 시간(초 단위)
-- tn`: 새 대상
-- to`: 이전 대상
-- ta`: 지난 2016년 블록의 실시간 경과 시간
-- `Tt`: 목표 시간(초)
-
-
-
-목표 시간은 2주, 즉 `Tt = 1,209,600`초입니다:
-
+목표 시간은 2주이며, 이를 초로 환산하면 `Tt = 1,209,600`초입니다.
```txt
-Tn = To * (Ta / 1 209 600)
+Tn = To * (Ta / 1,209,600)
```
-
-Bitcoin mining의 난이도를 조정하는 방법을 이해하기 위해 가상의 값을 사용한 예를 들어 보겠습니다:
-
+비트코인 채굴 난이도가 어떻게 조절되는지 이해하기 위해 가상의 수치를 대입한 예시를 살펴보겠습니다.
```txt
-Tn = To * (Ta / 1 209 600)
-Tn = 18 045 755 102 * (1 000 000 / 1 209 600)
-Tn = 14 918 779 020
+Tn = To * (Ta / 1,209,600)
+Tn = 18,045,755,102 * (1,000,000 / 1,209,600)
+Tn = 14,918,779,020
```
+상세 수치는 다음과 같습니다.
-With:
-
-
-
-- `**To = 18,045,755,102**`: 이전 목표, 즉 조정 전 기준값입니다.
-- `**TA = 1,000,000초**`: 지난 2016년 블록을 생성하는 데 실제로 소요된 시간입니다. 이 시간이 목표 시간보다 짧으므로 네트워크가 너무 빨리 채굴되었습니다.
-- 1,209,600초**`: 2016년 블록의 블록당 10분에 해당하는 목표 시간으로, 조정을 위한 기준으로 사용됩니다.
-- `**tn = 14,918,779,020**`: 난이도 조정 후 새로운 목표가 계산되었습니다.
-
-
-
-여기서 새 목표는 이전 목표보다 낮기 때문에 다음 기간에 블록 생산 속도를 늦추기 위해 mining이 더 어려워집니다.
-
-
-*이 예제의 목표 값은 교육 목적으로 단순화 및 스케일링된 것이며, Bitcoin에서 사용되는 실제 목표는 완전히 다른 크기의 256비트 정수입니다*
+- `**To = 18,045,755,102**`: 이전 목표치, 즉 조정 전의 기준값입니다.
+- `**TA = 1,000,000초**`:최근 2016개 블록을 생성하는 데 실제로 걸린 시간입니다. 이 시간이 목표 시간보다 짧으므로 네트워크에서 채굴이 너무 빠르게 진행되었음을 알 수 있습니다.
+- 1,209,600초**`: 2016개 블록을 블록당 10분씩 계산했을 때의 목표 시간으로, 조정을 위한 기준점으로 사용됩니다.
+- `**tn = 14,918,779,020**`: 난이도 조절 후 계산된 새로운 목표치입니다.
+여기서 새로운 목표치는 이전보다 낮아졌습니다. 이는 다음 주기 동안 블록 생성 속도를 늦추기 위해 채굴 난이도가 더 높아졌음을 의미합니다.
-이 계산은 블록에 입력된 타임스탬프를 기반으로 각 노드에서 로컬로 수행됩니다. 모든 노드가 동일한 규칙을 적용하므로 동일한 결과에 도달하고, 새로운 목표가 다음 2016 블록의 공통 기준이 됩니다.
+*이 예시의 목표치는 학습을 돕기 위해 단순화하고 수치를 조정한 것입니다. 실제 비트코인에서 사용하는 목표치는 완전히 다른 자릿수를 가진 256비트 정수입니다.*
+이 계산은 각 노드가 블록에 기록된 타임스탬프를 바탕으로 로컬에서 직접 수행합니다. 모든 노드가 동일한 규칙을 적용하기 때문에 모두 같은 결과에 도달하게 되며, 이렇게 도출된 새로운 목표치는 다음 2016개 블록의 공통 기준이 됩니다.
-이 조정에 대해 주목해야 할 중요한 세부 사항이 있습니다: **제한적이라는 점입니다. Bitcoin은 너무 갑작스러운 변화를 피하기 위해 기간별 난이도 변화를 제한합니다. 실제로 고려되는 실제 시간은 4배수(최소 이전 목표의 1/4, 최대 이전 목표의 4배)에 해당하는 범위 내에서 유지되도록 제한됩니다. 이렇게 하면 타임스탬프가 매우 비정형적이거나 조작된 경우 극단적인 리타겟팅을 방지할 수 있습니다.
+이 조절 방식에서 주목해야 할 중요한 세부 사항은 조절 폭에 제한이 있다는 점입니다. 비트코인은 시스템이 멈출 정도로 급격한 변화가 일어나는 것을 방지하기 위해 주기당 난이도 변동 폭을 제한합니다. 실제로 계산에 반영되는 시간은 이전 목표치의 최소 4분의 1에서 최대 4배 범위 내로 제한됩니다. 이는 타임스탬프가 매우 비정상적이거나 조작되었을 경우에도 난이도가 극단적으로 재설정되는 것을 막아줍니다.
-### 대상 표현
+### 목표치의 표기 방식
+블록 헤더에서 목표치는 256비트 전체 형태로 나타나지 않습니다. 그 상태로 저장하기에는 공간을 너무 많이 차지하기 때문입니다. 대신 32비트 크기의 `nBits` 필드가 지수(1바이트)와 계수(3바이트)로 구성된 256진법 과학적 표기법과 유사한 압축 형식으로 목표치를 인코딩합니다. 전체 목표치는 이 두 값을 통해 다시 복원됩니다. 이 과정은 다소 복잡하고 채굴의 원리를 이해하는 데 필수적인 것은 아니므로 여기서는 자세히 다루지 않겠습니다. 다만 목표치가 블록 헤더에 원시 데이터 그대로가 아닌 압축된 형태로 저장된다는 점만 기억해 두시면 됩니다.
-블록 헤더에서 타겟은 너무 많은 공간을 차지하므로 전체 256비트 형식으로 표시되지 않습니다. 대신 32비트 `nBits` 필드는 기본 256 과학 표기법과 유사한 압축 형식인 지수(1바이트)와 계수(3바이트)로 타깃을 인코딩합니다. 그런 다음 전체 타겟은 이 두 값에서 재구성됩니다. 이 주제는 비교적 복잡하고 mining의 이해에 도움이 되지 않으므로 여기서는 자세히 설명하지 않겠습니다. 타겟은 블록 헤더에 원시 형태로 저장되지 않고 압축된 형태로 저장된다는 점만 기억하세요.
+이로써 파트 1의 마지막 장을 통해 비트코인 작업 증명이 어떻게 작동하는지 전체적으로 살펴보았습니다. 채굴자는 멤풀에서 거래를 선택해 후보 블록을 구성하고, 후보 블록의 헤더를 계산한 뒤 해싱합니다. 그다음 결과로 나온 해시값을 해당 주기의 목표치와 비교하며, 유효한 해시를 얻을 때까지 논스(nonce) 값을 수정하며 이 과정을 반복합니다. 마지막으로 네트워크는 해시레이트가 끊임없이 변하더라도 블록당 평균 생성 시간을 약 10분으로 유지하기 위해, 매 2016개 블록마다 새로운 목표치를 다시 계산합니다.
-제1부의 마지막 장에서는 채굴자가 멤풀에서 트랜잭션을 선택하여 후보 블록을 생성하고, 후보 블록 헤더를 계산하여 해시를 생성하고, 결과 해시를 기간 목표와 비교한 다음, 유효한 해시를 얻을 때까지 논스를 수정하여 다시 시작하는 proof-of-work의 작동 방식을 살펴보았습니다. 마지막으로, 네트워크는 2016블록마다 새로운 목표를 다시 계산하여 hashrate의 지속적인 변화에도 불구하고 블록당 평균 약 10분의 시간을 유지합니다.
-
-
-
-
-# Bitcoin mining 인센티브 시스템
+# 비트코인 채굴 인센티브 시스템
27fb10c1-d53b-4dc2-90fa-3cb0309b74c1
-
-## Block reward
-
+## 블록 보상
b316fb89-9c18-417e-917b-ab98f1722646
-
-상상할 수 있듯이 Bitcoin mining은 이타적인 활동이 아닙니다. Miner는 mining 컴퓨터를 작동하기 위한 전기, 특수 장비 구입, 유지보수 비용, 때로는 건물 및 냉각 시스템 등 실제 비용이 발생합니다. Bitcoin 시스템이 작동하려면 채굴자의 사적 이익이 네트워크의 집단적 이익과 일치해야 합니다. 이것이 바로 mining 보상의 역할입니다. 이는 채굴자들이 proof of work에 투자하고, 유효한 거래를 포함하며, 프로토콜을 손상시키려 하기보다는 프로토콜의 규칙을 존중하도록 장려합니다.
-
+짐작하시겠지만, 비트코인 채굴은 이타적인 봉사 활동이 아닙니다. 채굴자들에게는 채굴기를 가동하기 위한 전기료, 전용 장비 구매 비용, 유지보수 인력의 급여, 때로는 사업장 임대료와 냉각 시스템 비용 등 실제적인 비용이 발생합니다. 비트코인 시스템이 제대로 작동하려면 채굴자의 사적 이익이 네트워크 전체의 공익과 일치해야 합니다. 이것이 바로 채굴 보상의 역할입니다. 보상은 채굴자들이 작업 증명에 투자하고, 유효한 거래를 블록에 포함하며, 프로토콜을 변조하려 하기보다는 규칙을 준수하도록 유도합니다.
-이 논리는 게임 이론에 기반한 것으로, 프로토콜은 정직성을 합리적으로 만듭니다. 채굴자는 노드가 승인하는 유효한 블록을 생성할 때 수익을 얻습니다. 반대로 속임수를 쓰면 노드에 의해 블록이 거부되어 아무것도 얻지 못합니다. 블록을 생성하는 데는 비용이 들기 때문에 거부된 블록은 직접적인 손실을 의미합니다. 따라서 수천 명의 플레이어가 동시에 유효한 블록을 찾는 경쟁 환경에서 가장 수익성이 높은 전략은 대부분 규칙을 엄격하게 따르고 정직하게 수익을 극대화하는 것입니다.
+이러한 논리는 게임 이론에 바탕을 두고 있습니다. 즉, 프로토콜이 정직하게 행동하는 것이 가장 합리적인 선택이 되도록 만드는 것입니다. 채굴자는 노드들에 의해 승인되는 유효한 블록을 생성할 때 돈을 법니다. 반대로 속임수를 쓰려고 하면 그의 블록은 노드들에 의해 거부되고 아무것도 얻지 못합니다. 블록을 생성하는 데는 비용이 들기 때문에, 거부된 블록은 곧바로 직접적인 손실을 의미합니다. 수천 명의 플레이어가 동시에 유효한 블록을 찾기 위해 경쟁하는 환경에서, 대부분의 경우 가장 수익성이 높은 전략은 규칙을 엄격히 준수하며 정직하게 수익을 극대화하는 것입니다.
-
-이를 위해 Bitcoin 프로토콜은 유효한 블록을 발견한 채굴자가 특정 트랜잭션을 포함할 권리를 획득하고, 채굴자에게 일정 금액의 BTC을 지급하도록 규정하고 있습니다. 이를 **블록 보상**이라고 합니다. 이 섹션의 첫 장에서는 블록 보상이 무엇으로 구성되고 어떻게 결정되는지 이해하는 것이 목표입니다. 이후에는 시간이 지남에 따라 (반감기를 통해) 화폐 생성 부분이 어떻게 진화하는지, 그리고 기술적으로 (코인베이스 트랜잭션을 통해) 실제로 어떻게 수집되는지 살펴보겠습니다.
-
+이를 위해 비트코인 프로토콜은 유효한 블록을 찾은 채굴자에게 특정 거래를 포함할 수 있는 권리를 부여하며, 이 거래를 통해 채굴자에게 일정 금액의 비트코인이 지급되도록 규정하고 있습니다. 이것이 바로 블록 보상(**block reward**)이라 불리는 것입니다. 이 섹션의 첫 번째 장에서는 블록 보상이 무엇으로 구성되고 어떻게 결정되는지 이해하는 것을 목표로 합니다. 나중에는 반감기를 통해 화폐 발행 부분이 시간에 따라 어떻게 변화하는지, 그리고 기술적으로 이 돈이 어떻게 수집되는지(코인베이스 거래를 통해) 살펴보겠습니다.
### 블록 보상은 무엇으로 구성되나요?
-
-이전 장에서는 마이너가 어떻게 유효한 블록을 찾는지 살펴보았습니다. 채굴자가 목표보다 작은 해시를 가진 헤더를 발견하면 후보 블록은 유효한 것으로 간주됩니다. 그러면 채굴자는 이를 전체 Bitcoin 네트워크에 배포할 수 있습니다. 이 블록은 나머지 블록체인에 추가되어 블록에 포함된 트랜잭션을 확인합니다.
-
-
-
-이 이벤트(블록체인에 블록을 실제로 추가하는 것)가 바로 승리한 채굴자에게 보상을 지급하는 트리거가 됩니다. 이 보상은 두 가지 요소가 합산되어 구성됩니다:
-
+이전 장들에서 채굴자들이 어떻게 유효한 블록을 찾아내는지 살펴보았습니다. 채굴자가 목표치보다 작은 해시값을 가진 헤더를 찾아내면, 그가 만든 후보 블록은 유효한 것으로 인정됩니다. 이제 그는 이 블록을 비트코인 네트워크 전체에 배포할 수 있습니다. 해당 블록은 기존 블록체인 뒤에 추가되며, 그 안에 담긴 거래들이 최종적으로 확정됩니다.
+승리한 채굴자에게 보상이 주어지는 시점은 바로 이 사건, 즉 블록이 블록체인에 실제로 추가되는 순간입니다. 이 보상은 서로 다른 두 가지 요소가 합쳐져 구성됩니다.
-- 보조금 차단**;
-- 거래 수수료**.
+- 블록 보조금(**block subsidy**)
+- 거래 수수료(**transaction fees**)

+보상을 구성하는 두 요소가 각각 어떤 의미를 갖는지 구체적으로 살펴보겠습니다.
-보상의 이 두 부분이 무엇에 해당하는지 살펴보겠습니다.
+### 블록 보조금
-### 보조금 차단
+블록 보조금은 보상 중에서 화폐가 새로 생성되는 부분에 해당합니다. 채굴자가 유효한 블록을 생성하면, 프로토콜은 그에게 일정량의 새로운 비트코인을 만들어 스스로에게 보상으로 할당할 수 있는 권한을 부여합니다. 이 비트코인들은 무(無)에서 생성된 것입니다. 즉, 그전에는 존재하지 않았던 비트코인입니다.
+하지만 새로 생성되는 비트코인의 양은 결코 임의로 정해지지 않습니다. 이는 비트코인 프로토콜 규칙에 의해 엄격하게 정의되어 있으며, 모든 채굴자에게 동일하게 적용됩니다. 보조금은 영구적으로 고정된 값이 아니라 정해진 일정에 따라 주기적으로 절반씩 줄어들기 때문에, 다음 장에서 이 메커니즘을 더 자세히 살펴볼 것입니다. 지금은 다음 사항들만 기억해 두시면 됩니다.
-블록 보조금은 보상의 금전적 생성 부분에 해당합니다. 채굴자가 유효한 블록을 생성하면 프로토콜은 특정 수의 새로운 비트코인을 생성하고 이를 보상으로 자신에게 할당할 수 있는 권한을 부여합니다. 이러한 비트코인은 무에서 유를 창조합니다. 이전에는 존재하지 않았던 것입니다.
+- 블록 보조금은 블록 보상의 두 가지 구성 요소 중 하나입니다.
+- 보조금은 채굴자가 아닌 프로토콜에 의해 한도가 정해지고 결정됩니다. (비록 채굴자가 기술적으로 최대치보다 적은 금액을 요청할 수는 있지만 말입니다.)
+- 보조금은 아무것도 없는 상태에서 비트코인을 창조합니다.
-그러나 새로 생성되는 비트코인의 양은 결코 임의적인 것이 아닙니다. 이는 Bitcoin 프로토콜 규칙에 의해 엄격하게 정의되며 모든 마이너에게 동일하게 적용됩니다. 보조금은 무한정 고정된 값이 아니라 정확한 일정에 따라 주기적으로 분할되기 때문에 다음 장에서 이 메커니즘에 대해 자세히 살펴보겠습니다. 지금은 이 점만 기억해 두시기 바랍니다:
+이 보조금은 비트코인 프로토콜 내에서 두 가지 주요 역할을 수행합니다. 첫 번째는 사람들이 채굴에 참여하도록 독려하는 것입니다. 비트코인 초기(그리고 때로는 오늘날에도)에는 거래 수수료가 매우 낮았습니다. 따라서 보조금은 채굴자들을 유인하고 시스템의 보안 수준을 유지할 수 있을 만큼 충분한 보상을 보장해 왔습니다.
+두 번째 역할은 화폐의 분배와 관련이 있습니다. 모든 새로운 화폐는 누구에게 어떤 기준으로 화폐를 나누어 줄 것인가라는 공정성의 문제에 직면하게 됩니다. 블록 보조금은 이 문제에 대한 해답을 제시합니다. 채굴을 통해 비트코인을 생성함으로써, 초기 분배를 개방적이고 중립적인 방식으로 가능하게 합니다. 즉, 누구든 채굴에 참여하기만 하면 사전 승인이나 신원 확인 절차 없이도 비트코인을 얻을 수 있습니다.
-- 블록 보조금은 블록 보상의 두 가지 구성 요소 중 하나입니다;
-- 채굴자가 아닌 프로토콜에 의해 한도가 정해지고 결정됩니다(채굴자가 기술적으로 최대 금액보다 적은 금액을 요청할 수 있음에도 불구하고);
-- 무에서 비트코인을 생성합니다.
-
-
-
-이 보조금은 Bitcoin 프로토콜 내에서 두 가지 주요 역할을 합니다. 첫 번째는 플레이어가 mining에 참여하도록 장려하는 것입니다. Bitcoin 초창기(그리고 지금도 마찬가지입니다)에는 거래 수수료가 매우 낮았습니다. 따라서 보조금은 채굴자를 유치하고 시스템의 보안 수준을 유지하기에 충분한 보상을 보장했습니다.
-
-
-
-두 번째 역할은 통화 분배와 관련이 있습니다. 모든 새로운 통화는 화폐 단위를 인구에게 공정하게 분배하는 방법에 대한 문제에 직면합니다. 블록 보조금은 이 문제에 대한 해답을 제공합니다. mining을 통해 비트코인을 생성하면 사전 승인이나 신원 확인 없이도 mining에 참여하면 누구나 비트코인을 얻을 수 있는 개방적이고 중립적인 방식으로 초기 배포가 가능합니다.
-
-
-
-반면에 비트코인은 무에서 유를 창조하는 것이기 때문에 그 가치가 근거가 없는 것은 아닙니다. 보조금은 유통되는 화폐의 양을 늘림으로써 기존 비트코인의 가치를 기계적으로 희석시킵니다. 따라서 일종의 화폐 인플레이션이 발생하게 됩니다. 그러나 다음 장에서 이 보조금은 점차 사라질 운명이며, 인플레이션은 결국 멈출 것이라는 점을 살펴보겠습니다.
-
+반면, 이 비트코인들이 무에서 창조된다고 해서 아무런 대가 없이 가치가 생겨나는 것은 아닙니다. 새로 발행된 만큼 시중의 통화량이 늘어나기 때문에, 결과적으로는 기존 비트코인의 가치를 희석시키게 됩니다. 즉, 일종의 통화 인플레이션을 유발하는 셈입니다. 하지만 다음 장에서 살펴보겠지만, 이 보조금은 점진적으로 사라지도록 설계되어 있으며 결과적으로 인플레이션은 결국 멈추게 될 것입니다.

-
### 거래 수수료
-
-블록 보상의 두 번째 구성 요소는 시스템 사용량과 관련이 있습니다. 사용자가 트랜잭션을 게시할 때 트랜잭션이 확인되기를 원합니다. 그러나 블록 공간은 제한되어 있으며 블록은 평균 10분 정도에 한 번씩만 나타납니다. 따라서 블록 공간은 희소성이 있는 자원입니다. 수요가 공급을 초과하면 가격이 상승하는 것이 바로 트랜잭션 수수료 시장입니다. 유효한 블록을 생성하는 각 채굴자는 자신의 계정에 대해 자신이 블록에 포함한 모든 거래와 관련된 전체 거래 수수료를 받을 권리를 얻게 됩니다.
-
-
-
-경매 시스템이라고 생각하시면 됩니다. 각 거래는 수수료 금액을 제안하고, 채굴자는 공간 제약 조건에서 자신의 수입을 극대화하는 거래에 우선순위를 부여합니다. 이 메커니즘은 자연스럽게 이해관계를 조정합니다:
+블록 보상의 두 번째 구성 요소는 시스템 사용량과 연결됩니다. 사용자가 거래를 게시하면 그 거래가 확정되기를 원합니다. 하지만 블록 공간은 한정되어 있고, 블록은 평균적으로 약 10분마다 하나씩 생성됩니다. 따라서 블록 공간은 희소한 자원입니다. 수요가 공급을 초과하면 가격이 상승하는데, 이것이 바로 거래 수수료 시장입니다. 유효한 블록을 생성한 채굴자는 해당 블록에 포함된 모든 거래 수수료를 자신의 수익으로 가져갈 수 있습니다.
+이를 경매 시스템으로 생각하면 이해하기 쉽습니다. 각 거래는 일정한 수수료 금액을 제안하며, 채굴자는 제한된 공간 안에서 자신의 수익을 극대화할 수 있는 거래들을 우선적으로 선택합니다. 이 메커니즘은 이해관계를 자연스럽게 일치시킵니다.
-- 서두르는 사용자들은 빨리 포함되기 위해 더 많은 비용을 지불합니다;
-- 채굴자는 블록 공간에 가장 높은 수수료를 지불하는 트랜잭션을 포함하도록 권장합니다.
-- 트랜잭션을 게시하는 데는 비용이 들기 때문에 네트워크는 스팸을 피합니다.
-
+- 급한 사용자는 거래가 빨리 처리되도록 더 많은 수수료를 지불합니다.
+- 채굴자는 블록 공간 대비 가장 높은 수수료를 내는 거래를 포함하도록 유도됩니다.
+- 거래를 게시하는 데 비용이 들기 때문에 네트워크는 스팸 공격을 방지할 수 있습니다.
#### 거래 수수료는 어떻게 계산되나요?
+일반적인 생각과는 달리, 비트코인 거래에서 수수료는 별도의 출력값(output)으로 나타나지 않습니다. 실제로 하나의 거래는 입력값(input)을 사용하고 출력값을 생성합니다. 입력값은 사용하는 비트코인의 출처를 나타내며, 출력값은 지불하는 목적지를 나타냅니다. 거래 수수료는 단순히 **전체 입력값과 전체 출력값의 차액**입니다.
-일반적인 생각과는 달리, Bitcoin 거래에서 수수료는 산출물이 아닙니다. 실제로 트랜잭션은 인풋을 소비하고 아웃풋을 생성합니다. 입력은 사용된 비트코인의 출처를 나타내며, 출력은 결제의 목적지를 나타냅니다. 트랜잭션 수수료는 간단히 말해 **총 입력과 총 출력의 차이**입니다.
-
-
-
-즉, 사용자의 비트코인 입력은 사용자에게 속한 수신자를 위한 출력을 생성하지만, 입력에 의해 소비된 전체 금액을 재생산하지는 않습니다. 이 둘의 차이는 채굴자가 받을 수 있는 거래 수수료를 나타냅니다.
+다시 말해, 사용자가 가진 비트코인(입력값)으로 수취인에게 줄 비트코인(출력값)을 만들 때, 사용한 총액 전부를 출력값으로 다시 만들지 않는 방식입니다. 이때 발생한 두 값의 차액이 바로 채굴자가 가져갈 수 있는 거래 수수료가 됩니다.
-예를 들어 보겠습니다. 트랜잭션은 `100,000 sats`과 `150,000 sats`의 두 개의 인풋을 소비하고 `35,000 sats`, `42,000 sats`, `170,000 sats`의 세 개의 아웃풋을 생성하는 트랜잭션입니다.
-
+예를 들어 보겠습니다. 어떤 거래가 `100,000 sats`와 `150,000 sats`라는 두 개의 입력값을 사용하고, `35,000 sats`, `42,000 sats`, `170,000 sats`라는 세 개의 출력값을 생성한다고 가정합시다.

-
-따라서 입력의 합계는 '250,000 sats'이고 출력의 합계는 '247,000 sats'입니다. 이는 `3,000 sats`가 출력으로 재창조되지 않고 입력에서 소비되었음을 의미하며, 이 금액은 이 거래에서 제안한 수수료에 해당합니다.
-
+이 경우 입력값의 총합은 `250,000 sats`인 반면, 출력값의 총합은 `247,000 sats`가 됩니다. 이는 입력값으로 소모된 금액 중 `3,000 sats`가 출력값으로 다시 만들어지지 않았음을 의미하며, 이 차액이 바로 해당 거래에서 제안한 수수료가 됩니다.

-
-채굴자가 이 트랜잭션을 유효한 블록에 포함하면, 블록에 포함된 다른 모든 트랜잭션의 수수료에 더해 이 '3,000 sats'을 회수할 수 있습니다. 그러나 수수료를 지불하는 트랜잭션과 채굴자가 실제로 수령한 sats 사이에는 직접적인 on-chain 링크가 없습니다. 기술적으로 '3,000 sats'의 수수료는 소멸되며, 그 대가로 채굴자는 동일한 금액을 스스로 다시 생성할 권리를 얻게 됩니다.
+만약 채굴자가 이 거래를 유효한 블록에 포함시킨다면, 그는 해당 블록에 담긴 다른 모든 거래 수수료와 더불어 이 `3,000 sats`를 챙길 권리를 갖게 됩니다. 하지만 수수료를 지불하는 거래와 채굴자가 실제로 수령하는 사토시 사이에는 온체인(On-chain)상에서 직접적인 연결 고리가 존재하지 않습니다. 기술적으로 말하면, 수수료로 지불된 `3,000 sats`는 일단 파괴되며, 그 대가로 채굴자는 동일한 금액을 자신을 위해 다시 생성할 권리를 얻는 방식입니다.
+#### 수수료 효율
-#### 수수료 비율
-
-
-
-블록은 트랜잭션의 수가 아니라 총 용량(오늘날에는 실제로 블록의 무게)에 의해 제한됩니다. 입력과 출력이 많은 트랜잭션은 입력이 하나이고 출력이 둘인 단순한 트랜잭션보다 더 많은 공간을 차지합니다. 사용되는 스크립트도 크기에 영향을 미칩니다.
+블록은 거래의 개수가 아니라 전체 용량, 즉 실무적으로는 블록의 데이터 용량에 의해 제한됩니다. 어떤 거래는 다른 거래보다 더 많은 공간을 차지합니다. 예를 들어 입력값과 출력값이 많은 거래는 단순히 입력 하나와 출력 둘로 구성된 거래보다 데이터 용량이 더 큽니다. 또한 거래에 사용된 스크립트의 종류도 크기에 영향을 미칩니다.

-
-따라서 두 트랜잭션은 절대적인 수수료는 같을 수 있지만, 채굴자의 입장에서는 경제적으로 동등하지 않을 수 있습니다. 하나가 두 배 크면 블록에서 두 배의 공간이 필요하기 때문입니다. 공간은 희소하기 때문에 채굴자는 단위 공간당 수익을 극대화하려고 합니다.
+따라서 두 거래가 지불하는 수수료의 절대적인 액수가 같더라도, 채굴자의 입장에서는 경제적으로 동일한 가치를 갖지 않습니다. 만약 한 거래가 다른 거래보다 두 배 더 크다면, 블록 내에서 두 배나 많은 공간을 차지하기 때문입니다. 공간은 희소한 자원이므로, 채굴자는 단위 공간당 수익을 극대화하고자 합니다.
-
-그렇기 때문에 실제로는 트랜잭션의 경쟁력을 수수료 비율로 표현하는데, 보통 'sats/vB'(가상 바이트당 satoshi초)로 표시합니다. 이 비율을 계산하는 방법은 간단합니다:
+이러한 이유로 실제 현장에서는 거래의 경쟁력을 수수료율(fee ratio)로 표현하며, 보통 `sats/vB`(가상 바이트당 사토시) 단위를 사용합니다. 이 비율을 계산하는 방법은 매우 간단합니다.
```text
-fee rate = fee / weight (in vB)
+수수료율 = 총 수수료 / 데이터 용량 (vB 단위)
```
-
-
-예를 들어 무게가 `141vB`이고 수수료로 `1,974sats`가 할당된 거래가 있다면 수수료율은 `14sats/vB`가 됩니다.
-
+예를 들어 무게가 `141vB`이고 수수료로 `1,974sats`를 할당한 거래가 있다면 수수료율은 약 `14sats/vB`가 됩니다.
```text
-1 974 / 141 ≈ 14 sats/vB
+1,974 / 141 ≈ 14 sats/vB
```
+이 비율은 채굴자들이 내리는 경제적 선택을 잘 설명해 줍니다. 블록 용량이 고정된 상태에서 수수료율이 높은 거래들을 포함할수록 블록의 전체 수수료 수익이 극대화되고, 결과적으로 채굴자의 보상도 커지기 때문입니다. 또한, 수수료가 낮은 거래들이 왜 오랫동안 멤풀에서 대기 상태로 남아 있는지도 이 원리로 설명됩니다. 단위 공간당 더 높은 비용을 지불하는 다른 거래들과의 경쟁에서 밀리기 때문입니다.
-이 비율은 채굴자의 경제적 선택을 설명합니다. 고정 용량에서 고율 거래를 포함하면 블록의 총 수수료가 최대화되고, 따라서 채굴자의 보상이 최대화됩니다. 또한 저비용 트랜잭션이 멤풀에 오랫동안 대기열에 남아 있는 이유도 설명할 수 있는데, 이는 단위 공간당 더 많은 수수료를 지불하는 다른 트랜잭션과 경쟁하기 때문입니다.
-
-
-
-### 스팸으로부터 네트워크 보호
-
-
-
-수수료는 트랜잭션의 증가에 따른 비용을 도입하는 운영상의 보안 목적도 있습니다. 트랜잭션 게시가 무료라면 쓸모없는 트랜잭션이 네트워크에 넘쳐나 멤풀을 포화시켜 노드의 부하를 증가시키기 쉬울 것입니다.
+### 네트워크 스팸 방어
-실제로 노드는 로컬 릴레이 정책(멤풀 규칙)을 적용하며, 트랜잭션을 릴레이하지 않는 최소 수수료 임계값을 설정하는 경우가 많습니다(기본적으로 Bitcoin 코어의 경우 `minRelayTxFee`를 통해 `0.1 sat/vB`). 트랜잭션이 합의 규칙의 엄격한 의미에서는 유효할 수 있지만 수수료가 너무 낮으면 대부분의 노드에서 릴레이되지 않습니다. 결과적으로 트랜잭션은 유통되지 않고 채굴자에게 도달하지 않으며 확인될 가능성이 거의 없습니다.
+수수료는 운영 보안 측면에서도 중요한 역할을 합니다. 거래 생성에 비용을 부과함으로써 무분별한 거래 복제를 방지하기 때문입니다. 만약 거래가 무료라면, 공격자가 무의미한 거래로 네트워크를 마비시키고 노드에 과부하를 주는 '스팸 공격'을 시도하기가 매우 쉬워질 것입니다.
+실제로 각 노드는 자체적인 중계 정책(멤풀 규칙)을 적용하며, 특정 기준보다 낮은 수수료를 가진 거래는 전달하지 않도록 최소 수수료 임계치를 설정하곤 합니다. (비트코인 코어의 경우 `minRelayTxFee` 설정을 통해 기본값인 `0.1 sat/vB`를 적용합니다.) 어떤 거래가 합의 규칙이라는 엄격한 기준에서는 유효할지라도, 수수료가 너무 낮으면 대부분의 노드에 의해 중계되지 않을 수 있습니다. 그 결과, 해당 거래는 네트워크상에 유통되지 못하고 채굴자에게까지 도달하지 않으므로, 블록에 포함되어 승인될 가능성이 거의 희박해집니다.
-이 시점에서 블록 보상의 요점을 이해하셨을 것입니다. 블록 보상은 승리한 채굴자에 대한 보상에 해당하며, 두 가지 요소로 구성됩니다. 한편으로는 프로토콜 규칙에 의해 정의된 블록 보조금으로, 새로운 비트코인을 무상으로 생성합니다. 다른 한편으로는 채굴된 블록에 포함된 트랜잭션의 수수료입니다.
+여기까지 이해하셨다면 블록 보상의 핵심을 파악하신 것입니다. 블록 보상은 승리한 채굴자에게 주어지는 보상을 의미하며, 서로 다른 두 가지 요소로 구성됩니다. 첫째는 블록 보조금으로, 비트코인 프로토콜 규칙에 따라 규정되며 아무것도 없는 상태(無)에서 새로운 비트코인을 창조하여 지급합니다. 둘째는 해당 블록에 포함된 거래들이 지불한 거래 수수료(Transaction Fees)입니다.
-다음 장에서는 블록 보조금에 대해 더 자세히 살펴보고, 블록 보조금이 어떻게 계산되는지, 그리고 Bitcoin 프로토콜의 규칙에 따라 시간이 지남에 따라 어떻게 진화하는지를 정확히 이해해 보겠습니다.
+다음 장에서는 블록 보조금에 대해 더 자세히 다루어 보겠습니다. 이 보조금이 정확히 어떤 방식으로 계산되는지, 그리고 비트코인 프로토콜의 규칙에 따라 시간이 흐르면서 어떻게 변화하는지 심층적으로 이해해 보는 시간을 갖겠습니다.
-
-## Halving
-
+## 반감기(Halving)
7cdca211-7300-48f8-a1e4-53e5c2678cd8
-
-이전 장에서는 유효한 블록을 생성한 마이너는 블록에 포함된 트랜잭션에 대한 수수료와 블록 보조금으로 구성된 보상을 받는다는 것을 살펴보았습니다. 그러나 이 보조금이 어떻게 결정되는지는 아직 설명하지 않았습니다. 이 값을 설정하고 발전시키는 메커니즘을 ***반감기***라고 합니다.
-
-
-
-### 반감기란 무엇인가요?
-
+지난 장에서 우리는 유효한 블록을 생성한 채굴자가 블록에 포함된 거래 수수료와 더불어 블록 보조금으로 구성된 보상을 받는다는 것을 확인했습니다. 하지만 이 보조금의 액수가 정확히 어떻게 결정되는지는 아직 설명하지 않았습니다. 이 보조금의 수치를 설정하고 시간에 따라 변화시키는 메커니즘을 바로 ***반감기***라고 부릅니다.
-Halving는 블록 보조금, 즉 승리한 채굴자가 각 블록에서 생성할 수 있는 최대 신규 비트코인의 양을 절반으로 줄이는 Bitcoin 프로토콜에 프로그래밍된 이벤트입니다. 거래 수수료에는 영향을 미치지 않으며 수수료는 독립적으로 존재하며 사용자 활동과 블록 공간에 대한 경쟁에 따라 결정됩니다.
+### 반감기란 무엇인가?
+반감기란 비트코인 프로토콜에 프로그래밍된 이벤트로, 블록 보조금을 절반으로 줄이는 것을 말합니다. 즉, 채굴에 성공한 채굴자가 각 블록마다 새로 생성할 수 있는 비트코인의 최대 수량을 절반으로 깎는 것입니다. 이때 반감기는 거래 수수료에는 아무런 영향을 주지 않습니다. 수수료는 사용자의 활동과 블록 공간을 차지하려는 경쟁에 의해 독립적으로 결정되기 때문입니다.
-2009년 Bitcoin가 출시되었을 때, 블록 보조금은 채굴된 블록당 50 BTC으로 설정되었습니다. 그 이후로 이 보조금은 매 반감기마다 여러 차례 절반으로 줄었습니다.
+2009년 비트코인이 처음 출시되었을 때, 블록 보조금은 채굴된 블록당 50 BTC로 설정되었습니다. 그 이후로 보조금은 매 반감기마다 여러 차례 절반씩 줄어들었습니다.

-
-Halving은 날짜가 아니라 블록 높이에 따라 트리거됩니다. 21만 블록마다 **실행됩니다**. Bitcoin은 블록당 평균 약 10분의 간격을 목표로 하므로, 21만 블록은 약 4년에 해당합니다.
-
+반감기는 특정 날짜에 맞춰 일어나는 것이 아니라, 블록 높이(Block height)에 의해 결정됩니다. 즉, 블록이 매 210,000개 쌓일 때마다 자동으로 실행됩니다. 비트코인은 블록 하나당 평균 생성 간격을 약 10분으로 목표하고 있으므로, 210,000개 블록은 시간상으로 약 4년 주기에 해당합니다.
+비트코인 코어(Bitcoin Core) 소스 코드에는 블록 보조금을 계산하는 함수가 다음과 같이 정의되어 있습니다.
```cpp
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
@@ -1181,40 +888,32 @@ return nSubsidy;
}
```
-
-
-따라서 이미 발생한 반감기 수를 'n'으로 표시하면 BTC의 블록 보조금은 다음과 같이 계산할 수 있습니다:
-
+따라서 이미 발생한 반감기 횟수를 `n`이라고 할 때, BTC 단위로 표시되는 블록 보조금은 다음과 같은 수식으로 계산할 수 있습니다.
```text
subsidy(n) = 50 / 2^n
```
+### 지난 반감기
-### 과거 반감기
-
-
-
-다음은 이미 발생한 반감기에 대한 요약 표이며, 해당 블록 높이, 날짜, 이벤트 이후 적용되는 새로운 블록 보조금이 포함되어 있습니다:
+지금까지 발생한 반감기들을 정리한 표입니다. 각 이벤트가 발생한 블록 높이와 날짜, 그리고 그 이후 적용된 새로운 블록 보조금을 확인할 수 있습니다.
-| Event | Height | Date | Subsidy |
-| ------------------- | --------: | --------------------------- | ---------: |
-| Halving 1 | 210 000 | 28 novembre 2012 | 25 BTC |
-| Halving 2 | 420 000 | 9 july 2016 | 12,5 BTC |
-| Halving 3 | 630 000 | 11 may 2020 | 6,25 BTC |
-| Halving 4 | 840 000 | 20 april 2024 | 3,125 BTC |
-| Halving 5 (upcoming) | 1 050 000 | Spring 2028 (estimation) | 1,5625 BTC |
+| Event | Height | Date | Subsidy |
+| -------------------- | --------: | -------------------------- | ---------: |
+| Halving 1 | 210 000 | November 28, 2012 | 25 BTC |
+| Halving 2 | 420 000 | July 9, 2016 | 12.5 BTC |
+| Halving 3 | 630 000 | May 11, 2020 | 6.25 BTC |
+| Halving 4 | 840 000 | April 20, 2024 | 3.125 BTC |
+| Halving 5 (upcoming) | 1 050 000 | Spring 2028 (estimation) | 1.5625 BTC |
-### 보조금은 언제 어떻게 종료되나요?
+### 블록 보조금은 언제, 어떻게 종료되나요?
-
-보조금을 시스템의 최소 단위로 표현할 수 있는 한 Halving이 반복됩니다: satoshi.
-
+반감기는 보조금을 시스템의 최소 단위인 사토시(satoshi)로 표현할 수 있는 한 계속해서 반복됩니다.
```text
@@ -1222,493 +921,369 @@ subsidy(n) = 50 / 2^n
```
-
-보조금이 절반으로 줄어들면 결국 1비트코인이 1satoshi보다 작아지는 지점에 도달하게 됩니다. 이 시점에서는 더 이상 satoshi의 절반 단위를 생성할 수 없습니다. 블록 보조금을 통한 화폐 창출은 중단되고 채굴자는 거래 수수료로만 보상을 받게 됩니다. 이 시점부터 모든 비트코인이 유통되며 더 이상 새로운 비트코인을 생산할 수 없게 됩니다.
-
+보조금이 계속 절반으로 줄어들다 보면, 결국 1사토시보다 더 작은 단위까지 도달하게 됩니다. 이 시점부터는 1사토시의 절반을 생성하는 것이 불가능해집니다. 이때 블록 보조금을 통한 화폐 생성은 중단되며, 채굴자들은 오직 거래 수수료만을 보상으로 받게 됩니다. 이 순간부터 모든 비트코인이 시중에 유통되는 것이며, 더 이상 새로운 단위를 만들어내는 것은 불가능합니다.
-블록 보조금의 최종 종료 시점은 블록 레벨 6,930,000, 즉 33번째이자 마지막 반감기가 될 것입니다. 이 이벤트는 2140년경에 진행될 것으로 예상되지만, 정확한 날짜는 지금부터 그때까지 블록이 발견되는 실제 속도에 따라 달라질 수 있기 때문에 정확한 날짜를 제시할 수는 없습니다.
+블록 보조금의 최종적인 종료는 6,930,000번째 블록, 즉 33번째이자 마지막 반감기에서 일어납니다. 이 이벤트는 2140년경에 발생할 것으로 예상됩니다. 다만 지금부터 그때까지 실제로 블록이 발견되는 속도에 따라 달라지므로 정확한 날짜를 특정하는 것은 불가능합니다.
-
-블록 보조금은 매 반감기마다 1/2의 비율로 기하학적 순서를 따르기 때문에, Bitcoin의 초기에는 화폐 생성량이 매우 높았다가 매우 빠르게 감소합니다. 7번째 반감기가 되면 99% 이상의 비트코인이 이미 유통될 것입니다. 99% 임계값은 2032년에서 2036년 사이에 넘을 것으로 예상됩니다. 이는 마지막 남은 1%의 비트코인을 채굴하는 데 100년이 넘게 걸린다는 뜻입니다. Bitcoin이 출시될 당시에는 화폐 인플레이션이 매우 높았지만, 지금은 매우 낮아져 더 이상 유통 공급을 늘릴 수 없는 진정한 경화 수준에 도달할 때까지 계속 하락할 것입니다.
-
+블록 보조금은 매 반감기마다 1/2의 비율을 가진 기하수열을 따르기 때문에, 비트코인 초기에는 화폐 생성이 매우 활발하게 이루어졌으며 이후에는 급격히 감소합니다. 7번째 반감기가 지나면 전체 비트코인의 99% 이상이 이미 시중에 유통되게 됩니다. 이 99%라는 임계점은 2032년에서 2036년 사이에 통과할 것으로 예상됩니다. 이는 나머지 단 1%의 비트코인을 채굴하는 데 앞으로 100년 이상의 시간이 더 걸린다는 것을 의미합니다. 비트코인 출시 초기에는 광범위한 화폐 분배를 위해 통화 인플레이션율이 매우 높았으나, 현재는 매우 낮아졌으며 앞으로도 계속해서 하락할 것입니다. 결국 공급량이 더 이상 늘어날 수 없는 진정한 경화(Hard Currency)의 단계에 도달하게 될 것입니다.

-
-### 왜 2,100만 개의 BTC가 존재하지 않을까요?
+### 왜 비트코인은 결코 2,100만 개에 도달할 수 없을까요?
+비트코인의 최대 통화 공급량은 흔히 2,100만 BTC로 알려져 있습니다. 이는 통화 정책을 이해하기에는 좋은 근사치이지만, 엄격한 기술적 관점에서 보면 실제 총 공급량은 결코 정확히 2,100,000,000,000,000 사토시(2,100만 BTC)에 도달하지 않습니다.
-Bitcoin의 최대 통화 공급량은 종종 2100만 BTC으로 표시됩니다. 이는 통화 정책을 이해하기에 좋은 근사치이지만, 엄밀한 기술적 관점에서 볼 때 총 공급량은 실제로 정확히 21,000,000비트코인에 도달하지 않을 것입니다.
+가장 큰 이유는 기계적인 설계 때문입니다. 반감기가 거듭되면서 블록 보조금은 결국 최소 단위인 1사토시 미만으로 떨어지게 되며, 이론적인 총량에 도달하기 전에 발행이 종료됩니다. 이러한 최소 입자성과 반올림 규칙으로 인해, 보조금으로 생성되는 비트코인의 총합은 2,100만 개보다 약간 적습니다.
-주된 이유는 기계적인 이유입니다. 연속적인 반감기를 통해 블록 보조금은 결국 정확한 이론적 총계에 도달하기 전에 발행을 종료하는 최소값인 1 sat 아래로 떨어집니다. 이러한 최소 단위와 반올림 규칙으로 인해 보조금으로 생성된 총 비트코인의 수는 2,100만 개에 약간 못 미칩니다.
+여기에 프로토콜과 관련된 미세한 편차들이 더해집니다. 예를 들어, 드문 경우이긴 하지만 일부 채굴자가 자신에게 주어진 보조금 전액을 청구하지 않아 실제로 발행된 비트코인 수량이 영구적으로 줄어들기도 했습니다. 또한, 2009년 1월 3일 사토시 나카모토가 생성한 제네시스 블록(Genesis Block)의 코인들은 UTXO 세트(사용되지 않은 거래 출력값 집합)에 포함되지 않아 사용할 수 없으며, 중복된 코인베이스 거래 식별자 버그와 같은 과거의 기술적 사건들도 이 수치에 영향을 미칩니다.
+마지막으로, 우리는 파괴되었거나 영구적으로 묶여버린 비트코인들도 반드시 고려해야 합니다.
-또한, 프로토콜과 관련된 한계 편차도 이러한 문제를 가중시킬 수 있습니다. 예를 들어, 드물지만 일부 채굴자가 전체 보조금을 청구하지 않아 실제로 발행되는 비트코인의 양이 결정적으로 감소할 수 있습니다. 또한 2009년 1월 3일 Satoshi에 의해 생성된 제네시스 블록에서 생성된 비트코인은 UTXO set의 일부가 아니며, 중복된 코인베이스 거래 식별자와 같은 버그와 관련된 특정 역사적 사건도 언급할 수 있습니다.
+- 해결 불가능한 스크립트: 잘못된 주소나 풀 수 없는 조건의 스크립트에 갇혀버린 비트코인.
+- 의도적인 파괴: `OP_RETURN` 스크립트를 통해 의도적으로 소멸시킨 비트코인.
+- 개인키 분실: 사용자 부주의로 인해 프라이빗 키(개인키)를 잃어버려 영원히 접근할 수 없게 된 경우.
-마지막으로, 소멸되거나 차단된 모든 비트코인을 고려해야 합니다:
-
-
-
-
-- 풀 수 없는 스크립트에 갇힌 비트코인이 있습니다;
-- gW-219` 스크립트에 의해 고의적으로 파괴된 것들입니다;
-- 또는 애플리케이션 수준에서 개인 키를 분실했습니다.
-
-
-
-따라서 이론적으로 Bitcoin의 공급량은 2100만 개로 제한됩니다. 그러나 실제로는 2,100만 비트코인이 실제로 유통되는 일은 없을 것입니다.
-
+이론적으로 비트코인의 총 공급량은 2,100만 개로 제한되어 있습니다. 하지만 실제로는 결코 2,100만 개의 비트코인이 시장에 유통되는 일은 없을 것입니다.
## 코인베이스 거래
-
69476700-3616-4aab-b006-367aba059de9
-
-이전 장에서 두 가지 중요한 점을 설명했습니다. 첫째, 유효한 블록을 생성하고 배포하는 데 성공한 마이너는 보상을 받습니다. 한편, 이 보상은 두 가지 요소로 구성된다는 것을 확인했습니다:
-
-
-
-
-- 블록 보조금(프로토콜에 의해 최대 금액이 설정되고 반감기를 통해 점진적으로 감소하는 무에서 생성된 비트코인);
-- 트랜잭션이 블록에 포함된 사용자가 지불한 모든 트랜잭션 수수료입니다.
+앞선 장들에서 우리는 두 가지 중요한 점을 살펴보았습니다. 첫째, 유효한 블록을 생성하고 전파하는 데 성공한 채굴자는 보상을 받습니다. 둘째, 이 보상은 두 가지 서로 다른 요소로 구성됩니다.
+- 블록 보조금: 프로토콜에 의해 설정되고 반감기를 통해 점진적으로 줄어드는, 무(無)에서 생성된 비트코인입니다.
+- 거래 수수료: 해당 블록에 포함된 사용자들이 지불한 모든 수수료의 합계입니다.
-하지만 한 가지 의문이 남습니다. 채굴자는 어떤 메커니즘을 통해 Bitcoin에서 이 보상을 받을 수 있을까요? 이것이 바로 "코인베이스"라고 불리는 특정 트랜잭션의 역할입니다.
+하지만 여전히 한 가지 의문이 남습니다. 채굴자는 어떤 메커니즘을 통해 비트코인 네트워크에서 이 보상을 수령할까요? 이것이 바로 "코인베이스(coinbase)"라고 불리는 특수한 거래의 역할입니다.
-### 코인베이스 트랜잭션의 작동 방식
+### 코인베이스 거래의 작동 원리
-
-강좌의 첫 번째 부분에서 살펴본 것처럼, 각 Bitcoin 블록에는 확인해야 할 보류 중인 트랜잭션 목록이 포함되어 있습니다. 이 중 첫 번째는 항상 코인베이스 트랜잭션입니다. 이것이 바로 승리한 채굴자가 보상을 받을 수 있게 해주는 것입니다.
-
+강의의 첫 부분에서 보았듯이, 비트코인의 각 블록에는 승인 대기 중인 거래 목록이 포함되어 있습니다. 이 목록의 가장 첫 번째는 항상 코인베이스 거래입니다. 바로 이 거래를 통해 채굴에 성공한 채굴자가 자신의 보상을 수령하게 됩니다.

-
-언뜻 보기에는 TXID와 출력을 가지고 있으며 블록의 머클 트리에 포함되는 등 전형적인 Bitcoin 트랜잭션처럼 보입니다. 그러나 한 가지 중요한 점에서 다릅니다. 기존 UTXO를 사용하지 않는다는 점입니다.
-
+겉보기에는 일반적인 비트코인 거래와 비슷해 보입니다. 거래 아이디(TXID)와 출력값(Outputs)을 가지고 있으며, 블록의 머클 트리(Merkle tree)에도 포함됩니다. 하지만 결정적인 차이점이 하나 있습니다. 바로 기존에 존재하던 UTXO를 전혀 소비하지 않는다는 점입니다.
-기존 Bitcoin 트랜잭션에서 '입력'은 입력값을 제공하는 이전의 미사용 출력(UTXO)을 참조합니다. 그런 다음 출력은 새로운 지출 조건으로 이 값을 새로운 UTXO에 재분배합니다. 즉, 비트코인을 보내려면 이미 비트코인을 소유하고 있어야 합니다. 반면에 코인베이스 트랜잭션은 입력에서 비트코인을 소비하지 않고 처음부터 직접 출력에서 비트코인을 생성합니다.
+일반적인 비트코인 거래에서 입력값(`inputs`)은 이전 거래에서 사용되지 않은 출력값(UTXO)을 참조하여 자금의 출처를 증명합니다. 그리고 출력값(Outputs)을 통해 이 자금을 새로운 지불 조건과 함께 새로운 UTXO로 재분배합니다. 다시 말해, 비트코인을 보내려면 이미 비트코인을 소유하고 있어야만 합니다. 반면, 코인베이스 거래는 입력 단계에서 어떤 비트코인도 소비하지 않습니다. 대신 출력 단계에서 비트코인을 무에서 직접 창조해냅니다.
-
-블록 보조금을 통해 새로운 비트코인이 유통될 수 있게 하고, 블록에 포함된 거래와 관련된 수수료를 채굴자에게 지급하는 것이 바로 이 메커니즘입니다. 코인베이스 거래는 가치의 일부(보조금)를 생성하고 이전 거래에서 받지 않고 다른 일부(수수료)를 회수하는 역할을 하기 때문에 실제 존재하는 UTXO을 참조할 수 없습니다(실제로는 가상의 UTXO을 참조함). 전체 시스템이 일관성을 유지하려면 수수료에 해당하는 부분이 입력에서 소비되었지만 블록의 다른 거래에서 출력으로 다시 생성되지 않은 비트코인의 합계와 정확히 같아야 합니다.
-
+바로 이 메커니즘 덕분에 블록 보조금을 통해 새로운 비트코인이 시중에 유통될 수 있으며, 해당 블록에 포함된 거래 수수료를 채굴자의 몫으로 기록할 수 있습니다. 코인베이스 거래는 실제 존재하는 UTXO를 참조할 수 없습니다(사실상 가공의 UTXO를 참조합니다). 그 역할 자체가 이전 거래로부터 자금을 받는 것이 아니라, 가치의 일부(보조금)를 생성하고 나머지 일부(수수료)를 회수하는 것이기 때문입니다. 전체 시스템의 일관성을 유지하기 위해, 수수료에 해당하는 부분은 블록 내 다른 모든 거래에서 '입력값으로 소비되었으나 출력값으로 재생성되지 않은 비트코인의 합계'와 정확히 일치해야 합니다.

-
-이 트랜잭션은 선택 사항이 아닙니다. 코인베이스 트랜잭션이 포함되지 않은 블록은 유효하지 않으며 네트워크 노드에 의해 체계적으로 거부됩니다.
-
-
-
-⚠️ 참고: "*coinbase*"라는 용어는 같은 이름의 거래소 플랫폼과 관련이 없습니다. Bitcoin에서 "*코인베이스*"는 역사적으로 블록 보상을 생성하는 트랜잭션을 의미합니다. 회사는 단순히 회사 이름에 이 용어를 채택했을 뿐입니다.
-
-
-
-코인베이스 트랜잭션은 실제로 여러 역할을 동시에 수행합니다:
-
-
+이 거래는 선택 사항이 아닙니다. 코인베이스 거래가 포함되지 않은 블록은 유효하지 않으며, 네트워크 노드들에 의해 체계적으로 거부됩니다.
-- 첫 번째는 방금 설명한 것과 같이 채굴자에게 유효한 블록을 생성한 것에 대한 보상을 할당하는 것입니다.
-- 두 번째, 보다 기술적인 역할은 블록에 포함된 SegWit 트랜잭션의 증인(서명)에 암호학적 약속을 고정하는 것입니다.
-- 세 번째 역할은 이번에는 프로토콜과 직접 관련이 없지만 mining의 현대 산업화와 관련된 것으로, 코인베이스가 이제 임의의 기술 데이터를 고정하는 데 자주 사용된다는 것입니다. 이 데이터는 일반적으로 mining 풀의 운영 및 내부 조직과 연결됩니다.
+⚠️ 주의: 여기서 말하는 "코인베이스(*coinbase*)"는 동명의 거래소 플랫폼과 아무런 관련이 없습니다. 비트코인에서 "*coinbase*"는 역사적으로 블록 보상을 생성하는 거래를 지칭하는 기술 용어입니다. 해당 기업은 단순히 이 용어를 자신들의 사명으로 채택했을 뿐입니다.
+코인베이스 거래는 실제로 다음과 같은 여러 역할을 동시에 수행합니다.
-이러한 다양한 용도에 대한 이해를 돕기 위해 이제 코인베이스 트랜잭션의 구조를 자세히 살펴보겠습니다.
+- 첫 번째는 앞서 상세히 설명한 역할입니다. 유효한 블록을 생성한 채굴자에게 귀속되는 정당한 보상을 할당하는 것입니다.
+- 두 번째는 보다 기술적인 역할로, 블록에 포함된 세그윗(SegWit) 거래 서명(Witness)들의 무결성을 보증하는 암호학적 증명 값을 블록 내에 귀속시키는 역할을 합니다.
+- 세 번째 역할은 프로토콜 규칙과 직접적인 관련은 없으나 현대적인 채굴 산업화와 연결된 부분입니다. 오늘날 코인베이스는 임의의 기술적 데이터를 기록하는 용도로 빈번하게 사용되며, 이 데이터는 대개 마이닝 풀의 운영 및 내부 조직 관리와 관련되어 있습니다.
-### 코인베이스 트랜잭션의 기본 구조
+이러한 다양한 용도들을 더 잘 이해하기 위해, 이제 코인베이스 거래의 세부 구조를 자세히 살펴보겠습니다.
+### 코인베이스 거래의 기본 구조
-코인베이스 트랜잭션은 정확히 하나의 입력을 포함해야 합니다. 간단하게 설명하기 위해 입력이 없다고 말하기도 하는데, 이는 이 입력이 실제 UTXO을 사용하지 않기 때문입니다. 실제로는 참조 소스가 있는 입력이 있지만, 의도적으로 존재하지 않는 UTXO을 가리키고 있습니다.
+코인베이스 거래는 반드시 단 하나의 입력값(Input)을 포함해야 합니다. 이해를 돕기 위해 흔히 "입력값이 없다"고 표현하기도 하는데, 이는 이 입력값이 실제 존재하는 UTXO를 소비하지 않기 때문입니다. 실제로는 참조된 소스가 있는 입력값이 존재하지만, 의도적으로 존재하지 않는 UTXO를 가리키고 있습니다.
-이미 살펴본 바와 같이 모든 Bitcoin 트랜잭션은 유효한 출력을 생성하기 위해 UTXO을 입력으로 소비해야 합니다. Bitcoin 트랜잭션에서 이 소비는 기존 UTXO을 입력으로 참조하는 형태를 취합니다. 이 참조는 이전 트랜잭션(UTXO이 생성된 트랜잭션)의 식별자와 이 트랜잭션의 출력 중 해당 인덱스를 표시하는 것으로 간단히 이루어집니다. 구체적으로 말하자면, UTXO은 해시(이전 TXID)와 인덱스로 정의됩니다.
+이미 살펴본 바와 같이, 모든 비트코인 거래는 유효한 출력값(Outputs)을 생성하기 위해 입력 단계에서 UTXO를 소비해야 합니다. 비트코인 거래에서 이러한 소비는 입력값으로서 기존 UTXO를 참조하는 형태를 취합니다. 이 참조 방식은 단순히 이전 거래의 식별자(해당 UTXO가 생성된 거래의 TXID)와 해당 거래의 출력값 중 몇 번째인지 나타내는 인덱스(Index)를 표시함으로써 이루어집니다. 구체적으로 말하면, UTXO는 해시(이전 TXID)와 인덱스에 의해 정의됩니다.
-
-그러나 코인베이스 트랜잭션의 경우, 실제 존재하는 UTXO를 참조하는 대신 입력값이 반드시 이 특정 가짜 UTXO를 가리켜야 하며, 실제 TXID와 일치하지 않는 0으로 가득 찬 TXID를 사용해야 합니다:
-
+하지만 코인베이스 거래의 경우, 실제 존재하는 UTXO를 참조하는 대신 반드시 모든 비트값이 0으로 채워진 특수한 가짜 TXID를 가리켜야 합니다. 이는 그 어떤 실제 TXID와도 일치하지 않습니다.
```text
0000000000000000000000000000000000000000000000000000000000000000
```
-
-바로 뒤에 잘못된 인덱스가 나옵니다:
-
+그리고 바로 뒤이어 다음과 같은 가짜 인덱스가 붙습니다.
```text
0xffffffff
```
-

-
-Satoshi Nakamoto에 설명된 대로 기본 Bitcoin 프로토콜에서는 이 잘못된 입력이 코인베이스 트랜잭션에 부과되는 유일한 제약 조건입니다.
-
+사토시 나카모토가 기술한 기초 비트코인 프로토콜에서, 이 가짜 입력값은 코인베이스 거래에 부과된 유일한 제약 사항입니다.
-트랜잭션의 입력에서 참조된 다른 UTXO과 마찬가지로 `scriptSig` 필드와 연결됩니다. 기존 트랜잭션에서 이 `scriptSig` 필드에는 `scriptPubKey`를 충족하여 사용된 UTXO의 잠금을 해제하는 데 필요한 요소가 포함되어 있습니다. 그러나 코인베이스의 경우 참조된 UTXO이 의도적으로 가상이므로 `scriptSig` 필드는 완전히 무료입니다. 따라서 Miner은 원하는 모든 데이터를 입력할 수 있습니다. 이 자유도가 어떻게 사용되는지 나중에 살펴보겠습니다.
+거래의 입력값에 참조된 모든 UTXO와 마찬가지로, 이 역시 `scriptSig` 필드와 연결됩니다. 일반적인 거래에서 이 `scriptSig` 필드는 scriptPubKey의 조건을 충족하여 소비하려는 UTXO의 잠금을 해제하는 데 필요한 요소들을 담고 있습니다. 하지만 코인베이스의 경우 참조된 UTXO 자체가 의도적으로 꾸며낸 가공의 것이기 때문에, `scriptSig` 필드는 완전히 자유로운 상태가 됩니다. 따라서 채굴자는 이 공간에 원하는 데이터를 무엇이든 입력할 수 있습니다. 이러한 자유가 어떻게 활용되는지는 잠시 후에 살펴보겠습니다.
+이 가짜 입력값 외에도 하나 이상의 표준적인 출력값(Outputs)이 존재하며, 이를 통해 채굴자는 자신의 비트코인 주소 중 하나로 보상금을 수령할 수 있습니다. 이 출력값들은 scriptPubKey에 의해 잠긴 UTXO(예: 채굴자나 마이닝 풀이 제어하는 주소로 연결된 스크립트)입니다. 여기서 유일한 특이점은 값을 계산하는 규칙에 있습니다. 코인베이스 출력값의 총합은 허용된 최대 보조금에 블록 수수료를 더한 금액을 결코 초과해서는 안 됩니다.
-이 잘못된 입력 외에도 채굴자가 Bitcoin 주소 중 하나에서 보상으로 비트코인을 수령할 수 있는 하나 이상의 완벽한 표준 출력이 있습니다. 이러한 출력은 '스크립트Pub키'(예: 채굴자 또는 풀이 제어하는 주소를 가리키는 스크립트)로 잠긴 UTXO입니다. 여기서 유일한 특이한 점은 코인베이스 출력의 총합이 블록 수수료가 추가된 최대 허용 보조금을 초과해서는 안 된다는 가치 계산 규칙에 있습니다.
+역사적으로 코인베이스 거래는 '존재하지 않는 UTXO를 참조하는 가짜 입력값'과 '채굴에 성공한 채굴자에게 블록 보상을 분배하기 위해 설계된 하나 이상의 출력값'이라는 단순한 체계로 요약되었습니다. 하지만 오늘날의 코인베이스는 더 이상 단순한 분배 역할에만 머물지 않습니다. 블록 내에서의 특수한 위치와 구조적 유연성 덕분에 프로토콜 자체는 물론 마이닝 풀 관리 메커니즘에서도 새로운 용도로 활용되고 있습니다.
-역사적으로 코인베이스 트랜잭션은 존재하지 않는 UTXO를 참조하는 가짜 입력과 승리한 채굴자에게 블록 보상을 분배하도록 설계된 하나 이상의 출력이라는 간단한 체계로 요약됩니다. 그러나 오늘날 코인베이스는 더 이상 이러한 분배 역할에만 국한되지 않습니다. 블록에서 코인베이스의 특별한 위치와 구조의 뛰어난 유연성으로 인해 프로토콜 자체와 mining 풀 관리 메커니즘 모두에서 새로운 용도로 사용되었습니다.
+### 코인베이스의 기타 용도
-
-### 기타 코인베이스 용도
-
-
-
-시간이 지남에 따라 코인베이스 트랜잭션은 mining과 블록 구조 자체에 유용한 다양한 정보를 통합하는 데 특히 편리한 삽입 지점이 되었습니다. 전반적인 코인베이스 조직을 더 잘 이해하기 위해 이를 살펴보도록 하겠습니다.
-
+시간이 흐르면서 코인베이스 거래는 채굴 작업뿐만 아니라 블록 구조 자체에도 유용한 다양한 정보들을 통합할 수 있는 매우 편리한 데이터 삽입 지점이 되었습니다. 이제 코인베이스의 전체적인 구성을 더 잘 이해하기 위해 이러한 용도들을 살펴보겠습니다.
#### BIP-34
-
-BIP-34는 2013년 3월에 배포된 fork 소프트이며, 227,930 블록부터 시작하여 Bitcoin 블록의 버전 2를 도입했습니다. 이 새 버전에서는 각 블록이 코인베이스 트랜잭션의 '스크립트 서명'에 생성되는 블록의 높이를 포함해야 합니다.
-
+BIP-34는 2013년 3월, 블록 높이 227,930번째부터 적용된 소프트 포크로, 비트코인 블록의 '버전 2' 시대를 열었습니다. 이 새로운 버전은 모든 블록의 코인베이스 거래 내 `scriptSig` 필드에 현재 생성 중인 블록의 높이(Block Height)를 반드시 포함하도록 규정하고 있습니다.
-한편으로, 이러한 진화는 네트워크가 블록 구조와 합의 규칙을 발전시키는 데 동의하는 방식을 명확히 합니다. 둘째, 각 블록과 코인베이스 트랜잭션의 고유성을 보장합니다.
+이러한 변화는 두 가지 측면에서 의미가 있습니다. 첫째, 네트워크가 블록 구조와 합의 규칙을 발전시키는 방식을 명확히 해줍니다. 둘째, 각 블록과 코인베이스 거래의 고유성(Uniqueness)을 확실히 보장해줍니다.
-
-따라서 코인베이스의 '스크립트 서명'은 완전히 자유롭지 않습니다. BIP-34의 활성화 이후, 이 코인베이스 트랜잭션이 포함된 블록의 높이부터 시작하도록 제한되어 있습니다.
-
+결과적으로 코인베이스의 `scriptSig`는 이제 완전히 자유로운 공간이 아닙니다. BIP-34가 활성화된 이후, 이 필드는 해당 코인베이스 거래가 포함된 블록의 높이 수치로 시작해야 한다는 규칙을 따르게 되었습니다.

-
#### 엑스트라 논스
-
-이 과정의 첫 장에서 살펴본 것처럼, 마이너는 블록 헤더에 32비트 논스 필드를 가지고 있으며, 시행착오를 통해 목표보다 작거나 같은 해시를 찾기 위해 수정합니다. 이 32비트 공간은 이미 매우 많은 수의 조합을 탐색할 수 있지만, mining 난이도가 높으면 이 범위가 비교적 짧은 시간에 완전히 소진될 수 있으므로 유효한 해시를 생성하는 조합이 나오지 않을 수 있습니다. 만약 `nonce`의 모든 가능한 값을 성공적으로 테스트하지 못했다면, 채굴자는 다른 요소를 수정하여 블록 헤더를 변경하고 새로운 일련의 시도를 시작해야 합니다.
+강의 앞부분에서 살펴보았듯이, 채굴자는 블록 헤더에 있는 32비트 크기의 논스(Nonce) 필드값을 하나씩 바꿔가는 시행착오를 통해 타겟값보다 작거나 같은 해시를 찾습니다. 32비트 공간만으로도 탐색할 수 있는 조합의 수는 매우 많지만, 채굴 난이도가 높아진 오늘날에는 이 범위를 아주 짧은 시간 안에 전부 소진해버릴 수 있습니다. 만약 가능한 모든 논스값(`nonce`)을 다 대입해 보았는데도 유효한 해시를 찾지 못했다면, 채굴자는 블록 헤더의 또 다른 요소를 수정하여 새로운 시도를 시작해야만 합니다.
-
-코인베이스 트랜잭션은 입력의 `스크립트시그`를 통해 자유 필드를 제공하므로, 논스의 공간을 확장하는 데 사용되는 솔루션은 이 `스크립트시그`의 일부를 활용하는 것입니다. 이를 일반적으로 엑스트라 논스라고 합니다. 채굴자는 여분의 논스를 수정함으로써 코인베이스의 `스크립트 서명`, 즉 트랜잭션 식별자를 수정한 다음, 블록의 머클 루트를 수정하고, 마지막으로 블록 헤더 자체를 수정합니다. 이러한 방식으로 후보 블록의 다른 구성 요소를 수정할 필요 없이 탐색할 해시의 새로운 검색 공간을 얻게 됩니다.
-
+코인베이스 거래의 입력값(`scriptSig`)이 자유로운 공간을 제공한다는 점에 착안하여, 논스 탐색 범위를 확장하기 위해 이 `scriptSig`의 일부를 활용하는 해결책이 도입되었습니다. 이를 보통 엑스트라 논스(Extra-nonce)라고 부릅니다. 채굴자가 엑스트라 논스를 수정하면 코인베이스의 `scriptSig`가 바뀌고, 결과적으로 해당 거래의 식별자(TXID)가 변하게 됩니다. 이는 다시 블록의 머클 루트(Merkle root)를 변화시키고, 최종적으로는 블록 헤더 자체를 바꿔놓습니다. 이 방식을 통해 채굴자는 후보 블록의 다른 구성 요소를 건드리지 않고도 탐색할 수 있는 새로운 해시 영역을 확보하게 됩니다.

-
-#### 풀과 채굴자 식별
-
+#### 마이닝 풀과 채굴자 식별
-오늘날 전 세계 hashrate의 매우 많은 부분이 mining 풀로 구성되어 있습니다. 이러한 구조는 개별 채굴자들을 한데 모아 작업을 결합하고 수입의 편차를 줄입니다.
+현재 전 세계 해시레이트의 상당 부분은 마이닝 풀(Mining Pool)을 통해 조직되어 있습니다. 이러한 구조는 개별 채굴자들이 서로 힘을 합쳐 작업 효율을 높이고, 수익의 변동성(Variance)을 줄이기 위해 만들어졌습니다.
-
-운영상의 이유로 mining 풀은 코인베이스 입력의 '스크립트시그'의 자유 필드를 활용하여 다양한 정보를 삽입하기도 합니다. 이는 풀마다, 네트워크 프로토콜마다 다르지만 일반적으로 풀 내에서 작업 중복을 피하기 위해 각 채굴자에게 할당된 고유 식별자(종종 여러 하위 부분으로 구성된 추가 논스)가 포함됩니다. 일반적으로 풀 식별 태그가 추가되며, 발견된 블록의 공개 속성, mining 통계 및 기타 추적 목적으로 사용됩니다.
-
+운영상의 이유로 마이닝 풀 역시 코인베이스 입력값의 `scriptSig`라는 자유로운 필드를 활용해 다양한 정보를 삽입합니다. 삽입되는 정보는 풀마다, 혹은 사용하는 네트워크 프로토콜마다 다르지만, 일반적으로는 풀 내에서 작업이 중복되는 것을 방지하기 위해 각 채굴자에게 할당된 고유 식별자(주로 여러 하위 파트로 구성된 엑스트라 논스 형태)를 포함합니다. 또한, 발견된 블록이 어느 풀의 성과인지 대외적으로 알리고, 채굴 통계 및 기타 추적 용도로 사용되는 풀 식별 태그가 보통 추가됩니다.

-
-#### SegWit의 약속
-
+#### SegWit 약속
-2017년에 소프트 fork이 활성화된 이후, 특히 Bitcoin 트랜잭션의 가변성 문제를 해결하기 위해 트랜잭션 마스터 데이터에서 증인 데이터(일반적으로 서명)가 분리되었습니다. 따라서 이러한 분리는 블록에 커밋할 새로운 요소를 도입합니다.
+2017년 세그윗(SegWit) 소프트 포크가 활성화된 이후, 비트코인 거래의 가변성(Malleability) 문제를 해결하기 위해 증빙 데이터(Witness data, 주로 서명)가 거래의 주요 데이터와 분리되었습니다. 이렇게 데이터가 분리됨에 따라, 블록 내에서 이 서명 데이터들의 무결성을 보증(Commit)할 새로운 요소가 필요해졌습니다.
-
-이를 위해 증인은 다른 전용 머클 트리에서 함께 그룹화되며, 루트는 `OP_RETURN` 출력을 통해 코인베이스 트랜잭션에 커밋됩니다.
-
+이를 위해 서명(Witnesses)들을 별도의 전용 머클 트리(Merkle tree)로 모으고, 이 트리의 루트(Root) 값을 코인베이스 거래의 `OP_RETURN` 출력값에 기록하여 블록에 귀속시킵니다.

-
-이 글의 범위를 벗어나기 때문에 이 메커니즘에 대해 더 자세히 설명하지는 않겠지만, SegWit이 도입된 이후 코인베이스 트랜잭션은 모든 SegWit 증인을 요약하는 지문을 블록에 고정하는 수단으로 사용되었다는 점만 기억해두시기 바랍니다. 증인은 독립적인 머클 트리에 배치되고, 이 트리의 루트는 코인베이스 트랜잭션의 출력에 기록되며, 이 코인베이스 트랜잭션은 블록 헤더에 루트가 나타나는 다른 모든 트랜잭션과 함께 메인 머클 트리에 포함됩니다. 이렇게 메인 트랜잭션 데이터와 별도로 저장된 증인이 여전히 블록 헤더에 커밋되는 방식입니다.
-
+이 메커니즘은 이번 강의의 범위를 벗어나므로 더 자세히 다루지는 않겠지만, 세그윗 도입 이후 코인베이스 거래가 모든 세그윗 서명 데이터를 요약한 '지문'을 블록에 고정하는 매개체 역할을 한다는 점만 기억해 두시기 바랍니다. 서명들은 독립적인 머클 트리에 배치되고, 이 트리의 루트값이 코인베이스 거래의 출력값에 기록됩니다. 그리고 이 코인베이스 거래 자체가 다른 모든 거래와 함께 메인 머클 트리에 포함되어 그 루트값이 블록 헤더에 나타나게 됩니다. 이러한 방식을 통해, 메인 거래 데이터와 별도로 저장된 서명 데이터들도 여전히 블록 헤더의 보호 아래 놓이게 됩니다.

+#### 임의의 메시지 기록
-#### 임의의 메시지
-
-
-
-스크립트시그는 채굴자가 선택한 임의의 정보를 자유롭게 삽입할 수 있기 때문에, 일부는 기술적인 메시지보다는 개인적인 메시지를 추가하는 기회를 이용하기도 했습니다. 가장 유명한 사례는 물론 지금은 상징적인 메시지가 된 Satoshi Nakamoto입니다:
+코인베이스 입력값의 `scriptSig`는 채굴자가 선택한 임의의 정보를 자유롭게 삽입할 수 있도록 허용하기 때문에, 어떤 이들은 기술적인 데이터 대신 개인적인 메시지를 남기는 기회로 활용하기도 했습니다. 가장 유명한 사례는 물론 사토시 나카모토가 남긴 전설적인 메시지입니다.
-> The Times 03/01/2009 은행에 대한 두 번째 구제금융 위기에 처한 영국 총리
-
-Genesis 블록(Bitcoin의 첫 번째 블록)에 있는 이 메시지는 실제로 코인베이스 트랜잭션의 '스크립트시그'에 16진수로 인코딩되어 있습니다:
+> The Times 03/Jan/2009 Chancellor on brink of second bailout for banks(타임즈, 2009년 1월 3일, 재무장관 은행에 두 번째 구제금융 직전)
+비트코인의 첫 번째 블록인 제네시스 블록(Genesis block)에 담긴 이 메시지는 실제로 코인베이스 거래의 `scriptSig` 내에 다음과 같이 16진수 형태로 인코딩되어 기록되어 있습니다.
```text
5468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73
```
-

+### 사용 제한 기간(The maturity period)
-### 만기 기간
-
-
-블록이 채굴되고 배포되면 코인베이스 거래는 다른 거래와 마찬가지로 블록체인에 나타납니다. 이 거래는 승리한 채굴자에게 UTXO를 생성하여 보상을 수령할 수 있게 합니다. 그러나 이 UTXO는 즉시 사용할 수 있는 것이 아니라 만기 기간이 적용됩니다. 이 만기는 코인베이스가 포함된 블록 이후 100블록으로 설정됩니다. 따라서 코인베이스 트랜잭션은 총 101개의 확인을 받아야만 승리한 채굴자가 산출물을 사용할 수 있게 됩니다.
-
+블록이 채굴되고 전파되면, 코인베이스 거래는 다른 여느 거래와 마찬가지로 블록체인에 기록됩니다. 이 거래는 채굴에 성공한 채굴자에게 보상을 수령할 수 있는 UTXO를 생성해 줍니다. 하지만 이 UTXO들은 즉시 사용할 수 없으며, 반드시 사용 제한 기간을 거쳐야 합니다. 이 제한 기간은 코인베이스 거래가 포함된 블록 이후 100개의 블록이 더 생성될 때까지로 설정되어 있습니다. 구체적으로 말하면, 코인베이스 거래의 출력값이 채굴자에 의해 사용 가능해지려면 총 101번의 컨펌(Confirmations)이 쌓여야 합니다.

-
-이 규칙의 목적은 체인 재편이 경제에 미치는 영향을 제한하는 것입니다. 이전 장에서 살펴본 것처럼, 동일한 높이에서 서로 다른 마이너가 두 개의 유효한 블록을 거의 동시에 발견하는 경우가 발생할 수 있습니다. 잠시 동안 네트워크가 분할될 수 있는데, 일부 노드는 블록 A를 먼저 수신하고 다른 노드는 블록 B를 먼저 보게 됩니다. 그런 다음 후속 블록이 생성되는 동안 두 지점 중 하나가 더 많은 작업을 축적하여 기준 지점이 됩니다. 다른 브랜치는 버려지고 해당 블록은 쓸모없게 됩니다. 그러면 이론적으로 해당 브랜치에 포함된 트랜잭션은 멤풀로 돌아가 확인을 기다릴 수 있습니다.
-
+이 규칙의 목적은 체인 재조정이 경제 체계에 미치는 영향을 제한하는 데 있습니다. 이전 장들에서 살펴보았듯이, 드물게 동일한 높이에서 서로 다른 채굴자에 의해 두 개의 유효한 블록이 거의 동시에 발견될 수 있습니다. 이 짧은 순간 동안 네트워크는 일시적으로 분리될 수 있습니다. 일부 노드는 블록 A를 먼저 받고, 다른 노드들은 블록 B를 먼저 보게 되는 것이죠. 그 후 이어지는 블록들이 생성되면서 두 분기 중 하나가 더 많은 작업 증명을 쌓아 기준 체인이 됩니다. 그러면 다른 분기는 버려지고 해당 블록들은 폐기됩니다. 이론적으로 폐기된 블록에 포함되었던 일반 거래들은 다시 멤풀로 돌아가 승인을 기다릴 수 있습니다.
-수수료 시장에서는 거의 동일한 거래가 두 개의 경쟁 블록에 같은 높이로 나타나는 경우가 많기 때문에 실제로는 이런 일이 거의 발생하지 않습니다. 이것이 6번의 확인을 거치면 Bitcoin 트랜잭션이 불변으로 간주되는 이유 중 하나입니다. 6번 이상의 블록을 재구성할 가능성이 매우 낮기 때문에 불가능하다고 간주할 수 있습니다.
-
+실제로 이런 일은 드물게 발생하는데, 수수료 시장의 특성상 동일한 높이의 두 경쟁 블록에는 거의 비슷한 거래들이 포함되기 때문입니다. 비트코인 거래가 보통 6번의 컨펌을 거치면 '변경 불가능'한 것으로 간주되는 이유도 바로 여기에 있습니다. 6개 이상의 블록이 통째로 뒤바뀌는 재조정은 발생할 확률이 극히 낮아 사실상 불가능하다고 보기 때문입니다.

-
-코인베이스 거래의 경우 이러한 개편의 문제점은 일반적인 거래가 아니라는 것입니다. 이는 새로운 비트코인을 유통에 도입하는 것입니다. 블록 보상을 즉시 사용할 수 있다면 문제가 되는 캐스케이드 상황이 발생할 수 있습니다:
-
+하지만 코인베이스 거래의 경우, 이러한 재조정이 발생하면 일반 거래와는 차원이 다른 문제를 야기합니다. 코인베이스는 평범한 거래가 아니라, 새로운 비트코인을 유통 시스템에 처음으로 도입하는 거래이기 때문입니다. 만약 블록 보상을 즉시 사용할 수 있다면, 다음과 같은 심각한 연쇄 반응 상황이 벌어질 수 있습니다.
+- 채굴자가 코인베이스로 받은 비트코인을 즉시 사용합니다.
+- 이 비트코인이 경제 생태계 내에서 여러 거래를 거치며 유통됩니다.
+- 그 후, 해당 코인베이스 거래가 포함되었던 원래의 블록이 체인 재조정 과정에서 최종적으로 버려집니다.
-- 채굴자는 코인베이스에서 비트코인을 사용합니다,
-- 이 비트코인은 경제에서 유통됩니다,
-- 이후 개편 과정에서 원래 블록이 최종적으로 폐기되었습니다.
+이 경우 유통 중이던 비트코인은 최종 체인 관점에서는 애초에 존재하지 않았던 것이 됩니다. 즉, 발행 당시에는 유효했던 일련의 거래들이 사후적으로 모두 무효화되는 사태가 벌어지는 것입니다.
-그러면 유통 중인 비트코인은 최종 체인에 존재하지 않았을 것이고, 발행 당시에는 유효했던 일련의 거래는 사후적으로 무효가 될 것입니다.
+사용 제한 기간은 이러한 시나리오가 현실적으로 불가능하게 만들 만큼 충분히 긴 시간을 강제합니다. 실질적으로 101개 블록 규모의 재조정은 사실상 불가능하다고 간주됩니다(비록 극미한 확률은 남아있을지라도 말입니다). 사토시가 왜 이렇게 높은 수치를 사용 제한 기준으로 선택했는지 정확한 이유는 알 수 없지만, 네트워크에 중대한 장애가 발생하더라도 시스템 메커니즘이 정상적으로 작동할 수 있도록 이 값을 선택했을 가능성이 큽니다.
-
-만기 기간은 이 시나리오를 비현실적으로 만들 정도로 긴 기간을 부과합니다. 101개 블록의 재편은 실제로는 불가능한 것으로 간주됩니다(무한한 확률이 남아 있더라도). Satoshi가 왜 이렇게 높은 만기 값을 선택했는지는 정확히 알 수 없지만, 네트워크에 중대한 오작동이 발생하더라도 메커니즘이 계속 작동할 수 있도록 선택했을 가능성이 높습니다.
-
-
-
-이 규칙은 새로 생성된 블록 보상금이 대량의 누적 작업량 아래에 안전하게 묻힌 블록보다 먼저 유통되기 시작하는 것을 방지합니다.
-
+결론적으로 이 규칙은 신규 발행된 블록 보상이, 이를 생성한 블록 위에 충분한 양의 작업 증명이 쌓여 안전하게 확정되기 전까지는 시중에 유통되지 못하도록 차단하는 역할을 합니다.
---
-이제 Bitcoin mining의 작동 방식에 대한 설명이 끝났습니다. 이제 기본 메커니즘에 대해 명확하게 이해하셨을 것입니다.
-
-
-
-이 강좌의 마지막 부분에서는 보다 구체적인 측면으로 돌아가 Bitcoin mining가 실제 세계에서 어떻게 실현되는지, 즉 산업화, 사용되는 기계, 플레이어 그룹화 등을 보여드리겠습니다. 목표는 방금 살펴본 이론적 및 프로토콜 측면과 실제 및 운영 측면 모두에서 Bitcoin mining에 대한 전반적인 관점을 제공하는 것입니다.
+이제 비트코인 채굴이 어떻게 작동하는지에 대한 설명이 모두 끝났습니다. 여러분은 이제 여기에 포함된 기초적인 메커니즘들을 명확하게 파악하셨을 것입니다.
+강의의 마지막 파트에서는 다시 구체적인 측면으로 돌아가서, 비트코인 채굴이 현실 세계에서 어떻게 구체화되는지 보여드리고자 합니다. 채굴의 산업화, 사용되는 장비들, 참여자들의 조직화 등이 그 대상입니다. 우리의 목표는 방금 살펴본 이론 및 프로토콜의 관점뿐만 아니라, 실제 운영과 실무적인 측면 모두에서 비트코인 채굴에 대한 종합적인 시각을 갖추는 것입니다.
-# Bitcoin mining 산업
+# 비트코인 채굴 산업
906a6e18-4718-4a1f-85f5-18854cebdf7c
-
-## mining 머신의 진화
-
+## 채굴 장비의 진화
2d2f9055-75fd-4630-b493-a577d708a39f
-
-Bitcoin 초기에 mining는 산업적 활동이 아니었습니다. Bitcoin 소프트웨어의 일부로 개인용 컴퓨터에서 시작되었으며, 때로는 호기심에서, 때로는 네트워크를 지원하기 위해, 때로는 당시 시장 가치가 거의 없던 비트코인을 얻기 위해 사용되었습니다.
-
-
-
-수년에 걸쳐 이 활동은 기계가 바뀌고 난이도가 폭발적으로 증가했으며 mining은 그 자체로 하나의 산업으로 자리 잡는 등 변화를 겪었습니다. Bitcoin mining의 운영 측면을 살펴 보겠습니다.
-
+비트코인 초기 시절에 채굴은 산업적인 활동이 아니었습니다. 그저 개인용 컴퓨터에서 실행되는 비트코인 소프트웨어의 일부였을 뿐입니다. 대개는 호기심에, 때로는 네트워크를 지원하기 위해, 그리고 부차적으로는 당시 시장 가치가 거의 없었던 비트코인을 얻기 위해 채굴을 시작했습니다.
-### 시작하기: CPU가 포함된 mining
+시간이 흐르면서 이 활동은 큰 변화를 겪었습니다. 장비가 바뀌고 난이도가 폭발적으로 상승했으며, 이제 채굴은 그 자체로 하나의 산업이 되었습니다. 이제 비트코인 채굴의 실제 운영 방식을 살펴보겠습니다.
+### 시작 단계: CPU 채굴
-2009년과 초기에 mining은 주로 기존 컴퓨터의 CPU를 사용하여 수행되었습니다. 당시 Bitcoin는 wallet, 노드, 채굴기 역할을 하는 단순한 소프트웨어에 불과했습니다. 개인 컴퓨터에서 Satoshi Nakamoto의 소프트웨어를 실행하는 것만으로도 mining 프로세스에 참여할 수 있었고, 많은 경우 블록을 찾을 수 있었습니다.
+2009년과 그 초기 몇 년 동안, 채굴은 주로 일반 컴퓨터의 CPU를 통해 이루어졌습니다. 당시 비트코인은 지갑, 노드, 그리고 채굴기 역할을 동시에 수행하는 단순한 소프트웨어에 불과했습니다. 사토시 나카모토가 만든 이 소프트웨어를 개인용 컴퓨터에서 실행하는 것만으로도 채굴 과정에 참여할 수 있었고, 실제로 블록을 찾아내는 경우도 많았습니다.
-CPU는 모든 것을 할 수 있지만 모든 것에 최적화되어 있지는 않습니다. 복잡한 로직으로 매우 일반적인 명령을 실행합니다. 블록 헤더의 반복적인 해싱과 같은 작업에는 이상적인 도구는 아니지만, 네트워크 시작 시에는 난이도가 매우 낮아 블록을 찾는 데 충분합니다.
+CPU는 무엇이든 할 수 있는 장치이지만, 특정 작업에 최적화되어 있지는 않습니다. CPU는 복잡한 로직을 가진 매우 일반적인 지시어들을 실행합니다. 블록 헤더를 반복해서 해싱하는 작업에는 그리 이상적인 도구가 아니었죠. 하지만 네트워크 초기에는 난이도가 매우 낮았기 때문에, CPU만으로도 블록을 찾기에는 충분하고도 남았습니다.
-
-이 기간은 중요한 점을 상기시켜주기 때문에 중요합니다: proof of work는 특정 범주의 장비에 의존하지 않습니다. 중요한 것은 주어진 비용으로 다른 장비보다 더 빠르게 해시를 계산할 수 있는 능력입니다. 기술적 이점이 나타나자마자 자동으로 경제적 이점으로 전환됩니다. 그러나 절대적인 측면에서 볼 때, 오늘날에도 기존 CPU를 사용하여 Bitcoin 블록을 찾는 것은 여전히 가능합니다. 예를 들어 NerdMiner 프로젝트에서 채택한 접근 방식입니다. 블록을 찾을 확률은 사실상 제로에 가깝지만, 여전히 무한히 작은 확률은 존재합니다.
-
+이 시기는 우리에게 한 가지 중요한 사실을 시사합니다. 바로 작업 증명(PoW)이 특정 유형의 장비에만 국한되지 않는다는 점입니다. 핵심은 주어진 비용 내에서 다른 이들보다 얼마나 더 빠르게 해시를 계산해낼 수 있느냐에 있습니다. 기술적 우위가 발생하는 즉시, 이는 곧 경제적 이득으로 직결됩니다. 물론 원론적으로는 오늘날에도 일반적인 CPU를 사용해 비트코인 블록 채굴에 도전할 수 있습니다. 예를 들어 너드마이너(NerdMiner) 프로젝트가 바로 그런 방식을 취하고 있죠. 실제로 블록을 찾아낼 가능성은 사실상 제로에 가깝지만, 이론적인 확률 자체는 여전히 존재합니다.
https://planb.academy/tutorials/mining/hardware/nerdminer-c9826fd9-c2b4-4d1e-8c78-809122de1654
-### GPU로 전환
-
-
+### GPU로의 전환
-얼마 지나지 않아 채굴자들은 병목 현상이 전력이 아니라 수많은 유사한 작업을 병렬로 수행하는 능력에 있다는 사실을 깨달았습니다. 이것이 바로 그래픽 처리 장치(GPU)가 할 수 있는 일이었습니다. 원래 GPU는 대량의 데이터에 대해 동일한 연산을 수행하도록 설계되었습니다. 이 아키텍처는 반복적인 해싱과 같은 작업에 완벽하게 적합했습니다. 다재다능한 몇 개의 코어 대신 동일한 명령을 동시에 실행할 수 있는 수백, 수천 개의 유닛이 있기 때문입니다.
+머지않아 채굴자들은 병목 현상의 원인이 연산 성능 자체가 아니라, 수많은 유사 작업을 병렬로 처리하는 능력에 있다는 사실을 깨달았습니다. 이는 정확히 그래픽 처리 장치(GPU)가 설계된 목적과 일치했습니다. 본래 GPU는 방대한 양의 데이터에 대해 동일한 연산을 수행하도록 설계되었습니다. 이러한 설계 구조는 반복적인 해싱 작업에 더할 나위 없이 적합했습니다. 범용적인 소수의 핵심 연산 장치에 의존하던 방식에서 벗어나, 동일한 명령을 동시에 처리할 수 있는 수백, 수천 개의 소형 연산 회로를 한꺼번에 동원할 수 있게 되었기 때문입니다.
-비슷한 전력 소비로 GPU는 CPU보다 초당 훨씬 더 많은 해시를 생성할 수 있습니다. 동시에 비트코인은 달러 대비 환율이 상승하고 그 가치가 상승했으며 거래소 플랫폼이 등장했습니다. 그때부터 mining의 성격이 바뀌기 시작했습니다. 더 이상 단순한 참여가 아니라 돈을 벌기 위한 것이었습니다. 여러 개의 그래픽 카드를 중심으로 구축된, 때로는 화면이 없는, 최소한의 시스템과 특수 소프트웨어를 갖춘, 오직 채굴만을 목적으로 하는 전용 구성이 등장했습니다.
+비슷한 전력을 소비하더라도 GPU는 CPU보다 초당 훨씬 더 많은 해시를 생성할 수 있습니다. 이와 동시에 비트코인에 달러 환율이 매겨지고 가치가 상승하며 거래소들이 등장하기 시작했습니다. 이때부터 채굴의 성격이 변하기 시작했습니다. 단순히 네트워크에 참여하는 것을 넘어 수익을 창출하는 수단이 된 것입니다. 이에 따라 채굴만을 위한 전용 구성이 등장했습니다. 여러 장의 그래픽 카드를 장착하고, 화면 출력조차 없이 최소한의 시스템과 전용 소프트웨어만 갖춘, 오로지 채굴만을 목적으로 하는 기계들이 나타난 것입니다.
-
-이 시점에서 mining의 난이도가 폭발적으로 증가하기 시작했습니다. 2010년 중반에서 2011년 중반 사이에는 난이도가 1,000배나 증가하기도 했습니다. 기계적으로는 초기 산업화 형태와 마찬가지로 전문화가 시작되었고, 개인용 컴퓨터에서 Bitcoin 소프트웨어를 실행하는 데 만족하는 일반 사용자는 이제 유효한 블록을 찾을 확률이 매우 낮아졌습니다.
-
+채굴 난이도가 본격적으로 치솟기 시작한 것이 바로 이 지점입니다. 2010년 중반부터 2011년 중반 사이에는 난이도가 무려 1,000배나 폭등하기도 했습니다. 초기 산업화 과정과 마찬가지로 채굴의 전문화가 기계적으로 진행되었고, 그저 개인용 컴퓨터에서 비트코인 소프트웨어를 실행하던 일반 사용자들은 유효한 블록을 찾을 확률이 매우 희박해졌습니다.

-
*출처: [CoinWarz.com](https://www.coinwarz.com/mining/bitcoin/hashrate-chart)*
-
-GPU 시대와 현대의 ASIC 시대 사이에는 중간 단계인 FPGA의 사용이 있었습니다. FPGA는 재프로그래밍이 가능한 구성 요소로, 특정 계산 전용 논리 회로(이 경우 'SHA256d')를 직접 구현하도록 구성할 수 있습니다. 이 아이디어는 에너지 효율성을 높이기 위해 범용 하드웨어(CPU/GPU)에서 더 멀리 이동하는 것이었습니다. 그러나 곧 FPGA에서 가상으로 이루어진 개선 사항이 칩 자체에 물리적으로 적용될 예정이었는데, 이것이 바로 ASIC의 등장입니다.
-
+GPU 시대와 현대의 ASIC 시대 사이에는 FPGA(필드 프로그래머블 게이트 어레이)를 사용하던 중간 단계가 있었습니다. FPGA는 재프로그래밍이 가능한 부품으로, 특정 연산(이 경우에는 `SHA256d`)만을 수행하도록 논리 회로를 직접 구성할 수 있습니다. 이는 CPU나 GPU 같은 범용 하드웨어에서 벗어나 에너지 효율을 한층 더 높이려는 시도였습니다. 하지만 곧 FPGA에서 가상으로 구현했던 개선 사항들이 칩 자체에 물리적으로 각인되기 시작했고, 이것이 바로 ASIC의 등장으로 이어졌습니다.
### ASIC의 출시
-
-mining 하드웨어 전문화의 마지막 단계는 ASIC(*응용 분야별 집적 회로*)의 등장이었습니다. ASIC은 단일 작업을 위해 설계된 칩입니다. Bitcoin mining의 경우, 이 작업은 바로 'SHA256d'를 최대 속도로 최적의 에너지 효율로 실행하는 것입니다. GPU와 달리 ASIC은 게임, 3D 렌더링 또는 AI를 실행하는 데 사용되지 않습니다. 해싱을 위한 것뿐입니다.
-
+비트코인 채굴 하드웨어 진화의 최종 단계는 ASIC(*Application-Specific Integrated Circuits*)의 등장이었습니다. ASIC은 단 한 가지 작업만을 수행하도록 설계된 칩입니다. 비트코인 채굴의 경우, 이 칩의 목적은 오로지 `SHA256d` 연산을 최대한의 속도와 최적의 에너지 효율로 실행하는 것입니다. GPU와 달리 ASIC은 게임, 3D 렌더링, 인공지능 등에 사용할 수 없습니다. 오직 해싱만을 위한 장치이며, 그게 전부입니다.

+*비트메인(Bitmain)사가 제조한 ASIC S21 XP 모델*
-*Bitmain*에서 제조한 ASIC S21 XP
-
-
-
-이러한 전문화에는 크게 두 가지 결과가 있습니다:
+이러한 전문화는 두 가지 중대한 결과를 초래했습니다.
+- 첫 번째는 성능과 효율성의 비약적인 도약입니다. 동세대 장비와 비교했을 때, ASIC은 GPU보다 훨씬 적은 전력을 소비하면서도 초당 훨씬 더 많은 해시를 생성합니다. 이로 인해 GPU 채굴은 빠르게 경쟁력을 잃었습니다. 기술적으로는 가능할지 몰라도, 대부분의 환경에서 전기 요금이 예상 수익을 훨씬 초과하게 되었기 때문입니다.
+- 두 번째는 비즈니스 모델의 변화입니다. 투자의 중심이 산업용 장비로 완전히 이동했습니다. 이제 채굴이란 전용 장비를 구매하고, 이를 24시간 가동하며, 열을 식히고, 유지보수하며, 장비의 노후화(감가상각)를 감당하는 일이 되었습니다. ASIC은 경제적으로 영원하지 않기 때문입니다. 아무리 기계가 멀쩡히 작동하더라도, 더 효율적인 차세대 장비가 시장에 나오면 기존 장비의 수익성은 점차 떨어지게 됩니다.
-- 첫 번째는 성능과 효율성의 비약적인 향상입니다. 비슷한 세대의 장치에서 ASIC는 GPU보다 훨씬 더 많은 초당 해시를 생성하는 동시에 전력 소비는 더 적습니다. GPU가 장착된 Mining은 기술적으로는 작동했지만 대부분의 상황에서 전기료가 예상 수익보다 훨씬 더 많이 들기 때문에 빠르게 경쟁력이 떨어졌습니다;
-- 두 번째는 모델의 변화로, 투자가 주로 산업용 하드웨어로 전환되었습니다. 이제 Mining은 이러한 목적으로 설계된 기계를 구입하고, 지속적으로 전력을 공급하고, 냉각하고, 유지보수하고, 노후화를 흡수하는 과정을 포함합니다. ASIC은 경제적으로 영원하지 않기 때문에 더 효율적인 새로운 세대가 시장에 출시되면 구형 기계는 기능을 유지하더라도 점차 수익성이 떨어집니다.
+이 시점부터 채굴은 더 이상 단순한 취미의 영역이 아닙니다. 채굴 경쟁력은 다음과 같은 요소들의 조합에 달려 있는 하나의 산업 분야가 되었습니다.
-이 시점부터 우리는 더 이상 단순한 취미에 대해 이야기하는 것이 아닙니다. 우리는 경쟁력이 방정식에 따라 좌우되는 분야에 대해 이야기하고 있습니다:
+- 전기 요금
+- 장비 구입비 및 감가상각비
+- 대규모 냉각 및 운영 능력
+- 장비의 가용성 및 신뢰성
+- 통신 속도
+- 기타 등등
+### 채굴장(Mining farms)
-- 전기 요금;
-- 장비 비용 및 감가상각비;
-- 대규모로 냉각 및 운영할 수 있습니다;
-- 머신 가용성 및 안정성
-- 커뮤니케이션 속도;
-- 등
+개별 장비로도 채굴은 가능하지만, 수백 수천 대의 ASIC을 한곳에 모으면 고정 비용을 분담하고 물류를 최적화할 수 있습니다. 이는 전문적인 데이터 센터 모델에 가까워지는 과정입니다.
+채굴장은 가장 단순하게 표현하면 24시간 내내 가동되는 ASIC으로 가득 찬 건물(또는 컨테이너 집합체)입니다. 이제 핵심 과제는 안정적인 운영 환경을 유지하는 것입니다.
-### Mining 농장
-
-
-
-고립된 머신으로도 채굴이 가능하지만 수백, 수천 대의 ASIC을 단일 위치에 그룹화하여 고정 비용을 공유하고 물류를 최적화하며 전문 데이터센터 모델에 더 가까이 다가갈 수 있습니다.
-
-
-
-가장 단순한 형태의 mining 팜은 24시간 연중무휴로 가동되는 ASIC로 채워진 건물(또는 컨테이너 세트)입니다. 이제 과제는 안정적인 운영 조건을 유지하는 것입니다:
-
-
-
-
-- 저렴하고 안정적인 대량의 전력을 공급합니다;
-- 에너지 밀도가 상당하므로 스로틀링을 방지하기 위해 열을 관리합니다;
-- 먼지를 걸러내고, 습도를 조절하고, 청소하세요;
-- 머신 성능의 실시간 모니터링(온도, 하드웨어 오류, hashrate 드롭 등).
+- 저렴하고 안정적인 대규모 전력을 공급할 것
+- 에너지 밀도가 매우 높으므로, 발열로 인한 성능 저하를 방지하기 위해 열기를 관리할 것
+- 먼지를 걸러내고 습도를 조절하며 청결을 유지할 것
+- 장비 성능(온도, 하드웨어 오류, 해시레이트 하락 등)을 실시간으로 모니터링할 것

-
-*텍사스 오스틴 인근의 라이엇 플랫폼의 락데일 현장에 있는 Bitcoin mining 전용 건물 7개 중 하나입니다. 이 건물은 특히 몰입형 mining* 전용입니다
-
+*텍사스주 오스틴 인근, 라이엇 플랫폼즈(Riot Platforms)의 록데일 시설에 있는 7개의 비트코인 채굴 전용 건물 중 하나. 이 건물은 특히 액침 냉각 방식을 전문으로 다룹니다.*
-Mining는 현재 증권거래소에 상장되어 대규모 농장을 건설하고 운영하는 산업 플레이어들이 주도하고 있습니다. 여기에는 마라 홀딩스(나스닥: `MARA`)와 라이엇 플랫폼(나스닥: `RIOT`)이 포함됩니다.
-
+오늘날 채굴은 상장 기업을 포함하여 대규모 채굴 단지를 구축하고 운영하는 산업적 주체들에 의해 주도되고 있습니다. 여기에는 마라 홀딩스(MARA Holdings, 나스닥: A`MARA`)와 라이엇 플랫폼즈(Riot Platforms, 나스닥: `RIOT`) 등이 포함됩니다.

-
-수익성 모델에 대해 자세히 설명하지 않더라도 mining이 이러한 형태를 취한 이유를 이해하는 것이 중요합니다. 작업 증명은 경쟁 메커니즘입니다. 블록을 찾을 확률, 즉 수익을 창출할 확률은 배포하는 hashrate의 점유율에 비례합니다. 따라서 컴퓨팅 파워를 높이고, 연산 단위당 비용을 줄이며, 손실을 제한해야 한다는 압박이 끊임없이 존재합니다. 그 결과 저렴한 전기, 냉각에 유리한 기후, 풍부한 에너지 인프라를 제공하는 환경이 자연스럽게 더 매력적으로 다가오게 됩니다.
-
+수익 모델의 세부 사항을 일일이 파고들지 않더라도, 왜 채굴이 이러한 형태(산업화)를 갖추게 되었는지 이해하는 것이 중요합니다. 작업 증명은 경쟁적인 메커니즘입니다. 블록을 발견할 확률, 즉 수익을 올릴 확률은 투입한 해시레이트 점유율에 비례합니다. 따라서 연산 능력을 높이고, 단위 연산당 비용을 줄이며, 손실을 최소화하려는 압박이 끊임없이 작용합니다. 그 결과 저렴한 전기, 냉각에 유리한 기후, 혹은 풍부한 에너지 인프라를 갖춘 환경이 자연스럽게 채굴의 요충지로 각광받게 됩니다.
-따라서 Mining Bitcoin는 초창기 누구나 접근할 수 있는 활동에서 전문 장비와 전문적인 운영이 지배하는 활동으로 발전했습니다. 그렇다고 해서 프로토콜의 규칙이 바뀌지는 않았습니다. 이론적으로는 누구나 어떤 기계로든 채굴할 수 있습니다. 그러나 실제로는 ASIC의 난이도와 효율성으로 인해 대부분의 상황에서 국내 mining는 경쟁력이 거의 없습니다.
+결과적으로 비트코인 채굴은 초창기 누구나 참여할 수 있었던 활동에서, 이제는 전용 장비와 전문적인 운영이 주도하는 영역으로 진화했습니다. 그렇다고 해서 프로토콜의 규칙이 변한 것은 아닙니다. 이론적으로는 여전히 누구나 어떤 기계로든 채굴에 참여할 수 있습니다. 하지만 현실적으로는 높아진 난이도와 ASIC의 압도적인 효율성 때문에, 대부분의 환경에서 개인의 가정용 채굴은 경쟁력을 잃게 되었습니다.
+물론 가정용 채굴이 여전히 의미 있는 경우도 있습니다. 예를 들어 전기 요금이 매우 저렴하거나, 겨울철 채굴기에서 발생하는 열을 가정용 난방에 활용하는 경우입니다. 하지만 어떤 경우든 ASIC 칩이 탑재된 장비를 구매해야 한다는 점은 변함이 없습니다. 또한, 개인의 채굴 능력은 비트코인 네트워크 전체에 비해 극히 미미하기 때문에 수익의 변동성을 줄일 방법이 필요합니다. 이것이 바로 다음 장에서 다룰 채굴풀(Mining pools)의 역할입니다.
-물론, 매우 저렴한 전기의 혜택을 받거나 겨울철에 채굴자의 열 generated를 사용하여 집을 난방하는 경우와 같이 가정용 mining이 관심을 가질 수 있는 상황도 여전히 있습니다. 하지만 어떤 경우든 ASIC 칩이 장착된 기계를 구입해야 합니다. 또한, mining 전력은 Bitcoin 네트워크에 비해 매우 적은 양을 유지하므로 수입의 편차를 줄일 수 있는 방법을 찾아야 하는데, 이것이 바로 다음 장에서 논의할 mining 풀의 역할입니다.
-
-
-
-열회수 기능을 갖춘 가정용 mining 솔루션을 살펴보고 싶다면 바로 사용 가능한 도구와 DIY 도구에 대한 튜토리얼이 준비되어 있습니다:
+열 회수를 활용한 가정용 채굴 솔루션에 관심이 있다면, 완제품부터 직접 제작(DIY)하는 방식까지 다양한 도구에 대한 튜토리얼을 확인해 보세요.
https://planb.academy/tutorials/mining/hardware/canaan-avalon-mini-f2185435-10a3-4d7b-b88f-f1a489babab7
@@ -1717,116 +1292,88 @@ https://planb.academy/tutorials/mining/hardware/canaan-avalon-nano-3f6ac96e-ea8a
https://planb.academy/tutorials/mining/hardware/attakai-0d177e6b-e167-4b25-8e38-4ec74213d1fb
-## mining 풀로 그룹화
-
+## 채굴풀 결성
c871bece-eebe-4ef4-9789-d47251f16c8b
+비트코인 채굴에는 지속적이고 피할 수 없는 비용이 수반되며, 그중 가장 큰 비중을 차지하는 것이 장비의 전력 소모입니다. 이러한 비용은 채굴 결과와 상관없이 발생하지만, 채굴 수익은 그 특성상 드물고 무작위로 발생합니다. 블록 발견은 오로지 채굴자가 보유한 해시레이트 점유율에 달려 있으며, 이 점유율이 낮을수록 수익은 더욱 예측하기 어려워집니다. 바로 이러한 실질적인 문제 때문에 마이닝 풀이 빠르게 확산되었습니다. MIN 101 과정의 마지막 장에서는 비트코인 마이닝 풀의 원리와 운영 방식에 대해 소개합니다.
-Mining Bitcoin에는 지속적이고 피할 수 없는 비용이 포함되며, 그 중 가장 중요한 것은 기계 전력 소비입니다. 이러한 비용은 mining의 수익이 본질적으로 드물고 무작위적이지만, 결과와는 무관하게 발생합니다. 블록의 발견은 전적으로 채굴자의 hashrate 지분에만 의존하기 때문에 그 지분이 작을수록 수익은 더욱 예측할 수 없습니다. 바로 이러한 현실적인 문제 때문에 mining 풀이 빠르게 널리 사용되기 시작했습니다. 이번 MIN 101 과정의 마지막 장에서는 Bitcoin에서 mining 풀의 원리와 작동에 대해 소개합니다.
-
-
-
-### mining 풀이란 무엇인가요?
+### 채굴풀이란 무엇인가요?
-mining 풀은 그룹이 블록을 찾는 빈도를 높이기 위해 많은 독립적인 마이너의 컴퓨팅 파워를 모으는 조직(주로 온라인 서비스)입니다. 풀에서 블록을 찾으면 블록 보상은 내부 풀 규칙에 따라 참여자들에게 재분배됩니다(이 규칙은 MIN 101에서는 너무 복잡하기 때문에 MIN 201 과정에서 다룰 예정입니다).
+채굴풀은 수많은 독립적인 채굴자의 연산 능력을 하나로 모으는 조직(대개 온라인 서비스 형태)입니다. 그룹 전체가 블록을 발견하는 빈도를 높이는 것이 목적입니다. 채굴풀이 블록을 발견하면, 해당 블록 보상은 참여자들에게 풀 내부 규칙에 따라 재분배됩니다. (이 규칙은 MIN 101 단계에서 다루기에는 다소 복잡하므로, MIN 201 과정에서 자세히 다룰 예정입니다.)
+채굴풀 참여자들은 흔히 '채굴자'가 아닌 해셔(Hasher)라고 불리기도 합니다. 이들은 더 이상 채굴의 모든 과정을 직접 수행하지 않고, 채굴풀에서 전달받은 데이터를 해싱하는 작업만을 수행하기 때문입니다.
-mining 풀의 참여자는 더 이상 모든 mining 작업을 수행하지 않고 풀에서 전송된 데이터를 단순히 해시하기 때문에 '채굴자'가 아닌 '해시자'로 불립니다.
-
-
-
-mining 풀과 mining 팜을 혼동하지 않도록 주의하세요. 이 둘은 서로 다른 개념입니다. 이전 장에서 살펴본 것처럼 팜은 단일 기업이 여러 대의 mining 머신을 운영하는 물리적 장소입니다. 반면 풀은 무엇보다도 가상의 그룹으로, 지리적으로 분산되어 있는 수천 대의 머신이 공통의 조정 하에 작동합니다. 그러나 하나의 팜이 풀에 참여할 수 있으며, 실제로도 종종 참여합니다.
+여기서 채굴풀과 채굴장(Mining farm)을 혼동하지 않도록 주의해야 합니다. 이 둘은 서로 다른 개념입니다. 이전 장에서 보았듯이, 채굴장은 단일 주체가 수많은 채굴기를 운영하는 물리적인 장소입니다. 반면, 채굴풀은 무엇보다 가상의 결집체입니다. 지리적으로 멀리 떨어진 수만 대의 기계들이 하나의 공통된 조율 아래 작동하는 구조입니다. 물론, 하나의 채굴장이 특정 채굴풀에 참여하는 방식은 매우 흔하게 이루어집니다.

-
-### 소득 편차 감소
-
-
-
-그렇다면 왜 풀에 참여해야 할까요? mining 활동의 결과는 확률적이기 때문입니다. 해시를 시도할 때마다 난이도 목표를 충족하여 유효한 블록을 생성할 확률은 매우 낮습니다.
+### 수익 변동성 완화 (Reducing income variance)
+그렇다면 왜 채굴풀에 가입할까요? 이유는 아주 간단합니다. 채굴 활동의 결과가 확률적이기 때문입니다. 해시를 시도할 때마다 난이도 목표를 충족하여 유효한 블록을 생성할 확률은 매우 희박합니다.
-매우 장기적으로, 평균 수익은 전체 hashrate의 지분에 비례해야 합니다. 이 원칙은 확률의 법칙에 직접적으로 따르는데, 각 해시 계산은 독립적인 무작위 추첨으로 구성되며, 큰 수의 법칙에 따라 블록을 발견하는 빈도는 수학적으로 네트워크의 전체 hashrate에서 여러분이 차지하는 비율로 수렴합니다. 그러나 단기 및 중기적으로는 실제 수익이 매우 불규칙할 수 있습니다. 이러한 이론적 평균과 무작위적인 현실 사이의 불일치를 수학에서는 **편차**라고 부릅니다.
+장기적으로 보면 평균 수익은 전체 해시레이트에서 본인이 차지하는 비중과 비례해야 합니다. 이 원리는 확률 법칙을 그대로 따릅니다. 각 해시 연산은 독립적인 무작위 추출이며, 대수의 법칙에 따라 블록을 발견하는 빈도는 수학적으로 네트워크 전체 해시레이트 중 본인의 점유율에 수렴하게 됩니다. 하지만 단기적으로나 중기적으로 실제 수익은 매우 불규칙할 수 있습니다. 이러한 이론적 평균과 무작위적인 현실 사이의 차이를 수학에서는 **변동성**이라고 부릅니다.
-다음은 원리를 설명하기 위한 간단한 예시입니다:
+이 원리를 보여주는 간단한 예시는 다음과 같습니다.
+- 비트코인 네트워크는 하루 평균 144개의 블록을 생성합니다(약 10분당 1개).
+- 만약 당신이 전체 해시레이트의 `0.0001 %`를 보유하고 있다면, 기댓값은 `144 × 0.000001` 즉, 하루에 `0.000144`개의 블록입니다.
+- 다시 말해, 평균적으로 `1 / 0.000144`일마다, 즉 6,944일(약 19년)마다 블록 하나를 발견하게 된다는 뜻입니다.
-- Bitcoin 네트워크는 하루 평균 144개의 블록을 생성합니다(약 10분에 한 블록씩);
-- 전체 hashrate의 `0.0001%`를 보유하고 있다면, `144 × 0.000001` 또는 `0.000144` 블록/일을 예상할 수 있습니다;
-- 즉, 평균 `1 / 0.000144`일마다, 즉 6,944일마다, 즉 약 19년마다 블록을 찾아야 합니다.
+하지만 이 수치는 수학적 기댓값일 뿐입니다. 블록 발견 시간의 분포는 무작위 법칙을 따르므로, 실제로는 아주 긴 기간 동안 단 하나의 블록도 찾지 못할 가능성이 충분히 존재합니다. 운이 나쁘면 고정 비용(전기료, 유지보수비, 장비 감가상각비 등)을 계속 지출하면서도 아주 오랫동안 아무것도 얻지 못할 수 있습니다.
+채굴풀은 이 문제의 양상을 완전히 바꿔놓습니다. 여러 채굴자의 해시레이트를 하나로 모으면 블록을 발견하는 빈도가 훨씬 높아지기 때문입니다. 이에 따라 각 참여자는 블록 보상의 전체가 아닌 일부만을 나누어 갖게 되지만, 그 보상을 받는 주기는 훨씬 짧아집니다. 즉, 보상을 분배하고 서비스 수수료를 지불하는 대신, 언제 터질지 모르는 막연한 큰 수익을 포기하고 소액이라도 꾸준히 들어오는 안정적인 수익 구조를 택하는 셈입니다.
-그러나 이 값은 수학적 기대치일 뿐이며, 발견 시간의 분포는 무작위 법칙을 따르기 때문에 실제로는 아주 오랜 기간 동안 단 한 개의 블록도 발견하지 못할 수도 있습니다. 운이 나쁘면 아주 오랜 기간 동안 아무것도 찾지 못하고 반복되는 비용(전기, 유지보수, 장비 감가상각 등)을 지불할 수도 있습니다.
+### 왜 여럿이 모이면 수익이 안정될까요?
-mining 풀은 이 문제의 성격을 바꿉니다. hashrate를 결합함으로써 풀은 블록을 더 자주 찾습니다. 각 참여자는 발견된 블록의 일부만 받기로 동의하지만, 훨씬 더 자주 받기로 동의합니다. 이는 보상을 공유하고 서비스 수수료를 지불하는 대가로 변동성이 크고 간극이 큰 수입에서 보다 규칙적인 수입으로 전환하는 것입니다.
+연산 능력이 높을수록 블록을 발견할 것으로 기대되는 빈도도 높아집니다. 더 중요한 점은, 사건(블록 발견)이 더 자주 발생할수록 특정 기간 동안 관찰되는 실제 결과가 통계적 평균에 더 가까워진다는 것입니다.
-
-### 함께 그룹화하면 분산이 감소하는 이유는 무엇인가요?
-
-
-
-컴퓨팅 성능이 높을수록 발견되는 블록의 예상 빈도가 높아집니다. 더 중요한 것은 이벤트가 더 자주 발생할수록 관찰된 결과가 주어진 기간 동안의 통계적 평균에 더 가까워진다는 것입니다.
-
-
-
-소규모 채굴자는 단독으로 몇 년 동안 블록 하나 없이 지내다가 어느 날 큰 보상을 받은 후 아무것도 얻지 못할 수도 있습니다. 풀에서는 동일한 확률적 현실이 여전히 적용되지만, 풀이 블록을 더 자주 발견하고 재분배를 통해 이러한 이벤트를 각 참여자에게 더 규칙적인 지급으로 전환하는 등 집단적 규모에서 평준화됩니다. **따라서 mining 풀은 mining 활동에 대한 예측 가능성을 판매합니다**.
-
+개인 단위로 채굴하는 소규모 채굴자는 몇 년 동안 단 하나의 블록도 찾지 못하다가 어느 날 갑자기 큰 보상을 받을 수도 있고, 그 이후 다시 한동안 아무 소득이 없을 수도 있습니다. 채굴풀에서도 이러한 확률적 현실은 동일하게 적용되지만, 집단의 규모에서는 이 흐름이 매끄럽게 다듬어집니다. 채굴풀은 블록을 더 자주 발견하며, 보상 재분배를 통해 이러한 사건들을 각 참여자에게 더 규칙적인 지급 형태로 전환해 줍니다. **결과적으로 채굴풀은 채굴 활동에 '예측 가능성'을 부여하는 셈입니다.**
### 역사적인 랜드마크
+이전 장에서 살펴본 것처럼, 채굴 초기에는 난이도가 매우 낮아 일반 컴퓨터로도 혼자서 충분히 채굴할 수 있었습니다. 하지만 전 세계 해시레이트가 폭발적으로 증가(GPU를 거쳐 ASIC 시대까지)하면서, 대부분의 참여자에게 '나홀로 채굴'은 기약 없는 도박이나 다름없게 되었습니다.
-이전 장에서 살펴본 것처럼 처음에는 난이도가 매우 낮았기 때문에 mining은 일반 컴퓨터로 혼자서도 할 수 있었습니다. 그러나 전 세계적으로 hashrate이 폭발적으로 증가하면서(GPU, 그다음에는 ASIC), 대부분의 참가자에게 솔로 mining은 매우 많은 시간이 소요되는 도박이 되었습니다.
-
-
-
-첫 번째 풀은 이러한 새로운 현실에 정확하게 대응하기 위해 만들어졌습니다. Braiins Pool(이전의 Slush Pool/Bitcoin.cz)은 최초의 Bitcoin mining 풀로, 2010년 12월 16일에 첫 번째 블록을 채굴했습니다. 이 첫 번째 mining 풀은 단 며칠 만에 전 세계 hashrate의 거의 3.5%를 차지할 정도로 빠르게 성공했습니다.
+이러한 현실에 대응하기 위해 등장한 것이 바로 최초의 채굴풀들입니다. 브레인즈 풀(Braiins Pool, 구 슬러시 풀/Bitcoin.cz)은 비트코인 역사상 최초의 채굴풀로, 2010년 12월 16일에 첫 블록을 채굴했습니다. 이 최초의 채굴풀은 등장하자마자 엄청난 성공을 거두었으며, 단 며칠 만에 전 세계 해시레이트의 약 3.5%를 점유했습니다.

-
-기술적 측면에서 풀은 분산 작업을 효율적으로 조율하기 위해 풀과 채굴자 간의 특수 통신 프로토콜(예: 스트라텀, 이후 스트라텀 V2)을 중심으로 구조화되었습니다. 이러한 개념은 MIN 201 교육 과정에서 자세히 살펴보도록 하겠습니다.
-
+기술적인 측면에서 보면, 채굴풀은 수많은 채굴자의 작업을 효율적으로 조율하기 위해 전용 통신 프로토콜(Stratum, 이후 Stratum V2 등)을 중심으로 발전해 왔습니다. 이러한 기술적 상세 개념은 이후 MIN 201 과정에서 더욱 자세히 다룰 예정입니다.
### 현대의 상황
-
-이 글을 쓰는 시점(2026년 초)의 글로벌 Bitcoin hashrate는 초당 제타 해시 수(= 1,000 EH/s = 초당 1,000,000,000,000,000 해시)에 도달했으며, 발견된 거의 모든 블록은 mining 풀에서 나옵니다.
-
+이 글을 쓰는 지금(2026년 초), 전 세계 비트코인 해시레이트는 제타해시(Zetta-hash) 단위에 도달했습니다. 초당 약 1,000 EH/s, 즉 초당 1,000,000,000,000,000,000,000번의 해시 연산이 이뤄지고 있는 셈입니다. 현재 발견되는 거의 모든 블록은 채굴풀을 통해 생성되고 있습니다.
-다음은 현재까지 주요 mining 풀의 순위와 hashrate의 각 점유율입니다. 이 강좌를 읽으실 때쯤이면 순위가 바뀔 수 있습니다. 최신 데이터는 [mempool.space](https://mempool.space/graphs/mining/pools)를 참조하세요.
-
+아래는 주요 채굴풀의 순위와 각각의 해시레이트 점유율입니다. 이 순위는 여러분이 이 과정을 읽고 계실 때쯤이면 바뀌어 있을 가능성이 큽니다. 최신 데이터는 [mempool.space](https://mempool.space/graphs/mining/pools)에서 확인하실 수 있습니다.

-
| Ranking | Pool | Blocks found | Hashrate share |
| ---------: | -------------- | ------------: | ---------------: |
| 1 | Foundry USA | 1297 | 29.57% |
@@ -1853,51 +1400,39 @@ mining 풀은 이 문제의 성격을 바꿉니다. hashrate를 결합함으로
| 22 | Unknown | 2 | 0.05% |
| 23 | Public Pool | 1 | 0.02% |
-*출처: [mempool.space](https://mempool.space/graphs/mining/pools), 1개월 데이터, 2025년 12월 16일부터 2025년 1월 16일까지*
-
-
+*출처: [mempool.space](https://mempool.space/graphs/mining/pools), 1개월 데이터, 2025년 12월 16일 ~ 2025년 1월 16일기준*
-고급 과정에서는 풀의 내부 작동(지분, 네트워크 프로토콜, 결제 방법 등)에 대해 더 자세히 살펴볼 텐데요, 이는 채굴자의 수익성과 Bitcoin의 잠재적 영향을 결정하는 세부 사항이 모두 여기에서 결정되기 때문입니다.
+심화 과정에서는 채굴풀의 내부 작동 방식(셰어(Share), 네트워크 프로토콜, 보상 지급 방식 등)에 대해 더 자세히 다룰 예정입니다. 이러한 세부 사항들이 채굴자의 실제 수익성은 물론, 비트코인 네트워크 전체에 미칠 잠재적 영향력까지 결정짓는 핵심 요소이기 때문입니다.
---
-이제 MIN 101이 끝났습니다. 끝까지 강의를 따라주셔서 감사합니다. 이 과정을 통해 습득한 기술을 평가하고 싶으시다면 다음 섹션에서 기말고사가 기다리고 있습니다.
-
-
-
-방금 습득한 기본 지식을 바탕으로 이제 Plan ₿ Academy에서 mining에 대한 심화 과정을 수강할 수 있으며, 이 과정과 같은 이론 과정이나 더 많은 실습 과정을 통해 Bitcoin mining에 참여할 수 있습니다!
+드디어 MIN 101 과정이 끝났습니다. 끝까지 함께해주셔서 감사합니다! 이번 코스를 통해 배운 내용을 스스로 점검해보고 싶다면, 다음 섹션에 마련된 최종 시험에 도전해 보세요.
+이제 막 습득한 기초 지식을 바탕으로, Plan ₿ Academy에서 제공하는 더 깊이 있는 채굴 과정을 시작하실 수 있습니다. 이번처럼 이론을 다루는 강의는 물론, 직접 비트코인 채굴에 참여해 볼 수 있는 실전 과정까지 준비되어 있습니다. 여러분도 이제 직접 비트코인 채굴의 세계에 뛰어들어 보세요!
-# 마지막 부분
+# 최종 단계
eced8ca1-971d-4a22-9254-dbf8bce15d1b
-
## 리뷰 및 평가
-
dc005a96-f4b4-42be-ab72-d4624c110716
-
true
## 최종 시험
-
959f06cf-fd66-4f29-b7ee-665bfedfea0d
-
true
## 결론
-
f16a4e42-c16e-466b-ad16-f42b5360f510
-
true
\ No newline at end of file
diff --git a/courses/min101/quizz/000/ko.yml b/courses/min101/quizz/000/ko.yml
index 551b60b3c90..5b5d5f1cb71 100644
--- a/courses/min101/quizz/000/ko.yml
+++ b/courses/min101/quizz/000/ko.yml
@@ -6,4 +6,4 @@ wrong_answers:
- 미래 주소
explanation: |
입력은 UTXO라고 불리는 과거 트랜잭션의 소비되지 않은 출력을 참조합니다.
-reviewed: false
+reviewed: true
diff --git a/courses/min101/quizz/001/ko.yml b/courses/min101/quizz/001/ko.yml
index c3cfaf4756a..003dd5a00b6 100644
--- a/courses/min101/quizz/001/ko.yml
+++ b/courses/min101/quizz/001/ko.yml
@@ -1,9 +1,9 @@
-question: 검증 후, 비트코인 노드는 유효하지만 확인되지 않은 트랜잭션을 어떻게 처리하나요?
-answer: 피어(peers)들에게 전달합니다
+question: 비트코인 노드가 검증을 마친 유효하지만 아직 승인되지 않은 트랜잭션을 어떻게 처리하나요
+answer: 연결된 다른 노드(피어)들에게 전달합니다
wrong_answers:
- - 로컬 블록체인 사본에 추가합니다
- - 자신의 개인 키로 서명합니다
- - 자신의 공개 키로 암호화합니다
+ - 자신의 블록체인 로컬 사본에 즉시 추가합니다
+ - 자신의 개인키로 트랜잭션에 서명합니다
+ - 자신의 공개키로 트랜잭션을 암호화합니다
explanation: |
- 비트코인 네트워크에서 각 노드는 유효한 트랜잭션을 연결된 노드들에게 전파합니다.
-reviewed: false
+ 비트코인 네트워크에서 각 노드는 검증된 유효한 트랜잭션을 자신이 연결된 다른 노드들에게 전파하여 네트워크 전체로 퍼뜨립니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/002/ko.yml b/courses/min101/quizz/002/ko.yml
index 170e09ce571..ce72d110a21 100644
--- a/courses/min101/quizz/002/ko.yml
+++ b/courses/min101/quizz/002/ko.yml
@@ -1,9 +1,9 @@
-question: mempool에 관한 설명 중 옳은 것은 무엇인가요?
-answer: 각 노드는 자신만의 mempool을 가집니다
+question: 멤풀(mempool)에 관한 설명 중 옳은 것은 무엇인가요
+answer: 각 노드는 자신만의 개별적인 멤풀을 가지고 있습니다
wrong_answers:
- - 단 하나의 고유한 mempool이 존재합니다
- - mempool은 각 블록에 포함된 파일입니다
- - mempool은 중앙 서버입니다
+ - 전 세계에 단 하나의 고유한 멤풀만 존재합니다
+ - 멤풀은 각 블록 안에 포함된 파일입니다
+ - 멤풀은 중앙 서버에서 관리됩니다
explanation: |
- mempool은 각 노드에 로컬로 존재하므로, 각 노드가 적용하는 규칙에 따라 노드마다 내용이 다를 수 있습니다.
-reviewed: false
+ 멤풀은 각 노드에 로컬로 존재하며 각 노드가 적용하는 규칙에 따라 노드마다 그 내용이 조금씩 다를 수 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/003/ko.yml b/courses/min101/quizz/003/ko.yml
index e1dc10b10ea..a1c6155181a 100644
--- a/courses/min101/quizz/003/ko.yml
+++ b/courses/min101/quizz/003/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인에서 UTXO를 잠금 해제하는 데 가장 자주 사용되는 증명은 무엇인가요?
+question: 비트코인에서 UTXO를 사용하기 위해 잠금을 해제하는 수단으로 가장 자주 쓰이는 것은 무엇인가요
answer: 디지털 서명
wrong_answers:
- 계정 비밀번호
- - 현재 블록의 해시
+ - 현재 블록의 해시값
- SSL 인증서
explanation: |
- 소비 조건은 일반적으로 해당 개인 키로 생성된 서명을 요구합니다.
-reviewed: false
+ 비트코인을 소비하려면 해당 UTXO에 설정된 조건을 만족해야 하며 보통 대응하는 개인키로 생성한 디지털 서명을 통해 소유권을 증명합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/004/ko.yml b/courses/min101/quizz/004/ko.yml
index fefd372741b..a7adc5a0d32 100644
--- a/courses/min101/quizz/004/ko.yml
+++ b/courses/min101/quizz/004/ko.yml
@@ -1,9 +1,9 @@
-question: 사토시가 요약한 아이디어에 따르면, 이중 지불(double-spending)이 없음을 보장하는 유일한 방법은 무엇인가요?
-answer: 모든 트랜잭션을 아는 것
+question: 사토시 나카모토가 요약한 개념에 따르면 이중 지불이 없음을 보장할 수 있는 유일한 방법은 무엇인가요
+answer: 모든 트랜잭션 내역을 파악하는 것
wrong_answers:
- - 모든 활성 노드를 아는 것
- - 모든 활성 채굴자를 아는 것
- - 모든 개인 키를 아는 것
+ - 활성화된 모든 노드를 파악하는 것
+ - 활성화된 모든 채굴자를 파악하는 것
+ - 모든 개인키를 파악하는 것
explanation: |
- 이중 지불은 공유 장부에 기록된 과거 지출과 트랜잭션을 비교함으로써 감지됩니다.
-reviewed: false
+ 이중 지불은 새로운 트랜잭션을 공유 장부에 기록된 이전의 지출 기록과 대조함으로써 감지하고 방지할 수 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/005/ko.yml b/courses/min101/quizz/005/ko.yml
index f01b782150a..889380f9339 100644
--- a/courses/min101/quizz/005/ko.yml
+++ b/courses/min101/quizz/005/ko.yml
@@ -1,9 +1,9 @@
-question: 블록 헤더의 nbits 필드는 무엇에 해당합니까?
-answer: 인코딩된 난이도 목표
+question: 블록 헤더에 포함된 nbits 필드는 무엇을 나타내나요
+answer: 인코딩된 난이도 타겟
wrong_answers:
- 바이트 단위의 블록 크기
- - 블록 내 트랜잭션 수
- - 블록 타임스탬프
+ - 블록에 포함된 트랜잭션의 수
+ - 블록이 생성된 타임스탬프
explanation: |
- nbits 필드는 활성 난이도 목표를 인코딩합니다.
-reviewed: false
+ nbits 필드는 현재 네트워크에 적용 중인 난이도 타겟 값을 효율적으로 저장하기 위해 인코딩한 데이터입니다.
+reviewed: true
diff --git a/courses/min101/quizz/006/ko.yml b/courses/min101/quizz/006/ko.yml
index aead4722440..29f9360d68c 100644
--- a/courses/min101/quizz/006/ko.yml
+++ b/courses/min101/quizz/006/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 블록 헤더의 머클 루트(Merkle root)는 어떤 용도로 사용됩니까?
-answer: 블록의 모든 트랜잭션을 약속(commit)하기 위해
+question: 비트코인 블록 헤더에서 머클 루트(Merkle root)의 목적은 무엇인가요
+answer: 블록에 포함된 모든 트랜잭션 내역을 확정하고 증명하는 것
wrong_answers:
- - 블록의 작업 증명을 계산하기 위해
- - 블록 버전을 알리기 위해
- - 블록 난이도를 파악하기 위해
+ - 블록의 작업 증명(PoW)을 계산하는 것
+ - 블록 버전을 나타내는 것
+ - 블록 난이도를 결정하는 것
explanation: |
- 머클 루트는 모든 트랜잭션을 요약합니다. 하나라도 변경되면 루트도 변경됩니다.
-reviewed: false
+ 머클 루트는 블록 안의 모든 트랜잭션을 요약한 값입니다. 만약 트랜잭션 내용이 하나라도 바뀌면 머클 루트 값도 완전히 변하게 됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/007/ko.yml b/courses/min101/quizz/007/ko.yml
index 4b463c8446e..89eda8dcf6a 100644
--- a/courses/min101/quizz/007/ko.yml
+++ b/courses/min101/quizz/007/ko.yml
@@ -1,9 +1,9 @@
-question: 채굴자가 트랜잭션을 선택할 때 지침이 되는 경제적 기준은 무엇입니까?
+question: 채굴자가 트랜잭션을 선택할 때 기준으로 삼는 경제적 지표는 무엇인가요
answer: 수수료율(fee rate)
wrong_answers:
- 총 수수료 금액
- - UTXO의 연령
- - UTXO의 수
+ - UTXO의 생성 시기
+ - UTXO의 개수
explanation: |
- 블록 공간은 제한되어 있으므로 채굴자는 바이트당 수익성이 가장 높은 트랜잭션을 우선시합니다. 따라서 트랜잭션 선택을 안내하는 것은 수수료율입니다.
-reviewed: false
+ 블록 공간은 제한되어 있기 때문에 채굴자는 바이트당 수익성이 가장 높은 트랜잭션을 우선적으로 처리합니다. 따라서 단순히 총액이 아닌 수수료율이 트랜잭션 선택의 기준이 됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/008/ko.yml b/courses/min101/quizz/008/ko.yml
index 477ee587146..64a42efc53b 100644
--- a/courses/min101/quizz/008/ko.yml
+++ b/courses/min101/quizz/008/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인에서 작업 증명은 어떤 요소를 기준으로 계산됩니까?
+question: 비트코인의 작업 증명(PoW)은 블록의 어떤 부분을 대상으로 계산되나요
answer: 블록 헤더
wrong_answers:
- 블록 높이
- - 네트워크의 mempool
+ - 네트워크 멤풀
- 블록의 첫 21개 트랜잭션
explanation: |
- 채굴은 블록의 내용을 약속하는 80바이트 블록 헤더를 반복적으로 해싱하는 과정으로 이루어집니다.
-reviewed: false
+ 채굴은 80바이트 크기의 블록 헤더를 반복적으로 해싱하는 과정입니다. 이 과정을 통해 블록에 담긴 모든 내용을 확정하고 증명하게 됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/009/ko.yml b/courses/min101/quizz/009/ko.yml
index 349f1c94e93..63dfc7cbe94 100644
--- a/courses/min101/quizz/009/ko.yml
+++ b/courses/min101/quizz/009/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인에서 후보 블록(candidate block)이란 무엇입니까?
-answer: 채굴자가 준비했지만 아직 유효하지 않은 블록
+question: 비트코인에서 후보 블록(candidate block)이란 무엇인가요
+answer: 채굴자가 생성했지만 아직 유효한 작업 증명을 찾지 못한 블록
wrong_answers:
- - 네트워크에서 검증되었으나 아직 공유되지 않은 블록
- - 지갑에서 생성되었으나 아직 유효하지 않은 블록
- - mempool에 저장된 블록
+ - 네트워크에서 검증되었지만 아직 공유되지 않은 블록
+ - 지갑에서 생성되었지만 아직 유효하지 않은 블록
+ - 멤풀(mempool)에 저장된 블록
explanation: |
- 각 채굴자는 유효한 작업 증명을 찾으려 시도하기 전에 로컬에서 후보 블록을 조립합니다.
-reviewed: false
+ 각 채굴자는 유효한 작업 증명을 찾으려고 시도하기 전에 먼저 자신의 노드에서 직접 후보 블록을 구성합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/010/ko.yml b/courses/min101/quizz/010/ko.yml
index 232d2836713..114a2d54fa6 100644
--- a/courses/min101/quizz/010/ko.yml
+++ b/courses/min101/quizz/010/ko.yml
@@ -1,9 +1,9 @@
-question: 블록 헤더에서 논스(nonce)의 크기는 얼마입니까?
+question: 블록 헤더에서 논스(nonce) 필드의 크기는 얼마인가요
answer: 32비트
wrong_answers:
- 128비트
- 64비트
- 256비트
explanation: |
- 논스는 헤더에 있는 32비트 필드입니다.
-reviewed: false
+ 논스는 블록 헤더 내에 포함된 32비트 크기의 필드입니다. 채굴자는 이 값을 계속 바꿔가며 유효한 블록 해시값을 찾아냅니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/011/ko.yml b/courses/min101/quizz/011/ko.yml
index b898f005865..5cccd39fb45 100644
--- a/courses/min101/quizz/011/ko.yml
+++ b/courses/min101/quizz/011/ko.yml
@@ -1,9 +1,9 @@
-question: 블록 헤더에서 논스(nonce)의 역할은 무엇입니까?
-answer: 재시도를 위해 헤더를 변경함
+question: 블록 헤더에서 논스(nonce)의 목적은 무엇인가요
+answer: 헤더 값을 변경하여 유효한 해시값을 찾기 위해 재시도하는 것
wrong_answers:
- - 블록 크기를 늘림
- - 블록의 모든 트랜잭션을 나타냄
- - 난이도 목표를 나타냄
+ - 블록의 크기를 키우는 것
+ - 블록 내의 모든 트랜잭션을 대표하는 것
+ - 난이도 타겟을 표시하는 것
explanation: |
- 논스를 변경하면 해시 입력이 바뀌고 완전히 다른 지문이 생성됩니다. 이를 통해 유효한 해시를 찾기 위한 재시도가 가능해집니다.
-reviewed: false
+ 논스 값을 변경하면 해시 함수의 입력값이 바뀌어 완전히 다른 해시 결과가 나옵니다. 이를 통해 채굴자는 유효한 해시값을 찾을 때까지 계속해서 재시도할 수 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/012/ko.yml b/courses/min101/quizz/012/ko.yml
index df6899320ac..99848945bce 100644
--- a/courses/min101/quizz/012/ko.yml
+++ b/courses/min101/quizz/012/ko.yml
@@ -1,9 +1,9 @@
-question: 난이도 목표가 낮아지면 채굴은 어떻게 됩니까?
-answer: 더 어려워집니다
+question: 난이도 타겟(difficulty target)이 낮아지면 채굴 작업은 어떻게 변하나요
+answer: 채굴이 더 어려워집니다
wrong_answers:
- - 더 쉬워집니다
- - 동일하게 유지됩니다
- - 불가능해집니다
+ - 채굴이 더 쉬워집니다
+ - 이전과 동일하게 유지됩니다
+ - 채굴이 불가능해집니다
explanation: |
- 목표값이 낮아지면 임계값 미만의 가능한 결과가 줄어들기 때문에 유효한 해시를 찾기 위해 더 많은 시도가 필요합니다. 이는 채굴이 더 어려워짐을 의미합니다.
-reviewed: false
+ 타겟 값이 낮아지면 그 임계값보다 작은 해시 결과값이 나올 확률이 줄어듭니다. 따라서 유효한 해시를 찾기 위해 더 많은 시도가 필요하며 이는 채굴 난이도가 높아짐을 의미합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/013/ko.yml b/courses/min101/quizz/013/ko.yml
index da2178aa40f..ce289e60d1b 100644
--- a/courses/min101/quizz/013/ko.yml
+++ b/courses/min101/quizz/013/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인에서 블록이 유효하기 위한 조건은 무엇입니까?
-answer: SHA256d(블록 헤더) <= 목표값
+question: 비트코인에서 블록이 유효하기 위한 조건은 무엇인가요
+answer: SHA256d(블록 헤더) <= 타겟
wrong_answers:
- - SHA256d(블록 헤더) >= 목표값
- - SHA256d(블록) >= 목표값
- - SHA256d(블록 헤더) > 목표값
+ - SHA256d(블록 헤더) >= 타겟
+ - SHA256d(블록) >= 타겟
+ - SHA256d(블록 헤더) > 타겟
explanation: |
- 비트코인에서 블록이 유효하려면 숫자로 해석된 헤더 해시가 목표값보다 작거나 같아야(<=) 합니다.
-reviewed: false
+ 비트코인에서 블록이 유효하려면 해당 블록 헤더를 해싱한 결과값이 숫자로 간주했을 때 타겟(target) 값보다 작거나 같아야(<=) 합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/014/ko.yml b/courses/min101/quizz/014/ko.yml
index 60d0a849bbb..10664cfb163 100644
--- a/courses/min101/quizz/014/ko.yml
+++ b/courses/min101/quizz/014/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 채굴에는 어떤 해시 함수가 사용됩니까?
+question: 비트코인 채굴에 사용되는 해시 함수는 무엇인가요
answer: SHA256d
wrong_answers:
- SHA1d
- RIPEMD160d
- SHA512d
explanation: |
- 비트코인 채굴은 SHA256을 두 번 적용하며, 일반적으로 SHA256d라고 표기합니다.
-reviewed: false
+ 비트코인 채굴은 SHA256 해시 함수를 두 번 연속으로 적용하는 방식을 사용하며 이를 보통 SHA256d라고 부릅니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/015/ko.yml b/courses/min101/quizz/015/ko.yml
index 49ce13a5a60..d0ec2e85938 100644
--- a/courses/min101/quizz/015/ko.yml
+++ b/courses/min101/quizz/015/ko.yml
@@ -1,9 +1,9 @@
-question: Hashcash는 몇 년도에 제안되었습니까?
+question: 해시캐시(Hashcash)가 제안된 연도는 언제인가요
answer: 1997
wrong_answers:
- 1993
- 2004
- 1995
explanation: |
- Hashcash는 1997년 3월에 처음으로 발표되었습니다.
-reviewed: false
+ 해시캐시는 1997년 3월에 처음으로 발표되었습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/016/ko.yml b/courses/min101/quizz/016/ko.yml
index 63f34d57d3d..853f2292615 100644
--- a/courses/min101/quizz/016/ko.yml
+++ b/courses/min101/quizz/016/ko.yml
@@ -1,9 +1,9 @@
-question: 약어 RPOW는 무엇을 의미합니까?
-answer: Reusable Proofs of Work
+question: 약어 RPOW는 무엇의 줄임말인가요
+answer: 재사용 가능한 작업 증명(Reusable Proofs of Work)
wrong_answers:
- - Recursive Proofs of Work
- - Random Proofs of Work
- - Replayed Proofs of Work
+ - 재귀적 작업 증명(Recursive Proofs of Work)
+ - 무작위 작업 증명(Random Proofs of Work)
+ - 재실행된 작업 증명(Replayed Proofs of Work)
explanation: |
- RPOW는 2004년 할 피니(Hal Finney)가 제안한 재사용 및 교환 가능한 작업 증명을 의미합니다.
-reviewed: false
+ RPOW는 2004년 할 피니가 제안한 재사용 및 교환 가능한 작업 증명 방식을 의미합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/017/ko.yml b/courses/min101/quizz/017/ko.yml
index dc5abc98ece..90746dd134d 100644
--- a/courses/min101/quizz/017/ko.yml
+++ b/courses/min101/quizz/017/ko.yml
@@ -1,9 +1,9 @@
-question: Bit Gold 개념의 창시자는 누구입니까?
-answer: Nick Szabo
+question: 비트 골드(Bit Gold)라는 개념을 처음 고안한 사람은 누구인가요
+answer: 닉 자보(Nick Szabo)
wrong_answers:
- - Satoshi Nakamoto
- - Hal Finney
- - Wei Dai
+ - 사토시 나카모토
+ - 할 피니
+ - 웨이 다이
explanation: |
- Bit Gold는 닉 사보(Nick Szabo)가 제안한 전자 화폐 시스템의 개념적 프로젝트입니다.
-reviewed: false
+ 비트 골드는 닉 자보가 제안한 전자 화폐 시스템 프로젝트로 비트코인의 탄생에 영감을 준 중요한 전구체 중 하나입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/018/ko.yml b/courses/min101/quizz/018/ko.yml
index 3251aa81a30..f61c51a2406 100644
--- a/courses/min101/quizz/018/ko.yml
+++ b/courses/min101/quizz/018/ko.yml
@@ -1,9 +1,9 @@
-question: Hashcash는 주로 어떤 문제를 해결하려고 했습니까?
+question: 해시캐시(Hashcash)가 기본적으로 해결하고자 했던 문제는 무엇인가요
answer: 이메일 스팸
wrong_answers:
- 이중 지불
- DNS 피싱
- - 개인 키 도난
+ - 개인키 도난
explanation: |
- Hashcash는 대량의 이메일 전송을 수익성이 없게 만들기 위해 메시지당 컴퓨팅 비용을 부과합니다.
-reviewed: false
+ 해시캐시는 이메일 메시지당 일정 수준의 계산 비용을 부과하여 대량으로 스팸 메일을 보내는 것이 경제적으로 이득이 되지 않게 만듭니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/019/ko.yml b/courses/min101/quizz/019/ko.yml
index 98c081a6ef9..fb461d66d78 100644
--- a/courses/min101/quizz/019/ko.yml
+++ b/courses/min101/quizz/019/ko.yml
@@ -1,9 +1,9 @@
-question: Hashcash를 발명한 사람은 누구입니까?
-answer: Adam Back
+question: 해시캐시(Hashcash)를 고안한 사람은 누구인가요
+answer: 아담 백(Adam Back)
wrong_answers:
- - Nick Szabo
- - Hal Finney
- - David Chaum
+ - 닉 자보(Nick Szabo)
+ - 할 피니(Hal Finney)
+ - 데이비드 차움(David Chaum)
explanation: |
- Hashcash는 아담 백(Adam Back)에 의해 발명되었습니다. 이것은 최초의 작업 증명 메커니즘입니다.
-reviewed: false
+ 해시캐시는 아담 백이 고안했습니다. 이는 역사상 최초로 제안된 작업 증명(Proof of Work) 메커니즘입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/020/ko.yml b/courses/min101/quizz/020/ko.yml
index 144151afe16..6f7e9775ff4 100644
--- a/courses/min101/quizz/020/ko.yml
+++ b/courses/min101/quizz/020/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인은 각 블록 사이에 평균적으로 어느 정도의 간격을 목표로 합니까?
+question: 비트코인 네트워크가 목표로 하는 블록 간의 평균 생성 주기는 얼마인가요
answer: 10분
wrong_answers:
- 1분
- 30분
- 60분
explanation: |
- 프로토콜은 장기간에 걸쳐 평균 약 10분마다 하나의 블록을 생성하는 것을 목표로 합니다.
-reviewed: false
+ 비트코인 프로토콜은 장기적으로 약 10분마다 하나의 블록이 생성되는 것을 목표로 설계되었습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/021/ko.yml b/courses/min101/quizz/021/ko.yml
index 993e21222b0..d6078d86122 100644
--- a/courses/min101/quizz/021/ko.yml
+++ b/courses/min101/quizz/021/ko.yml
@@ -1,9 +1,9 @@
-question: 난이도 목표는 몇 블록마다 조정됩니까?
-answer: 2016개 블록
+question: 비트코인의 난이도 타겟은 몇 개의 블록마다 재조정되나요
+answer: 2016개
wrong_answers:
- - 2000개 블록
- - 2100개 블록
- - 4096개 블록
+ - 2000개
+ - 2100개
+ - 4096개
explanation: |
- 조정은 2016개 블록마다 이루어지며, 이는 블록당 10분을 기준으로 약 2주에 해당합니다.
-reviewed: false
+ 난이도 조절은 2016개 블록마다 발생하며 이는 블록당 10분을 기준으로 계산했을 때 약 2주에 해당하는 기간입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/022/ko.yml b/courses/min101/quizz/022/ko.yml
index 1d376340b21..133a0d25f15 100644
--- a/courses/min101/quizz/022/ko.yml
+++ b/courses/min101/quizz/022/ko.yml
@@ -1,9 +1,9 @@
-question: 해시레이트는 무엇을 측정합니까?
-answer: 초당 해시 수
+question: 해시레이트(hashrate)는 무엇을 측정하는 지표인가요
+answer: 초당 해시 수(Hashes per second)
wrong_answers:
- 초당 블록 수
- 초당 트랜잭션 수
- 초당 바이트 수
explanation: |
- 해시레이트는 매초 시도되는 해싱 횟수를 H/s로 나타냅니다.
-reviewed: false
+ 해시레이트는 매초 시도되는 해싱 연산의 횟수를 나타내며 단위는 H/s(초당 해시 수)를 사용합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/023/ko.yml b/courses/min101/quizz/023/ko.yml
index 429fe4f4dc3..93e514b0c0e 100644
--- a/courses/min101/quizz/023/ko.yml
+++ b/courses/min101/quizz/023/ko.yml
@@ -1,9 +1,9 @@
-question: 지난 기간 동안 블록이 너무 빨리 발견되었다면 어떤 일이 발생합니까?
-answer: 목표치가 낮아집니다
+question: 지난 주기 동안 블록이 너무 빠르게 생성되었다면 어떤 변화가 일어나나요
+answer: 타겟(target) 값이 낮아집니다
wrong_answers:
- - 목표치가 높아집니다
- - 목표치가 동일하게 유지됩니다
- - 블록 크기가 증가합니다
+ - 타겟(target) 값이 높아집니다
+ - 타겟(target) 값이 동일하게 유지됩니다
+ - 블록 크기가 커집니다
explanation: |
- 블록이 너무 빨리 발견되는 것은 해시레이트가 더 높다는 것을 의미하므로, 비트코인은 목표치를 낮추어 조건을 강화합니다.
-reviewed: false
+ 블록이 너무 빠르게 생성되었다는 것은 네트워크의 해시레이트가 높아졌음을 의미합니다. 따라서 비트코인은 타겟 값을 낮추어 블록 생성 조건을 더 까다롭게 만듭니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/024/ko.yml b/courses/min101/quizz/024/ko.yml
index 12d6a43c921..b6ec0e1e497 100644
--- a/courses/min101/quizz/024/ko.yml
+++ b/courses/min101/quizz/024/ko.yml
@@ -1,9 +1,9 @@
-question: 어떤 현상이 두 블록 사이의 지연 시간을 근본적으로 변하게 만듭니까?
-answer: 해싱의 확률적 성격
+question: 두 블록 사이의 생성 간격이 본질적으로 가변적인 이유는 어떤 현상 때문인가요
+answer: 해싱의 확률적 특성(probabilistic nature)
wrong_answers:
- - 해싱의 결정론적 성격
- - 해싱의 재귀적 성격
- - 해싱의 주기적 성격
+ - 해싱의 결정론적 특성
+ - 해싱의 재귀적 특성
+ - 해싱의 주기적 특성
explanation: |
- 각 해시는 독립적인 시도이므로 해시레이트가 일정하더라도 발견 시간은 무작위가 됩니다.
-reviewed: false
+ 각 해시 계산은 서로 독립적인 시도이며 해시레이트가 일정하더라도 유효한 해시를 찾아내는 시간은 무작위로 결정됩니다. 이러한 특성 때문에 블록 생성 간격은 매번 달라집니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/025/ko.yml b/courses/min101/quizz/025/ko.yml
index 14abc865b99..2a434c498a5 100644
--- a/courses/min101/quizz/025/ko.yml
+++ b/courses/min101/quizz/025/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 트랜잭션 수수료는 출력(output)입니까?
+question: 비트코인 트랜잭션 수수료는 출력(output) 항목에 포함되나요
answer: 아니요
wrong_answers:
- 예
- - 예, 하지만 SegWit 트랜잭션에만 해당됩니다
- - 아니요, 하지만 2012년 이전에는 그랬습니다
+ - 예(세그윗 트랜잭션의 경우에만 해당)
+ - 아니요(2012년 이전에는 출력 항목에 포함되었음)
explanation: |
- 수수료는 총 입력(inputs)과 총 출력(outputs)의 차이일 뿐, 별도의 출력이 아닙니다. 이는 처음부터 그랬습니다.
-reviewed: false
+ 수수료는 총 입력값과 총 출력값의 차액으로 계산되며 별도의 출력 항목으로 존재하지 않습니다. 이는 비트코인 시작 이래로 항상 동일하게 유지되어 온 방식입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/026/ko.yml b/courses/min101/quizz/026/ko.yml
index 291848a818c..b2092b7da7b 100644
--- a/courses/min101/quizz/026/ko.yml
+++ b/courses/min101/quizz/026/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 코어(Bitcoin Core)의 어떤 파라미터가 기본 최소 릴레이 임계값을 설정합니까?
+question: 비트코인 코어에서 기본 최소 전파 임계값을 설정하는 파라미터는 무엇인가요
answer: minRelayTxFee
wrong_answers:
- minConfirmTxFee
- relayTxWeight
- mempoolMinBits
explanation: |
- 노드는 로컬 정책을 적용하며, 비트코인 코어는 최소 릴레이 임계값으로 minRelayTxFee 파라미터를 사용합니다.
-reviewed: false
+ 각 노드는 자체적인 로컬 정책을 적용하며 비트코인 코어는 트랜잭션을 다른 노드로 전파하기 위한 최소 수수료 기준으로 minRelayTxFee 파라미터를 사용합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/027/ko.yml b/courses/min101/quizz/027/ko.yml
index 8ff4445f4c2..0d4cf2de32d 100644
--- a/courses/min101/quizz/027/ko.yml
+++ b/courses/min101/quizz/027/ko.yml
@@ -1,9 +1,9 @@
-question: 트랜잭션 수수료는 어떻게 계산합니까?
-answer: 입력(inputs) 빼기 출력(outputs)
+question: 트랜잭션 수수료는 어떻게 계산되나요
+answer: 입력값(inputs)의 합계에서 출력값(outputs)의 합계를 뺀 값
wrong_answers:
- - 출력 빼기 입력
- - 입력 더하기 출력
- - 출력을 입력으로 나눈 값
+ - 출력값의 합계에서 입력값의 합계를 뺀 값
+ - 입력값과 출력값을 더한 값
+ - 출력값을 입력값으로 나눈 값
explanation: |
- 수수료는 입력에서 소비된 가치 중 출력에서 다시 생성되지 않은 금액에 해당합니다.
-reviewed: false
+ 수수료는 트랜잭션에 사용된 총 입력값 중에서 새로운 출력값으로 다시 생성되지 않고 남은 차액을 의미합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/028/ko.yml b/courses/min101/quizz/028/ko.yml
index 6994d8634e7..262bb8ea822 100644
--- a/courses/min101/quizz/028/ko.yml
+++ b/courses/min101/quizz/028/ko.yml
@@ -1,9 +1,9 @@
-question: 블록 보조금(block subsidy)은 무엇에 해당합니까?
-answer: 화폐 발행
+question: 블록 보조금(block subsidy)은 무엇을 의미하나요
+answer: 신규 화폐의 발행
wrong_answers:
- 트랜잭션 수수료
- 사용자 예치금
- - 스팸 페널티
+ - 스팸 패널티
explanation: |
- 보조금은 프로토콜 규칙에 따라 무(無)에서 새로운 비트코인을 창출하는 보상의 일부입니다.
-reviewed: false
+ 블록 보조금은 프로토콜 규칙에 따라 아무런 대가 없이 새롭게 생성되는 비트코인을 의미하며 채굴 보상의 핵심적인 부분입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/029/ko.yml b/courses/min101/quizz/029/ko.yml
index 64022e0e5a3..20f32ed0e34 100644
--- a/courses/min101/quizz/029/ko.yml
+++ b/courses/min101/quizz/029/ko.yml
@@ -1,9 +1,9 @@
-question: 블록 보상은 무엇으로 구성됩니까?
-answer: 보조금 + 수수료
+question: 블록 보상(block reward)은 무엇으로 구성되나요
+answer: 보조금(subsidy) + 수수료(fees)
wrong_answers:
- - 보조금 + 난이도
- - 수수료 + nonce
- - 해시레이트 + 수수료
+ - 보조금(subsidy) + 난이도(difficulty)
+ - 수수료(fees) + 논스(nonce)
+ - 해시레이트(hashrate) + 수수료(fees)
explanation: |
- 보상은 블록 보조금과 포함된 트랜잭션의 모든 수수료를 합산한 것입니다.
-reviewed: false
+ 블록 보상은 신규로 발행되는 비트코인인 블록 보조금과 해당 블록에 포함된 모든 트랜잭션 수수료를 합산하여 구성됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/030/ko.yml b/courses/min101/quizz/030/ko.yml
index 43221140f2c..9e014a3fe0d 100644
--- a/courses/min101/quizz/030/ko.yml
+++ b/courses/min101/quizz/030/ko.yml
@@ -1,9 +1,9 @@
-question: 네 번째 반감기(halving)는 어느 블록 높이에서 발생했습니까?
+question: 네 번째 반감기는 몇 번째 블록 높이에서 발생했나요
answer: 840,000
wrong_answers:
- 880,000
- 860,000
- 900,000
explanation: |
- 네 번째 반감기는 2024년 4월 20일, 블록 높이 840,000에서 발생했습니다.
-reviewed: false
+ 네 번째 반감기는 2024년 4월 20일에 840,000번째 블록에서 발생했습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/031/ko.yml b/courses/min101/quizz/031/ko.yml
index 9585f3e1041..b683833d598 100644
--- a/courses/min101/quizz/031/ko.yml
+++ b/courses/min101/quizz/031/ko.yml
@@ -1,9 +1,9 @@
-question: 프로토콜에 따른 마지막 반감기(halving)는 몇 번째입니까?
+question: 비트코인 프로토콜에 규정된 마지막 반감기는 몇 번째인가요
answer: 33번째
wrong_answers:
- 21번째
- 38번째
- 64번째
explanation: |
- 블록 높이 6,930,000에서의 33번째 반감기는 보조금이 최소 단위 미만으로 떨어지기 때문에 블록 보조금이 종료됩니다.
-reviewed: false
+ 33번째 반감기는 6,930,000번째 블록 높이에서 발생하며 이때 블록 보조금이 최소 단위인 1사토시 미만으로 떨어지기 때문에 신규 발행이 중단됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/032/ko.yml b/courses/min101/quizz/032/ko.yml
index fd728613935..68aa6a54452 100644
--- a/courses/min101/quizz/032/ko.yml
+++ b/courses/min101/quizz/032/ko.yml
@@ -1,9 +1,9 @@
-question: 2009년 비트코인 출시 당시 블록 보조금은 얼마였습니까?
+question: 2009년 비트코인 출시 당시 블록 보조금은 얼마였나요
answer: 50 BTC
wrong_answers:
- 25 BTC
- 12.5 BTC
- 100 BTC
explanation: |
- 연이은 반감기가 오기 전, 초기 보조금은 블록당 50 BTC였습니다.
-reviewed: false
+ 비트코인 초기 블록 보조금은 블록당 50 BTC였으며 이후 반감기를 거치며 계속해서 절반으로 줄어들었습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/033/ko.yml b/courses/min101/quizz/033/ko.yml
index 9e1789d86af..bc3abb90645 100644
--- a/courses/min101/quizz/033/ko.yml
+++ b/courses/min101/quizz/033/ko.yml
@@ -1,9 +1,9 @@
-question: 반감기(halving)는 몇 블록마다 발생합니까?
-answer: 210,000
+question: 비트코인 반감기는 몇 개의 블록마다 발생하나요
+answer: 210,000개
wrong_answers:
- - 2,016
- - 100,000
- - 21,000,000
+ - 2,016개
+ - 100,000개
+ - 21,000,000개
explanation: |
- 프로토콜은 블록 높이가 210,000의 배수일 때마다 반감기를 적용합니다.
-reviewed: false
+ 비트코인 프로토콜은 블록 높이가 210,000의 배수가 될 때마다 반감기를 적용하도록 설계되어 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/034/ko.yml b/courses/min101/quizz/034/ko.yml
index 55c5498a471..4444da8a622 100644
--- a/courses/min101/quizz/034/ko.yml
+++ b/courses/min101/quizz/034/ko.yml
@@ -1,9 +1,9 @@
-question: 반감기(halving)는 비트코인의 무엇을 변화시킵니까?
-answer: 블록 보조금
+question: 비트코인 반감기가 직접적으로 변경하는 요소는 무엇인가요
+answer: 블록 보조금(block subsidy)
wrong_answers:
- 트랜잭션 수수료
- 블록 크기
- - 난이도 목표
+ - 난이도 타겟
explanation: |
- 반감기는 수수료에는 영향을 주지 않고 블록당 생성되는 최대 보조금을 절반으로 줄입니다.
-reviewed: false
+ 반감기는 트랜잭션 수수료에는 영향을 주지 않으면서 블록당 생성되는 신규 비트코인 보조금의 양을 절반으로 줄입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/035/ko.yml b/courses/min101/quizz/035/ko.yml
index 8e08370b2e6..b4c1ba8ad36 100644
--- a/courses/min101/quizz/035/ko.yml
+++ b/courses/min101/quizz/035/ko.yml
@@ -1,9 +1,9 @@
-question: SegWit 이후, 블록의 위트니스 커밋먼트(witness commitment)는 어디에 기록됩니까?
-answer: 코인베이스의 출력(output)에
+question: 세그윗(SegWit) 이후 블록 위트니스 커밋먼트(witness commitment)는 어디에 기록되나요
+answer: 코인베이스 출력(coinbase output)
wrong_answers:
- - 코인베이스의 scriptSig에
- - 버전(version) 필드에
- - 코인베이스 수수료에
+ - 코인베이스 scriptSig
+ - 버전(version) 필드
+ - 코인베이스 수수료(fees)
explanation: |
- SegWit은 OP_RETURN 출력을 통해 코인베이스에 기록된 커밋먼트를 사용합니다.
-reviewed: false
+ 세그윗은 코인베이스 트랜잭션의 OP_RETURN 출력 항목을 통해 블록 위트니스 커밋먼트를 기록하는 방식을 사용합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/036/ko.yml b/courses/min101/quizz/036/ko.yml
index d47df9cf006..47cd12cc56f 100644
--- a/courses/min101/quizz/036/ko.yml
+++ b/courses/min101/quizz/036/ko.yml
@@ -1,9 +1,9 @@
-question: 코인베이스 출력은 몇 번의 컨펌 후에 사용할 수 있게 됩니까?
-answer: 101 컨펌
+question: 코인베이스 출력(coinbase output)은 몇 번의 컨펌이 지나야 사용할 수 있나요
+answer: 101번의 컨펌
wrong_answers:
- - 6 컨펌
- - 201 컨펌
- - 210 컨펌
+ - 6번의 컨펌
+ - 201번의 컨펌
+ - 210번의 컨펌
explanation: |
- 성숙 기간은 100블록이므로, 이 UTXO들을 사용할 수 있게 하려면 101번의 컨펌이 필요합니다.
-reviewed: false
+ 코인베이스 자산의 성숙 기간은 100개 블록이므로 해당 미사용 트랜잭션 출력(UTXO)을 사용하려면 총 101번의 컨펌이 필요합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/037/ko.yml b/courses/min101/quizz/037/ko.yml
index 3ff6b7fe413..c62a3bf9147 100644
--- a/courses/min101/quizz/037/ko.yml
+++ b/courses/min101/quizz/037/ko.yml
@@ -1,9 +1,9 @@
-question: 32비트 논스(nonce)가 소진되었을 때 검색 공간을 확장하는 메커니즘은 무엇입니까?
+question: 32비트 논스(nonce)를 모두 소진했을 때 탐색 범위를 확장하는 메커니즘은 무엇인가요
answer: 엑스트라 논스(extra-nonce)
wrong_answers:
- - 슈퍼 논스
- - 코인베이스 논스
- - 더블 논스
+ - 슈퍼 논스(super-nonce)
+ - 코인베이스 논스(coinbase-nonce)
+ - 더블 논스(double-nonce)
explanation: |
- 코인베이스의 scriptSig에서 엑스트라 논스를 수정하면 머클 루트가 변경되고, 따라서 헤더도 변경됩니다.
-reviewed: false
+ 코인베이스 트랜잭션의 scriptSig 내에 있는 엑스트라 논스를 수정하면 머클 루트가 변경되고 결과적으로 블록 헤더가 바뀌어 새로운 탐색 범위가 생성됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/038/ko.yml b/courses/min101/quizz/038/ko.yml
index faad8b86fcb..93c286715e0 100644
--- a/courses/min101/quizz/038/ko.yml
+++ b/courses/min101/quizz/038/ko.yml
@@ -1,9 +1,9 @@
-question: BIP-34 이후, 코인베이스 scriptSig의 시작 부분에 반드시 포함되어야 하는 것은 무엇입니까?
-answer: 블록 높이
+question: BIP-34 도입 이후 코인베이스 scriptSig의 시작 부분에 반드시 포함되어야 하는 것은 무엇인가요
+answer: 블록 높이(block height)
wrong_answers:
- 채굴자의 해시레이트
- - 난이도 목표
- - 블록 지문
+ - 난이도 타겟
+ - 블록 풋프린트
explanation: |
- BIP-34는 코인베이스의 scriptSig에 블록 높이를 기록하도록 규정하고 있습니다.
-reviewed: false
+ BIP-34는 트랜잭션의 식별성을 높이기 위해 블록 높이를 코인베이스 scriptSig의 데이터 필드에 포함하도록 규정하고 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/039/ko.yml b/courses/min101/quizz/039/ko.yml
index b14bf1d1b64..eae8eba782c 100644
--- a/courses/min101/quizz/039/ko.yml
+++ b/courses/min101/quizz/039/ko.yml
@@ -1,9 +1,9 @@
-question: 코인베이스 트랜잭션이 다른 트랜잭션과 다른 이유는 무엇입니까?
-answer: 실제 UTXO를 사용하지 않기 때문에
+question: 코인베이스 트랜잭션이 일반적인 트랜잭션과 다른 이유는 무엇인가요
+answer: 실제 UTXO를 소비하지 않기 때문입니다
wrong_answers:
- - TXID가 없기 때문에
- - 출력이 없기 때문에
- - 머클 트리에 없기 때문에
+ - 트랜잭션 아이디(TXID)가 없기 때문입니다
+ - 출력(outputs)이 존재하지 않기 때문입니다
+ - 머클 트리에 포함되지 않기 때문입니다
explanation: |
- 이 트랜잭션의 입력은 가상의 UTXO를 가리키며, 이를 통해 보조금을 생성하고 수수료를 챙길 수 있습니다.
-reviewed: false
+ 코인베이스 트랜잭션의 입력은 실제 자산이 아닌 가짜 UTXO를 가리키며 이를 통해 블록 보조금을 생성하고 수수료를 수집할 수 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/040/ko.yml b/courses/min101/quizz/040/ko.yml
index d0eca29b3ef..b1ad7997b05 100644
--- a/courses/min101/quizz/040/ko.yml
+++ b/courses/min101/quizz/040/ko.yml
@@ -1,9 +1,9 @@
-question: 산업용 채굴의 경쟁력에서 가장 중요한 요소는 무엇입니까?
-answer: 전기 비용
+question: 산업적 규모의 채굴에서 경쟁력을 결정하는 가장 중요한 요소는 무엇인가요
+answer: 전기 요금
wrong_answers:
- - 인건비 총액
+ - 임금 비용의 규모
- 인프라의 인체공학적 품질
- 소프트웨어 라이선스 비용
explanation: |
- 대규모 채굴에서 수익성은 계산 단위당 비용에 달려 있으며, 이는 주로 전기 비용에 의해 결정됩니다.
-reviewed: false
+ 대규모 채굴의 수익성은 연산 단위당 비용에 따라 달라지며 이는 주로 전기 요금에 의해 결정됩니다.
+reviewed: true
diff --git a/courses/min101/quizz/041/ko.yml b/courses/min101/quizz/041/ko.yml
index 24cccab8533..ee894f682a7 100644
--- a/courses/min101/quizz/041/ko.yml
+++ b/courses/min101/quizz/041/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 ASIC은 구체적으로 어떤 알고리즘을 실행하도록 설계되었습니까?
+question: 비트코인 ASIC 채굴기는 구체적으로 어떤 알고리즘을 실행하도록 설계되었나요
answer: SHA256d
wrong_answers:
- SHA512d
- SHA1
- SHA512
explanation: |
- 비트코인 ASIC은 비트코인의 작업 증명(proof-of-work)에 사용되는 이중 SHA256에 특화되어 있습니다.
-reviewed: false
+ 비트코인 ASIC은 비트코인의 작업 증명에 사용되는 더블 SHA256 연산에 특화된 전용 하드웨어입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/042/ko.yml b/courses/min101/quizz/042/ko.yml
index fdb6716beb8..a8fc61cf05e 100644
--- a/courses/min101/quizz/042/ko.yml
+++ b/courses/min101/quizz/042/ko.yml
@@ -1,9 +1,9 @@
-question: ASIC은 무엇의 약자입니까?
-answer: Application-Specific Integrated Circuits
+question: ASIC은 무엇의 약자인가요
+answer: 주문형 집적 회로(Application-Specific Integrated Circuits)
wrong_answers:
- - Advanced Secure Integrated Circuit
- - Automated Silicon Integrated Circuit
- - Application-Shared Integrated Circuit
+ - 고급 보안 집적 회로(Advanced Secure Integrated Circuit)
+ - 자동화 실리콘 집적 회로(Automated Silicon Integrated Circuit)
+ - 응용 공유 집적 회로(Application-Shared Integrated Circuit)
explanation: |
- ASIC은 단일 작업을 위해 설계된 칩입니다. 따라서 Application-Specific Integrated Circuits(주문형 집적 회로)입니다.
-reviewed: false
+ ASIC은 단일 작업을 위해 설계된 칩을 의미하며 따라서 특정 용도에 맞게 제작된 주문형 집적 회로를 뜻합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/043/ko.yml b/courses/min101/quizz/043/ko.yml
index 45f3b5dbf44..23bffd5a454 100644
--- a/courses/min101/quizz/043/ko.yml
+++ b/courses/min101/quizz/043/ko.yml
@@ -1,9 +1,9 @@
-question: 2010년 중반에서 2011년 중반 사이, 채굴 난이도는 몇 배로 증가했습니까?
-answer: 1000
+question: 2010년 중반부터 2011년 중반 사이 비트코인 채굴 난이도는 몇 배나 증가했나요
+answer: 1000배
wrong_answers:
- - 100
- - 500
- - 50
+ - 100배
+ - 500배
+ - 50배
explanation: |
- 이 기간 동안 주로 GPU의 사용으로 인해 1,000배의 증가가 일어났습니다.
-reviewed: false
+ 이 기간 동안 주로 그래픽 처리 장치(GPU)를 이용한 채굴이 도입되면서 난이도가 약 1000배나 폭발적으로 상승했습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/044/ko.yml b/courses/min101/quizz/044/ko.yml
index e247d4eec64..94d0fe020ef 100644
--- a/courses/min101/quizz/044/ko.yml
+++ b/courses/min101/quizz/044/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 초기에는 주로 어떤 유형의 하드웨어로 채굴이 수행되었습니까?
+question: 비트코인 초기에는 주로 어떤 종류의 하드웨어로 채굴이 수행되었나요
answer: CPU
wrong_answers:
- GPU
- ASIC
- FPGA
explanation: |
- 출시 당시 소프트웨어는 개인용 컴퓨터에서 실행되었으며 주로 프로세서(CPU)를 사용했습니다.
-reviewed: false
+ 비트코인 출시 당시 채굴 소프트웨어는 개인용 컴퓨터에서 실행되었으며 주로 중앙 처리 장치(CPU)를 사용하여 연산을 수행했습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/045/ko.yml b/courses/min101/quizz/045/ko.yml
index 0fa5eef0c4c..9aac36cb849 100644
--- a/courses/min101/quizz/045/ko.yml
+++ b/courses/min101/quizz/045/ko.yml
@@ -1,9 +1,9 @@
-question: 1 ZH/s는 무엇과 같습니까?
+question: 1 ZH/s는 얼마와 같나요
answer: 1000 EH/s
wrong_answers:
- 100 EH/s
- 1 EH/s
- 10 EH/s
explanation: |
- 1 ZH/s = 1000 EH/s
-reviewed: false
+ 1 ZH/s는 1000 EH/s와 같으며 이는 비트코인 네트워크의 연산 능력이 엄청난 규모로 성장했음을 보여주는 단위입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/046/ko.yml b/courses/min101/quizz/046/ko.yml
index a7f448d0aa5..6c714b5cdd5 100644
--- a/courses/min101/quizz/046/ko.yml
+++ b/courses/min101/quizz/046/ko.yml
@@ -1,9 +1,9 @@
-question: 마이닝 풀이 제공하는 서비스를 요약하는 문구는 무엇입니까?
+question: 마이닝 풀(mining pool)이 제공하는 서비스를 가장 잘 요약한 문장은 무엇인가요
answer: 예측 가능성을 판매합니다
wrong_answers:
- 채굴 난이도를 판매합니다
- 더 큰 블록을 판매합니다
- 채굴기를 판매합니다
explanation: |
- 공동 작업을 통해 변동성이 큰 수입을 수수료와 공유의 대가로 보다 정기적인 지급으로 전환합니다.
-reviewed: false
+ 마이닝 풀은 채굴자들이 보상을 공유하고 수수료를 지불하는 대신 매우 변동성이 큰 수익을 보다 정기적인 수익으로 전환해 줍니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/047/ko.yml b/courses/min101/quizz/047/ko.yml
index 8472b7bdaeb..0f99beee7fe 100644
--- a/courses/min101/quizz/047/ko.yml
+++ b/courses/min101/quizz/047/ko.yml
@@ -1,9 +1,9 @@
-question: 장기적으로 발견된 블록의 빈도가 해시레이트 점유율에 수렴한다는 것을 설명하는 통계적 원리는 무엇입니까?
-answer: 대수의 법칙
+question: 발견된 블록의 빈도가 장기적으로 해시레이트 점유율에 수렴하는 이유를 설명하는 통계적 원리는 무엇인가요
+answer: 대수의 법칙(Law of large numbers)
wrong_answers:
- 베이즈 정리
- 생일 패러독스
- 최소 작용의 원리
explanation: |
- 결과의 수렴은 대수의 법칙 때문입니다. 각 해시는 독립적인 시행이기 때문입니다.
-reviewed: false
+ 각 해시 연산은 독립적인 시행이므로 시행 횟수가 많아질수록 결과의 수렴이 일어나는 대수의 법칙이 적용됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/048/ko.yml b/courses/min101/quizz/048/ko.yml
index 0e2ed439b89..6c8fcac0a00 100644
--- a/courses/min101/quizz/048/ko.yml
+++ b/courses/min101/quizz/048/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 최초의 마이닝 풀은 무엇입니까?
-answer: Braiins Pool
+question: 비트코인 역사상 최초의 마이닝 풀은 무엇인가요
+answer: 브레인즈 풀(Braiins Pool)
wrong_answers:
- - Foundry USA
- - AntPool
- - F2Pool
+ - 파운드리 USA(Foundry USA)
+ - 앤트풀(AntPool)
+ - F2풀(F2Pool)
explanation: |
- 이전에 Slush Pool 및 Bitcoin CZ로 알려졌던 Braiins Pool은 2010년에 생성된 비트코인 최초의 마이닝 풀입니다.
-reviewed: false
+ 과거 슬러시 풀(Slush Pool) 또는 비트코인 CZ로 알려졌던 브레인즈 풀은 2010년에 설립된 비트코인 최초의 마이닝 풀입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/049/ko.yml b/courses/min101/quizz/049/ko.yml
index add4fac16d1..0df911f1620 100644
--- a/courses/min101/quizz/049/ko.yml
+++ b/courses/min101/quizz/049/ko.yml
@@ -1,9 +1,9 @@
-question: 마이닝 풀이 주로 해결하고자 하는 실질적인 문제는 무엇입니까?
-answer: 수입의 변동성
+question: 마이닝 풀이 기본적으로 해결하고자 하는 실질적인 문제는 무엇인가요
+answer: 수익 변동성(Income variance)
wrong_answers:
- 네트워크 난이도
- 블록 크기
- ASIC 가격
explanation: |
- 해시레이트를 공유함으로써 풀은 매우 불규칙한 수입을 보다 정기적인 지급으로 전환합니다. 이는 채굴자에게 있어 수입의 변동성을 줄여줍니다.
-reviewed: false
+ 해시레이트를 공유함으로써 마이닝 풀은 매우 불규칙한 수익을 보다 정기적인 지급으로 전환하며 이를 통해 채굴자의 수익 변동성을 줄여줍니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/050/ko.yml b/courses/min101/quizz/050/ko.yml
index f7057eb503d..6c22ca50a60 100644
--- a/courses/min101/quizz/050/ko.yml
+++ b/courses/min101/quizz/050/ko.yml
@@ -1,9 +1,9 @@
-question: 블록의 트랜잭션은 언제 확정됩니까?
+question: 블록 내의 트랜잭션은 언제 컨펌(확정)되나요
answer: 블록이 블록체인에 추가될 때
wrong_answers:
- 채굴자가 트랜잭션에 서명할 때
- 노드가 트랜잭션을 전파할 때
- - 채굴자가 증명을 찾기 시작할 때
+ - 채굴자가 증명 탐색을 시작할 때
explanation: |
- 비트코인에서 결제 확정은 해당 결제를 포함하는 블록이 블록체인에 추가된 결과입니다.
-reviewed: false
+ 비트코인에서 지불의 확인은 해당 트랜잭션을 포함한 블록이 블록체인에 성공적으로 연결된 결과로 발생합니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/051/ko.yml b/courses/min101/quizz/051/ko.yml
index 16914085a2d..5c9b8853e6f 100644
--- a/courses/min101/quizz/051/ko.yml
+++ b/courses/min101/quizz/051/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 채굴에 필요한 자원은 무엇입니까?
+question: 비트코인 채굴은 어떤 자원을 사용하나요
answer: 전기
wrong_answers:
- 물
- 보석
- 금
explanation: |
- 채굴은 컴퓨터를 통해 전기를 소비하는 검증 작업입니다.
-reviewed: false
+ 채굴은 컴퓨터를 통해 전기를 소비하며 네트워크의 거래를 검증하고 보안을 유지하는 작업입니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/052/ko.yml b/courses/min101/quizz/052/ko.yml
index f9a4bafd090..c13a791996b 100644
--- a/courses/min101/quizz/052/ko.yml
+++ b/courses/min101/quizz/052/ko.yml
@@ -1,9 +1,9 @@
-question: 간단히 말해서, 비트코인의 블록이란 무엇입니까?
-answer: 트랜잭션 패킷
+question: 비트코인 블록이란 무엇인지 간단하게 설명해 주세요
+answer: 트랜잭션들의 묶음(패킷)
wrong_answers:
- - 결제
+ - 하나의 지불 내역
- 중앙 서버
- - 개인 키
+ - 개인키
explanation: |
- 단순화하면, 블록은 단순히 그룹화된 트랜잭션들의 집합입니다.
-reviewed: false
+ 단순하게 정의하면 블록은 여러 개의 트랜잭션을 하나로 묶어놓은 세트라고 할 수 있습니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/053/ko.yml b/courses/min101/quizz/053/ko.yml
index c6bb2f2543a..02753568da4 100644
--- a/courses/min101/quizz/053/ko.yml
+++ b/courses/min101/quizz/053/ko.yml
@@ -1,9 +1,9 @@
-question: 블록체인에 추가되기 전, 트랜잭션은 어디에 그룹화됩니까?
-answer: 블록 내
+question: 블록체인에 추가되기 전 트랜잭션들은 무엇으로 그룹화되나요
+answer: 블록(Block)
wrong_answers:
- - UTXO 내
- - ASIC 내
- - scriptSig 내
+ - UTXO
+ - ASIC
+ - scriptSig
explanation: |
- 트랜잭션은 블록체인에 즉시 기록되지 않습니다. 먼저 블록에 통합됩니다.
-reviewed: false
+ 트랜잭션은 즉시 블록체인에 기록되지 않으며 먼저 하나의 블록에 포함된 후 네트워크의 검증을 거쳐 추가됩니다.
+reviewed: true
\ No newline at end of file
diff --git a/courses/min101/quizz/054/ko.yml b/courses/min101/quizz/054/ko.yml
index 5adcc4b4cb9..a2cfb2cae87 100644
--- a/courses/min101/quizz/054/ko.yml
+++ b/courses/min101/quizz/054/ko.yml
@@ -1,9 +1,9 @@
-question: 비트코인 결제 내역이 기록되는 공유 공개 장부를 무엇이라고 합니까?
-answer: 블록체인
+question: 비트코인 결제 내역이 기록되는 공유된 공개 장부를 무엇이라고 부르나요
+answer: 블록체인(The blockchain)
wrong_answers:
- - 멤풀(mempool)
- - 지갑(wallet)
- - 해시레이트(hashrate)
+ - 멤풀(The mempool)
+ - 지갑(The wallet)
+ - 해시레이트(The hashrate)
explanation: |
- 모든 트랜잭션을 포함하는 공유 공개 장부가 바로 블록체인입니다.
-reviewed: false
+ 모든 트랜잭션 내역을 포함하고 있는 공유된 형태의 공개 원장을 블록체인이라고 합니다.
+reviewed: true
\ No newline at end of file