Dreaming Deve1oper

[의문] 메타마스크 지갑 정보 저장 위치 / 배포된 스마트 계약에 어떻게 접근하는가 본문

캡스톤, P2E

[의문] 메타마스크 지갑 정보 저장 위치 / 배포된 스마트 계약에 어떻게 접근하는가

주현테크 2022. 4. 27. 19:06

1. 메타마스크 회원정보 저장 (로그인정보는 어디에 저장되는지?)
-> 우리가 알기로는 이더리움 네트워크의 분산 노드에 저장됨.

-> 니모닉코드를 풀면 나옴

  • 메타마스크는 니모닉키를 보관하지 않음. 
  • 계정과 연결된 이메일 주소 없음
  • 니모닉 코드는 한번만 주어지며 변경/재설정이 불가능
  • 백엔드에서 지갑에 로그인할 수 없음
  • 니모닉키는 로컬에서 계정, 주소당 하나씩 개인키를 만드는데 사용된다 -> 이 계정은 블록체인 네트워크에 저장되며 계정의 잠금을 해제하는데 사용된다.
  • 로컬상에서 메타마스크를 삭제하면 데이터가 전부 삭제되지만 해당 로컬에서 수행한 모든 트랜잭션은 블록체인에 저장되어있다. 
  • 로컬과 이더리움 네트워크 상 어딘가에 저장된다.

https://www.youtube.com/watch?v=0PeoP_C5Axg 

 

로컬에 저장되는 비밀번호

-> 비대칭적 암호화: asymmetric encryption

 

 

네트워크 선택

-> JSON-RPC API 사용. (API end point는 어떻게 찾는가?)

 

 

INFURA를 사용하는 이유?

-> Infura는 즉시 사용 가능하며 항상 켜져있으며 확장 가능한 블록체인 API를 제공하여 마치 자신의 노드를 실행하는 것처럼 데이터 액세스를 제공하는 등 다양한 기능을 제공한다. Infura는 지갑과 애플리케이션이 JSON-API 요청을 보낼 수 있는 API 엔드포인트를 통해 노드에 대한 엑세스를 제공한다.

-> 확장성, 사용량 급증에 대한 절연성  측면에서 타 블록체인 API 업체에 비해 상당한 이점을 가지고 있으며 사용자를 위한 개인정보보호기능도 제공하고 있다.

 

 

 


 

 

 

2. 배포된 스마트 컨트랙트에 어떻게 접근하고 시스템 상에서 호출하는가?

 

evm?

-> 이더리움 가상머신. 

-> 이더리움 전체를 작동시키는 심장부, 엔진

-> 이더리움 전체를 작동하는 엔진으로 evm 바이트코드를 사용

 

bytecode?

-> 소스코드를 가상머신(evm)이 이해할 수 있도록 변환된 기계어

-> 이더리움 네트워크 상에서 조합 가능한 모든 계산을 수행 가능한 256 비트의 원시 문자열 정보로 구성됨

-> 01로 시작하는 숫자로 이루어짐

 

abi?

-> 프로그램과 라이브러리를 이어주는 다리 역할 (API > ABI)

-> 외부 라이브러리를 사용할때 사용

-> 문자열로 이루어짐

=> 블록체인 관련 어플리케이션은 전부 EVM으로 실행되며 EVM 위에서 스마트 컨트랙트, 트랜잭션 등이 이루어 지기 위해서는 EVM Bytecode가 필요하다. EVM Bytecode는 ABI를 기계가 이해할 수 있도록 기계어로 변경해주는 역할을 수행한다. ABI는 사용자가 코드상에서 보는 문자열이다.

 

 


 

 

rpc?

-> 프로세스간 통신을 위해 사용하는 프로시저

-> 우리 프로젝트에선 ABI 내 계약 검증 함수를 원격으로 호출해옴

https://nesoy.github.io/articles/2019-07/RPC

 

RPC란?

왜 RPC가 등장하게 되었을까? 어떻게 하면 분산 네트워크 컴퓨터 환경에서 프로그래밍을 쉽게 할 수 있을까? 우리가 일반적으로 사용하는 커뮤니케이션 패턴은? Client - Server 패턴 Client는 요청하

nesoy.github.io

 

 

1_P2D_9_.pptx
0.59MB

Comments