이번 포스팅부터는 Gnosis 에서 제공하는 UI 툴을 이용하여 멀티시그 지갑을 사용해보겠습니다.
1. 지갑 서비스 접속(https://wallet.gnosis.pm)
- Gnosis 에서 제공하는 Web UI 툴이며, 메타마스크와 연동하여 멀티시그지갑을 손쉽게 사용할 수 있다. 만약 직접 서비스를 운영 또는 기능을 수정하고 싶다면 github 에서 소스를 다운 받으면 됩니다.
2. 배포된 멀티시그 컨트랙트 지갑을 추가해보기
- 현재 등록된 지갑이 없기 때문에 아무것도 보이지 않습니다. Add 버튼을 클릭하여 Remix 에서 배포된 컨트랙트를 추가 해보겠습니다.
- Create new wallet 메뉴는 멀티시그 컨트랙트 배포를 해주는 옵션입니다. 우리는 먼저 Remix 를 통해 컨트랙트를 배포했기 때문에 Restore deployed wallet 을 선택해보겠습니다.
- 원하는 Name 을 입력하고 Address 에서는 배포된 Contract Address 를 입력하고 Ok버튼을 클릭합니다.
3. 멀티시그지갑에 입금해보기
- 멀티시그지갑을 처음 생성 하였을 때는 자산이 없기 때문에 먼저 이더리움을 입금해보겠습니다.
- 현재 Balance 를 보면 0.00 ETH 인 걸 볼 수 있고 Deposit 을 눌러 입금 해보겠습니다.
- 예금할 이더 수량을 입력하고 Send transaction을 클릭하면 수분내에 입금이 완료 되는걸 확인할 수 있습니다.
4. 멀티시그지갑에서 출금해보기
- 입금이 완료된걸 확인했다면 이제 출금을 진행해보겠습니다.
- 현재 5 이더리움을 가지고 있는것이 보이고 Multisig transactions 탭에 Add 를 클릭합니다.
- 전송 할 주소와, 수량을 입력한후 Send multisig transaction 을 입력합니다.
- 1 이더리움을 출금 하였고 잔고가 4 이더리움 인 걸 확인할 수 있습니다. 그리고 Multisig transactions 테이블에서 Confirmations 은 My Account 이며 Executed 는 Yes 인걸 확인해 볼 수 있습니다. 이 의미는 출금이 정상적으로 완료되었다는 의미입니다.
하지만 Multisig Wallet 인데 왜 다른 오너의 승인이 없이도 트랜잭션이 실행되었을까요? 그 이유는 require confirm 이 현재 1이고 Owner 또한 1명 이기 때문입니다.
그럼 다음 포스팅에서 Owner 추가 및 require confirm 을 재설정 함으로써 다중 서명을 통해 토큰 출금이 실행 되게 해보겠습니다.