675 / 736BK59

Bitcoin: A Work in Progress

Sjors Provoost: 평범한 비트코인 결제 뒤에 있는 기술

주소를 복사하는 데는 잠깐이면 됩니다. 하지만 그 간단한 동작 뒤에는 규칙과 오류 탐지, 개발자들의 작업이 있습니다. Provoost의 책은 Bitcoin에 지속적인 기술적 관리가 필요한 이유를 보여 줍니다.

Bitcoin: A Work in Progress는 개발자 Sjors Provoost가 Bitcoin의 기술적 발전을 설명한 책입니다. 지갑이 주소를 어떻게 읽는지, 노드가 네트워크의 새 소식을 어떻게 받는지, 작은 변경에도 왜 주의가 필요한지처럼 사용자가 잘 보지 못하는 문제를 다룹니다.

프로그램 코드를 몰라도 Bitcoin을 사용할 수 있습니다. 그렇다고 더 개선할 것이 없다는 뜻은 아닙니다. Bitcoin Core에 기여하는 Sjors Provoost는 네트워크의 발전을 가능하게 하는 작업을 소개합니다. 첫 종이책은 2022년에 Purple Dunes에서 출간됐습니다. 책은 당시의 기술적 질문을 다루며, 나중에 원고 소스 파일이 수정됐다고 최초 출간 연도가 달라지지는 않습니다. [1] [2]

지인이 보낸 주소를 지갑에 붙여 넣는다고 생각해 보세요. 사용자에게는 결제의 시작입니다. 개발자에게는 오타를 어떻게 찾아내고 결제 목적지를 지갑에 어떻게 명확하게 전달할지의 문제이기도 합니다. 이 사례는 프로그래밍을 몰라도 책에 접근할 수 있도록 우리가 만든 예입니다. 책의 내용은 주소에서 노드 간 통신, 규칙 변경으로 이어집니다. 어려운 장은 이런 기초를 이해한 뒤 읽으면 더 잘 연결됩니다. [2]

주소는 지갑이 특정 금액을 나중에 사용하기 위한 조건을 구성할 때 쓰는 표현입니다. 조건은 결제에서 새로 만들어지는 부분인 트랜잭션 출력에 기록됩니다. 나중에 이를 사용하려면 보통 유효한 디지털 서명으로 조건을 충족했음을 증명해야 합니다. 따라서 네트워크가 사용자 이름으로 된 은행 계좌를 관리할 필요는 없습니다. Provoost의 장은 사람들이 주고받는 주소와 컴퓨터가 검증하는 규칙을 구별하도록 돕습니다. [3]

주소에는 복사나 입력 과정의 오류를 지갑이 찾도록 돕는 체크섬이 포함됩니다. 그러나 주소가 누구 것인지는 확인하지 않습니다. 앞선 예에서 다른 사람의 올바르게 표기된 주소를 실수로 붙여 넣으면 검사를 통과할 수 있습니다. 따라서 의도한 수취인도 확인해야 합니다. 지갑이 오류를 알리면 어떤 문자를 고칠지 추측하기보다 정확한 주소를 다시 받는 편이 안전합니다. [3] [4]

이제 조금 더 기술적인 내용입니다. Bech32와 Bech32m은 주소 인코딩 형식입니다. BIP 350은 witness 버전 0의 네이티브 주소에는 Bech32를, 버전 1부터 16까지에는 Bech32m을 사용하도록 정합니다. witness 버전은 이 유형의 출력을 검증하는 규칙을 구별하는 숫자입니다. 새로운 형식은 문자 삽입과 관련된 체크섬의 약점을 해결합니다. 모든 기존 주소가 무효가 됐다거나 사용자가 직접 변환해야 한다는 뜻은 아닙니다. [4]

노드는 Bitcoin 네트워크에 연결된 프로그램이며, Full Node는 트랜잭션과 블록의 규칙을 직접 확인합니다. 하지만 새 데이터는 다른 곳에서 받아야 합니다. Eclipse Attack에서는 공격자가 노드의 모든 연결을 장악해 네트워크 상황 일부를 숨길 수 있습니다. 노드는 여전히 유효하지 않은 블록을 거부하지만 정보는 불완전합니다. 받은 데이터를 검증하는 것과 필요한 데이터에 모두 접근하는 것은 다르다는 점을 책은 보여 줍니다. [5]

공격자가 고립된 노드에 아무 블록이나 강제로 받아들이게 할 수는 없습니다. 자신의 결제가 유효하게 확인됐음을 보이려면 요구되는 계산 작업의 증거인 Proof of Work를 충족하는 유효한 블록도 필요합니다. 연결이 복구되면 노드는 누적 작업량이 더 많은 다른 유효한 체인 분기를 발견할 수 있습니다. 그 분기로 전환했을 때 원래 결제가 없다면 이전 확인은 더 이상 성립하지 않습니다. 따라서 보안에는 규칙 검증과 공격에 견디는 네트워크 연결이 함께 필요합니다. [5]

주소처럼 직접 경험해 본 질문에서 시작하세요. 그런 다음 해결책이 무엇을 가능하게 하고 어디에 한계가 있는지 따라가면 됩니다. 이 개요는 판권 정보, 공식 목차, 주소와 Eclipse Attack에 관한 공개 내용 중 일부, BIP 350을 바탕으로 합니다. 책 전체나 그 바탕이 된 팟캐스트 전체에 대한 평가는 아닙니다. 당시 네트워크 수치와 개발 상태는 현재 소프트웨어와 구분해 읽어야 합니다. [1] [2] [3] [4] [5]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Bitcoin Core, Taproot, 합의 규칙, 지갑.

01프로그래밍을 몰라도 책에서 배울 수 있나요?

주소나 노드 격리에 관한 문제를 이해하는 데 프로그래밍은 필요하지 않습니다. 다만 책에는 고급 기술을 다루는 장도 있습니다. 익숙한 상황에서 시작해 세부 사항을 차근차근 더하세요. 이 개요는 일부 주제만 설명합니다.

02올바른 주소와 나만의 Full Node가 있으면 안전한 결제가 보장되나요?

각각 해결하는 문제가 다릅니다. 체크섬은 수취인을 확인하지 않으며, 직접 노드를 운영해도 네트워크 데이터를 받아야 한다는 점은 그대로입니다. 주소 확인, 규칙 준수, 체인에서의 확인은 서로 관련되지만 대신할 수는 없습니다.

DOC · 001Sjors Provoost — paperback copyright1차 출처 DOC · 002Bitcoin: A Work in Progress — official contents1차 출처 DOC · 003Sjors Provoost — What Is a Bitcoin Address?1차 출처 DOC · 004BIP 350 — Bech32m1차 출처 DOC · 005Sjors Provoost — Eclipse Attacks1차 출처
개정일: 1차 출처 우선 · 투자 조언이 아닙니다