HD 지갑(Hierarchical Deterministic Wallet) 생성
계층적 결정 지갑
하나의 seed는 여러개의 주소를 가질 수 있음
블록체인의 기능 중 하나 : 개인정보 보호. private privacy
hd wallet을 사용해 다른 주소들을 독립적으로 생성하여 send 하는데에 사용하면
상대방은 wallet 전체 금액이 어떻게 되는지 알 수 없음
지갑을 한번만 사용 (권장) => 아무도 내 주소를 추적할 수 없음
HD wallet 추가
암호를 생성하고, 해당 암호를 통해 개인키 생성
주소 생성 할 니모닉에 원하는 언어로 초기화 ( HD wallet의 seed값을 Mnemonic code로 생성)
니모닉 언어 목록
new Mnemonic(Mnemonic.word.Language) > word
mnemonic.js > './words'
src/api/wallet.js
const { PrivateKey } = require("bitcore-lib");
const { mainnet, testnet } = require("bitcore-lib/lib/networks");
const Mnemonic = require("bitcore-mnemonic");
const createWallet = (network = mainnet) => {
var privateKey = new PrivateKey(Mnemonic.Words.KOREAN);
var address = privateKey.toAddress(network);
return {
privateKey: privateKey.toString(),
address: address.toString(),
};
};
/**
* Hierachical Determinstic wallet (HD wallet)
*/
const createHDWallet = (network = mainnet) => {
let passPharse = new Mnemonic();
let xpriv = passPharse.toHDPrivateKey(passPharse.toString(), network);
return {
xpub: xpriv.xpubkey,
privateKey: xpriv.privateKey.toString(),
address: xpriv.publicKey.toAddress().toString(),
mnemonic: passPharse.toString(),
};
};
module.exports = {
createWallet: createWallet,
createHDWallet: createHDWallet,
};
xpub: 많은 주소를 생성하기 위해 접근할 수 있는 xpub
privateKey: 개인키
address: 거래를 위한 주소
mnemonic: 암호문구
src/app.js
const { mainnet, testnet } = require("bitcore-lib/lib/networks");
const { createWallet, createHDWallet } = require("./api/wallet");
// const sendBitcoin = require("./api/sendBitcoin");
// console.log(createWallet(mainnet));
console.log(createHDWallet(testnet));
결과 확인
참고 :
https://github.com/bitpay/bitcore/blob/master/packages/bitcore-mnemonic/docs/index.md
'blockchain' 카테고리의 다른 글
[Metamask] 메타마스크에 네트워크 추가하기 (Avalanche) (0) | 2024.05.02 |
---|---|
[BitcoinWallet] wallet에서 send Bitcoin 기능 구현하기 (0) | 2022.11.02 |
[BitcoinWallet] 생성한 testnet주소로 bitcoin 보내기 (1) | 2022.10.27 |
[BitcoinWallet] wallet에 필요한 private key, address 생성 (0) | 2022.10.27 |
[Blockchain] 지갑 (wallet) ColdWallet HotWallet HDWallet (0) | 2022.10.20 |
댓글