RAND 계정 만들기
2019-08-18 00:00:00

RAND 토큰을 활용하기 위한 첫 단계는 계정을 생성하는 일입니다. 이를 위해서는 randcli 라는 명령어 입력기 프로그램을 사용합니다.

우선 github에서 DecentRandom 소프트웨어를 내려받습니다.

주의 : 절대 다른 경로에서 다운로드한 프로그램을 사용해서는 안됩니다. 조작된 파일을 사용하면 해킹의 위험이 있을 수 있으므로 공식 github에서 받은 파일만을 사용하시기 바랍니다.

randcli를 실행합니다.

randcli

명령어 리스트를 확인할 수 있습니다.

Command line interface for interacting with randd

Usage:
randcli [command]

Available Commands:
status Query remote node for status
config Create or query an application CLI configuration file
query Querying subcommands
tx Transactions subcommands

rest-server Start LCD (light-client daemon), a local REST server

keys Add or view local private keys

version Print the app version
help Help about any command

Flags:
--chain-id string Chain ID of tendermint node
-e,--encoding string Binary encoding (hex|b64|btc) (default “hex”)
-h, --help help for randcli
--home string directory for config and data (default“/Users/sehwankim/.randcli”)
-o,--output string Output format (text|json) (default “text”)
--trace print out full stack trace on errors

Use “randcli [command] --help” for more information about a command.

계정 생성을 위해서는 명령어 중 keys를 사용합니다. keys 명령어에 대한 도움말을 살펴봅시다.

randcli keys --help

keys의 하부 명령어와 도움말을 살펴볼 수 있습니다.

Keys allows you to manage your local keystore for tendermint.

These keys may be in any format supported by go-crypto and can be used by light-clients, full nodes, or any other application that needs to sign with a private key.

Usage:
randcli keys [command]

Available Commands:
mnemonic Compute the bip39 mnemonic for some input entropy
add Add an encrypted private key (either newly generated or recovered), encrypt it, and save to disk
export Export private keys
import Import private keys into the local keybase
list List all keys
show Show key info for the given name

delete Delete the given key
update Change the password used to protect private key
parse Parse address from hex to bech32 and vice versa

Flags:
-h, --help help for keys

Global Flags:
--chain-id string Chain ID of tendermint node
-e,--encoding string Binary encoding (hex|b64|btc) (default “hex”)
--home string directory for config and data (default “/Users/sehwankim/.randcli”)
-o, --output string Output format (text|json) (default “text”)
--trace print out full stack trace on errors

Use “randcli keys [command] --help” for more information about a command.

keys의 하부명령어 중 add를 사용하면 새 계정을 만들 수 있습니다. add 하부명령어에 대한 도움말을 확인해보겠습니다.

rancli keys add --help

add 하부명령어에 대한 도움말은 다음과 같습니다.

Derive a new private key and encrypt to disk. Optionally specify a BIP39 mnemonic, a BIP39 passphrase to further secure the mnemonic, and a bip32 HD path to derive a specific account. The key will be stored under the given name and encrypted with the given password. The only input that is required is the encryption password.

If run with -i, it will prompt the user for BIP44 path, BIP39 mnemonic, and passphrase.
The flag --recover allows one to recover a key from a seed passphrase.
If run with--dry-run, a key would be generated (or recovered) but not stored to the
local keystore.
Use the --pubkey flag to add arbitrary public keys to the keystore for constructing
multisig transactions.

You can add a multisig key by passing the list of key names you want the public
key to be composed of to the--multisig flag and the minimum number of signatures
required through --multisig-threshold. The keys are sorted by address, unless
the flag--nosort is set.

Usage:
randcli keys add <name> [flags]

Flags:
--account uint32 Account number for HD derivation
--dry-run Perform action, but don’t add key to local keystore
-h, --help help for add
--indent Add indent to JSON response
--index uint32 Address index number for HD derivation
-i, --interactive Interactively prompt user for BIP39 passphrase and mnemonic
--ledger Store a local reference to a private key on a Ledger device
--multisig strings Construct and store a multisig public key (implies --pubkey)
--multisig-threshold uint K out of N required signatures. For use in conjunction with--multisig (default 1)
--no-backup Don’t print out seed phrase (if others are watching the terminal)
--nosort Keys passed to--multisig are taken in the order they’re supplied
--pubkey string Parse a public key in bech32 format and save it to disk
--recover Provide seed phrase to recover existing key instead of creating

Global Flags:
--chain-id string Chain ID of tendermint node
-e, --encoding string Binary encoding (hex|b64|btc) (default “hex”)
--home string directory for config and data (default “/Users/sehwankim/.randcli”)
-o, --output string Output format (text|json) (default “text”)
--trace print out full stack trace on errors

새 계정을 만드는 방법은 두 가지가 있습니다.

1. mnemonic 단어를 사용하여 계정 생성하기

BIP 39 menmonic을 사용하여 계정을 생성합니다. 방법은 다음과 같습니다.

randcli keys add <영문계정이름>

<영문계정이름>란에 프로그램에서 식별자로 사용할 계정이름을 넣습니다. 이 계정명은 randcli 사용시 구분을 위해 사용하는 것입니다. 실행하면 계정에 사용할 암호를 입력하라고 합니다.

Enter a passphrase to encrypt your key to disk: <암호>
Repeat the passphrase: <암호 재확인>

암호를 입력하면 새로 만든 계정(address부분의 rand로 시작하는 문자열)과 mnemonic 단어 24개를 화면에 표시해줍니다. 이 단어를 정확한 순서대로 옮겨 적어야 합니다.

추후에 계정을 복원하기 위해서는 이 단어를 정확한 순서대로 입력해야 합니다. 네트워크에 연결된 기기에 파일로 저장하는 것은 안전하지 않습니다. 종이에 직접 기입하거나 오프라인 상태의 PC에 기록하는 등의 방법을 추천합니다. 이 단어를 정확히 알게되면 누구나 계정의 토큰을 이동할 수 있기 때문입니다.

2. ledger 하드웨어 지갑을 사용하여 계정 생성하기

ledger s와 ledger nano x를 사용하고 있다면, 하드웨어 지갑을 사용할 수 있습니다.

우선 ledger 하드웨어가 Cosmos를 지원하는 상태여야 합니다. ledger 소프트웨어를 개발자 모드로 설정한 뒤 Cosmos 지원 소프트웨어를 ledger 기기에 설치합니다.

개발자 모드로 변환해야 Cosmos 지원 소프트웨어를 설치할 수 있습니다.

설치한 뒤 ledger를 연결하고 Cosmos 소프트웨어를 실행한 상태에서 다음 명령어를 실행합니다.

randcli keys add <영문계정이름> --ledger

ledger를 통해 실행하였으므로, mnemonic 단어는 표시되지 않습니다. address부분의 rand로 시작하는 문자열이 계정 주소입니다.