>웹3.0 >Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?

Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?

WBOY
WBOY원래의
2024-06-04 22:16:101087검색

저자와 같은 초보 친구들도 많을 텐데요. 처음 WEB3 지갑을 사용했을 때 신나게 비트코인 ​​지갑을 열어서 주소를 복사하려고 준비했는데 갑자기 자신이 만든 지갑에 실제로 여러 개의 주소가 있다는 것을 알게 되었습니다. 마치 낯선 교차로를 향해 어리둥절한 표정을 짓고 걸어가는 것과 같습니다.

주소는 왜 다른가요? 다음 중 어떤 주소를 사용해야 합니까?

<img src="https://img.php.cn/upload/article/000/000/000/171751057878929.png" alt="Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?">OKX 钱包的多个 Bitcoin 地址

이 주소는 무엇인가요?

비트코인 커뮤니티는 기술이 끊임없이 발전하고, 기술의 발전이 새로운 콘텐츠를 생산하는 커뮤니티입니다. 새로운 기술을 적용한 결과 다양한 주소 형식이 고려될 수 있습니다. 다음으로 다양한 주소 형식 간의 차이점을 살펴보세요.

레거시 주소(P2PKH)

이 형식은 비트코인이 2009년 처음 출시될 때 채택되었기 때문에 레거시 형식이라고 하며, 당시의 비트코인 ​​주소가 공개키/개인키 쌍으로 생성되었기 때문에라고도 합니다. 결제 공개 키 해시(P2PKH) 주소.

현재 레거시 유형 주소는 거래에서 더 많은 공간을 차지하여 거래 수수료가 높아질 것으로 보입니다. 현재 사람들은 새 주소와 호환되지 않는 일부 기존 지갑을 사용할 때만 이 유형의 주소를 사용합니다.

레거시 주소의 특징은 모두 "1"로 시작한다는 점입니다. 이는 주소를 생성할 때 다양한 시나리오(예: 테스트넷/메인넷)에 따라 생성된 공개 키 앞에 접두사가 추가되기 때문입니다. 접두사가 추가된 공개 키가 해시를 통해 계산된 후 결국 주소는 다음으로 시작됩니다. "1".

중첩된 SegWit 주소(P2SH-P2WPKH)

기존 레거시 주소와 비교하여 P2SH 주소는 공개 키의 해시를 사용하지 않고 상환 스크립트(redeem-script)의 해시를 사용합니다. 평신도의 관점에서 P2PKH는 공개 키의 해시에 지불하는 반면 P2SH는 수신자가 상환 스크립트의 전송 조건을 충족한 후에만 내부 자금을 사용할 수 있습니다.

결제 대상이 공개 키에서 스크립트로 변환되므로 유연성이 크게 확장되고 상환 스크립트의 실행 로직을 사용자 정의할 수 있습니다. 일반적인 애플리케이션에는 다중 서명 트랜잭션 구현이 포함됩니다.

P2SH를 기반으로 Segregated Witness 기술이 내장된 경우 이 주소의 형식은 Segregated Witness 호환 주소(Nested SegWit)입니다. 분리된 증인 주소를 소개할 때 분리된 증인에 대해 자세히 알아볼 수 있습니다. Segregated Witness 기술을 도입하면 거래량을 줄여 거래 수수료를 줄일 수 있습니다.

P2SH 주소가 "3"으로 시작하는 것을 볼 수 있습니다.

Native SegWit Address

이러한 유형의 주소를 도입하기 전에 먼저 그 안에 있는 핵심 기술인 Segregated Witness(SegWit)를 소개해야 합니다. 이름에서 알 수 있듯이 Segregated Witness는 증인 데이터(증인)를 격리하여 별도로 처리합니다.

이렇게 하면 거래 정보의 크기가 줄어들어 거래 수수료가 줄어든다는 것이 큰 장점입니다. 크기 감소로 인한 또 다른 이점은 비트코인 ​​블록 트랜잭션 크기의 상한이 1MB에서 4MB로 늘어났다는 것입니다.

Segregated Witness 주소의 특징은 주소가 "bc1"로 시작한다는 것입니다.

Taproot 주소(Taproot)

Taproot 주소의 장점은 복잡한 거래 시나리오에서 개인정보 보호와 효율성입니다. Native SegWit과 비교하여 Schnorr 알고리즘을 사용하여 타원 곡선 디지털 서명 알고리즘을 대체합니다. 전자는 일괄 거래 시나리오에서 더 효율적이며 다중 서명 지갑의 개인 정보 보호를 향상시킵니다.

메인 루트 주소의 특징은 주소가 보통 "bc1q"로 시작한다는 것입니다.

어떤 주소 형식을 선택해야 하나요?

OKX, Unisat 및 기타 지갑과 같은 현재 주류 지갑은 위 4가지 주소를 지원하므로 거래 비용을 줄이기 위해 Native SegWit 및 Taproot 형식의 주소를 사용하는 것이 더 합리적입니다. .

또한 비트코인의 비문 등에 관심이 있다면 이 두 주소가 최선의 선택입니다. 대부분의 지갑은 이 두 주소의 비문에 대해 추가 처리를 수행하여 귀하의 특별한 UTXO를 보호할 수 없습니다. 거래에서 실수로 다른 곳으로 이전되었습니다. "bc1"로 시작하는 지갑 주소를 찾아보세요!

물론, 주소 형식이 다른 지갑에서도 자금 거래가 가능하니 걱정하지 마세요.

비트코인의 잔액이나 블록 정보를 확인하고 싶다면 ZAN의 노드 서비스를 이용해 보세요. 개발자가 사용할 수 있는 풍부한 API를 제공합니다. API 문서 세부 정보: https://docs.zan.top/reference/zan_getbalance-enhance

좀 더 깊이 있는 내용 - 핵심 기술 소개

위의 소개를 마치면 모두가 지갑에 대해 사전 이해하게 됩니다. 나만큼 지갑에 있는 기술을 습득하는 데 관심이 있으므로 그 안에 숨겨진 신비한 기술을 살펴보겠습니다.

Redeem Script Redeem Script

P2SH를 소개하면서 이것이 상환 스크립트 거래를 위한 기술이라는 것을 알았는데, 상환 스크립트란 무엇이며 비트코인 ​​생태계에서 그 역할은 무엇입니까?

환매 스크립트를 소개하기 전에 비트코인 ​​거래의 기본 구조를 소개해야 합니다.

다음은 04ae로 시작하는 주소가 15kD로 시작하는 주소로 10 BTC를 전송하려는 일반적인 P2PK 유형 트랜잭션입니다. 04ae 주소가 있는 계정은 체인의 다른 사람들에게 이 계정을 사용할 권리(개인 키 보유)가 있음을 보여주어야 하며, 그런 다음 이 거래에서 서명(ScriptSig)을 제공하여 신원을 증명해야 합니다.

서명을 얻는 것 외에도 검증자는 UTXO에 해당하는 이전 거래의 출력 스크립트도 찾아야 합니다. 이 두 스크립트는 함께 연결되어 구속 스크립트를 형성합니다. 상환 스크립트의 기능은 거래의 적법성을 증명하는 것입니다.

Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?

이 거래에서 서명과 출력 스크립트가 모두 컴퓨터 지침임을 알 수 있습니다. "OP_PUSHBYTES"는 데이터 조각을 스택에 푸시하는 것을 의미합니다. 먼저 04ae는 ScriptSig의 자체 개인 키로 전체 트랜잭션에 서명하고 서명이 스택에 푸시됩니다. 그런 다음 공개 키를 스택에 푸시하고 마지막으로 "OP_CHECKSIG"에서 공개 키를 사용하여 서명을 해독하고 트랜잭션이 일치하는지 비교합니다. 일관성이 있으면 ID가 유효합니다.

이 P2PK 방법 외에도 상환 스크립트는 P2PKH 및 P2SH와 같은 다양한 인증 방법을 구현할 수도 있습니다.

Segregated Witness

위의 소개에서 현재 최신 지갑 형식이 Segregated Witness 기술을 사용하고 있다는 것을 알 수 있는데 Witness란 무엇이며 어떻게 격리됩니까?

여기서 Witness는 비트코인의 기본 구조에 있는 스크립트 서명(scriptSig) 정보라고 생각하면 됩니다. Segregated Witness는 이를 기본 구조에서 추출하여 새로운 데이터 구조에 넣는 것입니다.

Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?

위 그림에서 볼 수 있듯이, 트랜잭션에 꼭 필요한 내용은 트랜잭션 소스 정보와 트랜잭션 출력 정보뿐입니다. 노란색 부분(전체 트랜잭션 크기)으로 인해 트랜잭션 크기가 줄어듭니다. 크기 제한이 있으므로 트랜잭션 서명을 별도로 분산하면 하나의 블록이 더 많은 트랜잭션을 수용할 수 있습니다. 또한, 거래의 서명을 계산할 때 서명 부분의 내용이 포함되지 않으므로 거래 전성 문제를 효과적으로 해결할 수 있습니다.

다음은 P2TR 거래입니다. 이 거래에는 추가적인 증인 부분이 있음을 알 수 있습니다. 그 기능은 거래의 적법성을 확인하는 것입니다. ScriptSig 대신 Witness를 사용한 후에도 적법성을 확인하는 방법은 여전히 ​​동일합니다. 즉, 공개 키를 사용하여 Witness의 서명을 해독하여 거래 내용이 일치하는지 확인하는 것입니다. 노드는 거래의 적법성을 확인해야 할 때만 증인 정보를 요청합니다. 이제 ZAN Node 서비스를 무료로 이용해보세요(ZAN.TOP 방문). BTC 네트워크에 안정적이고 빠른 속도로 연결됩니다.

Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?

요약하자면, Segregated Witness는 거래 서명 부분의 내용을 원래 거래의 나머지 부분과 분리하여 단일 거래의 크기를 줄이고 전체 블록의 용량을 늘립니다. 또한, 거래의 해시값 계산에 서명 부분의 내용이 포함되지 않기 때문에 거래 가단성 문제를 효과적으로 해결할 수 있습니다.

이 글은 ZAN팀(X계정 @zan_team)의 Yeezo(X계정 @GaoYeezo75065)가 작성했습니다.

위 내용은 Web3 초보자 시리즈: 내 비트코인에 주소가 여러 개 있는 이유는 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.