BIP32 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
6번째 줄: 6번째 줄:
 
BIP는 [[비트코인]]의 기술을 논의하기 위해 작성하거나 공개된 제안 양식이다. BIP32가 탄생하게 된 배경은 하나의 비트코인 주소보다 여러개의 비트코인 주소를 가지고 입출금을 하면 훨씬 더 안전하다는 것에서부터 출발하여 현재는 다양한 용도로 사용 가능하다. BIP32는 처음 [[HD 지갑]](Hierarchical Deterministic Wallet)에 대한 구조를 제안했는데, HD 지갑은 BIP32 문서를 코드로 [[프로그래밍]]화한 것을 말한다. HD 지갑은 결정적 계층 구조 지갑으로 2진 트리처럼, 또는 부모-자손 관계를 이용해 끝없이 파생시킬 수 있는 지갑으로 BIP32 이외에도 [[BIP39]], [[BIP44]] 등 여러 버전이 있으며 BIP39로 만들어진 프로그램은 [[이오스]](EOS)나 다른 [[블록체인]]에서도 흔히 사용된다.<ref> 공룡, 〈[https://blog.naver.com/forkblock/221559838087 HD Wallet]〉, 《네이버 블로그》, 2019-06-11 </ref>
 
BIP는 [[비트코인]]의 기술을 논의하기 위해 작성하거나 공개된 제안 양식이다. BIP32가 탄생하게 된 배경은 하나의 비트코인 주소보다 여러개의 비트코인 주소를 가지고 입출금을 하면 훨씬 더 안전하다는 것에서부터 출발하여 현재는 다양한 용도로 사용 가능하다. BIP32는 처음 [[HD 지갑]](Hierarchical Deterministic Wallet)에 대한 구조를 제안했는데, HD 지갑은 BIP32 문서를 코드로 [[프로그래밍]]화한 것을 말한다. HD 지갑은 결정적 계층 구조 지갑으로 2진 트리처럼, 또는 부모-자손 관계를 이용해 끝없이 파생시킬 수 있는 지갑으로 BIP32 이외에도 [[BIP39]], [[BIP44]] 등 여러 버전이 있으며 BIP39로 만들어진 프로그램은 [[이오스]](EOS)나 다른 [[블록체인]]에서도 흔히 사용된다.<ref> 공룡, 〈[https://blog.naver.com/forkblock/221559838087 HD Wallet]〉, 《네이버 블로그》, 2019-06-11 </ref>
 
==등장배경==
 
==등장배경==
[[비트코인]]을 받으려면 비트코인 주소가 필요하다. 이 주소로받은 비트코인을 보내려면 해당 개인 키가 필요하다. 따라서 비트 코 [[클라이언트]]는 적어도 하나의 비트 코 주소와 해당 개인 키가 유용해야합니다. 일반적으로, 비트 동전 지갑은 사용자가 여러 주소를 생성 할 수있게 한다. 복수의 주소를 사용하는 사용자는 하나의 주소만을 사용하는 사람보다 [[블록체인]]을 감시하는 것을 더 어렵게하기 때문에 익명성에 도움이 된다.
+
비트 코인을 받으려면 비트 코인 주소가 필요하다. 이 주소로받은 비트 코인을 보내려면 해당 개인 키가 필요하다. 따라서 비트 코 클라이언트는 적어도 하나의 비트 코 주소와 해당 개인 키가 유용해야합니다. 일반적으로, 비트 동전 지갑은 사용자가 여러 주소를 생성 할 수있게 한다. 복수의 주소를 사용하는 사용자는 하나의 주소만을 사용하는 사람보다 블록 체인을 감시하는 것을 더 어렵게하기 때문에 익명성에 도움이 된다.
 
요청시 주소 / 개인 키를 생성하는 초기 아이디어는 사용자가 주소를 요청할 때마다 임의로 새로운 주소를 효과적으로 생성하는 것이 었다.  이것이 bitcoin-qt가하는 방식이다. 이 방법의 단점 중 하나는 지갑이 모든 주소 / 키를 저장해야한다는 것이다. 따라서 사용자는 새로 생성 된 주소 / 키가 손실되지 않도록하기 위해 새 주소를 생성 할 때마다 지갑을 백업해야한다.
 
요청시 주소 / 개인 키를 생성하는 초기 아이디어는 사용자가 주소를 요청할 때마다 임의로 새로운 주소를 효과적으로 생성하는 것이 었다.  이것이 bitcoin-qt가하는 방식이다. 이 방법의 단점 중 하나는 지갑이 모든 주소 / 키를 저장해야한다는 것이다. 따라서 사용자는 새로 생성 된 주소 / 키가 손실되지 않도록하기 위해 새 주소를 생성 할 때마다 지갑을 백업해야한다.
 
BIP32 지갑은 사용자가 필요에 따라 새로운 주소를 생성 할 수 있지만 주소 / 키를 반복해서 백업 할 필요가 없다. 마술은 두 번째 주소 / 키가 무작위가 아니라 실제로 첫 번째 것의 파생물이고, 세 번째 것은 두 번째 파생 된 것이다. 이 모든 것은 아무도 그 주소에서 어떤 주소도 추측 할 수 없도록하기 위해 일부 암호화에 의해 뒷받침 이된다. 첫 번째 개인 키가 없어도 지갑을 사용할 수 있다.
 
BIP32 지갑은 사용자가 필요에 따라 새로운 주소를 생성 할 수 있지만 주소 / 키를 반복해서 백업 할 필요가 없다. 마술은 두 번째 주소 / 키가 무작위가 아니라 실제로 첫 번째 것의 파생물이고, 세 번째 것은 두 번째 파생 된 것이다. 이 모든 것은 아무도 그 주소에서 어떤 주소도 추측 할 수 없도록하기 위해 일부 암호화에 의해 뒷받침 이된다. 첫 번째 개인 키가 없어도 지갑을 사용할 수 있다.
  
 
==기본구조==
 
==기본구조==
[[비트코인]] 참조 [[클라이언트]]는 임의로 생성 된 키를 사용한다. 매 [[트랜잭션]]마다 백업이 필요하지 않도록 (기본적으로) 100 개의 키가 예약 키 풀에 캐시된다. 하지만이 지갑은 여러 시스템에서 동시에 공유하고 사용할 수 없다. 그들은 지갑 암호화 기능을 사용하고 비밀 번호를 공유하지 않음으로써 개인 키를 숨기도록 지원하지만 그러한 "중성화 된"지갑은 공개 키를 생성 할 수있는 능력을 잃어 버린다.
+
Bitcoin 참조 클라이언트는 임의로 생성 된 키를 사용한다. 매 트랜잭션마다 백업이 필요하지 않도록 (기본적으로) 100 개의 키가 예약 키 풀에 캐시된다. 하지만이 지갑은 여러 시스템에서 동시에 공유하고 사용할 수 없다. 그들은 지갑 암호화 기능을 사용하고 비밀 번호를 공유하지 않음으로써 개인 키를 숨기도록 지원하지만 그러한 "중성화 된"지갑은 공개 키를 생성 할 수있는 능력을 잃어 버린다.
 
결정 론적 지갑은 빈번한 백업을 필요로하지 않으며, 타원 곡선 수학은 개인 키를 공개하지 않고 공개 키를 계산할 수있는 스키마를 허용한다. 이것은 예를 들어 webshop 비즈니스가 웹 서버가 (수신 된 자금을 소비하는 데 필요한) 해당 개인 키에 대한 액세스를 제공하지 않고 웹 서버가 각 주문 또는 각 고객에 대해 새로운 주소 (공개 키 해시)를 생성하도록 허용한다.
 
결정 론적 지갑은 빈번한 백업을 필요로하지 않으며, 타원 곡선 수학은 개인 키를 공개하지 않고 공개 키를 계산할 수있는 스키마를 허용한다. 이것은 예를 들어 webshop 비즈니스가 웹 서버가 (수신 된 자금을 소비하는 데 필요한) 해당 개인 키에 대한 액세스를 제공하지 않고 웹 서버가 각 주문 또는 각 고객에 대해 새로운 주소 (공개 키 해시)를 생성하도록 허용한다.
 
그러나 결정 론적 지갑은 일반적으로 키 쌍의 단일 "체인"으로 구성된다. 단 하나의 체인이 있다는 사실은 지갑을 공유하는 것이 모두 또는 전혀 기초가 없다는 것을 의미한다. 그러나 경우에 따라 일부 공개 키만 공유하고 복구 할 수 있기를 원한다. 웹샵의 예에서 웹 서버는 판매자의 지갑의 모든 공개 키에 액세스 할 필요가 없다. 예를 들어 판매자가 돈을 지불 할 때 생성되는 변경 주소가 아닌 고객의 지불을받는 데 사용되는 주소에만 적용된다. 계층 적 결정 론적 지갑은 단일 루트에서 파생 된 여러 개의 키 쌍 체인을 지원함으로써 이러한 선택적 공유를 허용한다.
 
그러나 결정 론적 지갑은 일반적으로 키 쌍의 단일 "체인"으로 구성된다. 단 하나의 체인이 있다는 사실은 지갑을 공유하는 것이 모두 또는 전혀 기초가 없다는 것을 의미한다. 그러나 경우에 따라 일부 공개 키만 공유하고 복구 할 수 있기를 원한다. 웹샵의 예에서 웹 서버는 판매자의 지갑의 모든 공개 키에 액세스 할 필요가 없다. 예를 들어 판매자가 돈을 지불 할 때 생성되는 변경 주소가 아닌 고객의 지불을받는 데 사용되는 주소에만 적용된다. 계층 적 결정 론적 지갑은 단일 루트에서 파생 된 여러 개의 키 쌍 체인을 지원함으로써 이러한 선택적 공유를 허용한다.
  
 
==협약==
 
==협약==
이 텍스트의 나머지 부분에서는 [[비트코인]]에서 사용되는 공개 키 [[암호화]], 즉 secp256k1 ( http://www.secg.org/sec2-v2.pdf )에서 정의한 필드 및 곡선 매개 변수를 사용하는 타원 곡선 암호화를 가정한다. 아래 변수는 다음 중 하나이다.
+
이 텍스트의 나머지 부분에서는 Bitcoin에서 사용되는 공개 키 암호화, 즉 secp256k1 ( http://www.secg.org/sec2-v2.pdf )에서 정의한 필드 및 곡선 매개 변수를 사용하는 타원 곡선 암호화를 가정한다. 아래 변수는 다음 중 하나이다.
  
 
*곡선의 차수를 n으로 나타내는 정수이다.
 
*곡선의 차수를 n으로 나타내는 정수이다.
37번째 줄: 37번째 줄:
  
 
==하위 키 유도 (CKD) 함수==
 
==하위 키 유도 (CKD) 함수==
부모 확장 키 및 인덱스 i가 주어지면, 대응하는 자식 확장 키를 계산하는 것이 가능하다. 이렇게하는 [[알고리즘]]은 아동이 강화 된 키인지 아닌지 (또는 i ≧ 2 31 인지 여부)와 개인 키 또는 공개 키에 대해 이야기하는지 여부에 따라 다르다 .
+
부모 확장 키 및 인덱스 i가 주어지면, 대응하는 자식 확장 키를 계산하는 것이 가능하다. 이렇게하는 알고리즘은 아동이 강화 된 키인지 아닌지 (또는 i ≧ 2 31 인지 여부)와 개인 키 또는 공개 키에 대해 이야기하는지 여부에 따라 다르다 .
  
 
개인 부모 키 → 개인 자식 키
 
개인 부모 키 → 개인 자식 키
123번째 줄: 123번째 줄:
 
==사용 사례==
 
==사용 사례==
 
===전체 지갑 공유 : m===
 
===전체 지갑 공유 : m===
두 시스템이 하나의 공유 지갑(Wallet)에 액세스해야하고 둘 다 지출을 수행 할 수 있어야하는 경우 마스터 개인 확장 키를 공유해야 한다. [[노드]]는 외부 체인을 위해 캐시 된 N 개의 미리보기 키 풀을 수신 지불을 감시 할 수 있다. 여기서 내부 쇠사슬에 대한 사전 검색은 매우 작을 수 있다. 첫 번째 사용되지 않는 계정의 체인에 대해 추가 미리보기가 활성화되어 사용할 때 새 계정을 만들 수 있다. 계정 이름은 수동으로 입력해야하며 블록 체인을 통해 동기화 할 수 없다.
+
두 시스템이 하나의 공유 Wallet에 액세스해야하고 둘 다 지출을 수행 할 수 있어야하는 경우 마스터 개인 확장 키를 공유해야 한다. 노드는 외부 체인을 위해 캐시 된 N 개의 미리보기 키 풀을 수신 지불을 감시 할 수 있다. 여기서 내부 쇠사슬에 대한 사전 검색은 매우 작을 수 있다. 첫 번째 사용되지 않는 계정의 체인에 대해 추가 미리보기가 활성화되어 사용할 때 새 계정을 만들 수 있다. 계정 이름은 수동으로 입력해야하며 블록 체인을 통해 동기화 할 수 없다.
  
 
===감사 : N (m / *)===
 
===감사 : N (m / *)===
135번째 줄: 135번째 줄:
  
 
===무보수 머니 리시버 : N (m / i H / 0)===
 
===무보수 머니 리시버 : N (m / i H / 0)===
안전하지 않은 [[서버]]를 사용하여 전자 상거래 사이트를 운영하는 경우 지불을받는 데 사용되는 공개 주소를 알아야 한다. 웹 서버는 단일 계정의 외부 체인의 공개 확장 키 만 알아야 한다. 즉, 불법적으로 웹 서버에 대한 액세스 권한을 얻는 사람은 대부분 모든 입금을 볼 수 있지만 돈을 훔칠 수는 없으며 나가는 트랜잭션을 구별 할 수 없으며 다른 웹 서버가받은 지불을 볼 수도 없다.
+
안전하지 않은 웹 서버를 사용하여 전자 상거래 사이트를 운영하는 경우 지불을받는 데 사용되는 공개 주소를 알아야 한다. 웹 서버는 단일 계정의 외부 체인의 공개 확장 키 만 알아야 한다. 즉, 불법적으로 웹 서버에 대한 액세스 권한을 얻는 사람은 대부분 모든 입금을 볼 수 있지만 돈을 훔칠 수는 없으며 나가는 트랜잭션을 구별 할 수 없으며 다른 웹 서버가받은 지불을 볼 수도 없다.
  
 
==적합성==
 
==적합성==
170번째 줄: 170번째 줄:
 
* [[BIP]]
 
* [[BIP]]
  
{{블록체인 기술|검토 필요}}
+
{{블록체인 기술|토막글}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)