티스토리 뷰
WIF 가 무엇인지 모르신다면 앞서 아래 내용을 참고해 주시기 바랍니다.
https://bitcoinlog.tistory.com/55
비트코인 주소, WIF, 니모닉, 공개키, 비밀키 이게 다 뭐야?
비트코인 주소, 비밀키, WIF 시크릿, 공개키, 니모닉.. 등의 말들을 모두 들어보셨나요? 그렇다면 위에 제시된 것들이 서로 어떤 관계를 가지며 어떤 역할을 하는 지도 정확히 이해하고 계시나요?
bitcoinlog.tistory.com
오늘은 인터넷 연결없이 비밀키를 WIF 로 또는 WIF 를 비밀키로 변환하는 방법에 대하여 알아 보겠습니다.
이번에는 Nodejs 를 이용해 실습을 해보려고 합니다!
로컬 PC에 Nodejs 가 설치되어 있지 않다면 아래 주소에서 Nodejs 를 먼저 설치해 주세요
https://nodejs.org/ko/download/
그리고 Node 진영의 wif 라이브러리를 사용해 보겠습니다.
https://www.npmjs.com/package/wif
Node REPL(Read Eval Print Loop) 를 이용할 예정이므로 wif 를 -g 옵션으로 설치하겠습니다. 그리고 해당 라이브러리를 REPL 에서 직접 사용하기 위해서 npm link wif 명령을 수행합니다.
➜ ~ npm i -g wif
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
changed 15 packages, and audited 16 packages in 2s
1 package is looking for funding
run `npm fund` for details
found 0 vulnerabilities
➜ ~ npm link wif
added 1 package, and audited 3 packages in 524ms
found 0 vulnerabilities
➜ ~
이제 명령터미널에서 node 명령을 입력하면 Nodejs REPL로 진입합니다.
➜ ~ node
Welcome to Node.js v16.15.1.
Type ".help" for more information.
>
그러면 이제 아래 실습 코드대로 따라 해봅시다.
(여기부터는 인터넷 연결없이 진행없이 가능합니다)
> wif = require('wif')
{
decode: [Function: decode],
decodeRaw: [Function: decodeRaw],
encode: [Function: encode],
encodeRaw: [Function: encodeRaw]
}
> priv = Buffer.from('ef235aacf90d9f4aadd8c92e4b2562e1d9eb97f0df9ba3b508258739cb013db2', 'hex')
<Buffer ef 23 5a ac f9 0d 9f 4a ad d8 c9 2e 4b 25 62 e1 d9 eb 97 f0 df 9b a3 b5 08 25 87 39 cb 01 3d b2>
> wifKey = wif.encode(128, priv, true)
'L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6'
> privObj = wif.decode(wifKey)
{
version: 128,
privateKey: <Buffer ef 23 5a ac f9 0d 9f 4a ad d8 c9 2e 4b 25 62 e1 d9 eb 97 f0 df 9b a3 b5 08 25 87 39 cb 01 3d b2>,
compressed: true
}
> privObj.privateKey.toString('hex')
'ef235aacf90d9f4aadd8c92e4b2562e1d9eb97f0df9ba3b508258739cb013db2'
> wif.encode(privObj)
'L5EZftvrYaSudiozVRzTqLcHLNDoVn7H5HSfM9BAN6tMJX8oTWz6'
>
온라인 사이트에서 수행한 결과와도 동일하지요!
https://learnmeabitcoin.com/technical/wif
끝~

'비트코인 공부' 카테고리의 다른 글
나만의 특별한 의미있는 비트코인 주소 사용하기 (3) | 2022.09.07 |
---|---|
무작위로 비트코인 주소 털어 먹기 (0) | 2022.09.03 |
인터넷 연결없이 안전하게 개인지갑의 비트코인을 출금하는 방법 (3) | 2022.09.01 |
2^256 얼마나 큰 수 일까 (1) | 2022.08.31 |
파이썬으로 개인지갑에서 비트코인 옮기기 (22) | 2022.08.30 |