"주소 변경"은 이 출력의 스크립트 주소 표기이지만 기술적으로는 계정 잔액이 아닌 scriptPubKey 및 새로운 UTXO입니다. 입력 I, 수신자 R에 대한 출력 및 수수료 F의 합으로 C = I − R − F가 성립합니다. 정확한 인출이나 비경제적인 잔액의 경우 지갑에서 잔돈이 전혀 생성되지 않을 수 있습니다.
비트코인은 모든 UTXO를 소비합니다. 하나의 입력에서 일부만 뺄 수 없습니다. 지갑이 100,000 sats 지불과 2,000 sats의 수수료에 대해 120,000 sats의 입력을 선택하면 나머지 18,000 sats를 다음 출력에 넣거나 수수료로 유지해야 합니다. 수신자 출력과 변경 사항은 직렬화에서 동일한 위치를 가지며 순서는 합의 의미가 없습니다. 일단 확인되면 변경 사항은 자체 아웃포인트, 확인 및 향후 지출 가격을 갖춘 새로운 UTXO입니다. [비트코인 개발자 가이드 - 거래]
코인 선택은 입력, 수수료 및 가능한 변경 사항을 함께 선택합니다. 정확한 조합으로는 출력이 생성되지 않습니다. 그렇지 않으면 지갑은 잔액을 생성하고 나중에 지출하는 비용과 비교합니다. Funding RPC Bitcoin Core는 최대 하나의 변경 출력을 채우고 해당 위치를 반환할 수 있지만 모두 보내기에는 아무 것도 없습니다. 코인 제어는 사용된 입력을 변경하므로 변경되지만 수동으로 선택한 각 입력은 전체적으로 소비됩니다. 최종 입력사항, 수취인 금액, 수수료 및 변경사항을 확인하세요. [비트코인 코어 - 코인 선택 구현] [비트코인 코어 RPC - 자금 거래] [비트코인 옵테크 - 코인 선택]
HD 지갑은 일반적으로 외부 지점에서 승인 스크립트를 파생시키고 내부 지점에서 변경합니다. BIP44는 변경=0을 외부로 표시하고 변경=1을 내부로 표시합니다. 예를 들어 기본 SegWit 계정의 경우 m/84'/0'/0'/0/i 및 m/84'/0'/0'/1/i입니다. 이는 합의가 아닌 적용 규칙입니다. 설명자 지갑에는 다른 정책이 있을 수 있습니다. 새로운 내부 주소는 주소 재사용을 제한하며, 원래 주소로의 복귀는 유효하지만 링크 기록은 유효합니다. [BIP 32 - 계층적 결정적 지갑] [BIP 44 - 다중 계정 계층]
출력 설명자는 스크립트 유형, 키, 원본 및 소유권을 지정하는 파생 와일드카드를 결합합니다. wpkh([fingerprint/84h/0h/0h]xpub…/0/*) 및 …/1/* 쌍은 변경 사항을 수신합니다. BIP389는 다중 경로 쓰기를 허용합니다. 내부 플래그는 변경할 설명자를 선택하지만 스크립트 자체는 변경하지 않습니다. 계정 정보, 스크립트 유형 및 파생 정책이 없는 시드를 사용하면 키가 존재하더라도 새로 고침 후 유효한 변경 사항이 보이지 않을 수 있습니다. [BIP 380 - 출력 스크립트 설명자] [BIP 389 - 다중 경로 설명자 키 표현] [비트코인 코어 - 출력 설명자]
블록에는 지불인, 수취인 또는 변경 레이블이 아닌 값과 scriptPubKeys가 포함됩니다. 지갑은 파생 기록으로부터 자체적인 변화를 인식하며, 탐험가는 단지 추측할 뿐입니다. 출력 순서 또는 "두 번째 출력" 규칙은 신뢰할 수 없습니다. 거래에는 변경 사항이 없을 수 있으며, 하나, 여러 자체 제어 출력 또는 여러 참가자의 출력이 있을 수 있습니다. 따라서 변경 사항은 프로토콜에 의해 작성된 속성이 아니라 지갑 관련 분류입니다. [비트코인 개발자 가이드 - 거래]
일반적인 경험적 방법은 입력과 동일한 스크립트 유형의 출력, 반올림된 양, 새로운 주소 또는 입력의 산술에 해당하는 값을 변경으로 지정합니다. 그들은 종종 두 가지 출력으로 일반 지불을 위해 작동하지만 각각에는 반대 사례가 있습니다. BIP78 Payjoin은 공통 입력과 스크립트 유형 및 반올림 금액 휴리스틱을 의도적으로 모두 중단합니다. CoinJoin, 일괄 처리 및 자체 전송은 더욱 모호함을 더합니다. 결과는 프로토콜 증명 상태가 아닌 어느 정도의 확실성과 지원을 갖기 위한 것입니다. [BIP 78 - Payjoin] [Meiklejohn et al. — 한 줌의 비트코인]
더스트는 출력 유형, 향후 지출 예상 규모 및 조정 가능한 더스트 릴레이 수수료로 계산된 노드의 릴레이 정책입니다. 그것은 보편적인 사토시 카운트나 합의 금지가 아닙니다. 지갑은 생성 시 거스름돈을 거부하고 나중에 해당 가치보다 더 많은 비용이 지출될 수 있습니다. 경제적 한계는 현재 및 장기 수수료와 스크립트 크기에 따라 다릅니다. 거스름돈을 억제하면 오늘의 수수료가 인상되며, 거스름돈이 너무 적으면 정체될 수 있습니다. [비트코인 코어 - 거래 중계 정책]
PSBT에서는 출력 BIP32 파생을 통해 하드웨어 또는 오프라인 서명자가 제안된 출력을 파생하고 동일한 지갑 정책으로의 반환을 확인할 수 있습니다. BIP174는 단일 키와 다중 서명 모두에 대한 감지를 설명합니다. 다중 서명의 경우 단일 로컬 키를 일치시키는 것만으로는 충분하지 않습니다. 악의적인 코디네이터는 변경 사항을 자체 출력으로 대체하거나 엄청난 비용을 들여 나머지를 숨길 수 있습니다. 서명자는 신뢰할 수 있는 디스플레이에서 수신자, 총 수수료 및 선언된 각 변경 사항을 확인해야 합니다. [BIP 174 - 부분적으로 서명된 비트코인 거래 형식]
수수료로 대체하면 확인되지 않은 거래의 경제성이 변경됩니다. 비트코인 코어의 범프피(bumpfee)는 변화를 줄이고 입력을 추가하거나 변화를 만들어 더 높은 수수료를 지불할 수 있습니다. 정책이나 경제 메즈 변화 이하로 떨어지면 사라집니다. 확인되지 않은 변경 사항을 지출하면 상위 교체에 의존하는 하위 항목이 생성되고 CPFP는 지갑 제어 출력을 사용하여 패키지 요금을 높입니다. 교체가 완료되기 전에 확인되지 않은 txid/outpoint 최종을 고려하지 마십시오. [비트코인 코어 RPC - 범프 수수료]
전체 복구에는 시드 또는 서명 키는 물론 수신/내부 설명자, 키 출처, 계정, 네트워크, 스크립트 정책, 파생 범위 및 충분히 오래된 스캔 시작이 필요합니다. 누락된 /1/*는 변경 사항을 찾을 수 없기 때문에 일반적으로 잔액을 자릅니다. 다중 서명의 경우 두 분기 모두에서 모든 공동 서명자 xpubs, 임계값 및 순서를 유지합니다. 알려진 수신/변경 스크립트를 일치시키고, UTXO를 재구성하고, PSBT를 생성하고, 각 서명자의 변경 사항을 확인하여 복구를 테스트합니다. [BIP 32 - 계층적 결정적 지갑] [BIP 380 - 출력 스크립트 설명자] [BIP 389 - 다중 경로 설명자 키 표현식]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 비트코인 주소, UTXO, Coin Control, 지갑, Coin Selection, HD Wallet. 다음 항목에서도 이 글을 참조합니다 비트코인 주소, Coin Control, Bitcoin 프라이버시, 가명성.