(알고 가기) 이더리움 동작을 설명할 때, 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 기능)
'학교 공부 > 블록체인' 카테고리의 다른 글
[Ethereum] Transaction이란? (0) | 2021.06.03 |
---|---|
[Ethereum] 이더리움에서 사용하는 암호학 (0) | 2021.06.03 |
[Ethereum] 이더리움 실습, 테스트넷에서 이더(ETH) 받기 (2) | 2021.03.19 |
[Ethereum] 이더리움 MetaMask 설치하기 (1) | 2021.03.19 |
[Ethereum] 이더리움(Ethereum)이란? (+wallet 개념) (1) | 2021.03.19 |
댓글