멀티서명지갑(Multi-Signature Wallet) - 검증

in #kr6 years ago (edited)

멀티서명지갑은 스마트 컨트랙트를 이용해서 구현한 지갑이라는 점은 더 안전한 지갑을 사용할 수 있게 할 수 있지만   구현상에 오류나 버그는 치명적인 결과를 초래 할 수 있습니다.

이는 멀티서명지갑의 문제만이 아닌 스마트 컨트랙트를 작성(프로그램)할때 발생할 수 있는 문제와도 같습니다. 즉 블럭체인의 보안은 문제가 없지만,   스마트 컨트랙트는 보안을 보장하거나, 안전 하거나 하는 것은 코드 검증의 문제이며 블럭체인의 보안과는 별도의 문제 입니다.

1) 멀티서명지갑(Multi-Signature Wallet) 개념  

2) 멀티서명지갑(Multi-Signature Wallet) 생성-(메타마스크)  

3) 멀티서명지갑(Multi-Signature Wallet) ETH 출금(메타마스크) 

4) 멀티서명지갑(Multi-Signature Wallet) 토큰(Token) 출금(메타마스크)

멀티서명지갑 Web


테스트에서 사용했던   https://wallet.gnosis.pm  사이트는 웹 버젼으로 사이트 접속만으로 간단하게 사용할 수 있다는 장점이 있습니다.

하지만 얼마전 마이이더월렛(https://www.myetherwallet.com) 사이트 피싱  또는 사이트 자체가 해킹되어 변조 된 웹(web)을 사용자가 이용한다면 해커에게 코인을 도난 당할 수 있습니다.

피싱은 비밀번호를 입력하도록 유도하거나 또는 원래 사이트와 같은 복제 사이트로 유인하여 코인을 도둑질 하는 방법으로 지갑 사이트는 물론이며 심지어 거래소 사이트 또한 피싱 대상임을 기억하셔야 합니다.

멀티서명지갑을 웹에서 이용한다면 피싱사이트를 조심해야 되며, 또한  회사(Gnosis)는 해커에게 사이트가 변조되지 않도록 보안에 노력해야 합니다.

사용자 입장에서는 멀티서명지갑(https://wallet.gnosis.pm)  피싱 사이트를 조심하면 되지만, 사이트 자체가 해커에서 변조된 것을 모르고 (대부분은 알수 없슴) 이용하는 상황이 발생 할 수 있습니다.

그래서 뮤(MEW) 를 포함하여 멀티서명지갑(https://wallet.gnosis.pm) 의  사이트에서는 웹에서 이용을 권장하지 않는데 사용자들은 주의를 기울이지 못합니다. 

결국 지갑의 출금과 관련된 웹 사이트를 이용한다는 것은 항상 두가지 유념해야 되는 상황이 첫번째는 피싱 사이트에 유도되어 접속했는지와 두번째는 사이트자체가 변조되었는지를 모르고 이용하는 상황인데 두번째는 사용자 입장에선 쉽게 알 수 없습니다.

멀티서명지갑 Desktop


웹 사이트를 접속해서 지갑을 이용할 경우 위에서 언급한 두가지 상황에 노출된다는 점에 회사는(Gnosis)는 데스크탑 버젼을 제공 하고 있습니다.

데스크탑 버젼은 이용하는 PC 에 설치하여 사용하는 것이므로 웹 버전에서 문제점인 피싱 사이트로 유인되어 접속하는 문제는 자연스럽게 해결 됩니다.

두번째 문제인 웹사이트의 변조는 데스크탑에서는 다운받아 설치하려는 데스크탑 버젼이 원본과 같은지를 검증하는 방법을 제공함으로써 데스크탑용 프로그램의 변조 여부를 확인한 후 설치 하면 역시 두번째 문제도 해결 됩니다.

원도우 데스크탑용 ( https://github.com/gnosis/MultiSigWallet/releases) 을 다운 받은후 안전한 화일인지 확인한는 방법은 CheckSum  MD5 의 숫자를 대조 하는 것입니다.

Checksum MD5 을 하기 위해선  WinMD5free (www.winmd5.com) 을 다운 받은후 [browse] 에서 다운받은 "Window64-1.2.3.zip"을 선택하시면 잠시후 Checksum MD5 Value 값이 표시되며 이 값이 사이트에 표시된 값과 일치하는 지를 확인 하시면 됩니다.


 멀티서명지갑 검수


멀티서명지갑은 결국 스마트 컨트랙트로 이를 구현하는 코드가 버그 없이 의도한 대로 기능이 작동하는지  검증 되어야 합니다. 스마트 컨트랙트 코드 검증 및  검수은 매우 중요한 문제 입니다.

과거 이더리움 DAO 해킹,  Parity 멀티서명지갑 해킹 그리고 최근 스마트메쉬(smart mesh) 토큰계약 오류로 인한 해킹은 코드에 오류가 있어서 발생한 문제 입니다.

[smart mesh Txid 1경개 입금]

https://etherscan.io/address/0x38c1617864cbab17a5e4078ffd37a587ef0d4236#tokentxns

이러한 종류의 문제는 프로그램 구현 및 검증에 관한 문제로 이더리움 스마트 컨트랙트에 국한된 문제는 아닙니다. 과거 증권시장에서도 발생한 사건을 잠깐 살펴 보면 결국 의도하지 않은 작동이 되므로써 치명적인 결과를 도출하게 됩니다.

한맥증권 주문시스템 오류로 인한 파산

LIG증권 선물 주문 오류로 출렁인 주식시장

멀티서명지갑의 스마트 컨트랙트 검수는 일반 사용자들의 영역이 아니므로, 전문 회사의 검수결과를 참고 할 수 밖에 없습니다.

 Gnosis Multisig Wallet Audit

개인적 사용 목적으로 몇달 전부터 테스트넷에서 기능에 대한 정상 작동여부 및 보안에 관한 이슈가 있는지를 https://forum.gnosis.pm/  포럼을 통해 확인해 봤으며, 또한  실제 네트워크에서 다른 사용자의 사용여부를 파악해 보면서 사용해도 될 만한 지갑이라 판단 했습니다.

이더스캔을 통해 동일 멀티서명지갑 스마트 컨트랙트를 조회한  결과며 소스 또한  제공되니  프로그램 지식이 있는 분들은  소스를 살펴 보셔도 좋을듯 합니다.

https://etherscan.io/contractsVerified?cn=MultiSigwallet


 다음(Next)은...


실제 권장되는 사용 구성에 관한 것과 요즘 핫한 EOS 토큰의 EOS Public key 를 멀티서명지갑에 등록하여 사용하는 방법을 포스팅 하겠습니다. 일반 토큰은 그냥 사용해도 되지만  EOS 는 6월 메인넷 이전에 EOS Public key 를 등록해야  합니다.