Smallet Key Vault, Ethereum Smallet 0.3 release

이 버전은 내 손을 떠나는 첫번째 버전이다. 개발하면서는 버전코드를 한번도 안 올렸으니 버전코드 1번이다.

현재 나와 있는 가상화폐들의 종류가 매우 다양하여 모든 가상화폐를 한 지갑 앱에 담는 것은 무모하다. 특히 최근의 가상화폐들은 단순하게 화폐를 전송하고 받는 기능을 넘어 스마트컨트랙트나 기타 유사한 DApp을 사용할 수 있게 됨에 따라 지갑의 기능이 계속 부가될 수 밖에 없다. 그러므로 비트코인 종류의 단순 화폐기능을 가지고 있고 프로토콜이 유사한 것들을 합쳐서 비트코인류 지갑으로 만들고, 이더리움은 수많은 토큰들이 이미 존재하므로 이들도 같이 관리하고 DApp도 처리가 가능한 지갑을 별도로 만들었다. 모든 앱들의 아이콘에는 SILC아이콘을 포함시켜 한 식구 임을 쉽게 알 수 있도록 하였다.

향후 통합장부(ICMP)에서 이러한 지갑들의 입출금 상황을 통합관리 하게 될것이다.

기본적으로 모든 지갑은 Key Vault에 키를 저장한다. 즉 지갑앱들은 개인키를 보관하지 않으며 모든 키는 Key Vault 앱에서 관리한다.

 

Key Vault는 색상을 붉은 색으로 하였다. 키를 생성할때 월렛과 Key Vault화면을 오가게 되고, 전문을 사인할때도 키 볼트에서 하게 되므로 사용자가 확실히 어느 앱에 있는지를 확인하기 쉽게 하기 위해서 이다. 각 월렛들도 다른 색상의 Theme를 사용하여 구분이 쉽도록 하였다. 현재로서는 키 볼트는 BIP39 마스터 시드로 생성한 키만을 생성하거나 다른 곳에서 가져와서 사용할 수 있다. 개별 키의 Import를 지원할지 아직 결정하지 못했다. 개별키를 가져오게 될 경우 복잡도가 높아져서 사용자들이 관리하기 힘들어 질 것이다.

모든 코인은 12개 이상의 단어로 이루어진 Master Seed로 부터 생성된다. HD키(Hierarchical, Deterministic)를 지원하므로 이 Master Seed만 있으면 모든 지갑 주소는 그대로 복원된다. 물론 이걸 잃으면 모두 다 잃는다.

실크에코시스템 백서에 나와 있듯이 키 볼트를 지갑에서 분리한 이유는 보안때문이다. 기능이 점점 많이 지면서 코드가 복잡해지고 다양한 권한을 가질 수 밖에 없는 지갑에서 분리하여 단순한 코드를 유지하고 아무런 OS권한도 사용하지 않음으로서 원천적으로 해킹을 막는 것이다. 코드가 복잡해지면 해킹을 막기가 그만큼 어려워진다. 또한 키 볼트 부분은 완전한 오픈소스여야 하므로 더욱더 코드를 단순하고 읽기 쉽게 하여 누구든 보안에 위협이 되는 사항을 확인하고 볼 수 있도록 하므로 복잡한 지갑 코드와의 분리는 필수 적이다.

즉 앱 자체가 인터넷 접근권한이 없으므로 네크웍을 통한 해킹은 루팅된 상태가 아닌다음에는 불가능 하다고 봐야한다. 월렛과의 통신은 서비를 통해서 하는데 월렛과 키 볼트 사이에서만 호출이 가능하다. 이 또는 앱사인에 의한 방어 이므로 OS자체의 앱 사인을 해킹하지 못한다면 다른 앱이 이 통신에 끼어 들기는 어렵다.

마스터 시드와 프라이비트 키는 안드로이드 키 스토리지를 사용하여 보관되며 모든 소스를 본다해도 이를 복원 할 방법은 없다.

이제 부터는 모든 지갑들이 다 가진 기능들이다.

  

이더리움 지갑 화면이다. QR코드 읽기, 보여주기를 지원하고 30여가지 화폐 단위로 잔고를 보여준다. 배경 색상은 이더리움 색상을 기본으로 하였다.

  

메인넷 외에도 3가지 테스트넷을 제공한다. 초보자들은 돈 많이 드는 메인넷을 사용하기 전에 테스트넷을 이용하여 충분히 기능을 사용해 볼 수 있다. Ropsten을 추천한다. 테스트용 돈 받기가 쉽다. 설정에서 개발자 모드를 켜면 Ropsten Faucet 화면에 바로가서 테스트용 이더를 받을 수 있다.

화면을 보면 다른 지갑과 달리 사인과 전송을 분리하고 있다.

  

사인화면을 보면 붉은색이다. 즉 월렛이 아니라 키 볼트에서 사인을 한다. 프라이비트 키를 키 볼트만 가지고 있으니 당연하다. 사인이 되면 아래쪽에 사인된 전문이 보인다. 사인을 분리한 이유는 완전한 오프라인 사인을 가능하게 하기 위해서다. 즉 사인버튼을 누르기 전에 항공기 모드를 켜거나 하는 방법으로 완전히 네트웍을 차단하고 사인을 할 수 있다. 사인된 전문이 오면 네트웍을 켜고 전송 버튼을 누르면 된다. 계정 추가를 통해서 계정은 몇개든 추가 할 수 있으며 따로 운영이 된다.

구글플레이에 등록 했으니 곧 노출될 것이다.

스몰렛 키볼트

이더리움 스몰렛

Leave a Reply

Your email address will not be published. Required fields are marked *