일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ethereum
- 비트코인
- Blockchain
- Xcode
- 프로그래머스
- 알고리즘
- 블록체인
- PBFT
- solidity
- Report
- External Call
- ios
- Crash
- 분산원장
- Mining
- DEFI
- view 이동
- POS
- Algorithm
- 이더리움
- 백준
- .dsym
- reentrancy
- 재진입공격
- dsYM
- DPOS
- viewcontroller
- pow
- 암호화폐
- 블록체인 기술
Archives
- Today
- Total
개발하기좋은날
니모닉 생성 - 2 (니모닉 개발) 본문
반응형
니모닉 생성되는 과정을 코드를 통해서 알아보자
아래 라이브러리를 사용
- res : https://github.com/ConsenSys/eth-lightwallet#readme
1. 랜덤한 니모닉 코드 생성
let mnemonic = lightwallet.keystore.generateRandomSeed();
console.log(menemonic)
Log의 내용은 아래와 같이 찍힌다
"laugh vendar ctucial length cup surface pratice toilet license easy dash rug"
2. newWallet 생성
let password = "<input password>"
let mnemonic = "<input mnemonic code>"
try
{
lightwallet.keystore.createVault
(
{
//salt: fixture.salt,
password: password,
seedPhrase: mnemonic,
hdPathString: "m/0'/0'/0'"
},
function(err,ks){
ks.keyFromPassword(password, function(err,pwDerivedKey){
ks.generateNewAddress(pwDerivedKey,1);
let address = (ks.getAddresses()).toString();
let keystore = ks.serialize();
console.log("addr => "+address+" keystore => "+keystore)
});
}
);
}catch(exception){
console.log("error"+exception)
}
설명 :
- hdPathString 은 Hierarchal Deterministic 약자로 결정형 계층 지갑이란 뜻
- Bitcoin을 위해 만들어진 표준이지만 현재는 secp256k1 개인 키에 의존하는 다양한 블록체인에 적합
- BIP-32, BIP-39, BIP-44 참고
- HD path는 "/" 마다 의미가 달라진다
- 예를들어 이더리움 같은 경우 m/44’/61’/0’/0 나타내고자한다면 그 의미는 아래와 같다
- m’ / purpose’ / coin_type’ / account’ / change / address_index
- 이더리움 클래식은 : m’/44’/61’/0’/0
- 이더리움 테스트넷은 : m’/44’/1’/0’/0 계층적 Common paths를 가지고있다
- Salt를 넣지않는 경우 자동으로 고유한 Salt를 생성하게된다
- pwDerivedKey는 개인키를 해독할때 사용
- lightwallet.keystore.createVault를 사용하여 키스토어를 생성
- lightwallet.keystore.createVault 첫번쨰 인자는 option, 두번쨰는 콜백 함수
- ks.generateNewAddress를 통해서 새로운 주소 생성함수를 실행, 두번쨰 인자는 지갑 생성 갯수
- 주소와 keystore 생성후 배포
반응형
'BlockChain' 카테고리의 다른 글
블록체인 - 완벽한 합의 프로토콜은 불가능? (0) | 2022.07.26 |
---|---|
트릴레마 (Trilemma) 와 해결 방법 (0) | 2022.07.21 |
니모닉 생성 - 1 (니모닉 이란) (1) | 2022.07.15 |
다양한 지갑 (0) | 2022.07.13 |
크립토 이코노미 와 거버넌스 (0) | 2022.07.12 |
Comments