Key Generation
key
key
는 키페어 생성, keys로부터 계정 주소 연산, 서명을 지원합니다.key
의 하위 명령어는 다음과 같습니다.new
address
sign
참고
Keypair
개인키와 공개키는 키페어 생성에 의해 만들어집니다.
생성된 키페어는 게정 생성, 노드의 키페어 등록, operation과 seal의 서명 생성에 사용됩니다.
new
new
를 사용해 새로운 키페어를 생성합니다.Random Keypair
$ ./mitum key new
$ ./mitum key new
hint: mpr
privatekey: L1ZERchoY53vC5TJQ3WnZEWmg97L2Utw5rgFrCwM7ekTu9zJkZYjmpr
publickey: 28nFxuC5ETygieSGEYTkewwnCZseB4TNYGMRtxz31bvxzmpu
Keypair from Seed
$ ./mitum key new --seed <string seed>
$ ./mitum key new --seed abcdefghijklmnopqrstuvwxyzABCDEFGHIJ
hint: mpr
privatekey: KypAAGYtVFdTFLS8muPJhwfJBFCFHKSe594yYmKK3FPteh7sie4Dmpr
publickey: 25BcZrcyiE3TD2BZEqkdDuaYB9zHxpdW82BNn8HkCLTijmpu
address
address
명령어로 keys로부터 주소를 계산합니다.$ ./mitum key address <threshold> [<publickey>,<weight>]
threshold |
100 |
keys |
{key: 21Sn1o…, weight: 50}, {key: utzCef…, weight: 50} |
$ ./mitum key address 100 21Sn1owHXRx336aaerU1WbbKjiZXMcrJsnxBHP9etNx6zmpu,50 utzCefA1Szmmt3rAwqW5yEhxK1x3hG3Y3yThEK3gZmv3mpu,50
37x8YoAGA93B3HmDVNterRf1NTgz9tfN1gQn4jYuBYCHmca
Multi Sig Account
Mitum Currency에서 계정은 currency와 balance를 가진 데이터 구조체입니다.
계정은 address라는 고유값을 가지고 있으며 이 값을 통해 식별할 수 있습니다.
사용자의 Account authentication을 위해 공개키를 등록하세요.
Mitum Currency 계정은 multi signature가 가능하므로 multiple public keys를 가질 수 있습니다.
address |
HjyXhhuHAZBGaEw2S5cKZhDwqVc1StbkJMtdgGm3F1dnmca |
threshold |
100 |
keys |
{key: rd89Gx…, weight: 50}, {key: skRdC6…, weight: 50} |
balance |
{currency: MCC, amount: 10000}, {currency: MCC2, amount: 20000} |
참고
각 계정이 따라야 할 조건은 다음과 같습니다.
threshold
의 범위는 1 <= threshold <= 100입니다.각
weight
의 범위는 1 <= weight <= 100입니다.계정의 모든
weight
의 합은threshold
이상이어야 합니다.각 공개키는
mpu
접미사가 붙은 BTC compressed public key여야 합니다.주소값에는
mca
가 접미사로 따라옵니다.
다음은 유효한 계정의 예시입니다.
CASE1 (single)
threshold: 100
keys: {key: rd89Gx…, weight: 100}
CASE2 (single)
threshold: 50
keys: {key: rd89Gx…, weight: 60}
CASE3 (multi)
threshold: 100
keys: {key: rd89Gx…, weight: 40}, {key: skRdC6…, weight: 30}, {key: mymMwq…, weight: 30}
CASE4 (multi)
threshold: 50
keys: {key: rd89Gx…, weight: 20}, {key: skRdC6…, weight: 20}, {key: mymMwq…, weight: 10}
weight
나 threshold
의 조합이 다르면 다른 계정 주소를 가질 수 있습니다.sign
sign
명령어로 특정 메시지에 개인키로 서명하세요.$ ./mitum key sign <privatekey> <signature base>
$./mitum key sign L5nDx2QtZVBPtJvUQ13cj3bMhC487JdxrwXTdS6JgzTvnSHestCxmpr bWVzc2FnZQ=
381yXZHrm73kGD8z7FAksBjxy49wPRWn3WRdP22befdbFff6WYSdK8rz9TLpFWuEW7rmmphF3rHkrvTPvhVQ5kXNGLmELBwZ