EVM은 이더리움 블록체인의 핵심 요소로, 스마트 컨트랙트 실행을 담당하는 가상 머신입니다. 스마트 컨트랙트의 보안성과 탈중앙화를 보장하며, 이더리움뿐만 아니라 여러 블록체인에서 EVM을 지원하고 있습니다. 이를 통해 탈중앙화 애플리케이션(DApp) 개발이 가능하며, 블록체인의 확장성과 활용도를 높이는 데 중요한 역할을 합니다.
이토록 널리 쓰이는 EVM은
모든 체인에서 같은 주소
를 사용하며, 이는 모든 블록체인에서 동일한 지갑을 사용할 수 있다는 것을 의미합니다. 이는 사용자가 여러 블록체인을 사용하더라도 동일한 지갑을 사용할 수 있게 해주는 장점을 가지고 있습니다.
우리는 DApp에서 사용자가 EVM 블록체인 지갑을 생성하고, 이를 사용할 수 있도록 구현하는 방법을 알아보겠습니다.
Mnemonic(니모닉)은 암호화폐 지갑의 비밀키를 쉽게 기억하고 복구할 수 있도록 만든 12~24개의 영어 단어 조합입니다. BIP-39 표준을 기반으로 생성되며, 이를 사용하면 비밀키 없이도 지갑을 복원할 수 있습니다. 보안이 중요한 정보이므로 절대 온라인에 저장하지 말고, 안전한 장소에 백업해야 합니다.
우리는 1차적으로 사용자에게 Mnemonic을 생성하고, 이를 통해 지갑을 생성하는 방법을 알아보겠습니다.
랜덤한 바이트 기반으로 지갑을 생성하는 createRandom() 함수는 앱 환경에서 각자의 운영체제에 권한을 요청하게 되는데, 이 과정이 복잡하며 레퍼런스가 존재하지 않습니다. 따라서 Expo에서 기보 제공하는 expo-crypto 라이브러리를 사용하여 Mnemonic을 생성하고, 이를 통해 지갑을 생성하는 방법을 알아보겠습니다.
다음 명령어를 통해 expo-crypto와 bip39 라이브러리를 설치합니다. expo-crypto는 Expo에서 제공하는 암호화 라이브러리이며, bip39는 Mnemonic을 생성하는 라이브러리입니다. buffer 라이브러리는 expo-crypto 라이브러리에서 사용되는 라이브러리입니다.