용어집 / 주소와 키
중첩 SegWit
별칭은 Nested SegWit, Wrapped SegWit, P2SH-P2WPKH, 3 주소입니다.
- 중첩 SegWit이란 무엇입니까?
- 중첩 SegWit은 네이티브 SegWit 키 해시를 P2SH 주소 안에 감싸는 방식으로, bc1 문자열을 읽지 못하던 소프트웨어와의 호환성을 얻는 대신 입력당 약 23 vbyte를 더 씁니다.
BIP-49에 명시되어 있습니다.
2017년에는 거의 모든 가상자산 거래소가 bech32 주소를 해석하지 못했기 때문에 BIP-141은 위트니스 프로그램을 일반 pay to script hash 출력 안에 둘 수 있게 허용했습니다. 그 결과는 송신자에게 다른 3 주소와 똑같이 보이고, 사용 시 약 91 vbyte를 차지하며, 레거시 입력의 148 vbyte, 일반 bc1q 입력의 68 vbyte와 대비됩니다. 그것은 다리였고, 그 다리는 여러 해째 열려 있습니다.
작동 방식
중첩 SegWit 출력은 특별할 것 없는 P2SH 출력입니다. OP_HASH160, 20바이트 해시, OP_EQUAL입니다. 해시 뒤에 있는 것이 특이합니다. 리딤 스크립트는 사실 스크립트가 아니라 22바이트 위트니스 프로그램 자체이며, 버전 바이트 0x00 뒤에 압축된 공개 키의 20바이트 HASH160을 밀어 넣은 형태입니다.
따라서 사용은 양쪽 세계를 모두 활용합니다. scriptSig에는 P2SH 검사를 충족하는 그 22바이트 프로그램 하나만 들어갑니다. 서명과 공개 키는 위트니스로 들어가 할인을 받습니다. 푸시 opcode를 더하면 scriptSig는 위트니스가 아닌 23바이트를 차지해 92 단위의 무게가 되고, 92를 4로 나눈 값이 네이티브 SegWit 대비 23 vbyte의 벌점 전부입니다.
지갑은 이 주소를 별도 브랜치에 둡니다. BIP-49는 파생 경로 m/49'/0'/0'를 배정했고, SLIP-132는 그 브랜치에 ypub 확장 키 접두사를 부여했습니다. 그래서 백업을 복원하면 bc1q 주소가 아니라 3 주소가 나옵니다. 복원 중에 접두사를 잘못 지정하면 시드가 맞는데도 빈 지갑이 표시됩니다.
확인할 수 있는 곳
"SegWit"과 "Native SegWit"을 별도 선택지로 제시하는 입금 또는 출금 화면은 그 순서대로 중첩과 네이티브를 제시하는 것입니다. Ledger와 Trezor의 계정 설정 화면도 마찬가지입니다. SegWit을 일찍 도입한 거래소는 중첩 형식을 표준으로 삼았고 많은 곳이 한 번도 바꾸지 않았으므로, 수탁 콜드 스토리지의 상당 부분이 여전히 3 주소 뒤에 있습니다.
네이티브 SegWit으로 옮기는 것은 설정 변경이 아니라 온체인 트랜잭션입니다. 두 형식이 같은 시드의 서로 다른 브랜치에서 나오기 때문입니다. 수수료가 낮을 때 하시고, 먼저 소액 테스트 전송을 한 뒤 지갑이 m/84'/0'/0' 계정을 표시하는지 확인하십시오. 두 형식 사이에 보안 차이는 없으므로 급할 것은 없습니다. 수수료와 호환성을 맞바꾸는 것일 뿐이고, 호환성은 더 이상 드물지 않습니다.
중첩 SegWit vs P2SH 주소
중첩 SegWit은 P2SH 주소의 한 종류이며, 온체인에서는 사용이 일어나기 전까지 둘을 구별할 수 없습니다. 3으로 시작하는 문자열은 22바이트 위트니스 프로그램, 2-of-3 멀티시그 리딤 스크립트, 또는 시간 잠금 복구 조항에 커밋되어 있을 수 있고, 미사용 출력은 아무것도 드러내지 않습니다. 그 불투명성은 한때 프라이버시 이점으로 여겨졌습니다. 실제로는 이제 블록 탐색기가 무엇을 보유하고 있는지 알려 줄 수 없고, 송신자가 그 주소를 비우는 데 bc1q 주소보다 더 많이 들 것이라고 경고할 수도 없다는 뜻입니다.