Carbon Wallet는 안전한 온라인 지갑에서 다음 큰 혁신이 되고자 하는 새로운 서비스로, 오늘 출시됩니다. 현재 온라인 지갑에는 서버 측 제어 지갑과 클라이언트 측 제어 지갑의 두 가지 주요 유형이 있습니다. 서버 측 지갑(예: Coinbase)에서는 실제 지갑이 서버에 의해 제어되며, 서버는 모든 사용자를 은행 계좌처럼 독립적으로 유지합니다. 반면 클라이언트 측 지갑은 사용자의 브라우저 내에서 실제로 완전 기능을 갖춘 비트코인 지갑이 작동하며, 서버는 각 사용자의 지갑에 대한 암호화된 백업만 보유합니다. Carbon Wallet은 이 혼합에 세 번째 패러다임을 추가합니다: 서버는 전혀 백업을 보유하지 않으며, 지갑은 대신 사용자의 비밀번호에서 결정론적으로 재생성됩니다.
비밀번호만으로 전체 비트코인 지갑을 재구성하는 것은 마법 같은 업적으로 보일 수 있지만, 실제로는 꽤 실현 가능합니다. 본질적으로 지갑은 두 부분으로 구성됩니다: 개인 키와 거래 정보입니다. 개인 키는 비트코인 주소 소유자가 거래를 서명하여 돈을 지출할 수 있게 해주는 비밀 숫자이며, 지갑이 필요로 하는 거래 정보는 본질적으로 그들이 얼마나 많은 돈을 가지고 있는지와 그들에게 돈을 보낸 개별 거래의 내용입니다. 비트코인 위키는 단일 루트 시드에서 잠재적으로 무한한 개인 키 세트를 생성하는 여러 가지 방법을 설명합니다. 설명하기 가장 간단한 방법은 비트코인에서 다른 곳에서도 사용되는 SHA256이라는 암호 해시 함수를 사용하는 것입니다. 본질적으로 SHA256은 어떤 것이든 입력으로 받아들이고, 일련의 매우 혼란스러운 변환을 사용하여 비트코인 개인 키에 적합한 형식인 무작위 256비트 숫자를 출력합니다. 개인 키 생성 알고리즘은 간단합니다: 개인 키 1 = SHA256(비밀번호+”1”), 개인 키 2 = SHA256(비밀번호+”2”), 그리고 이와 같은 방식으로 계속됩니다. 개인 키가 주어졌을 때 해당 비트코인 주소를 생성하는 알고리즘도 존재합니다. Carbon Wallet에서 사용하는 메커니즘은 더 복잡하며, Electrum에서 내부적으로 사용하는 것과 유사하지만, 사용자가 요구하는 만큼 많은 주소를 생성할 수 있는 동일한 능력을 공유합니다. 거래 정보는 인기 있는 클라이언트 측 지갑인 blockchain.info와 마찬가지로 Carbon Wallet 서버의 도움으로 간단히 다운로드됩니다.
현재 Carbon Wallet은 사용자가 자신의 비밀번호를 선택할 수 없으며, 대신 Electrum 지갑과 동일한 형식의 12단어 “패스프레이즈”에 의존합니다. Electrum의 1700단어 사전에서 자신의 12단어 패스프레이즈를 만들고 싶지 않은 경우, Carbon Wallet이 새로운 패스프레이즈를 생성해 줄 수 있습니다. “naked goose realize except concrete attack strange tightly thorn note memory church”는 Carbon Wallet이 생성한 패스프레이즈의 한 예입니다.
문제는 Carbon Wallet이 실제로 대안보다 더 안전할 것인가입니다. 한편으로는, 이는 서버가 비트코인 지갑 사용에 관여하는 수준을 상당히 줄입니다. 그러나 다른 한편으로는, blockchain.info의 주요 약점인 운영자가 이론적으로 클라이언트에 악성 코드를 삽입하여 예를 들어 사용자의 지갑을 즉시 비우는 것이 가능하다는 점은 Carbon Wallet에서도 마찬가지로 존재합니다. blockchain.info는 Firefox 및 Chrome 확장 프로그램 형태로 이 문제에 대한 해결책을 제공했으며, Carbon Wallet도 곧 유사한 기능을 구현할 예정이지만, 이 점에서 두 모델의 보안은 정확히 동일하게 유지됩니다.
하지만 Carbon Wallet의 모델이 이기는 여러 가지 방법이 있습니다. 첫 번째는 신뢰성입니다. Carbon Wallet 서버가 다운되더라도 사용자는 자신의 Carbon Wallet 비밀번호를 Electrum의 시드로 변환할 수 있으며, 그러면 동일한 주소를 가진 Electrum 지갑을 갖게 됩니다. blockchain.info의 경우, 사용자는 blockchain.info의 이메일 또는 Dropbox 지갑 백업 기능을 이용하거나, 사이트가 사라지거나 데이터베이스의 모든 사본이 삭제될 경우 지갑에 대한 접근을 잃을 위험을 감수해야 합니다. 또 다른 장점은 휴대성입니다; 누구나 더 나은 기능이나 인터페이스를 가진 Carbon Wallet 호환 지갑을 만들 수 있으며, Carbon Wallet 사용자는 원하는 제공업체 간에 즉시 이동할 수 있습니다. 지갑이 오직 비밀번호에서 결정론적으로 생성되기 때문에, 모든 제공업체는 사용자가 즉시 돈에 접근할 수 있도록 해줄 수 있습니다.
Carbon Wallet이 향후 추가할 여러 기능이 있습니다. 하나는 긴 비밀번호를 로컬 브라우저 저장소에 저장한 다음, 짧은 비밀번호를 사용하여 이를 복호화하는 기능입니다. 이는 무차별 대입 공격 문제를 완화하는 데도 도움이 되며, Carbon Wallet이 모바일 애플리케이션으로 확장될 때 필요할 것입니다. 스마트폰에서 진정으로 안전한 비밀번호를 입력하는 것은 매우 불편하기 때문입니다. 지갑은 또한 최소한 “검증자” 확장을 추가하여 누군가 Carbon Wallet 서버를 해킹하고 클라이언트에 악성 코드를 비밀리에 삽입하는 것을 방지할 것입니다. 모바일 장치 지원 및 QR 코드 지원도 높은 우선 순위입니다. Carbon Wallet이 제공하는 새로운 지갑 저장 모델에 관심이 있는 분들은 http://carbonwallet.com에서 지금 사용하실 수 있습니다.