본문 바로가기
학교 공부/블록체인

[Ethereum] 이더리움 Account와 이더리움 네트워크

by 그적 2021. 3. 19.

(알고 가기) 이더리움 동작을 설명할 때, Smart Contract을 빼놓을 수 없다. 왜냐하면 이더(ETH)를 주고받기 위해서는 Smart Contract이 동작되어야 하기 때문이고, Smart Contract(코드임)은 EVM이라는 Ethereum Virtual Machine(가상 머신)을 사용해야 한다. 

 

이더리움 계정(Account)

1) Externally Owned Account(EOA)

  : Smart Contract을 위한 계정이다. 일반적으로 MetaMask에서 보내기 버튼 눌러서 보낼 때 사용하는 계정

   (구성요소) Account, Private keys

2) Contract Account

 : 사용자 혹은 개발자가 새로운 contract 코드를 만들어 배포하면 새로운 contract이 만들어짐

   contract account에는 private key가 존재하지 않는다. 따라서 스스로 실행될 수 없으며, 오직 "요청"을 받아 실행된다.

   (구성요소) Contract Address, Code

 

 

대표적인 Client

: 이더리움 네트워크에 접근해 동작시킬 수 있는 client들은 규격이 존재한다. ("Yellow Paper"에 명시)

- Parity (in Rust)
- Geth (in Go)
- cpp-ethereum (in C++)
- pyethereum (in Python)
- Mantis (in Scala)
- Harmony (in Java)

 

 

이더리움 DApp 테스트하기

: 이더리움에 참여할 때 full node 혹은 not full node를 선택한다. full node로 참여하는 것이 블록체인의 지속과 안정화를 이루고 transaction과 contract을 검사할 때 각각의 노드들에서 확인할 수 있기 때문에 물론 좋지만, 비용이 많이 든다는 단점을 가진다.

 

smart contract과 dapp을 만들어 테스트를 하기 위해서 메인넷을 사용하지 않고 아래의 다른 네트워크를 이용할 수 있다.

- 테스트넷 : 빠르지만 용량이 적다. 실제 테스트를 확인하기엔 실제 net이 아니기 때문에 차이가 존재한다.

- Ganache : 직접 네트워크에 연결이 되지 않는 local private blockchain이다. 가상 머신에 private ethereum network를 구성한 것.

- Infura : 클라우드 기반으로 full-node가 실행될 수 있는 환경을 가진다.

- MetaMask : remote client로, 기존 이더리움 노드에 연결되어 사용하기 때문에 손쉽게 이더리움에 참여할 수 있다. (+wallet 기능)

 

댓글