Jimmy Song은 개발자이자 강사이며 Programming Bitcoin의 저자입니다. Python 예제로 Bitcoin 거래, 키, 디지털 서명의 작동 원리를 설명합니다. 완성된 앱에만 의존하는 대신 작은 도구를 하나씩 만들고 결과를 살펴보는 실용적인 접근입니다. 기술 서적 외에 돈과 사회에 관한 의견도 발표하지만, 이런 주장은 프로그래밍 연습과는 다른 방식의 근거가 필요합니다.
Song의 약력에는 개발 업무와 Programming Blockchain 강좌가 소개되어 있고, O’Reilly도 그를 Programming Bitcoin의 저자로 명시합니다. 공통점은 직접 해 보는 학습입니다. 원리의 이름을 읽는 것만으로 이해가 끝나지 않습니다. 이를 코드로 만들려면 어떤 데이터를 받아 어떤 결과를 내야 하는지 알아야 합니다. 다만 개발자라는 명칭 자체가 Bitcoin Core의 관리자를 뜻하거나, 다른 사용자 대신 네트워크 규칙을 결정할 권한을 주는 것은 아닙니다. [1] [2]
Programming Bitcoin은 2019년 O’Reilly에서 출간되었습니다. 책은 유한체, 즉 한정된 원소 집합에서 정해진 규칙에 따라 계산하는 방법과, 다루는 서명의 수학적 토대인 타원곡선에서 출발합니다. 이어 키, 서명, 거래, 컴퓨터 사이의 메시지를 다룹니다. 독자는 다른 프로그램에서도 쓸 수 있는 함수 묶음인 Python 라이브러리를 만듭니다. 서명이 작동한다는 말을 믿는 데 그치지 않고 계산 과정을 따라갈 수 있습니다. 지갑의 버튼 조작을 넘어 내부를 이해하는 길입니다. [2]
프로그램이 거래를 받았다고 생각해 봅시다. 먼저 각 부분을 구분해야 하며, 이렇게 데이터를 해석하는 작업을 파싱이라고 합니다. 일반적인 입력은 이전 거래의 출력, 즉 지출 조건이 붙은 특정 금액을 참조합니다. 다음으로 서명 등 그 조건이 충족되었는지 확인합니다. 하지만 올바른 서명만으로는 해당 출력이 아직 사용되지 않았는지 알 수 없습니다. 체인의 상태와 대조해야 합니다. Song의 연습은 데이터를 읽을 수 있는지, 지출 권한이 있는지, 거래 전체가 유효한지를 구분하도록 돕습니다. [3]
수학적으로 올바른 결과는 중요하지만 안전한 서명 프로그램에는 더 많은 조건이 필요합니다. libsecp256k1은 비밀 키를 다룰 때 일정한 실행 시간과 메모리 접근 방식도 고려합니다. 관찰자가 계산의 동작에서 비밀 정보를 알아내지 못하도록 하기 위해서입니다. 이는 연습 문제에서 정답을 구하는 것과 다른 문제입니다. 따라서 원리를 이해하려고 만든 코드는, 같은 시험용 서명을 올바르게 검증하더라도 실제 자금을 위해 검토된 암호 라이브러리를 자동으로 대신할 수 없습니다. [4]
programmingbitcoin 저장소에는 각 장의 자료와 Jupyter Notebook 사용 안내가 있습니다. 이 환경은 글, 실행 가능한 코드, 결과를 한곳에 모읍니다. 연습을 재현할 때는 코드 버전과 의존성, 즉 프로그램이 사용하는 다른 패키지도 중요합니다. 오래된 설치 안내가 곧 현재 권장 버전을 뜻하지는 않습니다. 실행 환경을 기록하면 결과 차이를 설명하기 쉽습니다. 다른 사람의 컴퓨터에서 성공했다는 사실은 자신의 실행을 확인하는 일을 대신하지 않습니다. [5]
2019년 책은 추가 문서를 이해할 기초를 제공합니다. 그렇다고 이후의 모든 확장 기능까지 설명한다고 가정할 수는 없습니다. 예를 들어 현재 libsecp256k1은 Bitcoin의 또 다른 서명 방식을 명시한 BIP340에 따른 Schnorr signatures도 제공합니다. 특정 판본의 설명 범위와 현재 라이브러리의 기능은 구분해야 합니다. 함수를 호출하는 방법인 인터페이스를 이용할 때는 해당 버전의 문서를 확인하는 것이 중요합니다. [2] [4]
Song은 2023년 책 Fiat Ruins Everything에서 fiat money, 즉 흔히 쓰는 국가 통화가 제도에 큰 영향을 주며 Bitcoin이 해결책을 제시한다고 주장합니다. 여기서 읽는 것은 사회에 대한 저자의 해석이지 서명을 검증하는 절차가 아닙니다. 이런 주장에는 별도의 논거와 증거가 필요합니다. 암호학 연습의 정답이 사회적 주장을 입증하지 않으며, 경제관에 대한 반대만으로 기술 설명이 반박되지도 않습니다. 각 부분을 그에 맞는 근거로 평가할 수 있습니다. [6]
Song의 웹사이트는 디지털 서명 도구인 PGP와 파일의 지문을 만드는 함수인 SHA-256으로, 친필 사인이 있는 물건의 사진을 검증하는 방법을 설명합니다. 지문이 일치하면 같은 파일인지 확인하는 데 도움이 되고, 유효한 서명은 서명된 데이터를 키와 연결합니다. 그 키가 누구의 것인지는 별도로 확인해야 합니다. 이번 검토 시점에는 페이지의 이전 키와 새 키 표기가 일관되지 않아, 짧은 식별자를 검증된 신원으로 인용하지 않습니다. 데이터를 확인하는 일과 출처를 신뢰하는 일은 서로 다른 단계입니다. [7]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Alex Gladstein, Bitcoin Script, Private Key. 다음 항목에서도 이 글을 참조합니다 해커스 콩그레스 파라렐니 폴리스, Cathie Wood.