이더리움은 트랜잭션 생성시 하나의 서명만 필요하기 때문에 “단일 서명 트랜잭션”이라고 할 수 있습니다. 하지만 스마트 컨트랙트를 통해 다중 서명 트랜잭션을 지원할 수 있습니다. 예를 들어 등록된 서명중 3분의 2 이상의 해당 트랜잭션을 승인 하였을 경우만 실행한다는 등의 복잡한 트랜잭션도 실행 가능해집니다.
- 이더리움 멀티시그 지갑 목록
multisig wallet 기능이 간단히 구현되어 코드를 이해하기 쉬우나 현재 오랜 시간 업데이트 되지 않고 있습니다.
Consensys multisig 에 조금 더 기능 향상이 되었고 주기적으로 업데이트 되고 있고 ERC20 토큰 전송 및 Wallet UI 제공
ERC20 토큰 전송을 지원합니다
Mist 또는 Ethereum Wallet 과 연동 가능
- Parity’s Multisig Wallet (NOT RECOMMENDED)
2017년 11월 6일 multisig wallet 치명적 버그로 인해 악의적인 사용자가 해당 컨트랙트를 삭제 하였고 이로 인해 전체 발행량의 1%에 해당하는 이더리움 Lock 되어 버림.
2. Gnosis’ Multisig Wallet 특징
Gnosis’ Multisig Wallet은 주기적으로 업데이트 되고 있고 Open Zepplin 의 Audit 레포트를 통해서 취약성 검증이 되었기 때문에 해당 지갑으로 실습을 진행해보겠습니다.
- 이더리움 및 이더리움 토큰 지원
- 오프라인 서명 (콜드 지갑) 지원
- 메타 마스크, Mist, Parity 지갑과 손쉬윈 통합
- 트랜잭션 데이터 및 로그 디코딩을 쉽게 볼 수 있게 가공
- 손쉬운 사용을 위한 UI 지원
- 하드웨어 지갑 지원 (Ledger Wallet)
- 이벤트가 발생되거나 대상자가 거래에 서명 해야하는 경우 선택적으로 알림 기능
3. Remix을 이용하여 Gnosis’ Multisig Wallet 배포해보기
- 해당 경로에서 MultisigWallet.sol 소스를 다운로드 후 remix 창에 복사 붙여 넣습니다.
- Account 에 컨트랙트를 배포할 충분한 이더가 있는지 확인합니다.
- MultiSigWallet 컨트랙트를 선택합니다.
- Deploy 오른쪽 input 창에 [“자기주소(owner)”], 1 입력후 Deploy 버튼을 클릭합니다.
4. Remix을 이용하여 Gnosis’ Multisig Wallet 실행해보기
- 배포가 완료되면 오른쪽 화면과 같이 Multisig Wallet 컨트랙트의 기능을 사용 할 수 있는 화면이 표시됩니다.
- 앞서 Deploy 시에 두번째 인자에 1을 넣으셨던걸 기억하실텐데요. 이 인자는 몇명의 오너가 승인을 해야 트랜잭션이 실행될지 정하는 것인데요. 일단 1명으로 설정을 해놓고 진행하겠습니다.
이제까지 Gnosis’ Multisig Wallet 을 네트워크에 배포하고 간단하게 실행해 보았습니다. Remix 를 통해서도 멀티시그지갑을 관리 할 수 있지만 입력값 및 출력값을 확인 하는데 불편함이 있어 다음 포스팅부터는 Gnosis 에서 제공하는 UI 툴을 이용하여 진행하겠습니다.