소프트웨어 지갑의 개념
소프트웨어 지갑은 무작위 숫자를 사용하여 마스터 개인 키를 생성합니다.
그런 다음 결정론적이고 불가역적인 알고리즘이 마스터 개인 키를 기반으로 임의의 수의 하위 개인 키를 생성합니다.
왜 "결정론적이고 불가역적인" 알고리즘이 필요한가요? "결정론적"은 모든 하위 개인 키가 마스터 개인 키에서 생성될 수 있음을 보장하고, "불가역적"은 마스터 개인 키가 하위 개인 키에 의해 역으로 변환될 수 없음을 보장합니다.
계층적 결정론적 지갑이라고 불리는 이유는 개인 키의 파생 구조가 트리 구조이기 때문입니다. 여기서 부모 키는 일련의 자식 키에서 파생될 수 있고, 각 자식 키는 일련의 손자 키에서 파생될 수 있으며, 이와 같이 무한대로 이어집니다.
HD 지갑이나 지갑을 처음 생성하거나 백업할 때 도우미 단어가 생성됩니다. 도우미 단어는 영어 단어의 연속이며, 이 단어의 연속이 시드를 생성하고, 이 시드가 모든 개인 키를 생성합니다. 단어의 연속은 또한 지갑의 백업이며, 복원할 수 있습니다. 그리고 시드는 모든 결정론적 지갑의 무작위 숫자에 해당합니다.
HD 지갑의 장점은 마스터 공개 키만 있으면 어떤 수의 하위 공개 키를 생성할 수 있다는 것입니다. 다시 말해, 마스터 공개 키를 기반으로 새로운 (공개) 주소를 생성할 수 있으며, 개인 키(마스터 및 하위 개인 키)의 개입 없이 실제로 마스터 개인 키에 의해 제어될 수 있습니다.
도우미 키를 노출할 때 장단점이 있습니다. 도우미 키를 노출하면 모든 개인 키를 제공하는 것과 디지털 자산의 보안이 제로가 됩니다.
왜 많은 개인 키가 필요한가요
사용자가 많은 개인 키가 필요한 이유는 비트코인 거래의 변경 메커니즘에 의해 설명됩니다.
비트코인 거래는 입력 값과 출력 값이 포함된 데이터 구조입니다. 이 데이터 구조에는 초기 지점(입력 값)에서 대상 주소(출력 값)로 금속을 이동시키는 코드에 대한 정보가 포함되어 있습니다.
비트코인 거래 입력과 출력에 관해 이해하는 데 중요한 용어인 UTXO(사용되지 않은 거래 출력)를 이해해야 합니다. 이것은 비트코인 거래의 기본 단위이며 사용되지 않은 거래 출력입니다. 단일 사용된 비트코인은 수백 거래와 수백 블록에 걸쳐 UTXO로 분산됩니다. 실제로 USD의 주소나 잔액을 저장할 곳은 없으며, 소유자에 의해 잠겨진 분산 UTXO만 있습니다.
UTXO는 어떤 값이든 될 수 있지만, 생성되자마자 반으로 나눌 수 없는 동전과 같이 분할할 수 없습니다. UTXO가 거래 수요보다 크면 여전히 전체로 소비되지만 거래의 일부로 생성됩니다.
이것이 무슨 의미인지 예를 들어 설명하겠습니다. 20 루피의 UTXO가 있고 1 루피를 지불하려면 거래는 전체 20 루피 UTXO를 소비하고 두 개의 출력을 생성해야 합니다. 하나는 수령자에게 1 루피를 지불하고, 다른 하나는 19 루피를 거스름돈으로 지갑에 지불합니다. 이 경우 거래의 대부분은 거스름돈을 생성합니다.
거스름돈을 원래 주소로 반환해야 하는지 새 주소로 반환해야 하는지에 대한 질문이 제기됩니다. 사토시 나카모토가 비트코인을 설계할 때 각 거래에 대해 새 주소를 생성하는 제로 반환 메커니즘을 사용했습니다. 이 설계의 장점은 거래 사용자의 개인 정보를 보호하고 일부 보안 위험을 피하는 것입니다.
실제로는 여러 은행에서 여러 이름과 신분증으로 여러 은행 계좌를 여는 것과 같습니다. 누군가 각 계정의 자금 흐름을 알아도 디지털 통화의 실제 소유자로 자금 흐름을 추적할 수 없습니다. 이것이 바로 비트코인의 익명성이라고 불리는 것입니다.
이것이 왜 지갑 사용자가 많은 개인 키가 필요한지 알아야 하는 이유입니다. 공개 및 개인 키는 항상 쌍으로 나타나며, 각 거래는 변경 주소를 생성할 수 있으며, 이러한 주소의 저장 및 백업에 해당하는 개인 키는 디지털 거래의 기술적 문제가 되었습니다. HD 지갑은 공개 키로 어떤 수의 하위 공개 키를 생성할 수 있어 디지털 지갑의 사용이 어려운 문제를 크게 해결했습니다.
"""