대부분 MSIG 권한은 계정명을 사용해 트랜잭션에 서명하도록 설정됩니다.
예시:
Permission: active (Threshold 2):
aliceaccount@active (1)
bobaccount@active (1)
Alice 및 Bob은 트랜잭션을 실행하기 위해 위 트랜잭션 권한으로 서명하면 됩니다.
다음은 실제 예입니다.
그러나 만약 계정 이름 대신 공개 키를 사용해 MSIG 권한을 설정했다면 어떨까요?
Permission: active (Threshold 2):
PUB_K1_6ies8fT5dUNmVDG6CSSfwVcn6jvJakW6R3YLfHgUPcknxna9nT (1)
PUB_K1_5fHPq9GpZxTPQHAw8pq3SpYFLday8q9T6ezsMwBCNydphTjamt (1)
이는 트랜잭션이 실행되기 위해서는 이 계정의 트랜잭션이 위 두 개의 공개 키로 서명되어야 함을 의미합니다.
이 경우 문제는 일반적으로 사용자 친화적 UI를 사용하는 EOS 지갑에서 여러 공개키로 트랜잭션에 서명할 수 있는 방법이 없습니다. 때문에 이 문제해결을 위해선 command line을 사용해야 합니다.
여러 키로 서명할 수 있도록 `cleos` 설정하기
Cleos는 모든 EOSIO 블록체인과 상호 작용하는 command line 인터페이스입니다. cleos가 없다면 여기에서 설치할 수 있습니다.
Cleos 설치 후 지갑을 생성합니다. 이 예에서는 "support"라는 지갑을 만들고(이것은 EOS 계정 이름이 아닌 참조 이름일 뿐입니다) cleos에게 결과를 터미널 콘솔에 인쇄하여 이 지갑에 대해 자동으로 생성된 암호를 가져오도록 요청합니다.
cleos wallet create -n support --to-console
생성된 지갑의 새 비밀번호를 복사하여 저장합니다. 지갑을 잠글 때마다 비밀번호가 필요합니다.
# Only required when locked, cleos locks wallets when they are idle for some time.
cleos wallet unlock -n support
이 예에서는 두 개의 개인 키를 추가합니다.
계정의 개인 키를 가져옵니다.
cleos wallet import --private-key PVT_K1_28t8rJAwm2ezAxNUJjLjHJ4bFvMMPfDocTJxz23NePNWPe5gVp -n support
cleos wallet import --private-key PVT_K1_QCknBCMuqAhKF7STxFNHR8Rdx8HEoNg9rUP8rgWDfQvm9vfoC -n support
[do it again for the other key/s if needed]
이렇게 하면 동시에 두 개의 키를 사용하여 서명할 수 있도록 지갑이 설정됩니다.
# You can put the RAW transaction, but it's cleaner using a file .json
cleos -u https://eos.greymass.com push transaction transaction.json
실행되면 JSON 데이터(위 이미지 참조)가 반환됩니다. 트랜잭션 ID를 복사하고 블록 탐색기에서 확인해보세요.
작성자: Erick Birbe
편집자: Markus Hinrichs; Randall Roland
옮긴이: Sangyong Jeong
출처 및 참고문헌