용어집 / 주소와 키
비압축 공개 키
- 비압축 공개 키란 무엇입니까?
- 비압축 공개 키는 타원 곡선 상의 한 점을 이루는 두 좌표를 0x04 접두사 뒤에 그대로 기록하며 65바이트를 차지하고, 오늘날에는 주로 2012년 이전에 생성된 키에서 남아 있습니다.
비트코인의 초기 소프트웨어는 x와 y 값을 모두 기록했으며, 그래서 2009년과 2010년의 코인은 65바이트 키에서 파생된 주소 뒤에 놓여 있습니다. 이후 SegWit이 이 형식의 문을 닫았는데, BIP-143은 버전 0 위트니스 프로그램에서 비압축 키를 금지하며 bc1q 주소는 비압축 키를 사용할 수 없습니다. 오래된 종이 지갑을 복구하는 중이라면, 자금이 나타나는지를 결정하는 것이 바로 이 세부 사항입니다.
작동 방식
비압축 공개 키는 이름만큼이나 문자 그대로의 구조를 가집니다. 0x04의 접두사 바이트 1개가 형식을 알리고, 그다음 32바이트가 x 좌표를, 다시 32바이트가 y 좌표를 주어 합계 65바이트가 됩니다. 읽는 데 계산이 필요하지 않습니다. 점의 두 부분이 이미 모두 있기 때문이며, 원래 구현이 당시의 하드웨어에서 이 형식을 택한 이유도 바로 이것입니다.
유효성 규칙은 기반 계층에서 이 형식을 따로 취급한 적이 없습니다. 레거시 pay-to-public-key-hash나 pay-to-script-hash 지출을 검증하는 노드는 비압축 키를 문제없이 받아들이며, 2010년에 비압축 키에 잠긴 코인은 기한 없이 계속 지출할 수 있습니다. 달라진 것은 그 위에 쌓인 모든 것입니다. BIP-32 지갑은 압축 키만 파생하므로 시드 문구로는 비압축 키를 만들 수 없고, SegWit은 위트니스 버전 0 지출 안에서 이들을 무효로 만들었습니다.
추가 32바이트의 비용은 지출 시점에 치릅니다. 압축 키를 담은 레거시 입력은 약 148 v바이트이고, 같은 입력에 비압축 키를 담으면 약 180 v바이트로, 동일한 지출에 대해 약 22% 더 큽니다. 수수료가 급등할 때 이런 입력 열두 개를 통합하는 상황에서 그 차이는 더 이상 사소한 것이 아닙니다.
볼 수 있는 곳
여전히 사람에게 비압축 키를 건네는 산출물은 세 가지이며, 셋 모두 같은 시기에서 비롯됩니다.
2011년부터 2013년까지 생성기 사이트가 인쇄한 종이 지갑은 대개 1로 시작하는 주소와 5로 시작하는 Wallet Import Format 문자열을 만들었으며, 이는 이 형식의 비압축 쪽을 나타내는 표시입니다. 2011년과 2013년 사이에 주조된 Casascius 시리즈의 실물 코인은 변조 흔적이 드러나는 홀로그램 아래에 같은 종류의 문자열을 숨겼습니다. 그리고 아주 초기 지갑 소프트웨어에서 내보낸 개인 키는 이 전환 이전의 것입니다.
오래된 키 복구하기
함정은 인코딩이 아니라, 하나의 개인 키가 서로 다른 두 주소를 만든다는 점입니다. 65바이트 키를 해시하면 하나의 레거시 주소가 나오고, 같은 키의 33바이트 압축 버전을 해시하면 전혀 다른 주소가 나옵니다. 압축을 전제하는 최신 소프트웨어에 키를 가져오면 잔액이 0으로 보일 수 있지만, 코인은 다른 주소에 그대로 남아 있습니다.
오래된 자료를 잘 다루는 지갑, 그중에서도 Electrum은 키를 가져오는 대신 스윕할 때 두 가지 파생 결과를 모두 확인합니다. 스윕이 더 안전한 작업이기도 합니다. 코인을 현재 시드 문구가 관리하는 주소로 옮기므로, 서랍에 오래 놓여 있었거나 휴대전화로 촬영되었거나 이전 소유자가 보았던 출력물은 더 이상 아무것도 지출할 수 없게 됩니다. 복구가 실패했다고 판단하기 전에 블록 탐색기에서 두 주소 형식을 모두 확인하십시오.