매주, 화요일 - General 🌎 목요일 - Tech 💻
월/수/금 - ??? 💸
(많은 관심과 아낌없는 피드백 부탁드립니다!..💕) |
|
|
2022년 6월 23일(목) W4 도깨비 레터_테크편 줄거리..🔮
지난주,
솔라나 NFT 만들기!에 이어서,
이번주, 크립토 자산을 보관, 전송하는 대표적인 지갑 Metamask(메타마스크)에서 Private Key(개인키)는 어떻게 관리 되는지 알아보겠습니다!🙌 |
|
|
안녕하세요, Ovadix입니다.😎 오늘은 메타마스크는 privateKey를 어떻게 관리하는지 살펴 보겠습니다:D, Follow ME!🤗 |
|
|
메타마스크란 이더리움(ETH) 등 가상자산(암호화폐)을 보관, 송금, 관리할 수 있는 지갑으로 구글 웹브라우저에서 플러그인 방식으로 사용되는 크롬 확장 프로그램입니다.
초창기의 메타마스크는 크롬 브라우저에서만 작동하여 이더리움 네트워크 상에서 이동하는 것만 가능했습니다. 하지만 현재는 파이어폭스, 오페라, 브레이브 등 다양한 브라우저 및 모바일에서 바이낸스 스마트 체인, 폴리곤, 아발란체 등 다양한 블록체인 네트워크상에서의 자산 전송을 가능케합니다. 또한, 디파이 형태의 스왑 기능이나 기업형 메타마스크 지갑 등 다양한 기능을 제공하며 서비스 영역을 확장하고 있습니다. |
|
|
최근 활성화되고 있는 디파이나 nft 등 다양한 형태의 서비스를 이용하고자 하는 경우 블록체인 상에서 활용이 자유로운 지갑이 있어야 하는 경우가 대부분이기에 메타마스크가 필요한 것입니다.
물론 메타마스크를 꼭 사용할 필요는 없습니다. 사실 메타마스크는 가상자산을 보관하는데 있어서 도움을 주는 프로그램 중 하나입니다. 각 해당되는 네트워크(아발란체,솔라나,클레이튼)에는 대표하는 지갑이 존재합니다. 다만 메타마스크는 코인시장에서 2인자로 대표하는 이더리움 지갑으로 나왔어서 많은 사용자들을 선점했으며,다른 네트워크의 코인도 등록할 수 있기때문에 많은 유저들이 사용하고 있습니다. |
|
|
먼저 우리는 메타마스크를 만들게 될때 12자리의 니모닉 코드와 비밀번호를 입력하게 됩니다. MetaMask는 어찌보면 HDWallet과 같은 구조이기 때문에 12자리 니모닉코드를 통해서 무수히 많은 privateKey를 생성할 수 있습니다.
무수히 많은 privateKey를 생성할 수 있다는 말은 사용자가 무수히 많은 계정을 생성 할 수 있다는 말과 같습니다. 그 이유는 priavetKey → publicKey → account 순으로 추출이 가능하기 때문에 최우선적으로 PriavteKey가 시초가 됩니다. 또한 트랜잭션을 보내는 과정에서 sign을 하기위해서는 priavetKey가 필요하기 때문에 MetaMask는 어떻게 privateKey를 관리하는지 알아보겠습니다. |
|
|
우선 계정을 생성하는 과정은 생략하도록 하겠습니다. 우리가 현재 이 부분에서 주요하게 봐야할 곳은 로그인 패스워드이기 때문입니다. |
|
|
메타마스크에서 마우스 오른쪽 버튼을 클릭하게 되면 확장 프로그램 관리 tab이 나오게됩니다. 확장 프로그램 관리 메뉴를 클릭 하시면 설정 탭이 열리게 되고 아래와 같은 화면이 나오게 됩니다. |
|
|
□ 개발자 모드가 켜져있는지 확인 ✅
이 상태에서 backgrount.html 을 클릭하면 DevTools 사이드에 보이는 창이 켜지게 됩니다. 실제로 MetaMask는 이더/토큰을 누군가의 송금을 하거나 스마트 컨트랙트의 특정 함수를 실행시키기 위해선 SendRawTransaction을 하기 전에는 해당 트랜잭션 Data를 Signing을 해야합니다. Signing을 할 때 필요한 정보가 바로 Private Key인데 MetaMask는 Chrome Local Storage 에서 이 값을 관리하고 있습니다. |
|
|
#DOKKAEBI LETTER 도깨비 레터 Editor 절찬리 모집중..!💕🔮
블록체인, Defi, NFT, DAO, Web3.0 등 자신이 관심있는 주제로 꾸준히 인사이트를 공유하고 싶은 분이면 누구나 환영합니다!🙌 공유하고 피드백 받으면서 함께 성장 해 봐요!🚀
💌E-mail💌: dokkaebi.dao@gmail.com |
|
|
🔮 How to use the Vault Decryptor with the MetaMask Vault Data |
|
|
메타마스크 공식 FAQ 중 위의 글을 확인하면 어떻게 니모닉 코드를 추출할 수 있는지 방법이 나와있습니다. |
|
|
조금 전에 연 MetaMask의 backgrount.html 디버깅 창 콘솔에 아래와 같은 명령어를 넣어보자! |
|
|
chrome.storage.local.get('data', result => { var vault = result.data.KeyringController.vault console.log(vault) }) |
|
|
위의 추출된 데이터를 Vault Data라고 부르는데 이 Vault Data를 통해 내가 MetaMask 로그인 시 입력한 패스워드와 결합하여 특정 Decryptor 소스를 통해 니모닉 코드를 추출 할 수 있습니다.
|
|
|
위의 Site가 Vault Data를 Decryptor 할 수 있는 곳입니다. 온라인 상 해독을 할 수 있는 곳으로 아래와 같이 Textarea에 추출된 Vault Data를 넣고 내가 MetaMask에 지정한 패스워드를 Input 박스에 넣어 [Decrypt] 버튼을 눌러 해독하면 아래 결과로 Array Type의 데이터가 추출 되는 것을 확인할 수 있습니다. |
|
|
[{"type":"HD Key Tree",
"data":{"mnemonic":"12단어","numberOfAccounts":3,"hdPath":"m/44'/60'/0'/0"}},
{"type":"Ledger Hardware","data":{"hdPath":"m/44'/60'/0'/0/0","accounts":[],"accountDetails":{},"bridgeUrl":"https://metamask.github.io/eth-ledger-bridge-keyring","implementFullBIP44":false}},{"type":"Simple Key Pair","data":
"data":{"mnemonic":"12단어","numberOfAccounts":3,"hdPath":"m/44'/60'/0'/0"}}, |
|
|
해독된 데이터를 보게되면 vault data는 니모닉코드, 그리고 몇개의 계정을 생성했는지, 경로는 어떻게 되는지 등 나의 모든 계정에 대한 데이터를 비밀번호를 통해 암호화 시킨 데이터 입니다. |
|
|
여기까지가 MetaMask가 내 Local에 존재하는 PrivateKey를 어떻게 관리하고 있는지에 대한 부분입니다.
위에 글을 읽다가 "어? 그래서 Privatekey는 어디에 있는 건데? 니모닉코드만 보여주고 몇개의 계정을 생성했는지만 보여주고 있는데 privateKey가 어디있다는 거지?" 이렇게 생각할 수 있습니다.
그 궁금함에 대한 해답은 니모닉 코드가 가지고있다는 사실을 기억해주시면 될 것 같습니다. 혹시나 니모닉코드에 대해서 궁금하고 잘 모르는 분들을 위해서 다음 시간에는 니모닉코드와 eth-lightWallet 라이브러리를 사용해서 어떻게 계정이 생성되는지에 대해서 알아보도록 하겠습니다. 그럼 좋은 한주되세요!💕 |
|
|
#Disclaimer
본 자료는 투자 권유 목적으로 작성된 것이 아니라는 점 말씀 드리며, 크립토 및 web3 이해를 돕기 위한 각종 정보 제공 목적으로 작성되었습니다. 본 자료는 DOKKAEBI DAO 멤버에 의해 작성되었으며 무단 도용 및 배포를 금지합니다. 본 자료에 대한 이용 등 기타 문의사항 발생 시, 하단 메일로 전달 주시기 바랍니다.
|
|
|
이번주 도깨비 레터 테크편은 어땠나요?
어느 부분이 좋았고😊 / 어디가 쫌 아쉬웠는지🧐,
아래 버튼을 통해 피드백 주세요!💕 |
|
|
|