๊ณต๊ฐํค ๋นํธ์ฝ์ธ ์ฃผ์ ํ์์ ๋ํด ์์๋ณธ๋ค. ์ด๋ ๊ณง โ์ฃผ์โ์ด๋ค.
๋นํธ์ฝ์ธ ์ฃผ์ WIF(Wallet Import Format)
- ์์์ ๊ณต๊ฐํค์ ๋น๋ฐํค, ๊ทธ๋ฆฌ๊ณ ์๋ช , ๊ฒ์ฆ ๋ฐฉ์์ ๋ํด ์์๋ณด์๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ง๋ ฌํํ๋ ๋ฐฉ๋ฒ๋ ๋ฐฐ์ ๋ค.
- ๊ทธ๋ ๋ค๋ฉด A๊ฐ B์๊ฒ ๋นํธ์ฝ์ธ์ ๋ณด๋ด๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
- ๊ณต๊ฐํค๋ฅผ ๊ณต๊ฐํ๊ณ , ์ด์ ๋ํด r, s๊ฐ์ ๋๊ฒจ ๊ฒ์ฆํ ์ ์๋ค.
- ์ฆ, ๊ณต๊ฐํค๋ ์ด๋ค ์๋ฏธ๋ก โ์ฃผ์โ๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
- ์ค์ ๋ก ๋นํธ์ฝ์ธ์ด ๋์จ ์ด๊ธฐ์๋ ์ด๋ฅผ ์ฃผ์๋ก ์ฌ์ฉํ๋ค.
- ํ์ง๋ง SEC ๋ฐฉ์์ ๊ฒฝ์ฐ ๊ธธ์ด๋ ๊ธธ๊ณ (33 or 65 byte)
- ์ด์ง ํ์์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ธฐ๋ ์ฝ์ง ์๋ค. (16์ง๋ฒ์ผ๋ก ๋ฐ๊พผ๋คํด๋ ๊ธธ๋ค. - 66 or 130)
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ณํํด์ผํ ํ์์ฑ์ด ์๋ค.
- ์ด๋ ๊ฒ ์ฃผ์๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๋ณํํ๋ ๊ฒ์ WIF(Wallet Import Format)๋ผ ํ๋ค.
๊ณ ๋ ค ์ฌํญ
- ๊ฐ๋ ์ฑ
- ๊ธธ์ด
- ๋ณด์์ฑ
Base58
- ์์ ๊ณ ๋ ค์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์ํด Base58์ ์ฌ์ฉํ๋ค.
- ๋น์ทํ ๊ฒ์ผ๋ก URL์ ์ถ์ฝํ๊ธฐ ์ํด Base64์ ๊ฐ์ ๊ฒ์ ๋ง์ด ์ฌ์ฉํ๋ค.
- Base๋ผ๋ ๋ป์ โ์ง๋ฒโ์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
- ์ฆ, 64์ง๋ฒ, 58์ง๋ฒ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๊ทธ๋ผ ๋นํธ์ฝ์ธ์์๋ ์ ๊ตณ์ด 58์ ์ฌ์ฉํ ๊น?
58์ ์ฌ์ฉ์ด์
- Base64๋ฅผ ์ฌ์ฉํ๋ฉด, 6๊ฐ์ ๋นํธ๋ฅผ ํ๋์ ๋ฌธ์๋ก ์ถ์ฝํ ์ ์๋ค.
- ํ์ง๋ง Base64์์ ์ฌ์ฉํ๋ ๊ธ์์ ์ซ์๋ ํผ๋ํ๊ธฐ ์ฝ๋ค.
- 0๊ณผ O, 1๊ณผ I, -๊ณผ _ ๋ฑ
- ์ด๋ฌํ ๊ธ์๋ฅผ ์ ์ธํ์ฌ ๊ฐ๋ ์ฑ์ ํฅ์์ํจ๋ค.
- ๋ช๊ฐ์ ๋ฌธ์๋ง ์ ์ธ๋๋ฏ๋ก ๊ธธ์ด๋ ์ค์ด๋ ๋ค.
- ํ์ง๋ง ์ด๋ ๊ฒ ๋๋ฉด ๋นํธ์ ๊ฐ์์ ๋ฌธ์์ 1:1 ๋์์ด ๋์ง ์๋๋ค.
- 5.86๋นํธ๊ฐ ํ๋์ ๋ฌธ์์ ๋์๋๋ค.
- ์ด๋ ๊ฒ ๋๋์ด ๋จ์ด์ง์ง ์๋ ๋๋จธ์ง ๋นํธ์ ๊ฒฝ์ฐ checksum์ ๋ถ์ฌ ์ค์๋ฅผ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค.
- ๋ง์ง๋ง์ผ๋ก ๋ณด์์ฑ๊น์ง ์ถ๊ฐ๋์๋ค.
Code
์ฌ์ฅ๋๋ Base58
- ๋ฑ ๋ด๋ ์ง๊ด์ ์ด์ง๋ ์๋ค.
- 58๊ฐ๋ ์ฌ์ ํ ๋ง๋ค.
- ์ฌ์ ํ ๊ธธ๋ค.
- Bech32 ํ์ค์ด BIP0173์ผ๋ก ์ ์๋์๋ค.
- 32๊ฐ์ ๊ธ์๋ก๋ง ๊ตฌ์ฑํ ์ธ์ฝ๋ฉ ๋ฐฉ์์ด๋ค.
- Segwit์์๋ง ํ์ฌ๋ก๋ ์ฌ์ฉ๋๋ค.
Hash160
- SEC ๋ฐฉ์์ ํตํด ๊ณต๊ฐํค๋ฅผ ์ง๋ ฌํ ํ๋ค.
- ์ด ๊ธธ์ด๊ฐ ๊ธธ์ด ์์ถ SEC ๋ฐฉ์์ ๋์ ํ๋ค. (33byte * 4 = 132bit)
- ์ต์ข ์ ์ผ๋ก ์ด ์์ถ SEC์์ ๋ง๋ bit๋ฅผ Base58๋ก ๋ณํํ์ฌ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
- ํ์ง๋ง, ์ด ์ค๊ฐ๋จ๊ณ์์ ๋ ์ค์ผ ์๋ ์์๊น?
- ์ด ๊ณผ์ ์์ Base58๋ก ๋ณํํ๊ธฐ์ ์์ ํ๋จ๊ณ ์ถ๊ฐ์์
์ ํ ๊ฒ์ด๋ค.
- ๋ณด์์ ์ธ ๋ฌธ์ ๋ ์๋ค.
- ์ด ๊ณผ์ ์์ Base58์ธ์ฝ๋ฉ ์ ์ Hash160์ ํตํด ๊ธธ์ด๋ฅผ ์ค์ด๊ณ , ๋ณด์์ ๊ฐํํ๋ค.
- sha256๊ณผ ripemd160 ํด์๋ฅผ ์ฐ์์ผ๋ก ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
์ต์ข ์ ๋ฆฌ
- ๋ถ๋ถ ๋ถ๋ถ์ ๋ํด ์ค๋ช ์ ํ์ง๋ง, ์ ์ฒด์ ์ธ ๊ทธ๋ฆผ์ ์ดํดํ๊ธฐ๋ ์ฝ์ง ์์๋ค.
- ๊ทธ๋์ ์ ํ์ ์ผ๋ก ๋นํธ์ฝ์ธ ์ฃผ์๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋ชจ์๋์ ์ฝ๋๋ก ๋ํ๋๋ค.
- ์ฝ๋๊ฐ ์๋ฌด๋๋ ์ ํ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๊ฒ์ด ์๋๋ค๋ณด๋ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ๊ธฐ๊ฐ ์ด๋ ต๋ค.
- ํ์ง๋ง ๋ชจ์๋๋ฅผ ๋ณด๋ฉด ๊ธ๋ฐฉ ์ดํดํ ์ ์๋ค.
- ํ ์คํธ๋ท์ ๋นํธ์ฝ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ์ฉ๋๋ ๋นํธ์ฝ์ธ ๋คํธ์ํฌ์ด๋ค.