알림 및 사용자 저장소 개인정보 보호 접근 방식
MetaMask Portfolio에서 제공하는 새로운 인증, 알림, 사용자 설정 저장 기능에 대한 정보.
MetaMask 웹에 로그인하면 어떤 이점이 있나요?
MetaMask 웹에 로그인하면 다음과 같은 기능을 사용할 수 있어 사용자 경험이 향상됩니다.
지갑 활동에 대한 알림을 받을 수 있습니다
MetaMask가 설치된 여러 기기에서 사용자 구성 및 설정을 동기화할 수 있습니다. 앞으로는 주소록, 트랜잭션 내역, 가져온 토큰 및 조회한 주소를 백업하고 동기화할 예정입니다.
브라우저를 변경하거나 재설정할 경우를 대비하여 설정을 백업할 수 있습니다
이 방식이 MetaMask 사용자의 개인정보를 어떻게 보호하나요?
설정이 동기화되어도 MetaMask 활동의 기밀성을 해치지 않습니다. 서비스 제공자가 사용자 데이터를 호스팅하는 웹2 방식과 달리, MetaMask는 사용자 개인정보 보호를 최우선으로 하는 접근 방식을 사용합니다. 귀하의 정보는 클라이언트 측(즉, 귀하의 기기에서)에서 암호화되며, 서버는 암호화된 데이터를 저장하고 전달하는 역할만 합니다. 따라서 MetaMask는 이 서비스를 누가, 어떤 주소로 사용하는지 전혀 알 수 없습니다.
로그인은 어떻게 작동하나요?
회원님이 MetaMask 웹에 로그인하려고 하면, MetaMask 지갑은 회원님의 계정 소유권을 확인하기 위해 회원님의 주소로 메시지를 서명하도록 요청합니다. 서명을 완료하면 해당 계정 주소로 MetaMask 웹에 로그인됩니다.
MetaMask는 이더리움을 이용한 표준 로그인 플로우를 사용합니다. 서버는 서명된 메시지와 사용자의 주소를 받아 서명을 확인하고, 주소에 무작위 값(솔트)을 추가하여 해시화한 후 계정 ID를 생성하고, 그 즉시 주소는 삭제합니다. 서버는 사용자의 계정 ID에 서명하고, 클라이언트가 사용자 설정 저장소나 알림 같은 MetaMask 서비스를 이용할 수 있도록 JSON 웹 토큰(JWT)을 발급합니다. 주소는 서버에 저장되지 않고, 계정 ID 해시는 역추적할 수 없기 때문에, MetaMask는 누가 어떤 주소로 로그인했는지 알 수 없습니다.
사용자 설정은 어디에, 어떻게 저장되나요?
사용자 설정은 MetaMask 서버에 저장되며, 사용자가 소유하는 특별히 생성된 키로 암호화됩니다. 사용자 본인 외에는 누구도 설정 내용을 읽을 수 없습니다. 로그인할 때, 사용자 계정의 서명을 주어진 메시지에 적용하여 생성된 해시값을 가져와 클라이언트 측 키를 생성합니다. 이는 키가 결정론적임을 의미합니다. 즉, 동일한 계정에서 동일한 메시지에 서명하면 하상 동일한 서명의 결과가 나옵니다. 이 키를 사용하여 모든 사용자 설정을 클라이언트 측에서 암호화한 후, MetaMask 서버로 전송합니다.
이러한 맥락에서 MetaMask는 단순히 저장소 역할만 하며, 클라이언트 측에서 모든 정보가 암호화되기 때문에 누가 서비스를 사용하는지 또는 구성 내용이 무엇인지 읽을 수 없습니다. 필요한 경우, 동일한 사용자가 다른 장치에서 MetaMask에 로그인하면 암호화된 정보를 해당 클라이언트에서 복호화할 수 있습니다. 또한, 앞으로향후 사용자 설정 저장소를 탈중앙화할 수 있는 가능성을 탐색하기 위해 생태계와 적극적으로 협력하고 있습니다.
MetaMask는 어떤 사용자 설정을 저장하나요?
MetaMask는 사용자 환경 설정과 구성 정보를 저장합니다. 예를 들어, 사용자의 공개 주소, 통화, 즐겨찾기 토큰, 인터페이스 설정 또는 주소록 정보 등이 이에 포함됩니다. MetaMask는 사용자의 개인 키나 비밀복구구문을 저장, 전송 또는 백업하지 않으며, 이 두 정보는 오직 사용자만 접근할 수 있습니다.
지갑 활동 알림은 어떻게 작동하나요?
MetaMask는 사용자의 주소에서 토큰 수신, NFT 수신, 언스테이킹 등의 관련 활동이 발생할 때 블록체인을 모니터링하고 푸시 알림을 보냅니다.
클라이언트 측에서 암호화된 데이터만 저장하는 사용자 구성 서비스와 달리, 알림 서비스는 모니터링되는 주소의 암호화되지 않은 버전을 서버 측에 저장해야 합니다. 여러 주소가 동일한 사용자에게 연결되지 않도록 하기 위해, 당사의 서버는 알림 작업을 해당 사용자와 “연결되지 않은 상태”로 저장합니다. 즉, 계정 ID와 주소 간의 연결 정보는 클라이언트 측에만 저장됩니다.