Blockchain

[Ethereum] 이더리움 알아보기

구루싸 2022. 2. 21. 12:30
반응형
SMALL

이더리움(Ethereum)

비트코인(Bitcoin)처럼 일종의 분산 원장(Distributed Ledger)이다. 비트코인이 P2P(Peer-to-Peer) 전자 화폐 시스템에 가깝다면 이더리움은 애플리케이션 구현을 위한 탈중앙화 플랫폼(Decentralized Platform)이다. 이더리움은 솔리디티(Solidity)라는 튜링 완전(Turing-complete) 프로그래밍 언어를 기본으로 제공하고 이 언어로 스마트 계약(Smart Contract)을 작성한다. 또한, 이더리움은 이더(Ether)라는 암호화폐(Cryptocurrency)를 제공하며 이더는 이더리움 애플리케이션 및 서비스에 대한 트랜잭션 수수료(Transaction fee)를 지불하거나 금액(Value)을 주고 받는 데 사용된다. 

스마트 계약(Smart Contract)

일종의 컴퓨터 프로그램으로서 블록체인 애플리케이션 사이의 관계에 대한 규칙을 표현한다. 스마트 계약은 정확히 지정된 작업만 수행하며 나중에 변경할 수 없다. 다시 말해 한 번 배치된 스마트 계약을 수정할 수 없게 함으로써 신뢰와 투명성을 보장한다. 스마트 계약을 작성하기 위한 대표적인 IDE는 Remix이다.

 

Remix - Ethereum IDE

 

remix.ethereum.org

Geth

Go로 구현한 이더리움 공식 클라이언트이다.

# install geth
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get -y update
sudo apt-get install -y ethereum

사설 네트워크 구성하기

1. 블록체인 데이터를 저장할 디렉터리 생성

mkdir datadir

2. 계정을 만들고 앞서 만든 디렉터리에 저장

geth account new --datadir datadir

3. genesis.json 파일 생성

4. genesis.json 파일을 이용한 네트워크 초기화

geth --datadir ./datadir init ./genesis.json

 5. 네트워크 구동

geth --datadir ./datadir --networkid 1100 console 2>> network.log

계정

이더리움 계정은 20바이트 주소로 구성되며, 상태 전이(state transition)를 통해 두 계정 사이에서 데이터와 금액을 주고 받는다. 일반적으로 이더리움에는 두 가지 타입의 계정이 있다. 하나는 EOA고 다른 하나는 계약 계정이다. 계정마다 잔고, 계약 코드, 저장 공간(storage),  논스(nonce)에 대한 네 개의 필드를 갖고 있다. EOA는 비밀 키로 제어하며, 계약 계정은 계약 코드로 제어한다. 일반 사용자는 지갑을 통해 EOA를 생성할 수 있다. 이더리움은 비밀 키에 대해 타원 곡선 암호화(elliptical curve cryptography)를 적용한다. 비밀 키로 주소를 검색하려면 비밀 키를 64바이트 길이의 공개 키로 변환한 다음 여기에 Keccak-256 해시를 적용한 뒤 마지막 20바이트를 비밀 키에 대한 이더리움 주소로 사용한다.

개발용 네트워크 생성하기

이더리움 개발 툴인 트러플 스위트(Truffle suite)에서 제공하는 가나슈(Ganache)로 개인용 블록체인 네트워크를 생성할 수 있다.

# 가나슈 설치
sudo apt-get install -y npm
sudo npm install -g ganache-cli

지갑

이더리움에서 사용하는 암호화폐를 주고 받으려면 지갑(wallet)이 있어야 한다. 지갑은 계정과 트랜잭션을 관리하는 데 사용된다.

1. 메타마스크(MetaMask)

메타마스크는 브라우저 기반 지갑으로, 크롬과 파이어폭스에서 사용할 수 있다. 메타마스크를 통해 메인 넷(main-net), 테스트 넷(test net)을 비롯한 접근 권한이 있는 RPC 포트를 통해 다양한 이더리움 네트워크에 연결할 수 있고, 계정을 추가하거나 현재 계정의 비밀 키를 내보낼 수도 있다.

2. 마이크립토(MyCrypto)

 

MyCrypto - Ethereum Wallet Manager

Securely manage ALL of your crypto accounts with MyCrypto. Swap, send, and buy crypto with your favorite wallets like Ledger, Metamask, and Trezor.

mycrypto.com

기존 지갑을 사용하거나 새로 지갑을 생성한다. 마이크립토의 웹 인터페이스는 비밀 키, 니모닉(Mnemonic), 키파일 등으로 지갑을 생성하거나 사용하는 데 일정한 제한을 두고 있어 지갑을 생성할 때 암호를 복잡하게 지정해야 한다. 마이크립토는 계약을 배치하거나 다루고, 이더리움 네임 서비스를 사용하는 옵션도 제공하며, 자신이 보유한 이더를 다른 암호화폐로 바꾸는 기능도 제공한다.

3. 미스트-이더리움 지갑(Mist-Ethereum wallet)

 

Releases · ethereum/mist

[DEPRECATED] Mist. Browse and use Ðapps on the Ethereum network. - ethereum/mist

github.com

미스트는 웹기반 DApp을 위한 브라우저다. 이더리움 지갑은 하나의 DApp만 접근할 수 있도록 구현된 지갑 DAppd이다. 미스트를 사용하면 트랜잭션을 주고받고, 스마트 계약을 다루거나 배치할 수 있다.

블록 탐색기

1. 이더스캔(Etherscan)

 

Ethereum (ETH) Blockchain Explorer

Etherscan allows you to explore and search the Ethereum blockchain for transactions, addresses, tokens, prices and other activities taking place on Ethereum (ETH)

etherscan.io

2. Eth-netstats

 

Ethereum Network Status

uncles (current / last 50){{ bestStats.block.uncles.length }}/{{ uncleCount }}

ethstats.net

 

반응형
LIST